Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java =================================================================== diff -u -r0b1d534ce1915b907afff0171909f90226b31921 -r62268e7ff195cf0f4cd2f3cdbb79b603ade5449d --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 0b1d534ce1915b907afff0171909f90226b31921) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 62268e7ff195cf0f4cd2f3cdbb79b603ade5449d) @@ -60,6 +60,7 @@ import org.lamsfoundation.lams.qb.dto.QbStatsActivityDTO; import org.lamsfoundation.lams.qb.model.QbQuestion; import org.lamsfoundation.lams.qb.service.IQbService; +import org.lamsfoundation.lams.rating.RatingUtil; import org.lamsfoundation.lams.rating.dto.RatingCommentDTO; import org.lamsfoundation.lams.rating.model.Rating; import org.lamsfoundation.lams.rating.model.RatingCriteria; @@ -629,19 +630,9 @@ double ratingSum = ratings.stream().mapToDouble(Rating::getRating).sum(); String averageRating = NumberUtil.formatLocalisedNumberForceDecimalPlaces( ratingSum / numberOfVotes, null, 2); - - starString = "
"; - starString += - "
"; - starString += "
"; - starString += - "
"; - String msg = service.getMessage("label.average.rating", - new Object[] { averageRating, numberOfVotes }); - starString += msg; - starString += "
"; + + String averageRatingLabel = service.getMessage("label.average.rating", new Object[] { averageRating, numberOfVotes }); + starString = RatingUtil.constructRatingTagDisabled(averageRating, averageRatingLabel); } } userData.add(starString); Index: lams_tool_assessment/web/pages/learning/results/allquestions.jsp =================================================================== diff -u -rf768c5e3cbd32379fe4c54d5e74faec64b8dc1cd -r62268e7ff195cf0f4cd2f3cdbb79b603ade5449d --- lams_tool_assessment/web/pages/learning/results/allquestions.jsp (.../allquestions.jsp) (revision f768c5e3cbd32379fe4c54d5e74faec64b8dc1cd) +++ lams_tool_assessment/web/pages/learning/results/allquestions.jsp (.../allquestions.jsp) (revision 62268e7ff195cf0f4cd2f3cdbb79b603ade5449d) @@ -1,6 +1,7 @@ <%@ include file="/common/taglibs.jsp"%> + @@ -24,7 +25,7 @@ - + - - - - + + + @@ -123,57 +118,87 @@ {name:'userName',index:'userName', width:83, searchoptions: { clearSearch: false }, formatter : function(cellvalue, options, rowObject) { return definePortraitPopover(rowObject[rowObject.length - 1], rowObject[rowObject.length - 2], rowObject[2]); }}, - {name:'response', index:'response', width:400, sortable:false, search:false, formatter: responseFormatter}, - - {name:'confidence', index:'confidence', width: 80, search:false, classes: 'vertical-align', formatter: gradientNumberFormatter}, - - - {name:'rating', index:'rating', width:120, align:"center", sortable:false, search:false}, - - {name:'grade', index:'grade', width:50, sorttype:"float", search:false, editable:true, - editoptions: {size:4, maxlength: 4}, align:"right", classes: 'vertical-align', title : false}, - {name:'marker', index:'marker', width: 110, search:false, title: false}, - {name:'markerComment', index:'markerComment', width:300, editable:true, edittype: 'textarea', - sortable: false, editoptions: {maxlength: 3000, rows: 6}, title : false, - formatter:function(cellvalue, options, rowObject, event) { - if (event == "edit") { - cellvalue = cellvalue.replace(/\n/g, '\n
'); - } - return cellvalue; - }, - unformat:function(cellvalue, options, rowObject) { - return rowObject.innerText; - } - }, - {name:'userId', index:'userId', width:0, hidden: true}, - {name:'portraitId', index:'portraitId', width:0, hidden: true} - ], - multiselect: false, - caption: "${sessionDto.sessionName}", - cellurl: '&', - cellEdit: true, - formatCell: function(rowid, name, value, iRow, iCol){ - if (name != "grade") { - return value; - } - if (value == "-") { - value = ""; - } - return value; - }, - beforeEditCell: function (rowid,name,val,iRow,iCol){ - if (name != "grade") { - return; - } - previousCellValue = val; - }, - beforeSaveCell : function(rowid, name, val, iRow, iCol) { - if (name != "grade") { - return val; - } - if (isNaN(val)) { - return null; - } + {name:'response', index:'response', width:400, sortable:false, search:false, formatter: responseFormatter}, + + {name:'confidence', index:'confidence', width: 80, search:false, classes: 'vertical-align', formatter: gradientNumberFormatter}, + + + {name:'rating', index:'rating', width:120, align:"center", sortable:false, search:false}, + + {name:'grade', index:'grade', width:30, sorttype:"float", search:false, editable:true, + editoptions: {size:4, maxlength: 4}, align:"right", classes: 'vertical-align', title : false}, + {name:'marker', index:'marker', width: 80, search:false, title: false}, + {name:'markerComment', index:'markerComment', width:120, search:false, editable:true, sortable: false, + editoptions: {maxlength: 100}, align:"left", classes: 'vertical-align', title : false }, + {name:'userId', index:'userId', width:0, hidden: true}, + {name:'portraitId', index:'portraitId', width:0, hidden: true} + ], + multiselect: false, + caption: "${sessionDto.sessionName}", + cellurl: '&', + cellEdit: true, + formatCell: function(rowid, name, value, iRow, iCol){ + if (name != "grade") { + return value; + } + if (value == "-") { + value = "0"; + } + return value; + }, + beforeEditCell: function (rowid,name,val,iRow,iCol){ + if (name != "grade") { + return; + } + previousCellValue = val; + }, + beforeSaveCell : function(rowid, name, val, iRow, iCol) { + if (name != "grade") { + return val; + } + if (isNaN(val)) { + return null; + } + + var maxMark = jQuery("#session${sessionDto.sessionId}").getCell(rowid, 'maxMark'); + + if (+val > +maxMark) { + return maxMark; + } + }, + afterSaveCell : function (rowid,name,val,iRow,iCol){ + if (name != "grade") { + return; + } + var questionResultUid = jQuery("#session${sessionDto.sessionId}").getCell(rowid, 'questionResultUid'); + if (isNaN(val) || (questionResultUid=="")) { + jQuery("#session${sessionDto.sessionId}").restoreCell(iRow,iCol); + } else { + isEdited = true; + } + }, + beforeSubmitCell : function (rowid,name,val,iRow,iCol){ + if (name == "grade" && isNaN(val)) { + return {nan:true}; + } else { + var questionResultUid = jQuery("#session${sessionDto.sessionId}").getCell(rowid, 'questionResultUid'); + return { + questionResultUid:questionResultUid, + column:name + }; + } + }, + afterSubmitCell : function (serverresponse, rowid, name, value, iRow, iCol) { + if (serverresponse.statusText == "OK") { + if (serverresponse.responseText != "") { + $(this).setCell(rowid, 'marker', serverresponse.responseText, {}, {}); + } + return [true, ""]; + } + }, + loadComplete: function () { + initializeStarability(); + initializePortraitPopover(''); var maxMark = jQuery("#session${sessionDto.sessionId}").getCell(rowid, 'maxMark');