Index: lams_tool_wiki/build.properties =================================================================== diff -u -rd56929f06ad90a63082d514e6521adc175f3de27 -r61408a87d647c32ac6a6a42d3ac009828eb5ce6d --- lams_tool_wiki/build.properties (.../build.properties) (revision d56929f06ad90a63082d514e6521adc175f3de27) +++ lams_tool_wiki/build.properties (.../build.properties) (revision 61408a87d647c32ac6a6a42d3ac009828eb5ce6d) @@ -3,5 +3,6 @@ signature=lawiki10 tool.version=20120315 +tool.version=20160919 tool.hide=false tool.short.name=wiki \ No newline at end of file Index: lams_tool_wiki/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wiki/model/Wiki.hbm.xml =================================================================== diff -u -r65efb0abb529cafc1977e284e2c9a4ed33722334 -r61408a87d647c32ac6a6a42d3ac009828eb5ce6d --- lams_tool_wiki/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wiki/model/Wiki.hbm.xml (.../Wiki.hbm.xml) (revision 65efb0abb529cafc1977e284e2c9a4ed33722334) +++ lams_tool_wiki/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wiki/model/Wiki.hbm.xml (.../Wiki.hbm.xml) (revision 61408a87d647c32ac6a6a42d3ac009828eb5ce6d) @@ -213,6 +213,14 @@ /> + + sessionDTOs = new TreeSet(); + + public Set sessionDTOs = new TreeSet(); + public Long currentTab; /* Constructors */ @@ -85,8 +90,10 @@ notifyUpdates = wiki.isNotifyUpdates(); reflectOnActivity = wiki.isReflectOnActivity(); reflectInstructions = wiki.getReflectInstructions(); + submissionDeadline = wiki.getSubmissionDeadline(); minimumEdits = wiki.getMinimumEdits(); maximumEdits = wiki.getMaximumEdits(); + for (Iterator iter = wiki.getWikiSessions().iterator(); iter.hasNext();) { WikiSession session = iter.next(); @@ -228,4 +235,12 @@ public void setCurrentTab(Long currentTab) { this.currentTab = currentTab; } + + public Date getSubmissionDeadline() { + return submissionDeadline; + } + + public void setSubmissionDeadline(Date submissionDeadline) { + this.submissionDeadline = submissionDeadline; + } } Index: lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/model/Wiki.java =================================================================== diff -u -r2f725f8ef2aa09a2663b2335bf67213074426d11 -r61408a87d647c32ac6a6a42d3ac009828eb5ce6d --- lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/model/Wiki.java (.../Wiki.java) (revision 2f725f8ef2aa09a2663b2335bf67213074426d11) +++ lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/model/Wiki.java (.../Wiki.java) (revision 61408a87d647c32ac6a6a42d3ac009828eb5ce6d) @@ -95,6 +95,8 @@ private boolean defineLater; private Long toolContentId; + + private Date submissionDeadline; private Set wikiSessions; @@ -368,7 +370,21 @@ public void setMainPage(WikiPage mainPage) { this.mainPage = mainPage; } + + + /** + * + * @return + */ + public Date getSubmissionDeadline() { + return submissionDeadline; + } + + public void setSubmissionDeadline(Date submissionDeadline) { + this.submissionDeadline = submissionDeadline; + } + /** * toString * Index: lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/util/WikiConstants.java =================================================================== diff -u -r2f725f8ef2aa09a2663b2335bf67213074426d11 -r61408a87d647c32ac6a6a42d3ac009828eb5ce6d --- lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/util/WikiConstants.java (.../WikiConstants.java) (revision 2f725f8ef2aa09a2663b2335bf67213074426d11) +++ lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/util/WikiConstants.java (.../WikiConstants.java) (revision 61408a87d647c32ac6a6a42d3ac009828eb5ce6d) @@ -74,4 +74,13 @@ public static final String JAVASCRIPT_TOKEN = "javascript"; public static final String JAVASCRIPT_REPLACE_TOKEN = "JAVASCRIPTREPLACE"; + + public static final String MESSAGE_SEPARATOR = " "; + public static final String TEXT_SEARCH_DEFINITION_NAME = "text.search.output.definition.chat"; + public static final String TEXT_SEARCH_DEFAULT_CONDITION_DISPLAY_NAME_KEY = "text.search.output.definition.chat.default.condition"; + + /* Date time restriction */ + public static final String ATTR_SUBMISSION_DEADLINE = "submissionDeadline"; + public static final String ATTR_IS_SUBMISSION_DEADLINE_PASSED = "isSubmissionDeadlinePassed"; + } Index: lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/web/actions/LearningAction.java =================================================================== diff -u -r1980c17755d5ddc7da8545b352cd45a84f30c0f3 -r61408a87d647c32ac6a6a42d3ac009828eb5ce6d --- lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/web/actions/LearningAction.java (.../LearningAction.java) (revision 1980c17755d5ddc7da8545b352cd45a84f30c0f3) +++ lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/web/actions/LearningAction.java (.../LearningAction.java) (revision 61408a87d647c32ac6a6a42d3ac009828eb5ce6d) @@ -26,11 +26,13 @@ import java.io.IOException; import java.util.Date; +import java.util.TimeZone; import java.util.SortedSet; import java.util.TreeSet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; import org.apache.struts.action.ActionForm; @@ -41,6 +43,7 @@ import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.ToolSessionManager; + import org.lamsfoundation.lams.tool.exception.DataMissingException; import org.lamsfoundation.lams.tool.exception.ToolException; import org.lamsfoundation.lams.tool.wiki.dto.WikiDTO; @@ -59,6 +62,7 @@ import org.lamsfoundation.lams.tool.wiki.web.forms.LearningForm; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.util.DateUtil; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -165,10 +169,12 @@ if (wikiService.getEventNotificationService().eventExists(WikiConstants.TOOL_SIGNATURE, WikiConstants.EVENT_NOTIFY_LEARNERS, toolSessionID) && wikiService.getEventNotificationService().isSubscribed(WikiConstants.TOOL_SIGNATURE, - WikiConstants.EVENT_NOTIFY_LEARNERS, toolSessionID, wikiUser.getUserId().longValue())) { - + WikiConstants.EVENT_NOTIFY_LEARNERS, toolSessionID, wikiUser.getUserId())) { wikiUserDTO.setNotificationEnabled(true); } + + + // add the userDTO to attributes request.setAttribute(WikiConstants.ATTR_USER_DTO, wikiUserDTO); @@ -222,7 +228,30 @@ request.setAttribute(WikiConstants.ATTR_CONTENT_EDITAVLE, true); } request.setAttribute(WikiConstants.ATTR_FINISHED_ACTIVITY, wikiUser.isFinishedActivity()); + + + /* Check if submission deadline is null */ + + Date submissionDeadline = wikiDTO.getSubmissionDeadline(); + request.setAttribute("wikiDTO", wikiDTO); + + if (submissionDeadline != null) { + + HttpSession ss = SessionManager.getSession(); + UserDTO learnerDto = (UserDTO) ss.getAttribute(AttributeNames.USER); + TimeZone learnerTimeZone = learnerDto.getTimeZone(); + Date tzSubmissionDeadline = DateUtil.convertToTimeZoneFromDefault(learnerTimeZone, submissionDeadline); + Date currentLearnerDate = DateUtil.convertToTimeZoneFromDefault(learnerTimeZone, new Date()); + request.setAttribute("submissionDeadline", submissionDeadline); + + // calculate whether submission deadline has passed, and if so forward to "submissionDeadline" + if (currentLearnerDate.after(tzSubmissionDeadline)) { + return mapping.findForward("submissionDeadline"); + } + + } + return mapping.findForward("wiki"); } Index: lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/web/actions/MonitoringAction.java =================================================================== diff -u -r2f725f8ef2aa09a2663b2335bf67213074426d11 -r61408a87d647c32ac6a6a42d3ac009828eb5ce6d --- lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision 2f725f8ef2aa09a2663b2335bf67213074426d11) +++ lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision 61408a87d647c32ac6a6a42d3ac009828eb5ce6d) @@ -29,6 +29,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; import org.apache.struts.action.ActionForm; @@ -55,6 +56,9 @@ import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; +import java.util.Date; +import org.lamsfoundation.lams.util.DateUtil; +import java.util.TimeZone; /** * This action handles all the monitoring actions, which include opening @@ -117,7 +121,21 @@ Long currentTab = WebUtil.readLongParam(request, AttributeNames.PARAM_CURRENT_TAB, true); wikiDT0.setCurrentTab(currentTab); + + /* Check if submission deadline is null */ + Date submissionDeadline = wikiDT0.getSubmissionDeadline(); + + if (submissionDeadline != null) { + + HttpSession ss = SessionManager.getSession(); + UserDTO learnerDto = (UserDTO) ss.getAttribute(AttributeNames.USER); + TimeZone learnerTimeZone = learnerDto.getTimeZone(); + Date tzSubmissionDeadline = DateUtil.convertToTimeZoneFromDefault(learnerTimeZone, submissionDeadline); + request.setAttribute("submissionDeadline", tzSubmissionDeadline.getTime()); + + } + request.setAttribute(WikiConstants.ATTR_WIKI_DTO, wikiDT0); request.setAttribute(WikiConstants.ATTR_CONTENT_FOLDER_ID, contentFolderID); request.setAttribute(WikiConstants.ATTR_IS_GROUPED_ACTIVITY, wikiService.isGroupedActivity(toolContentID)); @@ -156,7 +174,44 @@ return wikiUser; } + + + /** + * Set Submission Deadline + * + * @param mapping + * @param form + * @param request + * @param response + * @return + */ + public ActionForward setSubmissionDeadline(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + // set up wikiService + if (wikiService == null) { + wikiService = WikiServiceProxy.getWikiService(this.getServlet().getServletContext()); + } + + Long contentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + Wiki wiki = wikiService.getWikiByContentId(contentID); + + Long dateParameter = WebUtil.readLongParam(request,WikiConstants.ATTR_SUBMISSION_DEADLINE, true); + Date tzSubmissionDeadline = null; + if (dateParameter != null) { + Date submissionDeadline = new Date(dateParameter); + HttpSession ss = SessionManager.getSession(); + UserDTO teacher = (UserDTO) ss.getAttribute(AttributeNames.USER); + TimeZone teacherTimeZone = teacher.getTimeZone(); + tzSubmissionDeadline = DateUtil.convertFromTimeZoneToDefault(teacherTimeZone, submissionDeadline); + } + wiki.setSubmissionDeadline(tzSubmissionDeadline); + System.out.println("datasetbefore"+wiki); + wikiService.saveOrUpdateWiki(wiki); + System.out.println("datasetafter"+wiki); + return null; + } + /** * Shows a specific wiki based on the session id * Index: lams_tool_wiki/web/pages/learning/submissionDeadline.jsp =================================================================== diff -u --- lams_tool_wiki/web/pages/learning/submissionDeadline.jsp (revision 0) +++ lams_tool_wiki/web/pages/learning/submissionDeadline.jsp (revision 61408a87d647c32ac6a6a42d3ac009828eb5ce6d) @@ -0,0 +1,18 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + <%@ include file="parts/finishButton.jsp"%> + + + Index: lams_tool_wiki/web/pages/learning/wiki.jsp =================================================================== diff -u -rf1b987bd4c36f0866ceefd0b02f418158c9f8faa -r61408a87d647c32ac6a6a42d3ac009828eb5ce6d --- lams_tool_wiki/web/pages/learning/wiki.jsp (.../wiki.jsp) (revision f1b987bd4c36f0866ceefd0b02f418158c9f8faa) +++ lams_tool_wiki/web/pages/learning/wiki.jsp (.../wiki.jsp) (revision 61408a87d647c32ac6a6a42d3ac009828eb5ce6d) @@ -177,12 +177,25 @@ + + + + + + + + + + + + + @@ -229,7 +242,7 @@ - + Index: lams_tool_wiki/web/pages/monitoring/daterestriction.jsp =================================================================== diff -u --- lams_tool_wiki/web/pages/monitoring/daterestriction.jsp (revision 0) +++ lams_tool_wiki/web/pages/monitoring/daterestriction.jsp (revision 61408a87d647c32ac6a6a42d3ac009828eb5ce6d) @@ -0,0 +1,29 @@ +<%@include file="/common/taglibs.jsp"%> + + + + +

+ +
style="display: none;" > +
+ + + + +
+
+ +
style="display: none;" > + + + + +
+ +
\ No newline at end of file Index: lams_tool_wiki/web/pages/monitoring/summary.jsp =================================================================== diff -u -rceae3062bc6d9ad73937168fc0fb12e4fdaa172d -r61408a87d647c32ac6a6a42d3ac009828eb5ce6d --- lams_tool_wiki/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision ceae3062bc6d9ad73937168fc0fb12e4fdaa172d) +++ lams_tool_wiki/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 61408a87d647c32ac6a6a42d3ac009828eb5ce6d) @@ -1,7 +1,33 @@ <%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + +