comparison test_create/test_core.js @ 1251:ee5f18d2fc47

Test create fixes for #1594. Styling of survey entry options. Fixed survey entry leak. Removed "synchronous" attribute from page for now.
author Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk>
date Mon, 14 Mar 2016 13:36:43 +0000
parents 31d2390b25a6
children 6dbb9c24d53e
comparison
equal deleted inserted replaced
1250:31d2390b25a6 1251:ee5f18d2fc47
726 } 726 }
727 727
728 this.dynamic.innerHTML = null; 728 this.dynamic.innerHTML = null;
729 var statement = document.createElement("div"); 729 var statement = document.createElement("div");
730 var statementText = document.createElement("span"); 730 var statementText = document.createElement("span");
731 var statementEntry = document.createElement("textarea"); 731 var statementEntry = document.createElement("input");
732 statement.appendChild(statementText); 732 statement.appendChild(statementText);
733 statement.appendChild(statementEntry); 733 statement.appendChild(statementEntry);
734 statement.className = "survey-entry-attribute";
734 statementText.textContent = "Statement/Question"; 735 statementText.textContent = "Statement/Question";
736 statementEntry.style.width = "500px";
735 statementEntry.addEventListener("change",this,false); 737 statementEntry.addEventListener("change",this,false);
736 statementEntry.setAttribute("name","statement"); 738 statementEntry.setAttribute("name","statement");
737 statementEntry.value = this.option.statement; 739 statementEntry.value = this.option.statement;
738 this.dynamic.appendChild(statement); 740 this.dynamic.appendChild(statement);
739 741
740 var id = document.createElement("div"); 742 var id = document.createElement("div");
741 var idText = document.createElement("span"); 743 var idText = document.createElement("span");
742 var idEntry = document.createElement("input"); 744 var idEntry = document.createElement("input");
743 id.appendChild(idText); 745 id.appendChild(idText);
744 id.appendChild(idEntry); 746 id.appendChild(idEntry);
747 id.className = "survey-entry-attribute";
745 idText.textContent = "ID: "; 748 idText.textContent = "ID: ";
746 idEntry.addEventListener("change",this,false); 749 idEntry.addEventListener("change",this,false);
747 idEntry.setAttribute("name","id"); 750 idEntry.setAttribute("name","id");
748 idEntry.value = this.option.id; 751 idEntry.value = this.option.id;
749 752
774 var boxsize = document.createElement("div"); 777 var boxsize = document.createElement("div");
775 var boxsizeText = document.createElement("span"); 778 var boxsizeText = document.createElement("span");
776 boxsizeText.textContent = "Entry Size: "; 779 boxsizeText.textContent = "Entry Size: ";
777 boxsize.appendChild(boxsizeText); 780 boxsize.appendChild(boxsizeText);
778 boxsize.appendChild(boxsizeSelect); 781 boxsize.appendChild(boxsizeSelect);
782 boxsize.className = "survey-entry-attribute";
779 this.dynamic.appendChild(boxsize); 783 this.dynamic.appendChild(boxsize);
780 784
781 var mandatory = document.createElement("div"); 785 var mandatory = document.createElement("div");
782 var mandatoryInput = document.createElement("input"); 786 var mandatoryInput = document.createElement("input");
783 var mandatoryText = document.createElement("span"); 787 var mandatoryText = document.createElement("span");
784 mandatoryText.textContent = "Mandatory: "; 788 mandatoryText.textContent = "Mandatory: ";
785 mandatory.appendChild(mandatoryText); 789 mandatory.appendChild(mandatoryText);
786 mandatory.appendChild(mandatoryInput); 790 mandatory.appendChild(mandatoryInput);
791 mandatory.className = "survey-entry-attribute";
787 mandatoryInput.type = "checkbox"; 792 mandatoryInput.type = "checkbox";
788 if (this.option.mandatory) {mandatoryInput.checked = true;} else {mandatoryInput.checked = false;} 793 if (this.option.mandatory) {mandatoryInput.checked = true;} else {mandatoryInput.checked = false;}
789 mandatoryInput.setAttribute("name","mandatory"); 794 mandatoryInput.setAttribute("name","mandatory");
790 mandatoryInput.addEventListener("change",this,false); 795 mandatoryInput.addEventListener("change",this,false);
791 this.dynamic.appendChild(mandatory); 796 this.dynamic.appendChild(mandatory);
797 var mandatoryInput = document.createElement("input"); 802 var mandatoryInput = document.createElement("input");
798 var mandatoryText = document.createElement("span"); 803 var mandatoryText = document.createElement("span");
799 mandatoryText.textContent = "Mandatory: "; 804 mandatoryText.textContent = "Mandatory: ";
800 mandatory.appendChild(mandatoryText); 805 mandatory.appendChild(mandatoryText);
801 mandatory.appendChild(mandatoryInput); 806 mandatory.appendChild(mandatoryInput);
807 mandatory.className = "survey-entry-attribute";
802 mandatoryInput.type = "checkbox"; 808 mandatoryInput.type = "checkbox";
803 if (this.option.mandatory) {mandatoryInput.checked = true;} else {mandatoryInput.checked = false;} 809 if (this.option.mandatory) {mandatoryInput.checked = true;} else {mandatoryInput.checked = false;}
804 mandatoryInput.setAttribute("name","mandatory"); 810 mandatoryInput.setAttribute("name","mandatory");
805 mandatoryInput.addEventListener("change",this,false); 811 mandatoryInput.addEventListener("change",this,false);
806 this.dynamic.appendChild(mandatory); 812 this.dynamic.appendChild(mandatory);
809 var minimumEntry = document.createElement("input"); 815 var minimumEntry = document.createElement("input");
810 var minimumText = document.createElement("span"); 816 var minimumText = document.createElement("span");
811 minimumText.textContent = "Minimum: "; 817 minimumText.textContent = "Minimum: ";
812 minimum.appendChild(minimumText); 818 minimum.appendChild(minimumText);
813 minimum.appendChild(minimumEntry); 819 minimum.appendChild(minimumEntry);
820 minimum.className = "survey-entry-attribute";
814 minimumEntry.type = "number"; 821 minimumEntry.type = "number";
815 minimumEntry.setAttribute("name","min"); 822 minimumEntry.setAttribute("name","min");
816 minimumEntry.addEventListener("change",this,false); 823 minimumEntry.addEventListener("change",this,false);
817 minimumEntry.value = this.option.min; 824 minimumEntry.value = this.option.min;
818 this.dynamic.appendChild(minimum); 825 this.dynamic.appendChild(minimum);
821 var maximumEntry = document.createElement("input"); 828 var maximumEntry = document.createElement("input");
822 var maximumText = document.createElement("span"); 829 var maximumText = document.createElement("span");
823 maximumText.textContent = "Maximum: "; 830 maximumText.textContent = "Maximum: ";
824 maximum.appendChild(maximumText); 831 maximum.appendChild(maximumText);
825 maximum.appendChild(maximumEntry); 832 maximum.appendChild(maximumEntry);
833 maximum.className = "survey-entry-attribute";
826 maximumEntry.type = "number"; 834 maximumEntry.type = "number";
827 maximumEntry.setAttribute("name","max"); 835 maximumEntry.setAttribute("name","max");
828 maximumEntry.addEventListener("change",this,false); 836 maximumEntry.addEventListener("change",this,false);
829 maximumEntry.value = this.option.max; 837 maximumEntry.value = this.option.max;
830 this.dynamic.appendChild(maximum); 838 this.dynamic.appendChild(maximum);
912 } 920 }
913 } 921 }
914 this.handleEvent = function() 922 this.handleEvent = function()
915 { 923 {
916 var name = event.currentTarget.getAttribute("name"); 924 var name = event.currentTarget.getAttribute("name");
925 var nodeName = event.currentTarget.nodeName;
926 if (name == "type" && nodeName == "SELECT") {
927 // If type has changed, we may need to rebuild the entire state node
928 if (event.currentTarget.value != this.option.name)
929 {
930 this.option.type = event.currentTarget.value;
931 this.generate(this.option,this.parent);
932 }
933 return;
934 }
935 var type = event.currentTarget.getAttribute("type");
917 switch(name) { 936 switch(name) {
918 case "type": 937 case "checkbox":
919 // If type has changed, we may need to rebuild the entire state node 938 eval("this.option."+name+" = event.currentTarget.checked");
920 if (event.currentTarget.value != this.option.name)
921 {
922 this.option.type = event.currentTarget.value;
923 this.generate(this.option,this.parent);
924 }
925 break; 939 break;
926 case "mandatory": 940 default:
927 this.option.mandatory = event.currentTarget.checked; 941 eval("this.option."+name+" = event.currentTarget.value");
928 break;
929 case "boxsize":
930 this.option.boxsize = event.currentTarget.value;
931 break;
932 case "statement":
933 this.option.statement = event.currentTarget.value;
934 break; 942 break;
935 } 943 }
936 } 944 }
937 this.continue = function() 945 this.continue = function()
938 { 946 {