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=""
>
+
+
+ "
+ >
+
+
+