comparison ape.js @ 105:3c6d3f013c40

jQuery use for childNodes for manipulating set up XML. Now works on Safari
author Nicholas Jillings <nicholas.jillings@eecs.qmul.ac.uk>
date Sun, 17 May 2015 21:35:30 +0100
parents 2dde0209be3d
children f2c05f147dd2
comparison
equal deleted inserted replaced
103:e4436132dbd9 105:3c6d3f013c40
240 postTest = postTest[0]; 240 postTest = postTest[0];
241 241
242 currentState = 'preTest'; 242 currentState = 'preTest';
243 243
244 // Create Pre-Test Box 244 // Create Pre-Test Box
245 if (preTest != undefined && preTest.children.length >= 1) 245 if (preTest != undefined && preTest.childElementCount >= 1)
246 { 246 {
247 showPopup(); 247 showPopup();
248 preTestPopupStart(preTest); 248 preTestPopupStart(preTest);
249 } 249 }
250 250
538 }); 538 });
539 539
540 // Now process any pre-test commands 540 // Now process any pre-test commands
541 541
542 var preTest = $(testXMLSetups[id]).find('PreTest')[0]; 542 var preTest = $(testXMLSetups[id]).find('PreTest')[0];
543 if (preTest.children.length > 0) 543 if (preTest.childElementCount > 0)
544 { 544 {
545 currentState = 'testRunPre-'+id; 545 currentState = 'testRunPre-'+id;
546 preTestPopupStart(preTest); 546 preTestPopupStart(preTest);
547 showPopup(); 547 showPopup();
548 } else { 548 } else {
557 // Parse the first box 557 // Parse the first box
558 var preTestOption = document.createElement('div'); 558 var preTestOption = document.createElement('div');
559 preTestOption.id = 'preTest'; 559 preTestOption.id = 'preTest';
560 preTestOption.style.marginTop = '25px'; 560 preTestOption.style.marginTop = '25px';
561 preTestOption.align = "center"; 561 preTestOption.align = "center";
562 var child = preTest.children[0]; 562 var child = $(preTest).children()[0];
563 if (child.nodeName == 'statement') 563 if (child.nodeName == 'statement')
564 { 564 {
565 preTestOption.innerHTML = '<span>'+child.innerHTML+'</span>'; 565 preTestOption.innerHTML = '<span>'+child.textContent+'</span>';
566 } else if (child.nodeName == 'question') 566 } else if (child.nodeName == 'question')
567 { 567 {
568 var questionId = child.attributes['id'].value; 568 var questionId = child.attributes['id'].value;
569 var textHold = document.createElement('span'); 569 var textHold = document.createElement('span');
570 textHold.innerHTML = child.innerHTML; 570 textHold.innerHTML = child.textContent;
571 textHold.id = questionId + 'response'; 571 textHold.id = questionId + 'response';
572 var textEnter = document.createElement('textarea'); 572 var textEnter = document.createElement('textarea');
573 preTestOption.appendChild(textHold); 573 preTestOption.appendChild(textHold);
574 preTestOption.appendChild(textEnter); 574 preTestOption.appendChild(textEnter);
575 } 575 }
617 { 617 {
618 // Called on click of pre-test button 618 // Called on click of pre-test button
619 // Need to find and parse preTest again! 619 // Need to find and parse preTest again!
620 var preTestOption = document.getElementById('preTest'); 620 var preTestOption = document.getElementById('preTest');
621 // Check if current state is a question! 621 // Check if current state is a question!
622 if (preTest.children[index].nodeName == 'question') { 622 if ($(preTest).children()[index].nodeName == 'question') {
623 var questionId = preTest.children[index].attributes['id'].value; 623 var questionId = $(preTest).children()[index].attributes['id'].value;
624 var questionHold = document.createElement('comment'); 624 var questionHold = document.createElement('comment');
625 var questionResponse = document.getElementById(questionId + 'response'); 625 var questionResponse = document.getElementById(questionId + 'response');
626 var mandatory = preTest.children[index].attributes['mandatory']; 626 var mandatory = $(preTest).children()[index].attributes['mandatory'];
627 if (mandatory != undefined){ 627 if (mandatory != undefined){
628 if (mandatory.value == 'true') {mandatory = true;} 628 if (mandatory.value == 'true') {mandatory = true;}
629 else {mandatory = false;} 629 else {mandatory = false;}
630 } else {mandatory = false;} 630 } else {mandatory = false;}
631 if (mandatory == true && questionResponse.value.length == 0) { 631 if (mandatory == true && questionResponse.value.length == 0) {
634 questionHold.id = questionId; 634 questionHold.id = questionId;
635 questionHold.innerHTML = questionResponse.value; 635 questionHold.innerHTML = questionResponse.value;
636 postPopupResponse(questionHold); 636 postPopupResponse(questionHold);
637 } 637 }
638 index++; 638 index++;
639 if (index < preTest.children.length) 639 if (index < preTest.childElementCount)
640 { 640 {
641 // More to process 641 // More to process
642 var child = preTest.children[index]; 642 var child = $(preTest).children()[index];
643 if (child.nodeName == 'statement') 643 if (child.nodeName == 'statement')
644 { 644 {
645 preTestOption.innerHTML = '<span>'+child.innerHTML+'</span>'; 645 preTestOption.innerHTML = '<span>'+child.textContent+'</span>';
646 } else if (child.nodeName == 'question') 646 } else if (child.nodeName == 'question')
647 { 647 {
648 var textHold = document.createElement('span'); 648 var textHold = document.createElement('span');
649 textHold.innerHTML = child.innerHTML; 649 textHold.innerHTML = child.textContent;
650 var textEnter = document.createElement('textarea'); 650 var textEnter = document.createElement('textarea');
651 textEnter.id = child.attributes['id'].value + 'response'; 651 textEnter.id = child.attributes['id'].value + 'response';
652 var br = document.createElement('br'); 652 var br = document.createElement('br');
653 preTestOption.innerHTML = null; 653 preTestOption.innerHTML = null;
654 preTestOption.appendChild(textHold); 654 preTestOption.appendChild(textHold);
749 // Check if we have any post tests to perform 749 // Check if we have any post tests to perform
750 var postXML = $(testXMLSetups[testId]).find('PostTest')[0]; 750 var postXML = $(testXMLSetups[testId]).find('PostTest')[0];
751 if (postXML == undefined) { 751 if (postXML == undefined) {
752 testEnded(testId); 752 testEnded(testId);
753 } 753 }
754 else if (postXML.children.length > 0) 754 else if (postXML.childElementCount > 0)
755 { 755 {
756 currentState = 'testRunPost-'+testId; 756 currentState = 'testRunPost-'+testId;
757 showPopup(); 757 showPopup();
758 preTestPopupStart(postXML); 758 preTestPopupStart(postXML);
759 } 759 }