# HG changeset patch # User Nicholas Jillings # Date 1461834800 -3600 # Node ID e4a2a39838db0cef3b40bfd7d89cd660316e17a0 # Parent f7604317ac271e458d28c5e37242d526d17ed901 Implementation for #38 in master diff -r f7604317ac27 -r e4a2a39838db js/core.js --- a/js/core.js Thu Apr 28 09:57:21 2016 +0100 +++ b/js/core.js Thu Apr 28 10:13:20 2016 +0100 @@ -430,9 +430,14 @@ var xmlDoc = parser.parseFromString(xmlhttp.responseText, "application/xml"); var response = xmlDoc.getElementsByTagName('response')[0]; if (response.getAttribute("state") == "OK") { + window.onbeforeunload = undefined; var file = response.getElementsByTagName("file")[0]; console.log("Save: OK, written "+file.getAttribute("bytes")+"B"); - popup.popupContent.textContent = specification.exitText; + if (typeof specification.returnURL == "string") { + window.location = returnURL; + } else { + popup.popupContent.textContent = specification.exitText; + } } else { var message = response.getElementsByTagName("message"); console.log("Save: Error! "+message.textContent); diff -r f7604317ac27 -r e4a2a39838db js/specification.js --- a/js/specification.js Thu Apr 28 09:57:21 2016 +0100 +++ b/js/specification.js Thu Apr 28 10:13:20 2016 +0100 @@ -2,7 +2,8 @@ // Handles the decoding of the project specification XML into a simple JavaScript Object. this.interface = null; - this.projectReturn = "null"; + this.projectReturn = null; + this.returnURL = null; this.randomiseOrder = null; this.testPages = null; this.pages = []; diff -r f7604317ac27 -r e4a2a39838db test_create/attributes.json --- a/test_create/attributes.json Thu Apr 28 09:57:21 2016 +0100 +++ b/test_create/attributes.json Thu Apr 28 10:13:20 2016 +0100 @@ -3,7 +3,8 @@ "mandatory": "Mandatory", "name": "Name", "interface": "Interface Module", - "projectReturn": "Save URL", + "projectReturn": "Save Return URL", + "returnURL": "On complete redirect URL", "randomiseOrder": "Randomise Order", "testPages": "Test Pages", "loudness": "Target Loudness (LUFS)", diff -r f7604317ac27 -r e4a2a39838db tests/examples/radio_example.xml --- a/tests/examples/radio_example.xml Thu Apr 28 09:57:21 2016 +0100 +++ b/tests/examples/radio_example.xml Thu Apr 28 10:13:20 2016 +0100 @@ -1,6 +1,6 @@ - + testTimer elementTimer diff -r f7604317ac27 -r e4a2a39838db xml/test-schema.xsd --- a/xml/test-schema.xsd Thu Apr 28 09:57:21 2016 +0100 +++ b/xml/test-schema.xsd Thu Apr 28 10:13:20 2016 +0100 @@ -47,6 +47,7 @@ +