version 1.1, 2006/03/28 18:33:24
|
version 1.2, 2006/04/19 20:36:19
|
Line 68 function getEventObject(e) {
|
Line 68 function getEventObject(e) {
|
}
|
}
|
|
|
//Attach an onClick event handler to a node
|
//Attach an onClick event handler to a node
|
function attachClickEvent(node, func) {
|
function attachEvent(node, eventName, func) {
|
node.onclick = func; //Add event
|
node[eventName] = func; //Add event
|
|
|
if (!isIE) {
|
if (!isIE) {
|
//Allow me to raise events
|
//Allow me to raise events
|
node.addEventListener("onclick", func, true); //false to get it in bubble not capture
|
node.addEventListener(eventName, func, true); //false to get it in bubble not capture
|
|
}
|
|
if (node.captureEvents) {
|
|
var eventMap = new Object;
|
|
eventMap["onclick"] = Event.CLICK;
|
|
eventMap["onchange"] = Event.CHANGE;
|
|
eventMap["onsubmit"] = Event.SUBMIT;
|
|
if (! eventMap[eventName]) { return false; }
|
|
node.captureEvents(eventMap[eventName]);
|
}
|
}
|
if (node.captureEvents) { node.captureEvents(Event.CLICK); }
|
|
}
|
}
|
|
|
|
|
//Fire an event on a given node
|
//Fire an event on a given node
|
function dispatchEvent(node, eventName) {
|
function dispatchEvent(node, eventName) {
|
if (document.createEvent) {
|
if (document.createEvent) {
|
Line 111 function setupHandin() {
|
Line 119 function setupHandin() {
|
var a = document.createElement('a');
|
var a = document.createElement('a');
|
var txt = document.createTextNode('Collapse');
|
var txt = document.createTextNode('Collapse');
|
a.setAttribute('href', '#');
|
a.setAttribute('href', '#');
|
attachClickEvent(a, onSlideDrawer);
|
attachEvent(a, "onchange", onSlideDrawer);
|
a.appendChild(txt);
|
a.appendChild(txt);
|
li.appendChild(a);
|
li.appendChild(a);
|
|
|
Line 149 function setupGrading() {
|
Line 157 function setupGrading() {
|
for (var i = 0; i < inputs.length; i++) {
|
for (var i = 0; i < inputs.length; i++) {
|
if (inputs[i].type == "radio") {
|
if (inputs[i].type == "radio") {
|
var val = inputs[i].value;
|
var val = inputs[i].value;
|
if (val == "pass" || val == "fail" || val == "review") {
|
if (val == "pass" || val == "fail" || val == "review" || val == "ungraded") {
|
attachClickEvent(inputs[i], onSetGrade); //Add event
|
attachEvent(inputs[i], "onchange", onSetGrade);
|
|
attachEvent(inputs[i], "onclick", onSetGrade);
|
}
|
}
|
if (inputs[i].checked) {
|
if (inputs[i].checked) {
|
dispatchEvent(inputs[i], 'onclick');
|
dispatchEvent(inputs[i], 'onclick');
|
Line 161 function setupGrading() {
|
Line 170 function setupGrading() {
|
|
|
//Adjust the Done/Stop/Fail All button set
|
//Adjust the Done/Stop/Fail All button set
|
function setupButtons() {
|
function setupButtons() {
|
//Create Fail All button
|
//Setup the onSubmit validation
|
var btn = document.createElement('input');
|
var frms = document.getElementsByTagName('form');
|
btn.setAttribute('type', 'button');
|
for(var i=0; i < frms.length; i++ ) {
|
btn.setAttribute('value', 'Fail Rest');
|
if (frms[i].name == "lonhomework") {
|
attachClickEvent(btn, onFailRest);
|
attachEvent(frms[i], "onsubmit", onValidate);
|
|
}
|
//Add the button in
|
}
|
var div = myGetElementsByClass('div','LC_GRADING_maincontrols', 1);
|
|
if (div.length > 0) { div[0].appendChild(btn); }
|
|
}
|
}
|
|
|
/*
|
/*
|
Line 188 function onSlideDrawer(e) {
|
Line 195 function onSlideDrawer(e) {
|
}
|
}
|
|
|
//Fail all ungraded criteria
|
//Fail all ungraded criteria
|
function onFailRest(e) {
|
function onFailRest() {
|
var obj = getEventObject(e);
|
|
var inputs = document.getElementsByTagName('input');
|
var inputs = document.getElementsByTagName('input');
|
|
|
var graded = false;
|
var graded = false;
|
Line 210 function onFailRest(e) {
|
Line 216 function onFailRest(e) {
|
}
|
}
|
}
|
}
|
|
|
//Set bacground for grade chosen
|
//Set background for grade chosen
|
function onSetGrade( e ) {
|
function onSetGrade( e ) {
|
var obj = getEventObject(e);
|
var obj = getEventObject(e);
|
var grade;
|
var grade;
|
var gradediv;
|
var gradediv;
|
|
|
//Find the Radio button and get it's value
|
|
if (obj.tagName == 'INPUT') {
|
|
grade = obj.value;
|
|
} else {
|
|
rdo = obj.getElementsByTagName('INPUT');
|
|
if (rdo.length > 0) { grade = rdo[0].value; }
|
|
}
|
|
|
|
//Search for parent DIV
|
//Search for parent DIV
|
gradediv = obj;
|
gradediv = obj;
|
while (gradediv.tagName != 'DIV') {
|
while (gradediv.tagName != 'DIV') {
|
gradediv = gradediv.parentNode;
|
gradediv = gradediv.parentNode;
|
}
|
}
|
|
|
|
rdo = gradediv.getElementsByTagName('INPUT');
|
|
for(var i=0; i < rdo.length; i++) {
|
|
if ( rdo[i].checked ) {
|
|
grade = rdo[i].value;
|
|
break;
|
|
}
|
|
}
|
|
|
gradediv.className = "LC_GRADING_grade LC_GRADING_" + grade;
|
gradediv.className = "LC_GRADING_grade LC_GRADING_" + grade;
|
}
|
}
|
|
|
|
//Validate form before submit
|
|
function onValidate(e) {
|
|
var obj = getEventObject(e);
|
|
var ok = true;
|
|
var inputs = document.getElementsByTagName('input');
|
|
|
|
var cnt = 0;
|
|
for (var i = 0; i < inputs.length; i++) {
|
|
if (inputs[i].type == "radio") {
|
|
var val = inputs[i].value;
|
|
if (val == "ungraded" && inputs[i].checked) {
|
|
cnt++;
|
|
}
|
|
}
|
|
}
|
|
if (cnt) {
|
|
ok = confirm("You have " + cnt + " questions still ungraded.\nThis will return an ungraded task to the queue?");
|
|
}
|
|
return ok;
|
|
}
|