Index: lams_tool_assessment/.gitignore =================================================================== diff -u -re055e9ceb6b787c1f14e0db6e6735d08d14769c5 -rea355e79020de11b00f2acf713ed79ec603d7679 --- lams_tool_assessment/.gitignore (.../.gitignore) (revision e055e9ceb6b787c1f14e0db6e6735d08d14769c5) +++ lams_tool_assessment/.gitignore (.../.gitignore) (revision ea355e79020de11b00f2acf713ed79ec603d7679) @@ -1,5 +1,5 @@ /bin/ /build/ /.sass-cache/ -/web/includes/css/*.css +/web/includes/css/assessment.css .DS_Store \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java =================================================================== diff -u -rbb6788de1fe910e6ab6fb14bb54b5e21551392de -rea355e79020de11b00f2acf713ed79ec603d7679 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision bb6788de1fe910e6ab6fb14bb54b5e21551392de) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision ea355e79020de11b00f2acf713ed79ec603d7679) @@ -329,9 +329,8 @@ @RequestMapping(path = "/allocateUserAnswer", method = RequestMethod.POST) @ResponseBody - public String allocateUserAnswer(HttpServletRequest request, HttpServletResponse response, - @RequestParam Long questionUid, @RequestParam Long targetOptionUid, @RequestParam Long previousOptionUid, - @RequestParam String answer) { + public String allocateUserAnswer(HttpServletResponse response, @RequestParam Long questionUid, + @RequestParam Long targetOptionUid, @RequestParam Long previousOptionUid, @RequestParam String answer) { Long optionUid = null; boolean answerFoundInResults = false; Fisheye: Tag ea355e79020de11b00f2acf713ed79ec603d7679 refers to a dead (removed) revision in file `lams_tool_assessment/web/includes/css/addQuestion.css'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_assessment/web/includes/css/vsaAllocate.css =================================================================== diff -u --- lams_tool_assessment/web/includes/css/vsaAllocate.css (revision 0) +++ lams_tool_assessment/web/includes/css/vsaAllocate.css (revision ea355e79020de11b00f2acf713ed79ec603d7679) @@ -0,0 +1,46 @@ +.sortable-on { + border: 3px solid #286090; + border-radius: 10px; + height: 200px; + padding: 10px; + overflow-y: auto; +} + +.sortable-on .portrait-generic-sm { + margin-right: 5px; +} + +.sortable-on .portrait-anonymous { + color: #ddd; +} + +.tbl-correct-list { + border: 3px solid #3c763d; + background-color: #3c763d10; +} + +.tbl-incorrect-list { + border: 3px solid #a94442; + background-color: #a9444210; +} + +.answer-queue { + border: 2px solid #ddd; +} + +.answer-alternatives { + text-align: left; + margin-top: 5px; +} + +.answer-alternatives button { + margin: 2px; +} + +.filtered { + background-color: lightgrey; +} + +.list-group-item { + cursor: pointer; +} \ No newline at end of file Index: lams_tool_assessment/web/includes/javascript/vsaAllocate.js =================================================================== diff -u --- lams_tool_assessment/web/includes/javascript/vsaAllocate.js (revision 0) +++ lams_tool_assessment/web/includes/javascript/vsaAllocate.js (revision ea355e79020de11b00f2acf713ed79ec603d7679) @@ -0,0 +1,78 @@ +$(document).ready(function(){ + //init options sorting feature + $('.sortable-on').each(function() { + let questionUid = $(this).data('question-uid'); + updateAnswerQueueSize(questionUid); + + new Sortable(this, { + group: 'question' + questionUid, + animation: 150, + filter: '.filtered', // 'filtered' class is not draggable + onEnd: function (evt) { + let data = { + questionUid: questionUid, + targetOptionUid: $(evt.to).data("option-uid"), + previousOptionUid: $(evt.from).data("option-uid"), + answer: $('.answer-text', evt.item).text() + }; + data[csrfTokenName] = csrfTokenValue; + + $.ajax({ + url: WEB_APP_URL + 'monitoring/allocateUserAnswer.do', + data: data, + method: 'post', + dataType: "json", + success: function (data) { + updateAnswerQueueSize(questionUid); + + if (data.isAnswerDuplicated) { + alert(VS_ANSWER_ALLOCATED_ALERT); + $(evt.item).appendTo("#answer-group" + data.optionUid); + $(evt.item).addClass("filtered"); + } + } + }); + } + }); + }); + + $('.answer-alternatives button').click(function(){ + var button = $(this), + answer = button.text(), + container = button.closest('.answer-alternatives'), + questionUid = container.data('question-uid'), + optionUid = container.data('option-uid'), + data = { + questionUid: questionUid, + targetOptionUid: -1, + previousOptionUid: optionUid, + answer: answer + }; + + data[csrfTokenName] = csrfTokenValue; + + $.ajax({ + url: WEB_APP_URL + 'monitoring/allocateUserAnswer.do', + data: data, + method: 'post', + dataType: "json", + success: function (data) { + if (data.answerFoundInResults) { + $('
') + .append($('')) + .append($('').text(answer)) + .appendTo('#answer-queue' + questionUid); + + updateAnswerQueueSize(questionUid); + } + + button.remove(); + } + }); + }); +}); + +function updateAnswerQueueSize(questionUid) { + var answerQueueLength = $('#answer-queue' + questionUid + ' .list-group-item').length; + $('#answer-queue-size' + questionUid).text(answerQueueLength ? ' (' + answerQueueLength + ')' : ''); +} \ No newline at end of file Index: lams_tool_assessment/web/pages/monitoring/monitoring.jsp =================================================================== diff -u -rff9b1c659da59060b4690a29bfdd493e8741b224 -rea355e79020de11b00f2acf713ed79ec603d7679 --- lams_tool_assessment/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision ff9b1c659da59060b4690a29bfdd493e8741b224) +++ lams_tool_assessment/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision ea355e79020de11b00f2acf713ed79ec603d7679) @@ -7,6 +7,8 @@