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 }