Index: lams_tool_assessment/web/pages/authoring/parts/questionlist.jsp =================================================================== diff -u -rf7d36ce7691d8f97327c84e2b2a2eeaab203fa1d -r18be7421230bdff4abe7dded93fd27c4feadf869 --- lams_tool_assessment/web/pages/authoring/parts/questionlist.jsp (.../questionlist.jsp) (revision f7d36ce7691d8f97327c84e2b2a2eeaab203fa1d) +++ lams_tool_assessment/web/pages/authoring/parts/questionlist.jsp (.../questionlist.jsp) (revision 18be7421230bdff4abe7dded93fd27c4feadf869) @@ -50,8 +50,10 @@ //update all sequenceIds for (var i = 0; i < sortable.el.rows.length; i++) { var tr = sortable.el.rows[i]; - var input = $("input[name^=sequenceId]", $(tr)); + var input = $("input[name^=sequenceId]", tr); input.val(i); + var displayOrder = $(".reference-display-order", tr); + displayOrder.text(i + 1 + ")"); } //prepare SequenceIds parameter @@ -104,7 +106,7 @@ - + ${status.count}) Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java =================================================================== diff -u -r2e61eefa786c0411376091c504812a8931395186 -r18be7421230bdff4abe7dded93fd27c4feadf869 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java (.../ScratchieConstants.java) (revision 2e61eefa786c0411376091c504812a8931395186) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java (.../ScratchieConstants.java) (revision 18be7421230bdff4abe7dded93fd27c4feadf869) @@ -64,6 +64,8 @@ public static final String PARAM_BURNING_QUESTION_UID = "burningQuestionUid"; + public static final String PARAM_SEQUENCE_ID = "sequenceId"; + // for request attribute name public static final String ATTR_TOOL_CONTENT_ID = "toolContentID"; @@ -187,4 +189,6 @@ public static final String ERROR_MSG_ENTERED_MARKS_NOT_COMMA_SEPARATED_INTEGERS = "error.entered.marks.not.comma.separates"; public static final String ATTR_SHOW_RESULTS = "showResults"; + + public static final String ATTR_REFERENCES_SEQUENCE_IDS = "sequenceIds"; } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/controller/AuthoringController.java =================================================================== diff -u -rc34b16da7fe48d6ed5ad039f0a61f66a12b215a0 -r18be7421230bdff4abe7dded93fd27c4feadf869 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/controller/AuthoringController.java (.../AuthoringController.java) (revision c34b16da7fe48d6ed5ad039f0a61f66a12b215a0) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 18be7421230bdff4abe7dded93fd27c4feadf869) @@ -84,6 +84,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; import com.fasterxml.jackson.databind.node.JsonNodeFactory; import com.fasterxml.jackson.databind.node.ObjectNode; @@ -628,61 +629,27 @@ } /** - * Move up current item. - * - * @param mapping - * @param form - * @param request - * @param response - * @return + * Caches references order, along with this caches MaxMarks. */ - @RequestMapping("/upItem") - private String upItem(HttpServletRequest request) { - return switchItem(request, true); - } - - /** - * Move down current item. - * - * @param mapping - * @param form - * @param request - * @param response - * @return - */ - @RequestMapping("/downItem") - private String downItem(HttpServletRequest request) { - return switchItem(request, false); - } - - private String switchItem(HttpServletRequest request, boolean up) { + @RequestMapping("/cacheItemsOrder") + @ResponseStatus(HttpStatus.OK) + public void cacheItemsOrder(HttpServletRequest request) throws ServletException, IOException { SessionMap sessionMap = getSessionMap(request); SortedSet itemList = getItemList(sessionMap); - int itemIndex = NumberUtils.toInt(request.getParameter(ScratchieConstants.PARAM_ITEM_INDEX), -1); - if (itemIndex != -1) { - List rList = new ArrayList<>(itemList); + //cache references' sequenceIds + Map sequenceIdsParamMap = splitRequestParameter(request, + ScratchieConstants.ATTR_REFERENCES_SEQUENCE_IDS); - // get current and the target item, and switch their sequnece - ScratchieItem item = rList.get(itemIndex); - ScratchieItem repOption; - if (up) { - repOption = rList.get(--itemIndex); - } else { - repOption = rList.get(++itemIndex); - } - - int upSeqId = repOption.getDisplayOrder(); - repOption.setDisplayOrder(item.getDisplayOrder()); - item.setDisplayOrder(upSeqId); - - // put back list, it will be sorted again - itemList.clear(); - itemList.addAll(rList); + Set updatedItemList = new TreeSet<>(new ScratchieItemComparator()); + for (ScratchieItem item : itemList) { + String newSequenceId = sequenceIdsParamMap + .get(ScratchieConstants.PARAM_SEQUENCE_ID + item.getDisplayOrder()); + item.setDisplayOrder(Integer.valueOf(newSequenceId)); + updatedItemList.add(item); } - - request.setAttribute(ScratchieConstants.ATTR_ITEM_LIST, itemList); - return "pages/authoring/parts/itemlist"; + itemList.clear(); + itemList.addAll(updatedItemList); } @RequestMapping("/changeItemQuestionVersion") Index: lams_tool_scratchie/web/pages/authoring/basic.jsp =================================================================== diff -u -rbcb806e82cb1d2f15b11791aeb5e8ff7335e0163 -r18be7421230bdff4abe7dded93fd27c4feadf869 --- lams_tool_scratchie/web/pages/authoring/basic.jsp (.../basic.jsp) (revision bcb806e82cb1d2f15b11791aeb5e8ff7335e0163) +++ lams_tool_scratchie/web/pages/authoring/basic.jsp (.../basic.jsp) (revision 18be7421230bdff4abe7dded93fd27c4feadf869) @@ -42,32 +42,7 @@ ); }; } - function upItem(idx){ - var url = ""; - $(itemTargetDiv).load( - url, - { - itemIndex: idx, - sessionMapID: "${sessionMapID}" - }, - function(){ - refreshThickbox(); - } - ); - } - function downItem(idx){ - var url = ""; - $(itemTargetDiv).load( - url, - { - itemIndex: idx, - sessionMapID: "${sessionMapID}" - }, - function(){ - refreshThickbox(); - } - ); - } + function changeItemQuestionVersion(itemIndex, oldQbQuestionUid, newQbQuestionUid) { if (oldQbQuestionUid == newQbQuestionUid) { Index: lams_tool_scratchie/web/pages/authoring/parts/itemlist.jsp =================================================================== diff -u -rbcb806e82cb1d2f15b11791aeb5e8ff7335e0163 -r18be7421230bdff4abe7dded93fd27c4feadf869 --- lams_tool_scratchie/web/pages/authoring/parts/itemlist.jsp (.../itemlist.jsp) (revision bcb806e82cb1d2f15b11791aeb5e8ff7335e0163) +++ lams_tool_scratchie/web/pages/authoring/parts/itemlist.jsp (.../itemlist.jsp) (revision 18be7421230bdff4abe7dded93fd27c4feadf869) @@ -4,6 +4,7 @@ <%@ page import="org.lamsfoundation.lams.qb.service.IQbService" %> + @@ -51,13 +94,15 @@ - +
-
+ ${status.count}) + +