Index: lams_tool_sbmt/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -rdd271045ecd35d9bcc6cf58caa74945fa4d26f03 -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 --- lams_tool_sbmt/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision dd271045ecd35d9bcc6cf58caa74945fa4d26f03) +++ lams_tool_sbmt/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -31,7 +31,7 @@ label.learner.fileDescription =Description label.learner.upload =Upload label.learner.finished =Finished uploading -label.learner.time =Uploaded on +label.learner.time =Uploaded label.learner.dateOfSubmission =Submission date label.learner.comments =Comments label.learner.marks =Marks @@ -90,10 +90,12 @@ monitoring.user.loginname =Username monitoring.user.reflection =Notebook entry page.title.monitoring.view.reflection =View Notebook entries -label.limit.number.upload =Limit number of files to upload +label.enable.min.limit =Set minimum number of files to upload +label.limit.number.upload =Set maximum number of files to upload label.number.to.upload =Number of files to upload label.unlimited =Unlimited -message.left.upload.limit =You could upload another {0} file(s). +message.left.upload.limit =Maximum number of files to be uploaded: {0} +label.should.upload.another =Minimum number of files to be uploaded: {0} messsage.learner.finish.confirm =Are you going to finish submission? label.edit =Edit message.no.reflection.available =No Notebook available Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SbmtConstants.java =================================================================== diff -u -r7694dd245cc58c5b7beb2348aaefb2762c47dc8d -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SbmtConstants.java (.../SbmtConstants.java) (revision 7694dd245cc58c5b7beb2348aaefb2762c47dc8d) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SbmtConstants.java (.../SbmtConstants.java) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -31,7 +31,7 @@ public static final String DEFAULT_TITLE = "Submit Files Title"; - public static final String AUTHORING_DTO = "authoring"; + public static final String ATTR_CONTENT = "content"; public static final String TOOL_CONTENT_HANDLER_NAME = "sbmtToolContentHandler"; @@ -77,11 +77,13 @@ public static final String ATTR_GROUP_LEADER = "groupLeader"; - public static final String ATTR_LIMIT_UPLOAD = "limitUpload"; + public static final String ATTR_IS_MAX_LIMIT_UPLOAD_ENABLED = "isMaxLimitUploadEnabled"; - public static final String ATTR_LIMIT_UPLOAD_NUMBER = "limitUploadNumber"; + public static final String ATTR_MAX_LIMIT_UPLOAD_NUMBER = "maxLimitUploadNumber"; + + public static final String ATTR_MIN_LIMIT_UPLOAD_NUMBER = "minLimitUploadNumber"; - public static final String ATTR_ARRIVE_LIMIT = "arriveLimit"; + public static final String ATTR_MAX_LIMIT_REACHED = "maxLimitReached"; public static final String ATTR_USER_FINISHED = "userFinished"; Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dbupdates/patch20191128.sql =================================================================== diff -u --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dbupdates/patch20191128.sql (revision 0) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dbupdates/patch20191128.sql (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -0,0 +1,14 @@ +-- Turn off autocommit, so nothing is committed if there is an error +SET AUTOCOMMIT = 0; +SET FOREIGN_KEY_CHECKS=0; +----------------------Put all sql statements below here------------------------- + +-- LDEV-4913 Include a minimum number of files to submit +ALTER TABLE tl_lasbmt11_content ADD COLUMN min_limit_upload_number bigint; + +----------------------Put all sql statements above here------------------------- + +-- If there were no errors, commit and restore autocommit to on +COMMIT; +SET AUTOCOMMIT = 1; +SET FOREIGN_KEY_CHECKS=1; Fisheye: Tag e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 refers to a dead (removed) revision in file `lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dto/AuthoringDTO.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dto/SubmitUserDTO.java =================================================================== diff -u -r7694dd245cc58c5b7beb2348aaefb2762c47dc8d -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dto/SubmitUserDTO.java (.../SubmitUserDTO.java) (revision 7694dd245cc58c5b7beb2348aaefb2762c47dc8d) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dto/SubmitUserDTO.java (.../SubmitUserDTO.java) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -64,8 +64,6 @@ private boolean finishReflection; private String reflect; - private int limitUploadLeft; - public SubmitUserDTO() { } @@ -256,14 +254,6 @@ this.userID = userID; } - public int getLimitUploadLeft() { - return limitUploadLeft; - } - - public void setLimitUploadLeft(int limitUploadLeft) { - this.limitUploadLeft = limitUploadLeft; - } - public boolean isAnyFilesMarked() { return anyFilesMarked; } Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/model/SubmitFilesContent.java =================================================================== diff -u -r1ee503e3d0e0228ea8a45025fddf15d9623c0377 -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/model/SubmitFilesContent.java (.../SubmitFilesContent.java) (revision 1ee503e3d0e0228ea8a45025fddf15d9623c0377) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/model/SubmitFilesContent.java (.../SubmitFilesContent.java) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -83,8 +83,12 @@ @Column(name = "limit_upload") private boolean limitUpload; + //max limitUploadNumber @Column(name = "limit_upload_number") private int limitUploadNumber; + + @Column(name = "min_limit_upload_number") + private Integer minLimitUploadNumber; @Column(name = "reflect_on_activity") private boolean reflectOnActivity; @@ -263,7 +267,15 @@ public void setLimitUploadNumber(int limitUploadNumber) { this.limitUploadNumber = limitUploadNumber; } + + public Integer getMinLimitUploadNumber() { + return minLimitUploadNumber; + } + public void setMinLimitUploadNumber(Integer minLimitUploadNumber) { + this.minLimitUploadNumber = minLimitUploadNumber; + } + public Date getCreated() { return created; } Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java =================================================================== diff -u -r20aa6cbca9fc96d341080e6ad39f82593443f792 -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -1328,6 +1328,7 @@ content.setUseSelectLeaderToolOuput( JsonUtil.optBoolean(toolContentJSON, "useSelectLeaderToolOuput", Boolean.FALSE)); content.setLimitUploadNumber(JsonUtil.optInt(toolContentJSON, "limitUploadNumber", 0)); + content.setMinLimitUploadNumber(JsonUtil.optInt(toolContentJSON, "minLimitUploadNumber", 0)); // submissionDeadline is set in monitoring SubmitUser user = getContentUser(toolContentID, userID); Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/controller/AuthoringController.java =================================================================== diff -u -r7694dd245cc58c5b7beb2348aaefb2762c47dc8d -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7694dd245cc58c5b7beb2348aaefb2762c47dc8d) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/controller/AuthoringController.java (.../AuthoringController.java) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -178,8 +178,9 @@ content.setReflectInstructions(authoringForm.getReflectInstructions()); content.setReflectOnActivity(authoringForm.isReflectOnActivity()); content.setLimitUpload(authoringForm.isLimitUpload()); - content.setUseSelectLeaderToolOuput(authoringForm.isUseSelectLeaderToolOuput()); content.setLimitUploadNumber(authoringForm.getLimitUploadNumber()); + content.setMinLimitUploadNumber(authoringForm.getMinLimitUploadNumber()); + content.setUseSelectLeaderToolOuput(authoringForm.isUseSelectLeaderToolOuput()); content.setNotifyLearnersOnMarkRelease(authoringForm.isNotifyLearnersOnMarkRelease()); content.setNotifyTeachersOnFileSubmit(authoringForm.isNotifyTeachersOnFileSubmit()); return content; Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/controller/LearnerController.java =================================================================== diff -u -r190c89f5332a6fa6da4d16fd4e0eb668a6d930f7 -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/controller/LearnerController.java (.../LearnerController.java) (revision 190c89f5332a6fa6da4d16fd4e0eb668a6d930f7) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/controller/LearnerController.java (.../LearnerController.java) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -148,8 +148,9 @@ sessionMap.put(SbmtConstants.ATTR_REFLECTION_INSTRUCTION, content.getReflectInstructions()); sessionMap.put(SbmtConstants.ATTR_TITLE, content.getTitle()); sessionMap.put(SbmtConstants.ATTR_INSTRUCTION, content.getInstruction()); - sessionMap.put(SbmtConstants.ATTR_LIMIT_UPLOAD, content.isLimitUpload()); - sessionMap.put(SbmtConstants.ATTR_LIMIT_UPLOAD_NUMBER, content.getLimitUploadNumber()); + sessionMap.put(SbmtConstants.ATTR_IS_MAX_LIMIT_UPLOAD_ENABLED, content.isLimitUpload()); + sessionMap.put(SbmtConstants.ATTR_MAX_LIMIT_UPLOAD_NUMBER, content.getLimitUploadNumber()); + sessionMap.put(SbmtConstants.ATTR_MIN_LIMIT_UPLOAD_NUMBER, content.getMinLimitUploadNumber()); sessionMap.put(SbmtConstants.ATTR_USER_FINISHED, learner.isFinished()); sessionMap.put(SbmtConstants.ATTR_IS_MARKS_RELEASED, session.isMarksReleased()); @@ -459,16 +460,12 @@ // preset // Monitor can edit the activity and set a limit / decreased the limit with // the learner having already uploaded more files so ensure code handles that case. - boolean limitUpload = (Boolean) sessionMap.get(SbmtConstants.ATTR_LIMIT_UPLOAD); + boolean limitUpload = (Boolean) sessionMap.get(SbmtConstants.ATTR_IS_MAX_LIMIT_UPLOAD_ENABLED); if (limitUpload && filesUploaded != null) { - int limit = (Integer) sessionMap.get(SbmtConstants.ATTR_LIMIT_UPLOAD_NUMBER); - int limitUploadLeft = 0; - if (limit <= filesUploaded.size()) { - sessionMap.put(SbmtConstants.ATTR_ARRIVE_LIMIT, Boolean.TRUE); - } else { - limitUploadLeft = limit - filesUploaded.size(); + int maxLimit = (Integer) sessionMap.get(SbmtConstants.ATTR_MAX_LIMIT_UPLOAD_NUMBER); + if (maxLimit <= filesUploaded.size()) { + sessionMap.put(SbmtConstants.ATTR_MAX_LIMIT_REACHED, Boolean.TRUE); } - dto.setLimitUploadLeft(limitUploadLeft); } // retrieve notebook reflection entry. Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/controller/MonitoringController.java =================================================================== diff -u -r7694dd245cc58c5b7beb2348aaefb2762c47dc8d -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 7694dd245cc58c5b7beb2348aaefb2762c47dc8d) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/controller/MonitoringController.java (.../MonitoringController.java) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -46,7 +46,6 @@ import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.lamsfoundation.lams.tool.sbmt.SbmtConstants; -import org.lamsfoundation.lams.tool.sbmt.dto.AuthoringDTO; import org.lamsfoundation.lams.tool.sbmt.dto.FileDetailsDTO; import org.lamsfoundation.lams.tool.sbmt.dto.SessionDTO; import org.lamsfoundation.lams.tool.sbmt.dto.StatisticDTO; @@ -134,19 +133,18 @@ statistic(request, contentID); // instruction - SubmitFilesContent persistContent = submitFilesService.getSubmitFilesContent(contentID); + SubmitFilesContent content = submitFilesService.getSubmitFilesContent(contentID); // if this content does not exist, then reset the contentID to current value to keep it on HTML page. - persistContent.setContentID(contentID); + content.setContentID(contentID); - AuthoringDTO authorDto = new AuthoringDTO(persistContent); - request.setAttribute(SbmtConstants.AUTHORING_DTO, authorDto); - request.setAttribute(SbmtConstants.CONTENT_IN_USE, persistContent.isContentInUse()); + request.setAttribute(SbmtConstants.ATTR_CONTENT, content); + request.setAttribute(SbmtConstants.CONTENT_IN_USE, content.isContentInUse()); request.setAttribute(SbmtConstants.ATTR_IS_GROUPED_ACTIVITY, submitFilesService.isGroupedActivity(contentID)); - request.setAttribute(SbmtConstants.ATTR_REFLECTION_ON, persistContent.isReflectOnActivity()); + request.setAttribute(SbmtConstants.ATTR_REFLECTION_ON, content.isReflectOnActivity()); // set SubmissionDeadline, if any - if (persistContent.getSubmissionDeadline() != null) { - Date submissionDeadline = persistContent.getSubmissionDeadline(); + if (content.getSubmissionDeadline() != null) { + Date submissionDeadline = content.getSubmissionDeadline(); HttpSession ss = SessionManager.getSession(); UserDTO teacher = (UserDTO) ss.getAttribute(AttributeNames.USER); TimeZone teacherTimeZone = teacher.getTimeZone(); Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/form/AuthoringForm.java =================================================================== diff -u -r7694dd245cc58c5b7beb2348aaefb2762c47dc8d -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/form/AuthoringForm.java (.../AuthoringForm.java) (revision 7694dd245cc58c5b7beb2348aaefb2762c47dc8d) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/form/AuthoringForm.java (.../AuthoringForm.java) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -32,6 +32,8 @@ private boolean useSelectLeaderToolOuput; private int limitUploadNumber; + + private Integer minLimitUploadNumber; private boolean reflectOnActivity; @@ -61,6 +63,7 @@ useSelectLeaderToolOuput = content.isUseSelectLeaderToolOuput(); limitUpload = content.isLimitUpload(); limitUploadNumber = content.getLimitUploadNumber(); + minLimitUploadNumber = content.getMinLimitUploadNumber(); reflectOnActivity = content.isReflectOnActivity(); reflectInstructions = content.getReflectInstructions(); @@ -158,7 +161,15 @@ public void setLimitUploadNumber(int limitUploadNumber) { this.limitUploadNumber = limitUploadNumber; } + + public Integer getMinLimitUploadNumber() { + return minLimitUploadNumber; + } + public void setMinLimitUploadNumber(Integer minLimitUploadNumber) { + this.minLimitUploadNumber = minLimitUploadNumber; + } + public boolean isNotifyLearnersOnMarkRelease() { return notifyLearnersOnMarkRelease; } Index: lams_tool_sbmt/web/authoring/advance.jsp =================================================================== diff -u -r62aaf160878735888d077bf28fac3c1989bb8fbd -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 --- lams_tool_sbmt/web/authoring/advance.jsp (.../advance.jsp) (revision 62aaf160878735888d077bf28fac3c1989bb8fbd) +++ lams_tool_sbmt/web/authoring/advance.jsp (.../advance.jsp) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -1,14 +1,59 @@ <%@include file="/common/taglibs.jsp"%> + - - -
- -
+
+ +
-
- +
+ - - 1 - 2 - 3 - 4 - 5 - -
+
hidden"> + +
+
+ +
+ + +
hidden"> + data-slider-value="${authoringForm.limitUploadNumber}" + /> +
+
-
- -
- -
- -
- +
+ +
+ +
+ +
-
- -
- -
- -
- -
- -
+
+ +
+ +
+ +
+ +
+ +
- Index: lams_tool_sbmt/web/authoring/authoring.jsp =================================================================== diff -u -raced7ba6c1e7c5a9a50d3f64d8cdd96dd7e76194 -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 --- lams_tool_sbmt/web/authoring/authoring.jsp (.../authoring.jsp) (revision aced7ba6c1e7c5a9a50d3f64d8cdd96dd7e76194) +++ lams_tool_sbmt/web/authoring/authoring.jsp (.../authoring.jsp) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -11,16 +11,16 @@ <%@ page import="org.lamsfoundation.lams.tool.sbmt.SbmtConstants"%> - <fmt:message key="activity.title" /> - + + + - Index: lams_tool_sbmt/web/learner/sbmtlearner.jsp =================================================================== diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 --- lams_tool_sbmt/web/learner/sbmtlearner.jsp (.../sbmtlearner.jsp) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61) +++ lams_tool_sbmt/web/learner/sbmtlearner.jsp (.../sbmtlearner.jsp) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -14,48 +14,50 @@ <fmt:message key="tool.display.name" /> <%@ include file="/common/header.jsp"%> + - - - @@ -130,6 +130,7 @@ + @@ -155,24 +156,26 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - @@ -182,158 +185,141 @@ - - - - - - - - - - + + +
- - - -
- ) - - - - +
+ : +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ ) + + + + + + + + + "> + + + + " class="btn btn-default btn-disable-on-submit pull-right"> + + +
+ + +
+   + +
+
+ : +
+ : + +
- - - "> - - - " class="btn btn-default btn-disable-on-submit pull-right"> - + + + + + + +
- -
- -
- -
- - - - - - - - -
- +

- - - + + + + + - - - - - - - - - - - - -
-
- + +
+
+ +
+ +
+
+ +
-
- -
- - -
-
- - - - -
-

*

-
- - - -
+ + +
+ + +
+ +

*

+
+ + + +
- +
+ - - + - + + - - -
@@ -367,32 +353,32 @@
-
+ + - - - - - - - - + + + + + - Index: lams_tool_sbmt/web/monitoring/parts/activity.jsp =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 --- lams_tool_sbmt/web/monitoring/parts/activity.jsp (.../activity.jsp) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_sbmt/web/monitoring/parts/activity.jsp (.../activity.jsp) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -13,7 +13,7 @@ - + @@ -22,7 +22,7 @@ - + Index: lams_tool_sbmt/web/monitoring/parts/advanceoptions.jsp =================================================================== diff -u --- lams_tool_sbmt/web/monitoring/parts/advanceoptions.jsp (revision 0) +++ lams_tool_sbmt/web/monitoring/parts/advanceoptions.jsp (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -0,0 +1,138 @@ +<%@include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + , ${content.minLimitUploadNumber} + + + + + +
+ + + + + , ${content.limitUploadNumber} + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + +
+ + + +
+
Index: lams_tool_sbmt/web/monitoring/parts/summary.jsp =================================================================== diff -u -r62aaf160878735888d077bf28fac3c1989bb8fbd -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 --- lams_tool_sbmt/web/monitoring/parts/summary.jsp (.../summary.jsp) (revision 62aaf160878735888d077bf28fac3c1989bb8fbd) +++ lams_tool_sbmt/web/monitoring/parts/summary.jsp (.../summary.jsp) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) @@ -1,13 +1,7 @@ <%@include file="/common/taglibs.jsp"%> + + - - - - - - - -