Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/LdapConfigController.java =================================================================== diff -u -r9d51ed040508d8d5a10ee4033aded0c3784490a8 -r472fb979e3afdb43a7d537e588c5204554ba9f38 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/LdapConfigController.java (.../LdapConfigController.java) (revision 9d51ed040508d8d5a10ee4033aded0c3784490a8) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/LdapConfigController.java (.../LdapConfigController.java) (revision 472fb979e3afdb43a7d537e588c5204554ba9f38) @@ -120,7 +120,7 @@ return "ldap"; } - @RequestMapping(path = "/sync", method = RequestMethod.POST) + @RequestMapping(path = "/sync") public String sync(HttpServletRequest request) throws Exception { String sessionId = SessionManager.getSession().getId(); @@ -132,7 +132,7 @@ return "ldap"; } - @RequestMapping(path = "/waiting", method = RequestMethod.POST) + @RequestMapping(path = "/waiting") public String waiting(HttpServletRequest request) throws Exception { request.setAttribute("wait", getMessageService().getMessage("msg.ldap.synchronise.wait")); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/LtiConsumerManagementController.java =================================================================== diff -u -r9d51ed040508d8d5a10ee4033aded0c3784490a8 -r472fb979e3afdb43a7d537e588c5204554ba9f38 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/LtiConsumerManagementController.java (.../LtiConsumerManagementController.java) (revision 9d51ed040508d8d5a10ee4033aded0c3784490a8) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/LtiConsumerManagementController.java (.../LtiConsumerManagementController.java) (revision 472fb979e3afdb43a7d537e588c5204554ba9f38) @@ -18,7 +18,8 @@ import org.lamsfoundation.lams.util.WebUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.validation.Errors; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -125,39 +126,42 @@ * Stores in the DB a new or edited LTI tool consumer */ @RequestMapping(path = "/save", method = RequestMethod.POST) - public String save(@ModelAttribute LtiConsumerForm ltiConsumerForm, Errors errors, HttpServletRequest request, + public String save(@ModelAttribute LtiConsumerForm ltiConsumerForm, HttpServletRequest request, HttpServletResponse response) throws Exception { initServices(); + MultiValueMap errorMap = new LinkedMultiValueMap<>(); + String[] requiredFields = { "serverid", "serverkey", "servername", "prefix" }; for (String requiredField : requiredFields) { - if (StringUtils.trimToNull(requiredField) == null) { - errors.reject("error.required", messageService.getMessage("sysadmin." + requiredField)); + if (StringUtils.trimToNull(ltiConsumerForm.getRequiredField()) == null) { + errorMap.add(requiredField, messageService.getMessage("error.required")); } } Integer sid = ltiConsumerForm.getSid(); //check duplication - if (!errors.hasErrors()) { + if (errorMap.isEmpty()) { String[] uniqueFields = { "serverid", "prefix" }; for (String uniqueField : uniqueFields) { - List list = userManagementService.findByProperty(ExtServer.class, "uniqueField", - uniqueField); + List list = userManagementService.findByProperty(ExtServer.class, uniqueField, ltiConsumerForm.getUniqueField()); if (list != null && list.size() > 0) { if (sid.equals(0)) {//new map - errors.reject("error.not.unique", messageService.getMessage("sysadmin." + uniqueField)); + errorMap.add(uniqueField, + messageService.getMessage("error.not.unique")); } else { ExtServer ltiConsumer = list.get(0); if (!ltiConsumer.getSid().equals(sid)) { - errors.reject("error.not.unique", messageService.getMessage("sysadmin." + uniqueField)); + errorMap.add(uniqueField, + messageService.getMessage("error.not.unique")); } } } } } - if (!errors.hasErrors()) { + if (errorMap.isEmpty()) { ExtServer ltiConsumer = null; if (sid.equals(0)) { ltiConsumer = new ExtServer(); @@ -173,6 +177,7 @@ return unspecified(request); } else { + request.setAttribute("errorMap", errorMap); return "lti/ltiConsumer"; } } Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ServerSaveController.java =================================================================== diff -u -r79b6147f263fbc3c92e2db7d98227fa8f7358851 -r472fb979e3afdb43a7d537e588c5204554ba9f38 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ServerSaveController.java (.../ServerSaveController.java) (revision 79b6147f263fbc3c92e2db7d98227fa8f7358851) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ServerSaveController.java (.../ServerSaveController.java) (revision 472fb979e3afdb43a7d537e588c5204554ba9f38) @@ -73,8 +73,9 @@ String[] requiredFields = { "serverid", "serverkey", "servername", "prefix", "userinfoUrl" }; for (String requiredField : requiredFields) { + request.setAttribute("requiredField", requiredField); if (StringUtils.trimToNull(extServerForm.getRequiredField()) == null) { - errorMap.add(requiredField, messageService.getMessage("error.required", messageService.getMessage("sysadmin." + requiredField))); + errorMap.add(requiredField, messageService.getMessage("error.required")); } } @@ -84,12 +85,13 @@ for (String uniqueField : uniqueFields) { List list = userService.findByProperty(ExtServer.class, uniqueField, extServerForm.getUniqueField()); if (list != null && list.size() > 0) { + request.setAttribute("uniqueField", uniqueField); if (sid.equals(-1)) {//new map - errorMap.add(uniqueField, messageService.getMessage("error.not.unique", messageService.getMessage("sysadmin." + uniqueField))); + errorMap.add(uniqueField, messageService.getMessage("error.not.unique")); } else { ExtServer map = (ExtServer) list.get(0); if (!map.getSid().equals(sid)) { - errorMap.add(uniqueField, messageService.getMessage("error.not.unique", messageService.getMessage("sysadmin." + uniqueField))); + errorMap.add(uniqueField, messageService.getMessage("error.not.unique")); } } Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ThemeManagementController.java =================================================================== diff -u -re2c0c928c2cf3c0527ec942ad9af0ec67a3aa8d7 -r472fb979e3afdb43a7d537e588c5204554ba9f38 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ThemeManagementController.java (.../ThemeManagementController.java) (revision e2c0c928c2cf3c0527ec942ad9af0ec67a3aa8d7) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ThemeManagementController.java (.../ThemeManagementController.java) (revision 472fb979e3afdb43a7d537e588c5204554ba9f38) @@ -88,7 +88,7 @@ return "themeManagement"; } - @RequestMapping(path = "/addOrEditTheme", method = RequestMethod.POST) + @RequestMapping(path = "/addOrEditTheme") public String addOrEditTheme(@ModelAttribute ThemeForm themeForm, HttpServletRequest request, HttpServletResponse response) throws Exception { @@ -118,7 +118,7 @@ return unspecified(themeForm, request); } - @RequestMapping(path = "/removeTheme", method = RequestMethod.POST) + @RequestMapping(path = "/removeTheme") public String removeTheme(@ModelAttribute ThemeForm themeForm, HttpServletRequest request, HttpServletResponse response) throws Exception { @@ -137,7 +137,7 @@ return unspecified(themeForm, request); } - @RequestMapping(path = "/setAsDefault", method = RequestMethod.POST) + @RequestMapping(path = "/setAsDefault") public String setAsDefault(@ModelAttribute ThemeForm themeForm, HttpServletRequest request) throws Exception { if (themeForm.getName() != null) { Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ToolContentListController.java =================================================================== diff -u -r198db26e45c4083d69e39fcd40ffed3f7918fc58 -r472fb979e3afdb43a7d537e588c5204554ba9f38 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ToolContentListController.java (.../ToolContentListController.java) (revision 198db26e45c4083d69e39fcd40ffed3f7918fc58) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ToolContentListController.java (.../ToolContentListController.java) (revision 472fb979e3afdb43a7d537e588c5204554ba9f38) @@ -54,6 +54,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; @@ -200,18 +201,20 @@ return true; } - @RequestMapping("/disableLibrary") - public void disableLibrary(HttpServletRequest request) { + @RequestMapping("/disable") + public String disableLibrary(HttpServletRequest request) { Long learningLibraryId = WebUtil.readLongParam(request, "libraryID", false); ILearningDesignService ldService = getLearningDesignService(); ldService.setValid(learningLibraryId, false); + return "forward:/toolcontentlist/start.do"; } - @RequestMapping("/enableLibrary") - public void enableLibrary(HttpServletRequest request) { + @RequestMapping("/enable") + public String enableLibrary(HttpServletRequest request) { Long learningLibraryId = WebUtil.readLongParam(request, "libraryID", false); ILearningDesignService ldService = getLearningDesignService(); ldService.setValid(learningLibraryId, true); + return "forward:/toolcontentlist/start.do"; } /** @@ -248,11 +251,11 @@ } request.setAttribute("groups", groupsJSON.toString()); - return "forward:/toolcontent/learningLibraryGroup"; + return "toolcontent/learningLibraryGroup"; } - @RequestMapping("/saveLearningLibraryGroups") - private void saveLearningLibraryGroups(HttpServletRequest request) throws IOException { + @RequestMapping(path = "/saveLearningLibraryGroups", method = RequestMethod.POST) + private String saveLearningLibraryGroups(HttpServletRequest request) throws IOException { // extract groups from JSON and persist them ArrayNode groupsJSON = JsonUtil.readArray(request.getParameter("groups")); @@ -277,6 +280,8 @@ } getLearningDesignService().saveLearningLibraryGroups(groups); + + return "forward:/toolcontentlist/start.do"; } private ILearningDesignService getLearningDesignService() { Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/LtiConsumerForm.java =================================================================== diff -u -r9d51ed040508d8d5a10ee4033aded0c3784490a8 -r472fb979e3afdb43a7d537e588c5204554ba9f38 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/LtiConsumerForm.java (.../LtiConsumerForm.java) (revision 9d51ed040508d8d5a10ee4033aded0c3784490a8) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/LtiConsumerForm.java (.../LtiConsumerForm.java) (revision 472fb979e3afdb43a7d537e588c5204554ba9f38) @@ -43,11 +43,11 @@ private boolean timeToLiveLoginRequestEnabled = false; private String ltiToolConsumerMonitorRoles; - - private String[] requiredFields; - private String[] uniqueFields; + private String requiredField; + private String uniqueField; + public Integer getSid() { return sid; } @@ -128,19 +128,20 @@ this.ltiToolConsumerMonitorRoles = ltiToolConsumerMonitorRoles; } - public String[] getRequiredFields() { - return requiredFields; + public String getRequiredField() { + return requiredField; } - public void setRequiredFields(String[] requiredFields) { - this.requiredFields = requiredFields; + public void setRequiredField(String requiredField) { + this.requiredField = requiredField; } - public String[] getUniqueFields() { - return uniqueFields; + public String getUniqueField() { + return uniqueField; } - public void setUniqueFields(String[] uniqueFields) { - this.uniqueFields = uniqueFields; + public void setUniqueField(String uniqueField) { + this.uniqueField = uniqueField; } + } Index: lams_admin/web/import/importGroups.jsp =================================================================== diff -u -r79b6147f263fbc3c92e2db7d98227fa8f7358851 -r472fb979e3afdb43a7d537e588c5204554ba9f38 --- lams_admin/web/import/importGroups.jsp (.../importGroups.jsp) (revision 79b6147f263fbc3c92e2db7d98227fa8f7358851) +++ lams_admin/web/import/importGroups.jsp (.../importGroups.jsp) (revision 472fb979e3afdb43a7d537e588c5204554ba9f38) @@ -71,24 +71,24 @@ - + - + - - - - + + + + - - - + + + - -
+ +
Index: lams_admin/web/import/importexcel.jsp =================================================================== diff -u -r79b6147f263fbc3c92e2db7d98227fa8f7358851 -r472fb979e3afdb43a7d537e588c5204554ba9f38 --- lams_admin/web/import/importexcel.jsp (.../importexcel.jsp) (revision 79b6147f263fbc3c92e2db7d98227fa8f7358851) +++ lams_admin/web/import/importexcel.jsp (.../importexcel.jsp) (revision 472fb979e3afdb43a7d537e588c5204554ba9f38) @@ -22,13 +22,13 @@ ${title} - + - - + + - - + + @@ -18,12 +26,6 @@ @@ -43,7 +45,7 @@
- +
@@ -58,17 +60,17 @@   * - + - - true - false   - + - + @@ -80,7 +82,7 @@
" /> - " onclick="bCancel=true;" class="btn btn-default loffset5"> + " />
@@ -105,7 +107,7 @@

@@ -139,7 +141,7 @@ - " onclick='startSync();'/> + " onclick='startSync();'/>
Index: lams_admin/web/lti/ltiConsumer.jsp =================================================================== diff -u -r79b6147f263fbc3c92e2db7d98227fa8f7358851 -r472fb979e3afdb43a7d537e588c5204554ba9f38 --- lams_admin/web/lti/ltiConsumer.jsp (.../ltiConsumer.jsp) (revision 79b6147f263fbc3c92e2db7d98227fa8f7358851) +++ lams_admin/web/lti/ltiConsumer.jsp (.../ltiConsumer.jsp) (revision 472fb979e3afdb43a7d537e588c5204554ba9f38) @@ -57,7 +57,23 @@

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

Index: lams_admin/web/servermaintain.jsp =================================================================== diff -u -r79b6147f263fbc3c92e2db7d98227fa8f7358851 -r472fb979e3afdb43a7d537e588c5204554ba9f38 --- lams_admin/web/servermaintain.jsp (.../servermaintain.jsp) (revision 79b6147f263fbc3c92e2db7d98227fa8f7358851) +++ lams_admin/web/servermaintain.jsp (.../servermaintain.jsp) (revision 472fb979e3afdb43a7d537e588c5204554ba9f38) @@ -58,29 +58,26 @@ - +

- - + -
+
- - + -
+
- Index: lams_admin/web/themeManagement.jsp =================================================================== diff -u -r79b6147f263fbc3c92e2db7d98227fa8f7358851 -r472fb979e3afdb43a7d537e588c5204554ba9f38 --- lams_admin/web/themeManagement.jsp (.../themeManagement.jsp) (revision 79b6147f263fbc3c92e2db7d98227fa8f7358851) +++ lams_admin/web/themeManagement.jsp (.../themeManagement.jsp) (revision 472fb979e3afdb43a7d537e588c5204554ba9f38) @@ -69,7 +69,7 @@ } function submitForm(methodName) { - var f = document.getElementById("themeForm") += methodName + ".do"; + var f = document.getElementById('themeForm'); f.submit(); } @@ -156,23 +156,23 @@ * : - + : - + : - + Index: lams_admin/web/toolcontent/learningLibraryGroup.jsp =================================================================== diff -u -r9d51ed040508d8d5a10ee4033aded0c3784490a8 -r472fb979e3afdb43a7d537e588c5204554ba9f38 --- lams_admin/web/toolcontent/learningLibraryGroup.jsp (.../learningLibraryGroup.jsp) (revision 9d51ed040508d8d5a10ee4033aded0c3784490a8) +++ lams_admin/web/toolcontent/learningLibraryGroup.jsp (.../learningLibraryGroup.jsp) (revision 472fb979e3afdb43a7d537e588c5204554ba9f38) @@ -8,11 +8,11 @@ - + - + - -
- -
+ - - - - - -
-
-
-
-
-
-
- - -
-
- - +
+
-
-
+ + + + + + +
+
+
+
+
+
+
+ + +
+
+ + +
+
+
\ No newline at end of file Index: lams_admin/web/toolcontent/toolcontentlist.jsp =================================================================== diff -u -r79b6147f263fbc3c92e2db7d98227fa8f7358851 -r472fb979e3afdb43a7d537e588c5204554ba9f38 --- lams_admin/web/toolcontent/toolcontentlist.jsp (.../toolcontentlist.jsp) (revision 79b6147f263fbc3c92e2db7d98227fa8f7358851) +++ lams_admin/web/toolcontent/toolcontentlist.jsp (.../toolcontentlist.jsp) (revision 472fb979e3afdb43a7d537e588c5204554ba9f38) @@ -9,9 +9,11 @@ - + + +