# HG changeset patch # User Nicholas Jillings # Date 1458654299 0 # Node ID 2dd5f7071e3f6f1334d0017178dd9e14e04356c0 # Parent aebb9754d49100df29d268861bbe61d87a69f22e Implemented Bug/Feature #1649. Edit the exit text by modifying , see mushra_example.xml for example. diff -r aebb9754d491 -r 2dd5f7071e3f core.js --- a/core.js Tue Mar 22 12:35:48 2016 +0000 +++ b/core.js Tue Mar 22 13:44:59 2016 +0000 @@ -416,7 +416,7 @@ if (response.getAttribute("state") == "OK") { var file = response.getElementsByTagName("file")[0]; console.log("Save: OK, written "+file.getAttribute("bytes")+"B"); - popup.popupContent.textContent = "Thank you. Your session has been saved."; + popup.popupContent.textContent = specification.exitText; } else { var message = response.getElementsByTagName("message"); console.log("Save: Error! "+message.textContent); @@ -1776,6 +1776,7 @@ this.loudness = null; this.errors = []; this.schema = null; + this.exitText = "Thank you."; this.processAttribute = function(attribute,schema,schemaRoot) { @@ -1844,6 +1845,11 @@ } } + + var exitTextNode = setupNode.getElementsByTagName('exitText'); + if (exitTextNode.length == 1) { + this.exitText = exitTextNode[0].textContent; + } this.metrics = new this.metricNode(); @@ -1917,6 +1923,11 @@ } root.appendChild(setup); // Survey node + if (this.exitText != null) { + var exitTextNode = RootDocument.createElement('exitText'); + exitTextNode.textContent = this.exitText; + setup.appendChild(exitTextNode); + } setup.appendChild(this.preTest.encode(RootDocument)); setup.appendChild(this.postTest.encode(RootDocument)); setup.appendChild(this.metrics.encode(RootDocument)); diff -r aebb9754d491 -r 2dd5f7071e3f example_eval/mushra_example.xml --- a/example_eval/mushra_example.xml Tue Mar 22 12:35:48 2016 +0000 +++ b/example_eval/mushra_example.xml Tue Mar 22 13:44:59 2016 +0000 @@ -1,6 +1,7 @@ + Thank you for looking at WAET. You can modify the successful completion text as well! Please enter your name. diff -r aebb9754d491 -r 2dd5f7071e3f test_create/test_core.js --- a/test_create/test_core.js Tue Mar 22 12:35:48 2016 +0000 +++ b/test_create/test_core.js Tue Mar 22 13:44:59 2016 +0000 @@ -1336,6 +1336,29 @@ this.setupDOM.attributes.push(attrObject); } + // Build the exit Text node + var exitText = new this.createGeneralNodeDOM("Exit Text","exit-test",this.setupDOM); + exitText.rootDOM.removeChild(exitText.attributeDOM); + this.setupDOM.children.push(exitText); + this.setupDOM.childrenDOM.appendChild(exitText.rootDOM); + var obj = { + rootDOM: document.createElement("div"), + labelDOM: document.createElement("label"), + inputDOM: document.createElement("textarea"), + parent: exitText, + specification: specification, + handleEvent: function(event) { + this.specification.exitText = this.inputDOM.value; + } + } + obj.rootDOM.appendChild(obj.labelDOM); + obj.rootDOM.appendChild(obj.inputDOM); + obj.labelDOM.textContent = "Text: "; + obj.inputDOM.value = obj.specification.exitText; + obj.inputDOM.addEventListener("change",obj); + exitText.children.push(obj); + exitText.childrenDOM.appendChild(obj.rootDOM); + // Now we must build the interface Node this.interfaceDOM = new this.interfaceNode(this,specification.interfaces); this.interfaceDOM.build("Interface","setup-interface",this.setupDOM.rootDOM); diff -r aebb9754d491 -r 2dd5f7071e3f test_create/test_create.html --- a/test_create/test_create.html Tue Mar 22 12:35:48 2016 +0000 +++ b/test_create/test_create.html Tue Mar 22 13:44:59 2016 +0000 @@ -19,6 +19,7 @@ this.loudness = null; this.errors = []; this.schema = null; + this.exitText = "Thank you."; this.processAttribute = function(attribute,schema,schemaRoot) { @@ -88,6 +89,11 @@ } + var exitTextNode = setupNode.getElementsByTagName('exitText'); + if (exitTextNode.length == 1) { + this.exitText = exitTextNode[0].textContent; + } + this.metrics = new this.metricNode(); this.metrics.decode(this,setupNode.getElementsByTagName('metric')[0]); @@ -160,6 +166,11 @@ } root.appendChild(setup); // Survey node + if (this.exitText != null) { + var exitTextNode = RootDocument.createElement('exitText'); + exitTextNode.textContent = this.exitText; + setup.appendChild(exitTextNode); + } setup.appendChild(this.preTest.encode(RootDocument)); setup.appendChild(this.postTest.encode(RootDocument)); setup.appendChild(this.metrics.encode(RootDocument));