changeset 2159:c9b4baa764dc

Test create fixes for #1594. Styling of survey entry options. Fixed survey entry leak. Removed "synchronous" attribute from page for now.
author Nicholas Jillings <nickjillings@users.noreply.github.com>
date Mon, 14 Mar 2016 13:36:43 +0000
parents b4d6552aecb7
children 8ca724deb572
files test-schema.xsd test_create/style.css test_create/test_core.js
diffstat 3 files changed, 37 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/test-schema.xsd	Mon Mar 14 12:34:36 2016 +0000
+++ b/test-schema.xsd	Mon Mar 14 13:36:43 2016 +0000
@@ -70,7 +70,6 @@
       <xs:attribute name="randomiseOrder" type="xs:boolean" default="false"/>
       <xs:attribute name="repeatCount" type="xs:nonNegativeInteger" default="0"/>
       <xs:attribute name="loop" type="xs:boolean" default="false"/>
-      <xs:attribute name="synchronous" type="xs:boolean" default="false"/>
       <xs:attribute name="showElementComments" type="xs:boolean" default="false"/>
       <xs:attribute name="loudness" type="xs:nonPositiveInteger" use="optional"/>
       <xs:attribute name="label" use="optional" default="default">
--- a/test_create/style.css	Mon Mar 14 12:34:36 2016 +0000
+++ b/test_create/style.css	Mon Mar 14 13:36:43 2016 +0000
@@ -132,4 +132,17 @@
 }
 input:disabled+label{
     text-decoration: line-through;
+}
+
+div.survey-entry-attribute {
+    margin: 10px 0px;
+    border: 1px gray solid;
+    border-radius: 5px;
+    height: 40px;
+    line-height: 40px;
+    padding: 0px 10px;
+}
+
+div.survey-entry-attribute span{
+    margin-right: 10px;
 }
\ No newline at end of file
--- a/test_create/test_core.js	Mon Mar 14 12:34:36 2016 +0000
+++ b/test_create/test_core.js	Mon Mar 14 13:36:43 2016 +0000
@@ -728,10 +728,12 @@
                 this.dynamic.innerHTML = null;
                 var statement = document.createElement("div");
                 var statementText = document.createElement("span");
-                var statementEntry = document.createElement("textarea");
+                var statementEntry = document.createElement("input");
                 statement.appendChild(statementText);
                 statement.appendChild(statementEntry);
+                statement.className = "survey-entry-attribute";
                 statementText.textContent = "Statement/Question";
+                statementEntry.style.width = "500px";
                 statementEntry.addEventListener("change",this,false);
                 statementEntry.setAttribute("name","statement");
                 statementEntry.value = this.option.statement;
@@ -742,6 +744,7 @@
                 var idEntry = document.createElement("input");
                 id.appendChild(idText);
                 id.appendChild(idEntry);
+                id.className = "survey-entry-attribute";
                 idText.textContent = "ID: ";
                 idEntry.addEventListener("change",this,false);
                 idEntry.setAttribute("name","id");
@@ -776,6 +779,7 @@
                         boxsizeText.textContent = "Entry Size: ";
                         boxsize.appendChild(boxsizeText);
                         boxsize.appendChild(boxsizeSelect);
+                        boxsize.className = "survey-entry-attribute";
                         this.dynamic.appendChild(boxsize);
                         
                         var mandatory = document.createElement("div");
@@ -784,6 +788,7 @@
                         mandatoryText.textContent = "Mandatory: ";
                         mandatory.appendChild(mandatoryText);
                         mandatory.appendChild(mandatoryInput);
+                        mandatory.className = "survey-entry-attribute";
                         mandatoryInput.type = "checkbox";
                         if (this.option.mandatory) {mandatoryInput.checked = true;} else {mandatoryInput.checked = false;}
                         mandatoryInput.setAttribute("name","mandatory");
@@ -799,6 +804,7 @@
                         mandatoryText.textContent = "Mandatory: ";
                         mandatory.appendChild(mandatoryText);
                         mandatory.appendChild(mandatoryInput);
+                        mandatory.className = "survey-entry-attribute";
                         mandatoryInput.type = "checkbox";
                         if (this.option.mandatory) {mandatoryInput.checked = true;} else {mandatoryInput.checked = false;}
                         mandatoryInput.setAttribute("name","mandatory");
@@ -811,6 +817,7 @@
                         minimumText.textContent = "Minimum: ";
                         minimum.appendChild(minimumText);
                         minimum.appendChild(minimumEntry);
+                        minimum.className = "survey-entry-attribute";
                         minimumEntry.type = "number";
                         minimumEntry.setAttribute("name","min");
                         minimumEntry.addEventListener("change",this,false);
@@ -823,6 +830,7 @@
                         maximumText.textContent = "Maximum: ";
                         maximum.appendChild(maximumText);
                         maximum.appendChild(maximumEntry);
+                        maximum.className = "survey-entry-attribute";
                         maximumEntry.type = "number";
                         maximumEntry.setAttribute("name","max");
                         maximumEntry.addEventListener("change",this,false);
@@ -914,23 +922,23 @@
             this.handleEvent = function()
             {
                 var name = event.currentTarget.getAttribute("name");
+                var nodeName = event.currentTarget.nodeName;
+                if (name == "type" && nodeName == "SELECT") {
+                    // If type has changed, we may need to rebuild the entire state node
+                    if (event.currentTarget.value != this.option.name)
+                    {
+                        this.option.type = event.currentTarget.value;
+                        this.generate(this.option,this.parent);
+                    }
+                    return;
+                }
+                var type = event.currentTarget.getAttribute("type");
                 switch(name) {
-                    case "type":
-                        // If type has changed, we may need to rebuild the entire state node
-                        if (event.currentTarget.value != this.option.name)
-                        {
-                            this.option.type = event.currentTarget.value;
-                            this.generate(this.option,this.parent);
-                        }
+                    case "checkbox":
+                        eval("this.option."+name+" = event.currentTarget.checked");
                         break;
-                    case "mandatory":
-                        this.option.mandatory = event.currentTarget.checked;
-                        break;
-                    case "boxsize":
-                        this.option.boxsize = event.currentTarget.value;
-                        break;
-                    case "statement":
-                        this.option.statement = event.currentTarget.value;
+                    default:
+                        eval("this.option."+name+" = event.currentTarget.value");
                         break;
                 }
             }