# HG changeset patch # User Nicholas Jillings # Date 1463747366 -3600 # Node ID 8696696f3a791afec53feb728cf185e8dc8c1d20 # Parent c3b1be14aca58826f1fd5631f82a946467380af0# Parent a7182dbc7fd4d8d507dc1f64f60ba49440685d62 Merge branch 'Dev_main' diff -r c3b1be14aca5 -r 8696696f3a79 interfaces/AB.js --- a/interfaces/AB.js Thu May 19 13:10:32 2016 +0100 +++ b/interfaces/AB.js Fri May 20 13:29:26 2016 +0100 @@ -5,7 +5,7 @@ // Get the dimensions of the screen available to the page var width = window.innerWidth; var height = window.innerHeight; - interfaceContext.insertPoint.innerHTML = null; // Clear the current schema + interfaceContext.insertPoint.innerHTML = ""; // Clear the current schema // Custom comparator Object Interface.prototype.comparator = null; @@ -325,7 +325,7 @@ }; this.boxHolders = document.getElementById('box-holders'); - this.boxHolders.innerHTML = null; + this.boxHolders.innerHTML = ""; this.comparators = []; this.selected = null; diff -r c3b1be14aca5 -r 8696696f3a79 interfaces/ABX.js --- a/interfaces/ABX.js Thu May 19 13:10:32 2016 +0100 +++ b/interfaces/ABX.js Fri May 20 13:29:26 2016 +0100 @@ -10,7 +10,7 @@ // Use this to do any one-time page / element construction. For instance, placing any stationary text objects, // holding div's, or setting up any nodes which are present for the entire test sequence - interfaceContext.insertPoint.innerHTML = null; // Clear the current schema + interfaceContext.insertPoint.innerHTML = ""; // Clear the current schema Interface.prototype.checkScaleRange = function(min, max) { var page = testState.getCurrentTestPage(); @@ -126,7 +126,7 @@ function loadTest(page) { // Called each time a new test page is to be build. The page specification node is the only item passed in - document.getElementById('box-holders').innerHTML = null; + document.getElementById('box-holders').innerHTML = ""; var interfaceObj = page.interfaces; if (interfaceObj.length > 1) diff -r c3b1be14aca5 -r 8696696f3a79 interfaces/ape.js --- a/interfaces/ape.js Thu May 19 13:10:32 2016 +0100 +++ b/interfaces/ape.js Fri May 20 13:29:26 2016 +0100 @@ -266,7 +266,7 @@ feedbackHolder.id = 'feedbackHolder'; testContent.style.zIndex = 1; - interfaceContext.insertPoint.innerHTML = null; // Clear the current schema + interfaceContext.insertPoint.innerHTML = ""; // Clear the current schema // Inject into HTML testContent.appendChild(title); // Insert the title @@ -291,8 +291,8 @@ var feedbackHolder = document.getElementById('feedbackHolder'); var sliderHolder = document.getElementById('slider-holder'); - feedbackHolder.innerHTML = null; - sliderHolder.innerHTML = null; + feedbackHolder.innerHTML = ""; + sliderHolder.innerHTML = ""; // Delete outside reference var outsideReferenceHolder = document.getElementById('outside-reference'); diff -r c3b1be14aca5 -r 8696696f3a79 interfaces/discrete.js --- a/interfaces/discrete.js Thu May 19 13:10:32 2016 +0100 +++ b/interfaces/discrete.js Fri May 20 13:29:26 2016 +0100 @@ -92,7 +92,7 @@ feedbackHolder.id = 'feedbackHolder'; testContent.style.zIndex = 1; - interfaceContext.insertPoint.innerHTML = null; // Clear the current schema + interfaceContext.insertPoint.innerHTML = ""; // Clear the current schema // Inject into HTML testContent.appendChild(title); // Insert the title @@ -113,7 +113,7 @@ var id = page.id; var feedbackHolder = document.getElementById('feedbackHolder'); - feedbackHolder.innerHTML = null; + feedbackHolder.innerHTML = ""; var interfaceObj = page.interfaces; if (interfaceObj.length > 1) { @@ -170,7 +170,7 @@ } var sliderBox = document.getElementById('slider-holder'); - sliderBox.innerHTML = null; + sliderBox.innerHTML = ""; var commentBoxPrefix = "Comment on track"; if (interfaceObj.commentBoxPrefix != undefined) { @@ -405,9 +405,15 @@ var numObj = document.getElementsByClassName('track-slider').length; var totalHeight = (numObj * 66)-30; document.getElementById('scale-holder').style.width = window.innerWidth-220 + 'px'; + // Cheers edge for making me delete a canvas every resize. var canvas = document.getElementById('scale-canvas'); - canvas.width = window.innerWidth-520; - canvas.height = totalHeight; + var new_canvas = document.createElement("canvas"); + new_canvas.id = 'scale-canvas'; + new_canvas.style.marginLeft = "150px"; + canvas.parentElement.appendChild(new_canvas); + canvas.parentElement.removeChild(canvas); + new_canvas.width = window.innerWidth-520; + new_canvas.height = totalHeight; for (var i in audioEngineContext.audioObjects) { if (audioEngineContext.audioObjects[i].specification.type != 'outside-reference'){ @@ -431,7 +437,7 @@ var height = canvas.height; var width = canvas.width; var textHolder = document.getElementById('scale-text-holder'); - textHolder.innerHTML = null; + textHolder.innerHTML = ""; ctx.fillStyle = "#000000"; ctx.setLineDash([1,4]); for (var scale of scales) diff -r c3b1be14aca5 -r 8696696f3a79 interfaces/horizontal-sliders.js --- a/interfaces/horizontal-sliders.js Thu May 19 13:10:32 2016 +0100 +++ b/interfaces/horizontal-sliders.js Fri May 20 13:29:26 2016 +0100 @@ -92,7 +92,7 @@ feedbackHolder.id = 'feedbackHolder'; testContent.style.zIndex = 1; - interfaceContext.insertPoint.innerHTML = null; // Clear the current schema + interfaceContext.insertPoint.innerHTML = ""; // Clear the current schema // Inject into HTML testContent.appendChild(title); // Insert the title @@ -113,7 +113,7 @@ var id = page.id; var feedbackHolder = document.getElementById('feedbackHolder'); - feedbackHolder.innerHTML = null; + feedbackHolder.innerHTML = ""; var interfaceObj = page.interfaces; if (interfaceObj.length > 1) @@ -171,7 +171,7 @@ } var sliderBox = document.getElementById('slider-holder'); - sliderBox.innerHTML = null; + sliderBox.innerHTML = ""; var commentBoxPrefix = "Comment on track"; if (interfaceObj.commentBoxPrefix != undefined) { @@ -359,9 +359,15 @@ var numObj = document.getElementsByClassName('track-slider').length; var totalHeight = (numObj * 125)-25; document.getElementById('scale-holder').style.width = window.innerWidth-220 + 'px'; + // Cheers edge for making me delete a canvas every resize. var canvas = document.getElementById('scale-canvas'); - canvas.width = window.innerWidth-420; - canvas.height = totalHeight; + var new_canvas = document.createElement("canvas"); + new_canvas.id = 'scale-canvas'; + new_canvas.style.marginLeft = "100px"; + canvas.parentElement.appendChild(new_canvas); + canvas.parentElement.removeChild(canvas); + new_canvas.width = window.innerWidth-420; + new_canvas.height = totalHeight; for (var i in audioEngineContext.audioObjects) { if (audioEngineContext.audioObjects[i].specification.type != 'outside-reference'){ @@ -384,7 +390,7 @@ var height = canvas.height; var width = canvas.width; var textHolder = document.getElementById('scale-text-holder'); - textHolder.innerHTML = null; + textHolder.innerHTML = ""; ctx.fillStyle = "#000000"; ctx.setLineDash([1,4]); for (var scale of scales) diff -r c3b1be14aca5 -r 8696696f3a79 interfaces/mushra.css --- a/interfaces/mushra.css Thu May 19 13:10:32 2016 +0100 +++ b/interfaces/mushra.css Fri May 20 13:29:26 2016 +0100 @@ -101,6 +101,13 @@ border: 1px solid #000; } +input[type=range]::-ms-track { + cursor: pointer; + background: #fff; + border-radius: 4px; + border: 1px solid #000; +} + input.track-slider-not-moved[type=range]::-webkit-slider-runnable-track { background: #aaa; } @@ -123,6 +130,16 @@ margin-left: -4px; } +input[type=range]::-ms-thumb { + cursor: pointer; + margin-top: -1px; + margin-left: -4px; +} + +input[type=range]::-ms-tooltip { + visibility:hidden; +} + div#page-count { float: left; margin: 0px 5px; diff -r c3b1be14aca5 -r 8696696f3a79 interfaces/mushra.js --- a/interfaces/mushra.js Thu May 19 13:10:32 2016 +0100 +++ b/interfaces/mushra.js Fri May 20 13:29:26 2016 +0100 @@ -94,7 +94,7 @@ feedbackHolder.id = 'feedbackHolder'; testContent.style.zIndex = 1; - interfaceContext.insertPoint.innerHTML = null; // Clear the current schema + interfaceContext.insertPoint.innerHTML = ""; // Clear the current schema // Inject into HTML testContent.appendChild(title); // Insert the title @@ -114,7 +114,7 @@ var id = audioHolderObject.id; var feedbackHolder = document.getElementById('feedbackHolder'); - feedbackHolder.innerHTML = null; + feedbackHolder.innerHTML = ""; var interfaceObj = audioHolderObject.interfaces; if (interfaceObj.length > 1) { @@ -170,7 +170,7 @@ } var sliderBox = document.getElementById('slider-holder'); - sliderBox.innerHTML = null; + sliderBox.innerHTML = ""; var commentBoxPrefix = "Comment on track"; if (interfaceObj.commentBoxPrefix != undefined) { @@ -390,9 +390,14 @@ } document.getElementById('scale-holder').style.marginLeft = (diff-100) + 'px'; document.getElementById('scale-text-holder').style.height = window.innerHeight-194 + 'px'; + // Cheers edge for making me delete a canvas every resize. var canvas = document.getElementById('scale-canvas'); - canvas.width = totalWidth; - canvas.height = window.innerHeight-194; + var new_canvas = document.createElement("canvas"); + new_canvas.id = 'scale-canvas'; + canvas.parentElement.appendChild(new_canvas); + canvas.parentElement.removeChild(canvas); + new_canvas.width = totalWidth; + new_canvas.height = window.innerHeight-194; drawScale(); } @@ -407,9 +412,10 @@ var ctx = canvas.getContext("2d"); var height = canvas.height; var width = canvas.width; + ctx.clearRect(0,0,canvas.width,canvas.height); var draw_heights = [24, height-34]; var textHolder = document.getElementById('scale-text-holder'); - textHolder.innerHTML = null; + textHolder.innerHTML = ""; var lastHeight = 0; for (var scale of scales) { diff -r c3b1be14aca5 -r 8696696f3a79 js/core.js --- a/js/core.js Thu May 19 13:10:32 2016 +0100 +++ b/js/core.js Fri May 20 13:29:26 2016 +0100 @@ -562,7 +562,13 @@ } function randomString(length) { - return Math.round((Math.pow(36, length + 1) - Math.random() * Math.pow(36, length))).toString(36).slice(1); + var str = "" + for (var i=0; i 0){ - if (xml.getAllElementsByTagName("state")[0].textContent == "OK") { + if (this.request.response.length == 0) { + console.log("Error: Server did not respond"); + return; + } + if(xml.getElementsByTagName("state").length > 0){ + if (xml.getElementsByTagName("state")[0].textContent == "OK") { this.key = xml.getAllElementsByTagName("key")[0].textContent; this.parent.root.setAttribute("key",this.key); this.parent.root.setAttribute("state","empty"); diff -r c3b1be14aca5 -r 8696696f3a79 js/specification.js --- a/js/specification.js Thu May 19 13:10:32 2016 +0100 +++ b/js/specification.js Fri May 20 13:29:26 2016 +0100 @@ -1,15 +1,25 @@ function Specification() { // Handles the decoding of the project specification XML into a simple JavaScript Object. + // attributes this.interface = null; this.projectReturn = null; this.returnURL = null; this.randomiseOrder = null; - this.testPages = null; + this.poolSize = null; + this.loudness = null; + this.sampleRate = null; + this.calibration = null; + this.crossFade = null; + this.preSilence = null; + this.postSilence = null; + + // nodes + this.metrics = null; + this.preTest = undefined; + this.postTest = undefined; this.pages = []; - this.metrics = null; this.interfaces = null; - this.loudness = null; this.errors = []; this.schema = null; this.exitText = "Thank you."; @@ -75,9 +85,8 @@ var schemaSetup = this.schema.getAllElementsByName('setup')[0]; // First decode the attributes var attributes = schemaSetup.getAllElementsByTagName('xs:attribute'); - for (var i in attributes) + for (var i=0; i") file.close(); @@ -136,7 +139,7 @@ varLen = int(self.headers['Content-Length']) postVars = self.rfile.read(varLen) print("Saving file key "+key) - file = open('../saves/save-'+key+'.xml','w') + file = open('../saves/save-'+key+'.xml','wb') file.write(postVars) file.close() try: @@ -149,7 +152,11 @@ self.send_response(200) self.send_header("Content-type", "text/xml") self.end_headers() - self.wfile.write('OK"saves/'+curFileName+'"') + reply = 'OK"saves/'+curFileName+'"' + if sys.version_info[0] == 2: + self.wfile.write(reply) + elif sys.version_info[0] == 3: + self.wfile.write(bytes(reply, "utf-8")) curSaveIndex += 1 curFileName = 'test-'+str(curSaveIndex)+'.xml'