comparison interfaces/horizontal-sliders.js @ 3008:166c5aef020c

Add sort to horizontal #119
author Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk>
date Thu, 03 Aug 2017 15:08:30 +0200
parents 97a52e326464
children 1620cbee9111
comparison
equal deleted inserted replaced
3007:37923d45f298 3008:166c5aef020c
60 var submit = document.createElement("button"); 60 var submit = document.createElement("button");
61 submit.innerHTML = 'Next'; 61 submit.innerHTML = 'Next';
62 submit.onclick = buttonSubmitClick; 62 submit.onclick = buttonSubmitClick;
63 submit.id = 'submit-button'; 63 submit.id = 'submit-button';
64 submit.style.float = 'left'; 64 submit.style.float = 'left';
65
66 // Create the sort button
67 var sort = document.createElement("button");
68 sort.id = "sort-fragments";
69 sort.textContent = "Sort";
70 sort.style.display = "inline-block";
71 sort.style.visibility = "hidden";
72 sort.onclick = buttonSortFragmentClick;
73
65 // Append the interface buttons into the interfaceButtons object. 74 // Append the interface buttons into the interfaceButtons object.
66 interfaceButtons.appendChild(playback); 75 interfaceButtons.appendChild(playback);
67 interfaceButtons.appendChild(submit); 76 interfaceButtons.appendChild(submit);
77 interfaceButtons.appendChild(sort);
78
68 79
69 // Create outside reference holder 80 // Create outside reference holder
70 var outsideRef = document.createElement("div"); 81 var outsideRef = document.createElement("div");
71 outsideRef.id = "outside-reference-holder"; 82 outsideRef.id = "outside-reference-holder";
72 83
224 } 235 }
225 break; 236 break;
226 case "comments": 237 case "comments":
227 interfaceContext.commentBoxes.showCommentBoxes(feedbackHolder, true); 238 interfaceContext.commentBoxes.showCommentBoxes(feedbackHolder, true);
228 break; 239 break;
240 case "fragmentSort":
241 var button = document.getElementById('sort-fragments');
242 button.style.visibility = "visible";
243 break;
229 } 244 }
230 } 245 }
231 }); 246 });
232 // Auto-align 247 // Auto-align
233 resizeWindow(null); 248 resizeWindow(null);
417 text.style.width = Math.ceil($(text).width()) + 'px'; 432 text.style.width = Math.ceil($(text).width()) + 'px';
418 text.style.left = (posPix + 100 - ($(text).width() / 2)) + 'px'; 433 text.style.left = (posPix + 100 - ($(text).width() / 2)) + 'px';
419 }); 434 });
420 } 435 }
421 436
437 function buttonSortFragmentClick() {
438 var sortIndex = interfaceContext.sortFragmentsByScore();
439 var sliderBox = document.getElementById("slider-holder");
440 var nodes = audioEngineContext.audioObjects.filter(function (ao) {
441 return ao.specification.type !== "outside-reference";
442 });
443 var i;
444 nodes.forEach(function (ao) {
445 sliderBox.removeChild(ao.interfaceDOM.holder);
446 });
447 for (i = 0; i < nodes.length; i++) {
448 var j = sortIndex[i];
449 sliderBox.appendChild(nodes[j].interfaceDOM.holder);
450 }
451 }
452
422 function buttonSubmitClick() // TODO: Only when all songs have been played! 453 function buttonSubmitClick() // TODO: Only when all songs have been played!
423 { 454 {
424 var checks = testState.currentStateMap.interfaces[0].options, 455 var checks = testState.currentStateMap.interfaces[0].options,
425 canContinue = true; 456 canContinue = true;
426 457