Index: lams_central/web/gradebook/gradeBookMonitor.jsp
===================================================================
diff -u -r7895606feec6effedc08860e4e1bb7f5157109c5 -rf4328ca969294c06bf12815f299236c17398c99c
--- lams_central/web/gradebook/gradeBookMonitor.jsp (.../gradeBookMonitor.jsp) (revision 7895606feec6effedc08860e4e1bb7f5157109c5)
+++ lams_central/web/gradebook/gradeBookMonitor.jsp (.../gradeBookMonitor.jsp) (revision f4328ca969294c06bf12815f299236c17398c99c)
@@ -22,44 +22,43 @@
jQuery(document).ready(function(){
- jQuery("#users").jqGrid({
+ jQuery("#userView").jqGrid({
+ caption: "Learner View",
datatype: "xml",
- url: "/gradebook/gradebookMonitoring.do?dispatch=getLessonGradeBookData&lessonID=${lessonDetails.lessonID}",
+ url: "/gradebook/gradebookMonitoring.do?dispatch=getUserViewLessonGradeBookData&lessonID=${lessonDetails.lessonID}",
height: "100%",
width: 707,
cellEdit: true,
sortorder: "asc",
- sortname: "lastName",
- pager: 'pager',
+ sortname: "fullName",
+ pager: 'userViewPager',
rowList:[5,10,20,30],
rowNum:10,
cellurl: "/gradebook/gradebookMonitoring.do?dispatch=updateUserLessonGradeBookData&lessonID=${lessonDetails.lessonID}&login=test1",
- colNames:["", 'Last Name','First Name', 'Progress', 'Lesson FeedBack', 'Total Mark'],
+ colNames:["", 'Name', 'Progress', 'Lesson FeedBack', 'Total Mark'],
colModel:[
{name:'login', index:'login', sortable:false, editable:false, hidden:true},
- {name:'lastName',index:'lastName', sortable:true, editable:false},
- {name:'firstName',index:'firstName', sortable:true, editable:false},
+ {name:'fullName',index:'fullName', sortable:true, editable:false},
{name:'status',index:'status', sortable:false, editable:false},
{name:'feedback',index:'feedback', sortable:false, editable:true, edittype:'textarea', editoptions:{rows:'4',cols:'20'} },
- {name:'totalMark',index:'totalMark', sortable:true, editable:true, editrules:{number:true}}
+ {name:'mark',index:'mark', sortable:true, editable:true, editrules:{number:true}}
],
- imgpath: 'themes/basic/images',
- caption: "Learners",
+ imgpath: 'includes/javascript/jqgrid/themes/basic/images',
subGrid: true,
subGridRowExpanded: function(subgrid_id, row_id) {
var subgrid_table_id;
- var userName = jQuery("#users").getRowData(row_id)["login"];
+ var userName = jQuery("#userView").getRowData(row_id)["login"];
subgrid_table_id = subgrid_id+"_t";
jQuery("#"+subgrid_id).html("
");
jQuery("#"+subgrid_table_id).jqGrid({
datatype: "xml",
- url: "/gradebook/gradebook.do?dispatch=getLessonGradeBookDataForUser&lessonID=${lessonDetails.lessonID}&login=" + userName,
+ url: "/gradebook/gradebook.do?dispatch=getUserGradeBookActivitiesForUserView&lessonID=${lessonDetails.lessonID}&login=" + userName,
height: "100%",
width: 650,
cellEdit:true,
- cellurl: "/gradebook/gradebookMonitoring.do?dispatch=updateUserActivityGradeBookData&lessonID=${lessonDetails.lessonID}&login=" + userName,
+ cellurl: "/gradebook/gradebookMonitoring.do?dispatch=updateUserActivityGradeBookData&lessonID=${lessonDetails.lessonID}&method=userView&login=" + userName,
ExpandColumn: "Outputs",
- colNames: ['Id','Activity','Status','Outputs', 'Competences', 'Activity FeedBack', 'Mark'],
+ colNames: ['Id','Activity','Progress','Outputs', 'Competences', 'Activity FeedBack', 'Mark'],
colModel: [
{name:'activityId', width:10, index:'activityId', sortable:false, hidden:true},
{name:'activityTitle', width:60, index:'activityTitle', sortable:false, editable: false},
@@ -69,27 +68,104 @@
{name:'feedback', width:250, index:'feedback', sortable:false, editable: true, edittype:'textarea', editoptions:{rows:'4',cols:'20'}},
{name:'mark', width:100, index:'mark', sortable:false, editable: true, editrules:{number:true} }
],
- editurl: "server.php",
afterSaveCell: function(rowid, cellname,value, iRow, iCol) {
- var ids = jQuery("#"+subgrid_table_id).getDataIDs()
- var totalMark = 0.0;
- for (var i=0; i < ids.length; i++) {
- var rowData = jQuery("#"+subgrid_table_id).getRowData(ids[i]);
- var activityMark = rowData["mark"];
-
- if (activityMark != "-") {
- totalMark += parseFloat(activityMark);
- }
+
+ // Update the total lesson mark for the user
+ if (cellname == "mark") {
+ var ids = jQuery("#"+subgrid_table_id).getDataIDs()
+ var totalMark = 0.0;
+ for (var i=0; i < ids.length; i++) {
+ var rowData = jQuery("#"+subgrid_table_id).getRowData(ids[i]);
+ var userMark = rowData["mark"];
+
+ if (userMark != "-") {
+ totalMark += parseFloat(userMark);
+ }
+ }
+ jQuery("#userView").setCell(row_id, "mark", totalMark, "", "");
}
- jQuery("#users").setCell(row_id, "totalMark", totalMark, "", "");
},
- imgpath: 'themes/basic/images'
+ imgpath: 'includes/javascript/jqgrid/themes/basic/images'
})
}
+ });
+
+ jQuery("#activityView").jqGrid({
+ caption: "Activity View",
+ datatype: "xml",
+ url: "/gradebook/gradebookMonitoring.do?dispatch=getActivityViewLessonGradeBookData&lessonID=${lessonDetails.lessonID}",
+ height: "100%",
+ width: 707,
+ cellEdit: true,
+ sortorder: "asc",
+ sortname: "activityId",
+ colNames:["", 'Activity Name', 'Competences', 'Average Mark'],
+ colModel:[
+ {name:'activityId', width:10, index:'activityId', sortable:false, hidden:true},
+ {name:'activityTitle', width:60, index:'activityTitle', sortable:false, editable: false},
+ {name:'competences', width:250, index:'competences', sortable:false, editable: false},
+ {name:'average',index:'average', sortable:false, editable:false}
+ ],
+ imgpath: 'includes/javascript/jqgrid/themes/basic/images',
+ subGrid: true,
+ subGridRowExpanded: function(subgrid_id, row_id) {
+ var subgrid_table_id;
+ var activityID = jQuery("#activityView").getRowData(row_id)["activityId"];
+ subgrid_table_id = subgrid_id+"_t";
+ jQuery("#"+subgrid_id).html("");
+ jQuery("#"+subgrid_table_id).jqGrid({
+ datatype: "xml",
+ url: "/gradebook/gradebookMonitoring.do?dispatch=getUserGradeBookActivitiesForActivityView&lessonID=${lessonDetails.lessonID}&activityID=" + activityID,
+ height: "100%",
+ width: 650,
+ cellEdit:true,
+ cellurl: "/gradebook/gradebookMonitoring.do?dispatch=updateUserActivityGradeBookData&lessonID=${lessonDetails.lessonID}&method=activityView&activityID=" + activityID,
+ ExpandColumn: "Outputs",
+ colNames: ['','Full Name','Status','Outputs', 'Activity Feedback', 'Mark'],
+ colModel:[
+ {name:'login', index:'login', sortable:false, editable:false, hidden:true},
+ {name:'fullName',index:'fullName', sortable:true, editable:false},
+ {name:'status',index:'status', sortable:false, editable:false},
+ {name:'output', index:'output', sortable:false, editable: false},
+ {name:'feedback',index:'feedback', sortable:false, editable:true, edittype:'textarea', editoptions:{rows:'4',cols:'20'} },
+ {name:'mark',index:'mark', sortable:true, editable:true, editrules:{number:true}}
+ ],
+ afterSaveCell: function(rowid, cellname,value, iRow, iCol) {
+
+ // update the activity average mark
+ if (cellname == "mark") {
+ var ids = jQuery("#"+subgrid_table_id).getDataIDs()
+ var sumMarks = 0.0;
+ var count = 0;
+ for (var i = 0; i < ids.length; i++) {
+ var rowData = jQuery("#"+subgrid_table_id).getRowData(ids[i]);
+ var activityMark = rowData["mark"];
+
+ if (activityMark != "-") {
+ sumMarks += parseFloat(activityMark);
+ count ++;
+ }
+ }
+ var average;
+ if (count>0) {
+ average = sumMarks / count;
+ } else {
+ average = value;
+ }
+
+ jQuery("#activityView").setCell(row_id, "average", average, "", "");
+ }
+ },
+ imgpath: 'includes/javascript/jqgrid/themes/basic/images'
+ })
+ }
})
+
+
+
+
});
-
function launchPopup(url,title) {
var wd = null;
if(wd && wd.open && !wd.closed){
@@ -111,8 +187,16 @@