/** * 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, 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; //========== public read-only members ==========// this.text = ""; this.rating = -1; //========== public methods ==========// this.html = html; this.recordText = recordText; this.recordRating = recordRating; //========== private methods ==========// this.smallScaleForm = smallScaleForm; this.evaluationForm = evaluationForm; //========== function definitions ==========// /** * @return The html representation of this evaluation. */ function html() { var text = "" + "" + "" + "" + "" + "" + "" + ""; text += "
" + type + " Evaluation
"; for (i = 0; i < this.data.length; i += 2) { text += "" + "" + "" + ""; } /* Displays the comment input field text += ""; */ text += "
" + this.data[i] + "" + this.data[i+1] + "
" + "" + "
"; /* Displays the ranking bubbles */ text += "
" + this.evaluationForm() + "
"; return text; } /** * Stores the rating given by the evaluation scale radio button form. */ function recordRating(givenRating) { this.rating = givenRating; //console.log(this.ratingGroupName + " recordRating of " + this.rating ) } /** * 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 "
" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "
"+this.ratingQualities[5]+""+this.ratingQualities[4]+""+this.ratingQualities[3]+""+this.ratingQualities[2]+""+this.ratingQualities[1]+"
" + "
"; } }