Index: lams_tool_wiki/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r4161978f8d7ac38d8de94e68128ae300b0892e9d -r95d3a8ab54accdb67b113b8fb22b607d99d8af91 --- lams_tool_wiki/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 4161978f8d7ac38d8de94e68128ae300b0892e9d) +++ lams_tool_wiki/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 95d3a8ab54accdb67b113b8fb22b607d99d8af91) @@ -121,6 +121,8 @@ label.wiki.remove.mark.toolTip =Mark this page as removed label.wiki.remove.mark.confirm =Are you sure you want to mark this Wiki page as removed? label.wiki.removed =This page has been removed. +label.wiki.restore =Restore +label.wiki.restore.toolTip =Resore previously removed page label.wiki.pages =Wiki Pages label.wiki.savechanges =Save changes label.wiki.history =History @@ -154,9 +156,11 @@ notify.pageEdited.subject =LAMS Wiki page has been edited by {0}. notify.pageAdded.subject =LAMS Wiki page has been added by {0}. notify.pageRemoved.subject =LAMS Wiki page has been removed by {0}. +notify.pageRestored.subject =LAMS Wiki page has been restored by {0}. notify.pageEdited.body =A Wiki page has been edited by {0} for {1}. To see the page, go to {2} notify.pageAdded.body =A Wiki page has been added by {0} for {1}. To see the page, go to {2} notify.pageRemoved.body =A Wiki page has been removed by {0} for {1}. To see the Wiki, go to {2} +notify.pageRestored.body =A Wiki page has been restored by {0} for {1}. To see the Wiki, go to {2} notify.learner.subscribe =Subscribe notify.learner.unsubscribe =Unsubscribe notify.learner.query ={0} to notifications by email each time the Wiki is edited. Index: lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/service/IWikiService.java =================================================================== diff -u -r4161978f8d7ac38d8de94e68128ae300b0892e9d -r95d3a8ab54accdb67b113b8fb22b607d99d8af91 --- lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/service/IWikiService.java (.../IWikiService.java) (revision 4161978f8d7ac38d8de94e68128ae300b0892e9d) +++ lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/service/IWikiService.java (.../IWikiService.java) (revision 95d3a8ab54accdb67b113b8fb22b607d99d8af91) @@ -155,8 +155,15 @@ * @param wikiPage */ public void markWikiPageAsDeleted(WikiPage wikiPage); - + /** + * Mark an existing wiki page as not deleted. + * + * @param wikiPage + */ + public void restoreWikiPage(WikiPage wikiPage); + + /** * Gets a wiki page by wiki and title * * This method should only be called by author as it will only retrieve Index: lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/service/WikiService.java =================================================================== diff -u -r4161978f8d7ac38d8de94e68128ae300b0892e9d -r95d3a8ab54accdb67b113b8fb22b607d99d8af91 --- lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/service/WikiService.java (.../WikiService.java) (revision 4161978f8d7ac38d8de94e68128ae300b0892e9d) +++ lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/service/WikiService.java (.../WikiService.java) (revision 95d3a8ab54accdb67b113b8fb22b607d99d8af91) @@ -744,6 +744,11 @@ wikiPage.setDeleted(true); wikiPageDAO.saveOrUpdate(wikiPage); } + + public void restoreWikiPage(WikiPage wikiPage) { + wikiPage.setDeleted(false); + wikiPageDAO.saveOrUpdate(wikiPage); + } public void deleteInstructionFile(Long contentID, Long uuid, Long versionID, String type) { wikiDAO.deleteInstructionFile(contentID, uuid, versionID, type); Index: lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/web/actions/WikiPageAction.java =================================================================== diff -u -r4161978f8d7ac38d8de94e68128ae300b0892e9d -r95d3a8ab54accdb67b113b8fb22b607d99d8af91 --- lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/web/actions/WikiPageAction.java (.../WikiPageAction.java) (revision 4161978f8d7ac38d8de94e68128ae300b0892e9d) +++ lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/web/actions/WikiPageAction.java (.../WikiPageAction.java) (revision 95d3a8ab54accdb67b113b8fb22b607d99d8af91) @@ -439,7 +439,39 @@ return this.returnToWiki(mapping, form, request, response, currentPageUid); } + + /** + * Restore a page previously marked as removed. + */ + public ActionForward restorePage(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + // The page to be restored + Long currentPageUid = WebUtil.readLongParam(request, WikiConstants.ATTR_CURRENT_WIKI); + // Get the session information for notifications + Long toolSessionID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID, true); + WikiUser user = getCurrentUser(toolSessionID); + + // set up wikiService + if (wikiService == null) { + wikiService = WikiServiceProxy.getWikiService(this.getServlet().getServletContext()); + } + + WikiPage wikiPage = wikiService.getWikiPageByUid(currentPageUid); + + // Updating the wikiPage + wikiService.restoreWikiPage(wikiPage); + + // Send removed page notifications + if (toolSessionID != null && user != null) { + notifyWikiChange(toolSessionID, "notify.pageRestored.subject", "notify.pageRestored.body", user, request); + } + + // return to the same page + return this.returnToWiki(mapping, form, request, response, currentPageUid); + + } + /** * Toggles whether a learner wants to receive notifications for wiki changes * Index: lams_tool_wiki/web/pages/authoring/basic.jsp =================================================================== diff -u -r4161978f8d7ac38d8de94e68128ae300b0892e9d -r95d3a8ab54accdb67b113b8fb22b607d99d8af91 --- lams_tool_wiki/web/pages/authoring/basic.jsp (.../basic.jsp) (revision 4161978f8d7ac38d8de94e68128ae300b0892e9d) +++ lams_tool_wiki/web/pages/authoring/basic.jsp (.../basic.jsp) (revision 95d3a8ab54accdb67b113b8fb22b607d99d8af91) @@ -47,6 +47,14 @@ + +   + " + > + + + Index: lams_tool_wiki/web/pages/learning/wiki.jsp =================================================================== diff -u -r4161978f8d7ac38d8de94e68128ae300b0892e9d -r95d3a8ab54accdb67b113b8fb22b607d99d8af91 --- lams_tool_wiki/web/pages/learning/wiki.jsp (.../wiki.jsp) (revision 4161978f8d7ac38d8de94e68128ae300b0892e9d) +++ lams_tool_wiki/web/pages/learning/wiki.jsp (.../wiki.jsp) (revision 95d3a8ab54accdb67b113b8fb22b607d99d8af91) @@ -118,7 +118,7 @@ - + @@ -145,7 +145,7 @@ - +   "> @@ -166,14 +166,22 @@ - +   ')" title="" > + +   + " + > + + +