/code/war/js/coordinator.js
JavaScript | 3383 lines | 2677 code | 442 blank | 264 comment | 394 complexity | 97cc23b24b2611b701268b979b06eea4 MD5 | raw file
Large files files are truncated, but you can click here to view the full file
- // AJAX
- var xmlhttp = new getXMLObject();
- // DATE OBJECT
- var cal = new CalendarPopup();
- // DISPLAY
- var DISPLAY_COURSE_ADDED = "The course has been added. Click the 'Enrol' link in the table below to add students to the course.";
- var DISPLAY_COURSE_ARCHIVED = "The course has been archived.";
- var DISPLAY_COURSE_DELETED = "The course has been deleted."
- var DISPLAY_COURSE_DELETEDALLSTUDENTS = "All students have been removed from the course.";
- var DISPLAY_COURSE_DELETEDSTUDENT = "The student has been removed from the course.";
- var DISPLAY_COURSE_EXISTS = "<font color=\"#F00\">The course already exists.</font>";
- var DISPLAY_COURSE_INVALIDID = "<font color=\"#F00\">Please use only alphabets, numbers, dots and hyphens in COURSE ID.</font>";
- var DISPLAY_COURSE_NOTEAMS = "<font color=\"#F00\">The course does not have any teams.</font>";
- var DISPLAY_COURSE_SENTREGISTRATIONKEY = "Registration key has been sent to ";
- var DISPLAY_COURSE_SENTREGISTRATIONKEYS = "Registration keys are sent to the students.";
- var DISPLAY_COURSE_INVALIDNAME = "<font color=\"#F00\">Course name should not exceed 30 characters.</font>";
- var DISPLAY_COURSE_UNARCHIVED = "The course has been unarchived.";
- var DISPLAY_EDITSTUDENT_FIELDSEMPTY = "<font color=\"#F00\">Please fill in all fields marked with an *.</font>";
- var DISPLAY_ENROLLMENT_FIELDSEXTRA = "<font color=\"#F00\">There are too many fields.</font>";
- var DISPLAY_ENROLLMENT_FIELDSMISSING = "<font color=\"#F00\">There are missing fields.</font>";
- var DISPLAY_EVALUATION_ADDED = "The evaluation has been added.";
- var DISPLAY_EVALUATION_ARCHIVED = "The evaluation has been archived.";
- var DISPLAY_EVALUATION_DELETED = "The evaluation has been deleted.";
- var DISPLAY_EVALUATION_EDITED = "The evaluation has been edited.";
- var DISPLAY_EVALUATION_EXISTS = "<font color=\"#F00\">The evaluation exists already.</font>";
- var DISPLAY_EVALUATION_INFORMEDSTUDENTSOFCHANGES = "E-mails have been sent out to inform the students of the changes to the evaluation.";
- var DISPLAY_EVALUATION_NAMEINVALID = "<font color=\"#F00\">Please use only alphabets, numbers and whitespace in EVALUATION NAME.</font>";
- var DISPLAY_EVALUATION_PUBLISHED = "The evaluation has been published.";
- var DISPLAY_EVALUATION_UNPUBLISHED = "The evaluation has been unpublished.";
- var DISPLAY_EVALUATION_REMINDERSSENT = "Reminder e-mails have been sent out to those students.";
- var DISPLAY_EVALUATION_RESULTSEDITED = "The particular evaluation results have been edited.";
- var DISPLAY_EVALUATION_SCHEDULEINVALID = "<font color=\"#F00\">The evaluation schedule (start/deadline) is not valid.</font>";
- var DISPLAY_EVALUATION_UNARCHIVED = "The evaluation has been unarchived.";
- var DISPLAY_FIELDS_EMPTY = "<font color=\"#F00\">Please fill in all the relevant fields.</font>";
- var DISPLAY_LOADING = "<img src=images/ajax-loader.gif /><br />";
- var DISPLAY_SERVERERROR = "Connection to the server has timed out. Please refresh the page.";
- var DISPLAY_STUDENT_DELETED = "The student has been removed.";
- var DISPLAY_STUDENT_EDITED = "The student's details have been edited.";
- var DISPLAY_STUDENT_EDITEDEXCEPTTEAM = "The student's details have been edited, except for his team<br /> as there is an ongoing evaluation."
- var DISPLAY_STUDENT_EMAILINVALID = "<font color=\"#F00\">E-mail address should contain less than 40 characters and be of a valid syntax.</font>";
- var DISPLAY_STUDENT_NAMEINVALID = "<font color=\"#F00\">Name should only consist of alphabets and numbers and not<br />be more than 40 characters.</font>";
- var DISPLAY_STUDENT_TEAMNAMEINVALID = "<font color=\"#F00\">Team name should contain less than 25 characters.</font>";
- // DIV
- var DIV_COURSE_INFORMATION = "coordinatorCourseInformation";
- var DIV_COURSE_ENROLLMENT = "coordinatorCourseEnrollment";
- var DIV_COURSE_ENROLLMENTBUTTONS = "coordinatorCourseEnrollmentButtons";
- var DIV_COURSE_ENROLLMENTRESULTS = "coordinatorCourseEnrollmentResults";
- var DIV_COURSE_MANAGEMENT = "coordinatorCourseManagement";
- var DIV_COURSE_TABLE = "coordinatorCourseTable";
- var DIV_EVALUATION_EDITBUTTONS = "coordinatorEditEvaluationButtons";
- var DIV_EVALUATION_EDITRESULTS = "coordinatorEditEvaluationResults";
- var DIV_EVALUATION_EDITRESULTSBUTTON = "coordinatorEditEvaluationResultsButtons";
- var DIV_EVALUATION_INFORMATION = "coordinatorEvaluationInformation";
- var DIV_EVALUATION_MANAGEMENT = "coordinatorEvaluationManagement";
- var DIV_EVALUATION_SUMMARYTABLE = "coordinatorEvaluationSummaryTable";
- var DIV_EVALUATION_TABLE = "coordinatorEvaluationTable";
- var DIV_HEADER_OPERATION = "headerOperation";
- var DIV_STUDENT_EDITBUTTONS = "coordinatorEditStudentButtons";
- var DIV_STUDENT_INFORMATION = "coordinatorStudentInformation";
- var DIV_STUDENT_TABLE = "coordinatorStudentTable";
- var DIV_STATUS_EDITEVALUATIONRESULTS = "coordinatorEditEvaluationResultsStatusMessage";
- var DIV_TOPOFPAGE = "topOfPage";
- // GLOBAL VARIABLES FOR GUI
- var courseSort = { ID:0, name:1 }
- var courseSortStatus = courseSort.ID;
- var evaluationSort = { courseID:0, name:1 }
- var evaluationSortStatus = evaluationSort.courseID;
- var studentSort = { name:0, teamName:1, status: 2}
- var studentSortStatus = studentSort.name;
- var courseViewArchived = { show:0, hide:1 }
- var courseViewArchivedStatus = courseViewArchived.hide;
- var evaluationResultsView = { reviewee:0, reviewer:1 }
- var evaluationResultsViewStatus = evaluationResultsView.reviewee;
- var evaluationResultsSummaryListSort = { teamName:0, name:1, average:2, submitted:3, diff:4 }
- var evaluationResultsSummaryListSortStatus = evaluationResultsSummaryListSort.teamName;
- // MESSAGES
- var MSG_COURSE_EXISTS = "course exists";
- var MSG_COURSE_NOTEAMS = "course has no teams";
- var MSG_EVALUATION_ADDED = "evaluation added";
- var MSG_EVALUATION_EDITED = "evaluation edited";
- var MSG_EVALUATION_EXISTS = "evaluation exists";
- var MSG_EVALUATION_UNABLETOCHANGETEAMS = "evaluation ongoing unable to change teams";
- // OPERATIONS
- var OPERATION_COORDINATOR_ADDCOURSE = "coordinator_addcourse";
- var OPERATION_COORDINATOR_ADDEVALUATION = "coordinator_addevaluation";
- var OPERATION_COORDINATOR_ARCHIVECOURSE = "coordinator_archivecourse";
- var OPERATION_COORDINATOR_ARCHIVEEVALUATION = "coordinator_archiveevaluation";
- var OPERATION_COORDINATOR_DELETEALLSTUDENTS = "coordinator_deleteallstudents";
- var OPERATION_COORDINATOR_DELETECOURSE = "coordinator_deletecourse";
- var OPERATION_COORDINATOR_DELETEEVALUATION = "coordinator_deleteevaluation";
- var OPERATION_COORDINATOR_DELETESTUDENT = "coordinator_deletestudent";
- var OPERATION_COORDINATOR_EDITEVALUATION = "coordinator_editevaluation";
- var OPERATION_COORDINATOR_EDITEVALUATIONRESULTS = "coordinator_editevaluationresults";
- var OPERATION_COORDINATOR_EDITSTUDENT = "coordinator_editstudent";
- var OPERATION_COORDINATOR_ENROLSTUDENTS = "coordinator_enrolstudents";
- var OPERATION_COORDINATOR_GETCOURSE = "coordinator_getcourse";
- var OPERATION_COORDINATOR_GETCOURSELIST = "coordinator_getcourselist";
- var OPERATION_COORDINATOR_GETEVALUATIONLIST = "coordinator_getevaluationlist";
- var OPERATION_COORDINATOR_GETSTUDENTLIST = "coordinator_getstudentlist";
- var OPERATION_COORDINATOR_GETSUBMISSIONLIST = "coordinator_getsubmissionlist";
- var OPERATION_COORDINATOR_INFORMSTUDENTSOFEVALUATIONCHANGES = "coordinator_informstudentsofevaluationchanges";
- var OPERATION_COORDINATOR_LOGOUT = "coordinator_logout";
- var OPERATION_COORDINATOR_PUBLISHEVALUATION = "coordinator_publishevaluation";
- var OPERATION_COORDINATOR_UNPUBLISHEVALUATION = "coordinator_unpublishevaluation";
- var OPERATION_COORDINATOR_REMINDSTUDENTS = "coordinator_remindstudents";
- var OPERATION_COORDINATOR_SENDREGISTRATIONKEY = "coordinator_sendregistrationkey";
- var OPERATION_COORDINATOR_SENDREGISTRATIONKEYS = "coordinator_sendregistrationkeys";
- var OPERATION_COORDINATOR_UNARCHIVECOURSE = "coordinator_unarchivecourse";
- var OPERATION_COORDINATOR_UNARCHIVEEVALUATION = "coordinator_unarchiveevaluation";
- // PARAMETERS
- var COURSE_ID = "courseid";
- var COURSE_NAME = "coursename";
- var COURSE_NUMBEROFTEAMS = "coursenumberofteams";
- var COURSE_TOTALSTUDENTS = "coursetotalstudents";
- var COURSE_UNREGISTERED = "courseunregistered";
- var COURSE_STATUS = "coursestatus";
- var EVALUATION_ACTIVATED = "activated";
- var EVALUATION_ARCHIVED = "evaluationarchived";
- var EVALUATION_COMMENTSENABLED = "commentsstatus";
- var EVALUATION_DEADLINE = "deadline";
- var EVALUATION_DEADLINETIME = "deadlinetime";
- var EVALUATION_GRACEPERIOD = "graceperiod";
- var EVALUATION_INSTRUCTIONS = "instr";
- var EVALUATION_NAME = "evaluationname";
- var EVALUATION_NUMBEROFCOMPLETEDEVALUATIONS = "numberofevaluations";
- var EVALUATION_NUMBEROFEVALUATIONS = "numberofcompletedevaluations";
- var EVALUATION_PUBLISHED = "published";
- var EVALUATION_START = "start";
- var EVALUATION_STARTTIME = "starttime";
- var EVALUATION_TIMEZONE = "timezone";
- var EVALUATION_TYPE = "evaluationtype";
- var STUDENT_COMMENTS = "comments";
- var STUDENT_COMMENTSEDITED = "commentsedited";
- var STUDENT_COMMENTSTOSTUDENT = "commentstostudent";
- var STUDENT_COURSEID = "courseid";
- var STUDENT_EDITCOMMENTS = "editcomments";
- var STUDENT_EDITEMAIL = "editemail";
- var STUDENT_EDITGOOGLEID = "editgoogleid";
- var STUDENT_EDITNAME = "editname";
- var STUDENT_EDITTEAMNAME = "editteamname";
- var STUDENT_EMAIL = "email";
- var STUDENT_FROMSTUDENT = "fromemail";
- var STUDENT_FROMSTUDENTCOMMENTS = "fromstudentcomments";
- var STUDENT_FROMSTUDENTNAME = "fromname";
- var STUDENT_ID = "id";
- var STUDENT_INFORMATION = "information";
- var STUDENT_JUSTIFICATION = "justification";
- var STUDENT_NAME = "name";
- var STUDENT_NAMEEDITED = "nameedited";
- var STUDENT_NUMBEROFSUBMISSIONS = "numberofsubmissions";
- var STUDENT_POINTS = "points";
- var STUDENT_POINTSBUMPRATIO = "pointsbumpratio";
- var STUDENT_REGKEY = "regkey";
- var STUDENT_STATUS = "status";
- var STUDENT_TEAMNAME = "teamname";
- var STUDENT_TEAMNAMEEDITED = "teamnameedited";
- var STUDENT_TOSTUDENT = "toemail";
- var STUDENT_TOSTUDENTCOMMENTS = "tostudentcomments";
- var STUDENT_TOSTUDENTNAME = "toname";
- /*
- * Returns
- *
- * 0: successful 1: server error 2: field(s) empty 3: courseID invalid 4: name
- * invalid 5: course exists
- *
- */
- function addCourse(courseID, courseName)
- {
- if(xmlhttp)
- {
- courseID = trim(courseID);
- courseName = trim(courseName);
-
- if(courseID == "" || courseName == "")
- {
- return 2;
- }
- else if(!isCourseIDValid(courseID))
- {
- return 3;
- }
-
- else if(!isCourseNameValid(courseName))
- {
- return 4;
- }
-
- else
- {
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send("operation=" + OPERATION_COORDINATOR_ADDCOURSE + "&" + COURSE_ID + "=" + encodeURIComponent(courseID) +
- "&" + COURSE_NAME + "=" + encodeURIComponent(courseName));
-
-
- var results = handleAddCourse();
-
- return results;
-
- }
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error 2: fields empty 3: evaluation name invalid 4:
- * evaluation schedule invalid 5: evaluation exists 6: course has no teams
- *
- */
- function addEvaluation(courseID, name, instructions, commentsEnabled, start, startTime, deadline, deadlineTime, timeZone, gracePeriod)
- {
- if(courseID == "" || name == "" || start == "" || startTime == "" || deadline == "" || deadlineTime == "" ||
- timeZone == "" || gracePeriod == "" || instructions == "")
- {
- return 2;
- }
-
- else if(!isEvaluationNameValid(name))
- {
- return 3;
- }
-
- else if(!isAddEvaluationScheduleValid(start, startTime, deadline, deadlineTime))
- {
- return 4;
- }
-
- else
- {
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send("operation=" + OPERATION_COORDINATOR_ADDEVALUATION + "&" + COURSE_ID + "=" + encodeURIComponent(courseID) +
- "&" + EVALUATION_NAME + "=" + encodeURIComponent(name) + "&" + EVALUATION_DEADLINE + "=" + encodeURIComponent(deadline) +
- "&" + EVALUATION_DEADLINETIME + "=" + encodeURIComponent(deadlineTime) +
- "&" + EVALUATION_INSTRUCTIONS + "=" + encodeURIComponent(instructions) + "&" +
- EVALUATION_START + "=" + encodeURIComponent(start) + "&" + EVALUATION_STARTTIME + "=" +
- encodeURIComponent(startTime) + "&" + EVALUATION_GRACEPERIOD + "=" + encodeURIComponent(gracePeriod) +
- "&" + EVALUATION_TIMEZONE + "=" + encodeURIComponent(timeZone) +
- "&" + EVALUATION_COMMENTSENABLED + "=" + encodeURIComponent(commentsEnabled));
-
- return handleAddEvaluation();
- }
-
- }
- /*
- * Returns
- *
- * 0: successful 1: server error
- *
- */
- function archiveCourse(courseID)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- if(xmlhttp)
- {
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send("operation=" + OPERATION_COORDINATOR_ARCHIVECOURSE +
- "&" + COURSE_ID + "=" + encodeURIComponent(courseID));
-
- return handleArchiveCourse();
- }
- }
- function clearAllDisplay()
- {
- document.getElementById(DIV_COURSE_INFORMATION).innerHTML = "";
- document.getElementById(DIV_COURSE_ENROLLMENT).innerHTML = "";
- document.getElementById(DIV_COURSE_ENROLLMENTBUTTONS).innerHTML = "";
- document.getElementById(DIV_COURSE_ENROLLMENTRESULTS).innerHTML = "";
- document.getElementById(DIV_COURSE_MANAGEMENT).innerHTML = "";
- document.getElementById(DIV_COURSE_TABLE).innerHTML = "";
- document.getElementById(DIV_EVALUATION_EDITBUTTONS).innerHTML = "";
- document.getElementById(DIV_EVALUATION_EDITRESULTSBUTTON).innerHTML = "";
- document.getElementById(DIV_EVALUATION_INFORMATION).innerHTML = "";
- document.getElementById(DIV_EVALUATION_MANAGEMENT).innerHTML = "";
- document.getElementById(DIV_EVALUATION_SUMMARYTABLE).innerHTML = "";
- document.getElementById(DIV_EVALUATION_TABLE).innerHTML = "";
- document.getElementById(DIV_HEADER_OPERATION).innerHTML = "";
- document.getElementById(DIV_STATUS_EDITEVALUATIONRESULTS).innerHTML = "";
- document.getElementById(DIV_STUDENT_EDITBUTTONS).innerHTML = "";
- document.getElementById(DIV_STUDENT_INFORMATION).innerHTML = "";
- document.getElementById(DIV_STUDENT_TABLE).innerHTML = "";
- clearStatusMessage();
- }
- function checkEditStudentInput(editName, editTeamName, editEmail, editGoogleID)
- {
- if(editName == "" || editTeamName == "" || editEmail == "")
- {
- setStatusMessage(DISPLAY_EDITSTUDENT_FIELDSEMPTY);
- }
-
- if(!isStudentNameValid(editName))
- {
- setStatusMessage(DISPLAY_STUDENT_NAMEINVALID);
- }
-
- else if(!isStudentEmailValid(editEmail))
- {
- setStatusMessage(DISPLAY_STUDENT_EMAILINVALID);
- }
-
- else if(!isStudentTeamNameValid(editTeamName))
- {
- setStatusMessage(DISPLAY_STUDENT_TEAMNAMEINVALID);
- }
- }
- function checkEnrollmentInput(input)
- {
- input = replaceAll(input, "|", "\t");
-
- var entries = input.split("\n");
- var fields;
-
- for(var x = 0; x < entries.length; x++)
- {
- // Ignore blank line
- if(entries[x] != ""){
- // Separate the fields
- fields = entries[x].split("\t");
-
- // Make sure that all fields are present
- if(fields.length < 3)
- {
- setStatusMessage("<font color=\"#F00\">Line " + (x+1) + ":</font> " + DISPLAY_ENROLLMENT_FIELDSMISSING);
- }
-
- else if(fields.length > 4)
- {
- setStatusMessage("<font color=\"#F00\">Line " + (x+1) + ":</font> " + DISPLAY_ENROLLMENT_FIELDSEXTRA);
- }
-
- // Check that fields are correct
- if(!isStudentNameValid(trim(fields[1])))
- {
- setStatusMessage("<font color=\"#F00\">Line " + (x+1) + ":</font> " + DISPLAY_STUDENT_NAMEINVALID);
- }
-
- else if(!isStudentEmailValid(trim(fields[2])))
- {
- setStatusMessage("<font color=\"#F00\">Line " + (x+1) + ":</font> " + DISPLAY_STUDENT_EMAILINVALID);
- }
-
- else if(!isStudentTeamNameValid(trim(fields[0])))
- {
- setStatusMessage("<font color=\"#F00\">Line " + (x+1) + ":</font> " + DISPLAY_STUDENT_TEAMNAMEINVALID);
- }
- }
- }
-
- }
- function compileSubmissionsIntoSummaryList(submissionList)
- {
- var summaryList = new Array();
-
- var exists = false;
-
- var toStudent;
- var toStudentName;
- var toStudentComments;
- var totalPoints;
- var totalPointGivers;
- var claimedPoints;
- var teamName;
- var average;
- var difference;
- var submitted;
- var pointsBumpRatio;
-
- var count = 0;
-
- for(var loop = 0; loop < submissionList.length; loop++) {
- logSubmission(submissionList[loop]);
- }
- for(loop = 0; loop < submissionList.length; loop++)
- {
- exists = false;
- submitted = false;
-
- for(x = 0; x < summaryList.length; x++)
- {
-
- if(summaryList[x].toStudent == submissionList[loop].toStudent)
- {
- exists = true;
- }
- }
-
- if(exists == false)
- {
- toStudent = submissionList[loop].toStudent;
- toStudentName = submissionList[loop].toStudentName;
- toStudentComments = submissionList[loop].toStudentComments;
- teamName = submissionList[loop].teamName;
- totalPoints = 0;
- totalPointGivers = 0;
-
- for(y = loop; y < submissionList.length; y++)
- {
- if(submissionList[y].toStudent == toStudent)
- {
- if(submissionList[y].fromStudent == toStudent)
- {
- if(submissionList[y].points == -999 )
- {
- claimedPoints = NA;
- }else if (submissionList[y].points == -101) {
- claimedPoints = NOTSURE;
- }
-
- else
- {
-
-
- claimedPoints = Math.round(submissionList[y].points * submissionList[y].pointsBumpRatio);
- }
-
- if(submissionList[y].points != -999)
- {
- submitted = true;
- }
- }
-
- else
- {
- if(submissionList[y].points != -999 && submissionList[y].points != -101)
- {
- totalPoints += Math.round(submissionList[y].points * submissionList[y].pointsBumpRatio);
- totalPointGivers++;
- }
- }
- }
- }
- if(totalPointGivers != 0)
- {
- average = Math.round(totalPoints / totalPointGivers);
- }
-
- else
- {
- average = NA;
- }
-
- difference = Math.round(average-claimedPoints);
- if(isNaN(difference)) {
- difference = NA;
- }
-
- summaryList[count++] = { toStudent:toStudent, toStudentName:toStudentName, teamName:teamName,
- average:average, difference:difference, toStudentComments:toStudentComments, submitted:submitted,
- claimedPoints:claimedPoints};
- console.log("******"+toStudent+"|"+toStudentName+"|"+teamName+"|"+average+"|"+difference+"|"+"|"+submitted+"|"+claimedPoints);
- }
- }
-
- // Find normalizing points bump ratio for averages
- var teamsNormalized = new Array();
- count = 0;
- logSummaryList(summaryList);
- for(loop = 0; loop < summaryList.length; loop++)
- {
- teamName = summaryList[loop].teamName;
- // Reset variables
- exists = false;
- totalPoints = 0;
- totalGivers = 0;
- pointsBumpRatio = 0;
-
- // Check if the team is added
- for(y = 0; y < teamsNormalized.length; y++)
- {
- if(summaryList[loop].teamName == teamsNormalized[y].teamName)
- {
- exists = true;
- break;
- }
- }
-
- if(exists == false)
- {
- // Tabulate the perceived scores
- for(y = loop; y < summaryList.length; y++)
- {
- console.log(summaryList[y].teamName+"[0]"+summaryList[y].average);
- if(summaryList[y].teamName == summaryList[loop].teamName && summaryList[y].average != NA)
- {
- console.log(summaryList[y].teamName+"[1]"+summaryList[y].average);
- totalPoints += summaryList[y].average;
- totalGivers += 1;
- }
- }
- console.log("totalgiver: "+totalGivers+ " | totalPoints:" + totalPoints);
- if(totalGivers != 0)
- {
-
- pointsBumpRatio = totalGivers * 100 / totalPoints;
-
- // Store the bump ratio
- teamsNormalized[count++] = {pointsBumpRatio:pointsBumpRatio, teamName:teamName};
- console.log("teamNormalized:" + pointsBumpRatio + "|" + teamName);
- }
-
- }
- }
-
- // Do the normalization
- for(loop = 0; loop < teamsNormalized.length; loop++) // number of teams
- {
- for(y = 0; y < summaryList.length; y++) // number of members
- {
- if(summaryList[y].teamName == teamsNormalized[loop].teamName && summaryList[y].average != NA)
- {
- summaryList[y].average = Math.round(summaryList[y].average * teamsNormalized[loop].pointsBumpRatio);
-
-
- summaryList[y].difference = Math.round(summaryList[y].average-summaryList[y].claimedPoints);
-
-
- if(isNaN(summaryList[y].difference))
- {
- summaryList[y].difference = NA;
- }
- }
- }
- logSummaryList(summaryList);
-
- console.log("team normalized: "+ loop+ teamsNormalized[loop].teamName + "|" + teamsNormalized[loop].pointsBumpRatio);
- }
-
- return summaryList;
- }
- function convertDateFromDDMMYYYYToMMDDYYYY(dateString)
- {
- var newDateString = dateString.substring(3,5) + "/" + dateString.substring(0,2) + "/" +
- dateString.substring(6,10);
- return newDateString;
- }
- function convertDateToDDMMYYYY(date)
- {
- var string;
-
- if(date.getDate() < 10)
- {
- string = "0" + date.getDate();
- }
-
- else
- {
- string = date.getDate();
- }
-
- string = string + "/";
-
- if(date.getMonth()+1 < 10)
- {
- string = string + "0" + (date.getMonth()+1);
- }
-
- else
- {
- string = string + (date.getMonth()+1);
- }
-
- string = string + "/" + date.getFullYear();
-
- return string;
- }
- function convertDateToHHMM(date)
- {
- var string;
-
- if(date.getHours() < 10)
- {
- string = "0" + date.getHours();
- }
-
- else
- {
- string = "" + date.getHours();
- }
-
- if(date.getMinutes() < 10)
- {
- string = string + "0" + date.getMinutes();
- }
-
- else
- {
- string = string + date.getMinutes();
- }
-
- return string;
- }
- /*
- * Returns
- *
- * 0: successful 1: server error
- */
- function deleteAllStudents(courseID)
- {
- if(xmlhttp)
- {
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send("operation=" + OPERATION_COORDINATOR_DELETEALLSTUDENTS + "&" + COURSE_ID + "=" + encodeURIComponent(courseID));
-
- return handleDeleteAllStudents(courseID);
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error
- *
- */
- function deleteCourse(courseID)
- {
- if(xmlhttp)
- {
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send("operation=" + OPERATION_COORDINATOR_DELETECOURSE + "&" + COURSE_ID + "=" + encodeURIComponent(courseID));
-
- return handleDeleteCourse();
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error
- *
- */
- function deleteEvaluation(courseID, name)
- {
- if(xmlhttp)
- {
-
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send("operation=" + OPERATION_COORDINATOR_DELETEEVALUATION + "&" + COURSE_ID + "="
- + encodeURIComponent(courseID) + "&" + EVALUATION_NAME + "=" + encodeURIComponent(name));
-
- return handleDeleteEvaluation();
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error
- */
- function deleteStudent(courseID, studentEmail)
- {
- if(xmlhttp)
- {
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send("operation=" + OPERATION_COORDINATOR_DELETESTUDENT + "&" + COURSE_ID + "=" +
- encodeURIComponent(courseID) + "&" + STUDENT_EMAIL + "=" + encodeURIComponent(studentEmail));
-
- return handleDeleteStudent();
- }
- }
- function displayCourseInformation(courseID)
- {
- clearAllDisplay();
- doGetCourse(courseID);
- document.getElementById(DIV_TOPOFPAGE).scrollIntoView(true);
- }
- function displayCoursesTab()
- {
- clearAllDisplay();
- setStatusMessage(DISPLAY_LOADING);
- printAddCourse();
- doGetCourseList();
- document.getElementById(DIV_TOPOFPAGE).scrollIntoView(true);
-
- }
- function displayEditEvaluation(evaluationList, loop)
- {
- var courseID = evaluationList[loop].courseID;
- var name = evaluationList[loop].name;
- var instructions = evaluationList[loop].instructions;
- var start = evaluationList[loop].start;
- var deadline = evaluationList[loop].deadline;
- var timeZone = evaluationList[loop].timeZone;
- var gracePeriod = evaluationList[loop].gracePeriod;
- var status = evaluationList[loop].status;
- var activated = evaluationList[loop].activated;
- var commentsEnabled = evaluationList[loop].commentsEnabled;
- clearAllDisplay();
- printEditEvaluation(courseID, name, instructions, commentsEnabled, start, deadline, timeZone, gracePeriod, status, activated);
- document.getElementById(DIV_TOPOFPAGE).scrollIntoView(true);
- }
- function displayEditStudent(courseID, email, name, teamName, googleID, registrationKey, comments)
- {
- clearAllDisplay();
- document.getElementById(DIV_TOPOFPAGE).scrollIntoView(true);
- printEditStudent(courseID, email, name, teamName, googleID, registrationKey, comments);
- }
- function displayEnrollmentPage(courseID)
- {
- clearAllDisplay();
- printEnrollmentPage(courseID);
- document.getElementById(DIV_TOPOFPAGE).scrollIntoView(true);
- }
- function displayEnrollmentResultsPage(reports)
- {
- clearAllDisplay();
- printEnrollmentResultsPage(reports);
- document.getElementById(DIV_TOPOFPAGE).scrollIntoView(true);
- }
- function displayEvaluationResults(evaluationList, loop)
- {
- var courseID = evaluationList[loop].courseID;
- var name = evaluationList[loop].name;
- var instructions = evaluationList[loop].instructions;
- var start = evaluationList[loop].start;
- var deadline = evaluationList[loop].deadline;
- var gracePeriod = evaluationList[loop].gracePeriod;
- var status = evaluationList[loop].status;
- var activated = evaluationList[loop].activated;
- var commentsEnabled = evaluationList[loop].commentsEnabled;
- // xl: new added
- var published = evaluationList[loop].published;
-
- clearAllDisplay();
-
- printEvaluationHeaderForm(courseID, name, start, deadline, status, activated, published);
- evaluationResultsViewStatus = evaluationResultsView.reviewer;
-
- doGetSubmissionResultsList(courseID, name, status, commentsEnabled);
-
- document.getElementById(DIV_TOPOFPAGE).scrollIntoView(true);
- }
- function displayEvaluationsTab()
- {
- clearAllDisplay();
- printEvaluationAddForm();
- doGetCourseIDList();
- doGetEvaluationList();
- document.getElementById(DIV_TOPOFPAGE).scrollIntoView(true);
- }
- function displayStudentInformation(courseID, email, name, teamName, googleID, registrationKey, comments)
- {
- clearAllDisplay();
- document.getElementById(DIV_TOPOFPAGE).scrollIntoView(true);
- printStudent(courseID, email, name, teamName, googleID, registrationKey, comments);
- }
- function doAddCourse(courseID, name)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = addCourse(courseID, name);
-
- if(results == 0)
- {
- printAddCourse();
- doGetCourseList();
- setStatusMessage(DISPLAY_COURSE_ADDED);
- }
-
- else if(results == 1)
- {
- alert(DISPLAY_SERVERERROR);
- }
-
- else if(results == 2)
- {
- setStatusMessage(DISPLAY_FIELDS_EMPTY);
- }
-
- else if(results == 3)
- {
- setStatusMessage(DISPLAY_COURSE_INVALIDID);
- }
-
- else if(results == 4)
- {
- setStatusMessage(DISPLAY_COURSE_INVALIDNAME);
- }
-
- else if(results == 5)
- {
- setStatusMessage(DISPLAY_COURSE_EXISTS);
- }
- }
- function doAddEvaluation(courseID, name, instructions, commentsEnabled, start, startTime, deadline, deadlineTime, timeZone, gracePeriod)
- {
- setStatusMessage(DISPLAY_LOADING);
- var results = addEvaluation(courseID, name, instructions, commentsEnabled, start, startTime, deadline,
- deadlineTime, timeZone, gracePeriod);
-
- clearStatusMessage();
-
- if(results == 0)
- {
- displayEvaluationsTab();
- setStatusMessage(DISPLAY_EVALUATION_ADDED);
- }
-
- else if(results == 1)
- {
- alert(DISPLAY_SERVERERROR);
- }
-
- else if(results == 2)
- {
- setStatusMessage(DISPLAY_FIELDS_EMPTY);
- }
-
- else if(results == 3)
- {
- setStatusMessage(DISPLAY_EVALUATION_NAMEINVALID);
- }
-
- else if(results == 4)
- {
- setStatusMessage(DISPLAY_EVALUATION_SCHEDULEINVALID);
- }
-
- else if(results == 5)
- {
- setStatusMessage(DISPLAY_EVALUATION_EXISTS);
- }
-
- else if(results == 6)
- {
- setStatusMessage(DISPLAY_COURSE_NOTEAMS);
- }
-
- }
- function doArchiveCourse(courseID)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = archiveCourse(courseID);
-
- if(results == 0)
- {
- doGetCourseList();
- setStatusMessage(DISPLAY_COURSE_ARCHIVED);
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doDeleteCourse(courseID)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = deleteCourse(courseID);
-
- if(results != 1)
- {
- doGetCourseList();
- setStatusMessage(DISPLAY_COURSE_DELETED);
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doDeleteEvaluation(courseID, name)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = deleteEvaluation(courseID, name);
-
- if(results == 0)
- {
- doGetEvaluationList();
- setStatusMessage(DISPLAY_EVALUATION_DELETED);
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doDeleteAllStudents(courseID)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = deleteAllStudents(courseID);
-
- if(results != 1)
- {
- doGetCourse(courseID);
- setStatusMessage(DISPLAY_COURSE_DELETEDALLSTUDENTS + " Click <a class='t_course_enrol' href=\"javascript:displayEnrollmentPage('"
- + courseID + "');\">here</a> to enrol students.");
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doDeleteStudent(courseID, email)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = deleteStudent(courseID, email);
-
- if(results != 1)
- {
- displayCourseInformation(courseID);
- setStatusMessage(DISPLAY_COURSE_DELETEDSTUDENT);
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doEditEvaluation(courseID, name, editStart, editStartTime, editDeadline, editDeadlineTime, timeZone,
- editGracePeriod, editInstructions, editCommentsEnabled, activated, status)
- {
- setStatusMessage(DISPLAY_LOADING);
- var results = editEvaluation(courseID, name, editStart, editStartTime, editDeadline, editDeadlineTime,
- timeZone, editGracePeriod, editInstructions, editCommentsEnabled, activated, status)
-
- if(results == 0)
- {
- if(activated == true)
- {
- displayEvaluationsTab();
- toggleInformStudentsOfEvaluationChanges(courseID, name);
- }
-
- else
- {
- displayEvaluationsTab();
- setStatusMessage(DISPLAY_EVALUATION_EDITED);
- }
-
- }
-
- else if(results == 2)
- {
- setStatusMessage(DISPLAY_FIELDS_EMPTY);
- }
-
- else if(results == 3)
- {
- setStatusMessage(DISPLAY_EVALUATION_SCHEDULEINVALID);
- }
-
- else if(results == 4)
- {
- displayEvaluationsTab();
- setStatusMessage(DISPLAY_EVALUATION_EDITED);
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doEditEvaluationResultsByReviewer(form, summaryList, position, commentsEnabled, status)
- {
- toggleEditEvaluationResultsStatusMessage(DISPLAY_LOADING);
-
- var submissionList = extractSubmissionList(form);
-
- var results = editEvaluationResults(submissionList, commentsEnabled);
- if(results == 0)
- {
- submissionList = getSubmissionList(submissionList[0].courseID, submissionList[0].evaluationName);
-
- if(submissionList != 1)
- {
- printEvaluationIndividualForm(submissionList, summaryList, position, commentsEnabled, status, REVIEWER);
- document.getElementById(DIV_EVALUATION_EDITRESULTSBUTTON).innerHTML = "";
- toggleEditEvaluationResultsStatusMessage("");
- setStatusMessage(DISPLAY_EVALUATION_RESULTSEDITED);
- }
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
-
- else if(results == 2)
- {
- toggleEditEvaluationResultsStatusMessage(DISPLAY_FIELDS_EMPTY);
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doEditStudent(courseID, email, editName, editTeamName, editEmail, editGoogleID, editComments)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = editStudent(courseID, email, editName, editTeamName, editEmail, editGoogleID, editComments);
-
- if(results == 0)
- {
- displayCourseInformation(courseID);
- setStatusMessage(DISPLAY_STUDENT_EDITED);
- }
-
- else if(results == 2)
- {
- displayCourseInformation(courseID);
- setStatusMessage("Duplicated Email found. Cannot edit student information");
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doEnrolStudents(input, courseID)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = enrolStudents(input, courseID);
-
- clearStatusMessage();
-
- if(results == 1)
- {
- alert(DISPLAY_SERVERERROR);
- }
-
- else if(results == 2)
- {
-
- }
-
- else if(results == 3)
- {
- checkEnrollmentInput(input)
- }
-
- else
- {
- displayEnrollmentResultsPage(results);
- }
-
- }
- function doGetCourse(courseID) {
- setStatusMessage(DISPLAY_LOADING);
-
- var courseInfo = getCourse(courseID);
- var studentInfo = getStudentList(courseID);
-
- clearStatusMessage();
-
- if (courseInfo != 1) {
- printCourseCoordinatorForm(courseInfo);
- } else {
- alert(DISPLAY_SERVERERROR);
- }
-
- if (studentInfo != 1) {
- // toggleSortStudentsByName calls printStudentList too
- if (studentSortStatus == studentSort.name) {
- toggleSortStudentsByName(studentInfo, courseID);
- } else if(studentSortStatus == studentSort.status) {
- toggleSortStudentsByStatus(studentInfo, courseID);
- } else {
- toggleSortStudentsByTeamName(studentInfo, courseID);
- }
- } else {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doGetCourseIDList()
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = getCourseList();
-
- if(results != 1)
- {
- populateCourseIDOptions(results);
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doGetCourseList()
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = getCourseList();
-
- clearStatusMessage();
-
- if(results != 1)
- {
- // toggleSortCoursesByID calls printCourseList too
- printCourseList(results, COORDINATOR);
-
- if(courseSortStatus == courseSort.name)
- {
- toggleSortCoursesByName(results);
- }
-
- else
- {
- toggleSortCoursesByID(results);
- }
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doGetEvaluationList()
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = getEvaluationList();
-
- clearStatusMessage();
-
- if(results != 1)
- {
- // Toggle calls printEvaluationList too
- if(evaluationSortStatus == evaluationSort.name)
- {
- toggleSortEvaluationsByName(results);
-
- }
- else
- {
- toggleSortEvaluationsByCourseID(results);
- }
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doGetSubmissionResultsList(courseID, evaluationName, status, commentsEnabled)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = getSubmissionList(courseID, evaluationName);
-
- clearStatusMessage();
-
- if(results != 1)
- {
- var compiledResults = compileSubmissionsIntoSummaryList(results);
-
- toggleSortEvaluationSummaryListByTeamName(results, compiledResults, status, commentsEnabled);
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doInformStudentsOfEvaluationChanges(courseID, name)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = informStudentsOfEvaluationChanges(courseID, name);
-
- clearStatusMessage();
-
- if(results != 1)
- {
- setStatusMessage(DISPLAY_EVALUATION_INFORMEDSTUDENTSOFCHANGES);
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doPublishEvaluation(courseID, name, reload)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = publishEvaluation(courseID, name);
-
- clearStatusMessage();
-
- if(results != 1)
- {
- if(reload){
- doGetEvaluationList();
- }
- else{
- document.getElementById('button_publish').value = "Unpublish";
- document.getElementById('button_publish').onclick = function() {
- togglePublishEvaluation(courseID, name, false, false);
- };
- }
-
- setStatusMessage(DISPLAY_EVALUATION_PUBLISHED);
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
-
- }
- function doUnpublishEvaluation(courseID, name, reload)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = unpublishEvaluation(courseID, name);
-
- clearStatusMessage();
-
- if(results != 1)
- {
- if(reload){
- doGetEvaluationList();
- }
- else{
- document.getElementById('button_publish').value = "Publish";
- document.getElementById('button_publish').onclick = function() {
- togglePublishEvaluation(courseID, name, true, false);
- };
- }
-
- setStatusMessage(DISPLAY_EVALUATION_UNPUBLISHED);
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
-
- }
- function doRemindStudents(courseID, evaluationName)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = remindStudents(courseID, evaluationName);
-
- clearStatusMessage();
-
- if(results != 1)
- {
- setStatusMessage(DISPLAY_EVALUATION_REMINDERSSENT);
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doSendRegistrationKey(courseID, email, name) {
- setStatusMessage(DISPLAY_LOADING);
- document.getElementById(DIV_TOPOFPAGE).scrollIntoView(true);
-
- var results = sendRegistrationKey(courseID, email);
-
- clearStatusMessage();
-
- if (results != 1) {
- setStatusMessage(DISPLAY_COURSE_SENTREGISTRATIONKEY + name + ".");
- } else {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doSendRegistrationKeys(courseID) {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = sendRegistrationKeys(courseID);
-
- clearStatusMessage();
-
- if (results != 1) {
- setStatusMessage(DISPLAY_COURSE_SENTREGISTRATIONKEYS);
- } else {
- alert(DISPLAY_SERVERERROR);
- }
- }
- function doUnarchiveCourse(courseID)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- var results = unarchiveCourse(courseID);
-
- if(results == 0)
- {
- doGetCourseList();
- setStatusMessage(DISPLAY_COURSE_UNARCHIVED);
- }
-
- else
- {
- alert(DISPLAY_SERVERERROR);
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error 2: fields empty 3: schedule invalid 4: no
- * changes made
- */
- function editEvaluation(courseID, name, editStart, editStartTime, editDeadline, editDeadlineTime, timeZone, editGracePeriod,
- editInstructions, editCommentsEnabled, activated, status)
- {
- setStatusMessage(DISPLAY_LOADING);
-
- if(courseID == "" || name == "" || editStart == "" || editStartTime == "" || editDeadline == "" ||
- editDeadlineTime == "" || editGracePeriod == "" || editInstructions == "" || editCommentsEnabled == "")
- {
- return 2;
- }
-
- else if(!isEditEvaluationScheduleValid(editStart, editStartTime, editDeadline, editDeadlineTime, timeZone, activated, status))
- {
- return 3;
- }
-
- else
- {
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send("operation=" + OPERATION_COORDINATOR_EDITEVALUATION + "&" + COURSE_ID + "=" + encodeURIComponent(courseID) +
- "&" + EVALUATION_NAME + "=" + encodeURIComponent(name) + "&" + EVALUATION_DEADLINE + "=" + encodeURIComponent(editDeadline) +
- "&" + EVALUATION_DEADLINETIME + "=" + encodeURIComponent(editDeadlineTime) +
- "&" + EVALUATION_INSTRUCTIONS + "=" + encodeURIComponent(editInstructions) + "&" +
- EVALUATION_START + "=" + encodeURIComponent(editStart) + "&" + EVALUATION_STARTTIME + "=" +
- encodeURIComponent(editStartTime) + "&" + EVALUATION_GRACEPERIOD + "=" + encodeURIComponent(editGracePeriod) +
- "&" + EVALUATION_COMMENTSENABLED + "=" + editCommentsEnabled);
-
- return handleEditEvaluation();
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error 2: fields missing
- *
- */
- function editEvaluationResults(submissionList, commentsEnabled)
- {
- for(loop = 0; loop < submissionList.length; loop++)
- {
- if(submissionList[loop].points == -999)
- {
- return 2;
- }
-
- if(!commentsEnabled)
- {
- submissionList[loop].commentsToStudent = "";
- }
- }
-
- var request = "operation=" + OPERATION_COORDINATOR_EDITEVALUATIONRESULTS + "&" + STUDENT_NUMBEROFSUBMISSIONS +
- "=" + submissionList.length + "&" + COURSE_ID + "=" + submissionList[0].courseID +
- "&" + EVALUATION_NAME + "=" + submissionList[0].evaluationName +
- "&" + STUDENT_TEAMNAME + "=" + submissionList[0].teamName;
-
- for(loop = 0; loop < submissionList.length; loop++)
- {
- var toStudent;
-
- request = request + "&" +
- STUDENT_FROMSTUDENT + loop + "=" +
- encodeURIComponent(submissionList[loop].fromStudent) + "&" +
- STUDENT_TOSTUDENT + loop + "=" +
- encodeURIComponent(submissionList[loop].toStudent) + "&" +
- STUDENT_POINTS + loop + "=" +
- encodeURIComponent(submissionList[loop].points) + "&" +
- STUDENT_JUSTIFICATION + loop + "=" +
- encodeURIComponent(submissionList[loop].justification) + "&" +
- STUDENT_COMMENTSTOSTUDENT + loop + "=" +
- encodeURIComponent(submissionList[loop].commentsToStudent);
- }
-
- if(xmlhttp)
- {
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send(request);
-
- return handleEditEvaluationResults();
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error 2: unable to change teams
- *
- */
- function editStudent(courseID, email, editName, editTeamName, editEmail, editGoogleID, editComments)
- {
- editName = trim(editName);
- editTeamName = trim(editTeamName);
- editEmail = trim(editEmail);
- editGoogleID = trim(editGoogleID);
-
- if(isEditStudentInputValid(editName, editTeamName, editEmail, editGoogleID))
- {
- if(xmlhttp)
- {
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send("operation=" + OPERATION_COORDINATOR_EDITSTUDENT + "&" + COURSE_ID + "=" +
- encodeURIComponent(courseID) + "&" + STUDENT_EMAIL + "=" + encodeURIComponent(email) +
- "&" + STUDENT_EDITNAME + "=" + encodeURIComponent(editName) + "&" + STUDENT_EDITTEAMNAME + "=" + encodeURIComponent(editTeamName) +
- "&" + STUDENT_EDITEMAIL + "=" + encodeURIComponent(editEmail) + "&" + STUDENT_EDITGOOGLEID + "=" + encodeURIComponent(editGoogleID) +
- "&" + STUDENT_EDITCOMMENTS + "=" + encodeURIComponent(editComments));
- return handleEditStudent();
- }
- }
- }
- /*
- * Returns
- *
- * reports: successful 1: server error 2: input empty 3: input invalid
- *
- */
- function enrolStudents(input, courseID)
- {
- input = replaceAll(input,"|","\t");
-
- if(xmlhttp)
- {
- // Remove trailing "\n"
- if(input.lastIndexOf("\n") == input.length-1)
- {
- input = input.substring(0, input.length-1);
- }
-
- if(input == "")
- {
- return 2;
- }
-
- else if(isEnrollmentInputValid(input))
- {
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send("operation=" + OPERATION_COORDINATOR_ENROLSTUDENTS + "&" + STUDENT_INFORMATION
- + "=" + encodeURIComponent(input) + "&" + COURSE_ID + "=" + encodeURIComponent(courseID));
-
- return handleEnrolStudents();
- }
-
- else
- {
- return 3;
- }
- }
- }
- function extractSubmissionList(form)
- {
- var submissionList = [];
-
- var counter = 0;
-
- var fromStudent;
- var toStudent;
- var teamName;
- var courseID;
- var evaluationName;
- var points;
- var justification;
- var commentsToStudent;
-
- var formLength = form.length;
- for(loop = 0; loop < formLength; loop++)
- {
- fromStudent = form.elements[loop++].value;
- toStudent = form.elements[loop++].value;
- teamName = form.elements[loop++].value;
- courseID = form.elements[loop++].value;
- evaluationName = form.elements[loop++].value;
-
- points = form.elements[loop++].value;
- justification = form.elements[loop++].value;
- commentsToStudent = form.elements[loop].value;
-
-
- submissionList[counter++] = {fromStudent:fromStudent, toStudent:toStudent, courseID:courseID,
- evaluationName:evaluationName, teamName:teamName, points:points,
- justification:justification, commentsToStudent:commentsToStudent};
- }
-
- return submissionList;
- }
- /*
- * Returns
- *
- * courseInfo: successful 1: server error
- *
- */
- function getCourse(courseID)
- {
- if(xmlhttp)
- {
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send("operation=" + OPERATION_COORDINATOR_GETCOURSE + "&" + COURSE_ID + "=" + encodeURIComponent(courseID));
-
- return handleGetCourse();
- }
- }
- /*
- * Returns
- *
- * courseList: successful 1: server error
- *
- */
- function getCourseList()
- {
- if(xmlhttp)
- {
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send("operation=" + OPERATION_COORDINATOR_GETCOURSELIST);
-
- return handleGetCourseList();
- }
- }
- function getDateWithTimeZoneOffset(timeZone)
- {
- var now = new Date();
-
- // Convert local time zone to ms
- var nowTime = now.getTime();
-
- // Obtain local time zone offset
- var localOffset = now.getTimezoneOffset() * 60000;
-
- // Obtain UTC time
- var UTC = nowTime + localOffset;
-
- // Add the time zone of evaluation
- var nowMilliS = UTC + (timeZone * 60 * 60 * 1000);
-
- now.setTime(nowMilliS);
-
- return now;
- }
- /*
- * Returns
- *
- * evaluationList: successful 1: server error
- *
- */
- function getEvaluationList()
- {
- if(xmlhttp)
- {
- OPERATION_CURRENT = OPERATION_COORDINATOR_GETEVALUATIONLIST;
-
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send("operation=" + OPERATION_COORDINATOR_GETEVALUATIONLIST);
-
- return handleGetEvaluationList();
- }
- }
- // return the value of the radio button that is checked
- // return an empty string if none are checked, or
- // there are no radio buttons
- function getCheckedValue(radioObj) {
- if(!radioObj)
- return "";
- var radioLength = radioObj.length;
- if(radioLength == undefined)
- if(radioObj.checked)
- return radioObj.value;
- else
- return "";
- for(var i = 0; i < radioLength; i++) {
- if(radioObj[i].checked) {
- return radioObj[i].value;
- }
- }
- return "";
- }
- /*
- * Returns
- *
- * studentList: successful 1: server error
- *
- */
- function getStudentList(courseID)
- {
- if(xmlhttp)
- {
-
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send("operation=" + OPERATION_COORDINATOR_GETSTUDENTLIST + "&" + COURSE_ID + "=" + encodeURIComponent(courseID));
-
- return handleGetStudentList();
- }
- }
- /*
- * Returns
- *
- * submissionList: successful 1: server error
- *
- */
- function getSubmissionList(courseID, evaluationName)
- {
- if(xmlhttp)
- {
- xmlhttp.open("POST","teammates",false);
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
- xmlhttp.send("operation=" + OPERATION_COORDINATOR_GETSUBMISSIONLIST + "&" + COURSE_ID + "=" +
- encodeURIComponent(courseID) + "&" + EVALUATION_NAME + "=" + encodeURIComponent(evaluationName));
-
- return handleGetSubmissionList();
- }
- }
- function getXMLObject()
- {
- var xmlHttp = false;
- try {
- xmlHttp = new ActiveXObject("Msxml2.XMLHTTP")
- }
- catch (e) {
- try {
- xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
- }
- catch (e2) {
- xmlHttp = false
- }
- }
- if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
- xmlHttp = new XMLHttpRequest();
- }
- return xmlHttp;
- }
- /*
- * Returns
- *
- * 0: successful 1: server error 5: course exists
- *
- */
- function handleAddCourse()
- {
- if (xmlhttp.status == 200)
- {
- var status = xmlhttp.responseXML.getElementsByTagName("status")[0];
- var message;
-
- if(status != null)
- {
- var message = status.firstChild.nodeValue;
-
- if(message == MSG_COURSE_EXISTS)
- {
- return 5;
- }
-
- else
- {
- return 0;
- }
- }
- }
-
- else
- {
- return 1;
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error 5: evaluation exists 6: course has no teams
- *
- */
- function handleAddEvaluation()
- {
- if (xmlhttp.status == 200)
- {
- var status = xmlhttp.responseXML.getElementsByTagName("status")[0];
- var message;
-
- if(status != null)
- {
- var message = status.firstChild.nodeValue;
-
- if(message == MSG_EVALUATION_EXISTS)
- {
- return 5;
- }
-
- else if(message == MSG_COURSE_NOTEAMS)
- {
- return 6;
- }
-
- else
- {
- return 0;
- }
- }
- }
-
- else
- {
- return 1;
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error
- *
- */
- function handleArchiveCourse()
- {
- if(xmlhttp)
- {
- return 0;
- }
-
- else
- {
- return 1;
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error
- *
- */
- function handleDeleteAllStudents(courseID)
- {
- if(xmlhttp)
- {
- return 0;
- }
-
- else
- {
- return 1;
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error
- *
- */
- function handleDeleteCourse()
- {
- if(xmlhttp)
- {
- return 0;
- }
-
- else
- {
- return 1;
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error
- *
- */
- function handleDeleteEvaluation()
- {
- if(xmlhttp)
- {
- return 0;
- }
-
- else
- {
- return 1;
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error
- *
- */
- function handleDeleteStudent()
- {
- if(xmlhttp.status == 200)
- {
- return 0;
- }
-
- else
- {
- return 1;
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error 4: no changes made
- *
- */
- function handleEditEvaluation()
- {
- if(xmlhttp.status == 200)
- {
- var status = xmlhttp.responseXML.getElementsByTagName("status")[0];
-
- if(status != null)
- {
- var message = status.firstChild.nodeValue;
-
- if(message == MSG_EVALUATION_EDITED)
- {
- return 0;
- }
-
- else
- {
- return 4;
- }
- }
- }
-
- else
- {
- return 1;
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error
- *
- */
- function handleEditEvaluationResults()
- {
- if(xmlhttp.status == 200)
- {
- return 0;
- }
-
- else
- {
- return 1;
- }
- }
- /*
- * Returns
- *
- * 0: successful 1: server error 2: unable to change teams
- *
- */
- function handleEditStudent()
- {
- if (xmlhttp.status == 200)
- {
- var status = xmlhttp.responseXML.getElementsByTagName("status")[0];
-
- if(status != null)
- {
- var message = status.firstChild.nodeValue;
-
- if(message == MSG_EVALUATION_UNABLETOCHANGETEAMS)
- {
- return 2;
- }
-
- else
- {
- return 0;
- }
- }
- }
-
- else
- {
- return 1;
- }
- }
- /*
- * Returns
- *
- * reports: successful 1: server error
- *
- */
- function handleEnrolStudents()
- {
- if (xmlhttp.status == 200)
- {
- var enrollmentReports = xmlhttp.responseXML.getElementsByTagName("enrollmentreports")[0];
-
- if(enrollmentReports != null)
- {
- var enrollmentReport;
- var studentName;
- var studentEmail;
- var status;
- var nameEdited;
- var teamNameEdited;
- var commentsEdited;
-
- var reports = [];
-
- for(loop = 0; loop < enrollmentReports.childNodes.length; loop++)
- {
- enrollmentReport = enrollmentReports.childNodes[loop];
-
- studentName = enrollmentReport.getElementsByTagName(STUDENT_NAME)[0].firstChild.nodeValue;
- studentEmail = enrollmentReport.getElementsByTagName(STUDENT_EMAIL)[0].firstChild.nodeValue;
- status = enrollmentReport.getElementsByTagName(STUDENT_STATUS)[0].firstChild.nodeValue;
- nameEdited = enrollmentReport.getElementsByTagName(STUDENT_NAMEEDITED)[0].firstChild.nodeValue;
- teamNameEdited = enrollmentReport.getElementsByTagName(STUDENT_TEAMNAMEEDITED)[0].firstChild.nodeValue;
- commentsEdited = enrollmentReport.getElementsByTagName(STU…
Large files files are truncated, but you can click here to view the full file