Mercurial > hg > webaudioevaluationtool
comparison interfaces/discrete.js @ 2651:22efb2d04bc9
#6: Added for rest
author | Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk> |
---|---|
date | Thu, 19 Jan 2017 16:44:47 +0000 |
parents | 342ef7948c47 |
children | 6350ae016862 |
comparison
equal
deleted
inserted
replaced
2650:41b7fcd245da | 2651:22efb2d04bc9 |
---|---|
118 // Called each time a new test page is to be build. The page specification node is the only item passed in | 118 // Called each time a new test page is to be build. The page specification node is the only item passed in |
119 var id = page.id; | 119 var id = page.id; |
120 | 120 |
121 var feedbackHolder = document.getElementById('feedbackHolder'); | 121 var feedbackHolder = document.getElementById('feedbackHolder'); |
122 feedbackHolder.innerHTML = ""; | 122 feedbackHolder.innerHTML = ""; |
123 var interfaceObj = page.interfaces; | 123 var interfaceObj = interfaceContext.getCombinedInterfaces(page); |
124 if (interfaceObj.length > 1) { | 124 if (interfaceObj.length > 1) { |
125 console.log("WARNING - This interface only supports one <interface> node per page. Using first interface node"); | 125 console.log("WARNING - This interface only supports one <interface> node per page. Using first interface node"); |
126 } | 126 } |
127 interfaceObj = interfaceObj[0]; | 127 interfaceObj = interfaceObj[0]; |
128 | 128 |
145 if (interfaceObj.commentBoxPrefix != undefined) { | 145 if (interfaceObj.commentBoxPrefix != undefined) { |
146 commentBoxPrefix = interfaceObj.commentBoxPrefix; | 146 commentBoxPrefix = interfaceObj.commentBoxPrefix; |
147 } | 147 } |
148 var loopPlayback = page.loop; | 148 var loopPlayback = page.loop; |
149 | 149 |
150 for (var option of interfaceObj.options) { | |
151 if (option.type == "show") { | |
152 switch (option.name) { | |
153 case "playhead": | |
154 var playbackHolder = document.getElementById('playback-holder'); | |
155 if (playbackHolder == null) { | |
156 playbackHolder = document.createElement('div'); | |
157 playbackHolder.style.width = "100%"; | |
158 playbackHolder.align = 'center'; | |
159 playbackHolder.appendChild(interfaceContext.playhead.object); | |
160 feedbackHolder.appendChild(playbackHolder); | |
161 } | |
162 break; | |
163 case "page-count": | |
164 var pagecountHolder = document.getElementById('page-count'); | |
165 if (pagecountHolder == null) { | |
166 pagecountHolder = document.createElement('div'); | |
167 pagecountHolder.id = 'page-count'; | |
168 } | |
169 pagecountHolder.innerHTML = '<span>Page ' + (testState.stateIndex + 1) + ' of ' + testState.stateMap.length + '</span>'; | |
170 var inject = document.getElementById('interface-buttons'); | |
171 inject.appendChild(pagecountHolder); | |
172 break; | |
173 case "volume": | |
174 if (document.getElementById('master-volume-holder') == null) { | |
175 feedbackHolder.appendChild(interfaceContext.volume.object); | |
176 } | |
177 break; | |
178 case "comments": | |
179 interfaceContext.commentBoxes.showCommentBoxes(feedbackHolder, true); | |
180 break; | |
181 } | |
182 } | |
183 } | |
184 | |
150 // Find all the audioElements from the audioHolder | 185 // Find all the audioElements from the audioHolder |
151 var index = 0; | 186 var index = 0; |
152 var interfaceScales = testState.currentStateMap.interfaces[0].scales; | 187 var interfaceScales = page.interfaces[0].scales; |
153 var labelType = page.label; | 188 var labelType = page.label; |
154 if (labelType == "default") { | 189 if (labelType == "default") { |
155 labelType = "number"; | 190 labelType = "number"; |
156 } | 191 } |
157 $(page.audioElements).each(function (pageIndex, element) { | 192 $(page.audioElements).each(function (pageIndex, element) { |
172 interfaceContext.commentBoxes.createCommentBox(audioObject); | 207 interfaceContext.commentBoxes.createCommentBox(audioObject); |
173 index += 1; | 208 index += 1; |
174 } | 209 } |
175 | 210 |
176 }); | 211 }); |
177 | |
178 var interfaceOptions = specification.interfaces.options.concat(interfaceObj.options); | |
179 for (var option of interfaceOptions) { | |
180 if (option.type == "show") { | |
181 switch (option.name) { | |
182 case "playhead": | |
183 var playbackHolder = document.getElementById('playback-holder'); | |
184 if (playbackHolder == null) { | |
185 playbackHolder = document.createElement('div'); | |
186 playbackHolder.style.width = "100%"; | |
187 playbackHolder.align = 'center'; | |
188 playbackHolder.appendChild(interfaceContext.playhead.object); | |
189 feedbackHolder.appendChild(playbackHolder); | |
190 } | |
191 break; | |
192 case "page-count": | |
193 var pagecountHolder = document.getElementById('page-count'); | |
194 if (pagecountHolder == null) { | |
195 pagecountHolder = document.createElement('div'); | |
196 pagecountHolder.id = 'page-count'; | |
197 } | |
198 pagecountHolder.innerHTML = '<span>Page ' + (testState.stateIndex + 1) + ' of ' + testState.stateMap.length + '</span>'; | |
199 var inject = document.getElementById('interface-buttons'); | |
200 inject.appendChild(pagecountHolder); | |
201 break; | |
202 case "volume": | |
203 if (document.getElementById('master-volume-holder') == null) { | |
204 feedbackHolder.appendChild(interfaceContext.volume.object); | |
205 } | |
206 break; | |
207 case "comments": | |
208 interfaceContext.commentBoxes.showCommentBoxes(feedbackHolder, true); | |
209 break; | |
210 } | |
211 } | |
212 } | |
213 | 212 |
214 $(page.commentQuestions).each(function (index, element) { | 213 $(page.commentQuestions).each(function (index, element) { |
215 var node = interfaceContext.createCommentQuestion(element); | 214 var node = interfaceContext.createCommentQuestion(element); |
216 feedbackHolder.appendChild(node.holder); | 215 feedbackHolder.appendChild(node.holder); |
217 }); | 216 }); |
441 } | 440 } |
442 } | 441 } |
443 | 442 |
444 function buttonSubmitClick() // TODO: Only when all songs have been played! | 443 function buttonSubmitClick() // TODO: Only when all songs have been played! |
445 { | 444 { |
446 var checks = []; | 445 var checks = testState.currentStateMap.interfaces[0].options, |
447 checks = checks.concat(testState.currentStateMap.interfaces[0].options); | 446 canContinue = true; |
448 checks = checks.concat(specification.interfaces.options); | |
449 var canContinue = true; | |
450 | 447 |
451 // Check that the anchor and reference objects are correctly placed | 448 // Check that the anchor and reference objects are correctly placed |
452 if (interfaceContext.checkHiddenAnchor() == false) { | 449 if (interfaceContext.checkHiddenAnchor() == false) { |
453 return; | 450 return; |
454 } | 451 } |