/**
* Represents an evaluation (e.g., a "CMS evaluation").
* @param type {String} Ex: "CMS" or "ATMS" ...
* @param data Array(label1, text1, label2, text2, ...)
*/
function Evaluation(type, evttime, data)
{
//========== private static members ==========//
Evaluation.id = (typeof Evaluation.id == 'undefined') ? 0 : ++Evaluation.id;
//========== public constants ==========//
this.ratingQualities = ["", "Worst","Poor","Average","Good","Best"];
this.id = Evaluation.id;
this.ratingGroupName = "evaluationGroup" + this.id;
this.textID = "evaluationText" + this.id;
this.type = type;
this.data = data;
this.evttime = evttime;
//========== public read-only members ==========//
this.text = "";
this.rating = -1;
//========== public methods ==========//
this.html = html;
this.recordText = recordText;
this.writeRating = writeRating;
//========== private methods ==========//
this.smallScaleForm = smallScaleForm;
this.evaluationForm = evaluationForm;
//========== function definitions ==========//
/**
* @return The html representation of this evaluation.
*/
function html()
{
var text = "
" +
"" +
"| " + type + " Evaluation | " +
"
" +
"" +
"| ";
/* Displays the ranking bubbles */
text += " | " +
"" + this.evaluationForm() + " | " +
"
";
text += "
";
return text;
}
/**
* Write an individual rating to a log file
*/
function writeRating(givenRating)
{
// Build a string for the log in this format:
//03:01:00, Evaluation, CMS, Poor
logString = this.evttime.format() + ", Evaluation, " + this.type + ", " + this.ratingQualities[givenRating] + "\n"
// Using POST to send the data
var xhr = new XMLHttpRequest();
xhr.open("POST", "/cgi-bin/appendRatingToLog.py", true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
// send the collected data
xhr.send("msg="+logString);
}
/**
* Stores the text in the written response text box.
*/
function recordText()
{
this.text = events.doc.getElementById(this.textID).value;
}
/**
* @return The html for appropriate evaluation form for grading.
*/
function evaluationForm()
{
return this.smallScaleForm();
}
/**
* @return The html for a 1-5 grading scale.
*/
function smallScaleForm()
{
return "";
}
}