Mercurial > hg > webaudioevaluationtool
comparison test_create.html @ 2877:5164a6f53a02
Add basic verification of required entires #76
author | Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk> |
---|---|
date | Wed, 31 May 2017 12:02:56 +0100 |
parents | 88dff8b9247c |
children | 596e83ffc73a |
comparison
equal
deleted
inserted
replaced
2876:88dff8b9247c | 2877:5164a6f53a02 |
---|---|
23 <div id="setupNode" class="node" ng-controller="setup"> | 23 <div id="setupNode" class="node" ng-controller="setup"> |
24 <h2>Setup</h2> | 24 <h2>Setup</h2> |
25 <div class="attributes"> | 25 <div class="attributes"> |
26 <div class="attribute"> | 26 <div class="attribute"> |
27 <span>Interface: </span> | 27 <span>Interface: </span> |
28 <input type="text" ng-model="specification.interface" /> | 28 <input type="text" ng-model="specification.interface" required/> |
29 </div> | 29 </div> |
30 <div class="attribute"> | 30 <div class="attribute"> |
31 <span>Save URL: </span> | 31 <span>Save URL: </span> |
32 <input type="text" ng-model="specification.projectReturn" /> | 32 <input type="text" ng-model="specification.projectReturn" placeholder="save.php" /> |
33 </div> | 33 </div> |
34 <div class="attribute"> | 34 <div class="attribute"> |
35 <span>Exit URL: </span> | 35 <span>Exit URL: </span> |
36 <input type="text" ng-model="specification.returnURL" /> | 36 <input type="text" ng-model="specification.returnURL" /> |
37 </div> | 37 </div> |
137 <option value="youtube">YouTube</option> | 137 <option value="youtube">YouTube</option> |
138 </select> | 138 </select> |
139 </div> | 139 </div> |
140 <div class="attribute"> | 140 <div class="attribute"> |
141 <span>Unique Survey Entry ID:</span> | 141 <span>Unique Survey Entry ID:</span> |
142 <input type="text" ng-model="opt.id" /> | 142 <input type="text" ng-model="opt.id" required/> |
143 </div> | 143 </div> |
144 <div class="attribute"> | 144 <div class="attribute"> |
145 <span>Entry Name:</span> | 145 <span>Entry Name:</span> |
146 <input type="text" ng-model="opt.name" /> | 146 <input type="text" ng-model="opt.name" /> |
147 </div> | 147 </div> |
197 <div class="attribute"> | 197 <div class="attribute"> |
198 <button type="button" class="btn btn-default" ng-click="removeOption(option);">Remove</button> | 198 <button type="button" class="btn btn-default" ng-click="removeOption(option);">Remove</button> |
199 </div> | 199 </div> |
200 <div class="attribute"> | 200 <div class="attribute"> |
201 <span>Name: </span> | 201 <span>Name: </span> |
202 <input type="text" ng-model="option.name" /> | 202 <input type="text" ng-model="option.name" required/> |
203 </div> | 203 </div> |
204 <div class="attribute"> | 204 <div class="attribute"> |
205 <span>Displayed Text: </span> | 205 <span>Displayed Text: </span> |
206 <input type="text" ng-model="option.text" /> | 206 <input type="text" ng-model="option.text" required/> |
207 </div> | 207 </div> |
208 </div> | 208 </div> |
209 </div> | 209 </div> |
210 </div> | 210 </div> |
211 <div class="node"> | 211 <div class="node"> |
225 <option value="stringContains">String Contains</option> | 225 <option value="stringContains">String Contains</option> |
226 </select> | 226 </select> |
227 </div> | 227 </div> |
228 <div class="attribute"> | 228 <div class="attribute"> |
229 <span>Value: </span> | 229 <span>Value: </span> |
230 <input type="text" ng-model="condition.value" /> | 230 <input type="text" ng-model="condition.value" required/> |
231 </div> | 231 </div> |
232 <div class="attribute"> | 232 <div class="attribute"> |
233 <span>Jump To On Pass: </span> | 233 <span>Jump To On Pass: </span> |
234 <select ng-model="condition.jumpToOnPass"> | 234 <select ng-model="condition.jumpToOnPass"> |
235 <option value="">None</option> | 235 <option value="">None</option> |
268 <option value="youtube">YouTube</option> | 268 <option value="youtube">YouTube</option> |
269 </select> | 269 </select> |
270 </div> | 270 </div> |
271 <div class="attribute"> | 271 <div class="attribute"> |
272 <span>Unique Survey Entry ID:</span> | 272 <span>Unique Survey Entry ID:</span> |
273 <input type="text" ng-model="opt.id" /> | 273 <input type="text" ng-model="opt.id" required/> |
274 </div> | 274 </div> |
275 <div class="attribute"> | 275 <div class="attribute"> |
276 <span>Entry Name:</span> | 276 <span>Entry Name:</span> |
277 <input type="text" ng-model="opt.name" /> | 277 <input type="text" ng-model="opt.name" /> |
278 </div> | 278 </div> |
328 <div class="attribute"> | 328 <div class="attribute"> |
329 <button type="button" class="btn btn-default" ng-click="removeOption(option);">Remove</button> | 329 <button type="button" class="btn btn-default" ng-click="removeOption(option);">Remove</button> |
330 </div> | 330 </div> |
331 <div class="attribute"> | 331 <div class="attribute"> |
332 <span>Name: </span> | 332 <span>Name: </span> |
333 <input type="text" ng-model="option.name" /> | 333 <input type="text" ng-model="option.name" required/> |
334 </div> | 334 </div> |
335 <div class="attribute"> | 335 <div class="attribute"> |
336 <span>Displayed Text: </span> | 336 <span>Displayed Text: </span> |
337 <input type="text" ng-model="option.text" /> | 337 <input type="text" ng-model="option.text" required/> |
338 </div> | 338 </div> |
339 </div> | 339 </div> |
340 </div> | 340 </div> |
341 </div> | 341 </div> |
342 <div class="node"> | 342 <div class="node"> |
356 <option value="stringContains">String Contains</option> | 356 <option value="stringContains">String Contains</option> |
357 </select> | 357 </select> |
358 </div> | 358 </div> |
359 <div class="attribute"> | 359 <div class="attribute"> |
360 <span>Value: </span> | 360 <span>Value: </span> |
361 <input type="text" ng-model="condition.value" /> | 361 <input type="text" ng-model="condition.value" required/> |
362 </div> | 362 </div> |
363 <div class="attribute"> | 363 <div class="attribute"> |
364 <span>Jump To On Pass: </span> | 364 <span>Jump To On Pass: </span> |
365 <select ng-model="condition.jumpToOnPass"> | 365 <select ng-model="condition.jumpToOnPass"> |
366 <option value="">None</option> | 366 <option value="">None</option> |
434 <h2>Page</h2> | 434 <h2>Page</h2> |
435 <button type="button" class="btn btn-danger" ng-click="removePage(page)">Remove Page</button> | 435 <button type="button" class="btn btn-danger" ng-click="removePage(page)">Remove Page</button> |
436 <div class="attributes"> | 436 <div class="attributes"> |
437 <div class="attribute"> | 437 <div class="attribute"> |
438 <span>Unique ID: </span> | 438 <span>Unique ID: </span> |
439 <input type="text" ng-model="page.id" /> | 439 <input type="text" ng-model="page.id" required/> |
440 </div> | 440 </div> |
441 <div class="attribute"> | 441 <div class="attribute"> |
442 <span>Fragment common-root URL: </span> | 442 <span>Fragment common-root URL: </span> |
443 <input type="text" ng-model="page.hostURL" /> | 443 <input type="text" ng-model="page.hostURL" /> |
444 </div> | 444 </div> |
446 <span>Randomise Fragment Order: </span> | 446 <span>Randomise Fragment Order: </span> |
447 <input type="checkbox" ng-model="page.randomiseOrder" /> | 447 <input type="checkbox" ng-model="page.randomiseOrder" /> |
448 </div> | 448 </div> |
449 <div class="attribute"> | 449 <div class="attribute"> |
450 <span>Repeat Page N-times: </span> | 450 <span>Repeat Page N-times: </span> |
451 <input type="number" ng-model="page.repeatCount" /> | 451 <input type="number" ng-model="page.repeatCount" value="0" step="1" /> |
452 </div> | 452 </div> |
453 <div class="attribute"> | 453 <div class="attribute"> |
454 <span>Loop audio: </span> | 454 <span>Loop audio: </span> |
455 <input type="checkbox" ng-model="page.loop" /> | 455 <input type="checkbox" ng-model="page.loop" /> |
456 </div> | 456 </div> |
549 <option value="youtube">YouTube</option> | 549 <option value="youtube">YouTube</option> |
550 </select> | 550 </select> |
551 </div> | 551 </div> |
552 <div class="attribute"> | 552 <div class="attribute"> |
553 <span>Unique Survey Entry ID:</span> | 553 <span>Unique Survey Entry ID:</span> |
554 <input type="text" ng-model="opt.id" /> | 554 <input type="text" ng-model="opt.id" required/> |
555 </div> | 555 </div> |
556 <div class="attribute"> | 556 <div class="attribute"> |
557 <span>Entry Name:</span> | 557 <span>Entry Name:</span> |
558 <input type="text" ng-model="opt.name" /> | 558 <input type="text" ng-model="opt.name" /> |
559 </div> | 559 </div> |
609 <div class="attribute"> | 609 <div class="attribute"> |
610 <button type="button" class="btn btn-default" ng-click="removeOption(option);">Remove</button> | 610 <button type="button" class="btn btn-default" ng-click="removeOption(option);">Remove</button> |
611 </div> | 611 </div> |
612 <div class="attribute"> | 612 <div class="attribute"> |
613 <span>Name: </span> | 613 <span>Name: </span> |
614 <input type="text" ng-model="option.name" /> | 614 <input type="text" ng-model="option.name" required/> |
615 </div> | 615 </div> |
616 <div class="attribute"> | 616 <div class="attribute"> |
617 <span>Displayed Text: </span> | 617 <span>Displayed Text: </span> |
618 <input type="text" ng-model="option.text" /> | 618 <input type="text" ng-model="option.text" required/> |
619 </div> | 619 </div> |
620 </div> | 620 </div> |
621 </div> | 621 </div> |
622 </div> | 622 </div> |
623 <div class="node"> | 623 <div class="node"> |
637 <option value="stringContains">String Contains</option> | 637 <option value="stringContains">String Contains</option> |
638 </select> | 638 </select> |
639 </div> | 639 </div> |
640 <div class="attribute"> | 640 <div class="attribute"> |
641 <span>Value: </span> | 641 <span>Value: </span> |
642 <input type="text" ng-model="condition.value" /> | 642 <input type="text" ng-model="condition.value" required/> |
643 </div> | 643 </div> |
644 <div class="attribute"> | 644 <div class="attribute"> |
645 <span>Jump To On Pass: </span> | 645 <span>Jump To On Pass: </span> |
646 <select ng-model="condition.jumpToOnPass"> | 646 <select ng-model="condition.jumpToOnPass"> |
647 <option value="">None</option> | 647 <option value="">None</option> |
680 <option value="youtube">YouTube</option> | 680 <option value="youtube">YouTube</option> |
681 </select> | 681 </select> |
682 </div> | 682 </div> |
683 <div class="attribute"> | 683 <div class="attribute"> |
684 <span>Unique Survey Entry ID:</span> | 684 <span>Unique Survey Entry ID:</span> |
685 <input type="text" ng-model="opt.id" /> | 685 <input type="text" ng-model="opt.id" required /> |
686 </div> | 686 </div> |
687 <div class="attribute"> | 687 <div class="attribute"> |
688 <span>Entry Name:</span> | 688 <span>Entry Name:</span> |
689 <input type="text" ng-model="opt.name" /> | 689 <input type="text" ng-model="opt.name" /> |
690 </div> | 690 </div> |
740 <div class="attribute"> | 740 <div class="attribute"> |
741 <button type="button" class="btn btn-default" ng-click="removeOption(option);">Remove</button> | 741 <button type="button" class="btn btn-default" ng-click="removeOption(option);">Remove</button> |
742 </div> | 742 </div> |
743 <div class="attribute"> | 743 <div class="attribute"> |
744 <span>Name: </span> | 744 <span>Name: </span> |
745 <input type="text" ng-model="option.name" /> | 745 <input type="text" ng-model="option.name" required/> |
746 </div> | 746 </div> |
747 <div class="attribute"> | 747 <div class="attribute"> |
748 <span>Displayed Text: </span> | 748 <span>Displayed Text: </span> |
749 <input type="text" ng-model="option.text" /> | 749 <input type="text" ng-model="option.text" required/> |
750 </div> | 750 </div> |
751 </div> | 751 </div> |
752 </div> | 752 </div> |
753 </div> | 753 </div> |
754 <div class="node"> | 754 <div class="node"> |
768 <option value="stringContains">String Contains</option> | 768 <option value="stringContains">String Contains</option> |
769 </select> | 769 </select> |
770 </div> | 770 </div> |
771 <div class="attribute"> | 771 <div class="attribute"> |
772 <span>Value: </span> | 772 <span>Value: </span> |
773 <input type="text" ng-model="condition.value" /> | 773 <input type="text" ng-model="condition.value" required/> |
774 </div> | 774 </div> |
775 <div class="attribute"> | 775 <div class="attribute"> |
776 <span>Jump To On Pass: </span> | 776 <span>Jump To On Pass: </span> |
777 <select ng-model="condition.jumpToOnPass"> | 777 <select ng-model="condition.jumpToOnPass"> |
778 <option value="">None</option> | 778 <option value="">None</option> |
871 <div class="attribute"> | 871 <div class="attribute"> |
872 <button type="button" class="btn btn-danger" ng-click="removeScale(scale);">Remove</button> | 872 <button type="button" class="btn btn-danger" ng-click="removeScale(scale);">Remove</button> |
873 </div> | 873 </div> |
874 <div class="attribute"> | 874 <div class="attribute"> |
875 <span>Position: </span> | 875 <span>Position: </span> |
876 <input type="number" min="0" max="100" ng-model="scale.position" /> | 876 <input type="number" min="0" max="100" ng-model="scale.position" required/> |
877 </div> | 877 </div> |
878 <div class="attribute"> | 878 <div class="attribute"> |
879 <span>Text: </span> | 879 <span>Text: </span> |
880 <input type="text" ng-model="scale.text" /> | 880 <input type="text" ng-model="scale.text" required/> |
881 </div> | 881 </div> |
882 </div> | 882 </div> |
883 </div> | 883 </div> |
884 </div> | 884 </div> |
885 </div> | 885 </div> |
889 <div class="node" ng-repeat="cq in page.commentQuestions"> | 889 <div class="node" ng-repeat="cq in page.commentQuestions"> |
890 <button type="button" class="btn btn-danger" ng-click="removeCommentQuestion(cq)">Remove Comment Question</button> | 890 <button type="button" class="btn btn-danger" ng-click="removeCommentQuestion(cq)">Remove Comment Question</button> |
891 <div class="attributes"> | 891 <div class="attributes"> |
892 <div class="attribute"> | 892 <div class="attribute"> |
893 <span>Unique ID:</span> | 893 <span>Unique ID:</span> |
894 <input type="text" ng-model="cq.id" /> | 894 <input type="text" ng-model="cq.id" required/> |
895 </div> | 895 </div> |
896 <div class="attribute"> | 896 <div class="attribute"> |
897 <span>Common Name:</span> | 897 <span>Common Name:</span> |
898 <input type="text" ng-model="cq.name" /> | 898 <input type="text" ng-model="cq.name" /> |
899 </div> | 899 </div> |
925 <div class="attribute"> | 925 <div class="attribute"> |
926 <button type="button" class="btn btn-danger" ng-click="removeCommentQuestionOption(cq,option)">Remove</button> | 926 <button type="button" class="btn btn-danger" ng-click="removeCommentQuestionOption(cq,option)">Remove</button> |
927 </div> | 927 </div> |
928 <div class="attribute"> | 928 <div class="attribute"> |
929 <span>Name: </span> | 929 <span>Name: </span> |
930 <input type="text" ng-model="option.name" /> | 930 <input type="text" ng-model="option.name" required/> |
931 </div> | 931 </div> |
932 <div class="attribute"> | 932 <div class="attribute"> |
933 <span>Display Text: </span> | 933 <span>Display Text: </span> |
934 <input type="text" ng-model="option.text" /> | 934 <input type="text" ng-model="option.text" required/> |
935 </div> | 935 </div> |
936 </div> | 936 </div> |
937 </div> | 937 </div> |
938 </div> | 938 </div> |
939 </div> | 939 </div> |
943 <h3>Audio Fragment</h3> | 943 <h3>Audio Fragment</h3> |
944 <button type="button" class="btn btn-danger" ng-click="removeAudioElement(fragment)">Remove Fragment</button> | 944 <button type="button" class="btn btn-danger" ng-click="removeAudioElement(fragment)">Remove Fragment</button> |
945 <div class="attributes"> | 945 <div class="attributes"> |
946 <div class="attribute"> | 946 <div class="attribute"> |
947 <span>Unique ID: </span> | 947 <span>Unique ID: </span> |
948 <input type="text" ng-model="fragment.id" /> | 948 <input type="text" ng-model="fragment.id" required/> |
949 </div> | 949 </div> |
950 <div class="attribute"> | 950 <div class="attribute"> |
951 <span>URL: </span> | 951 <span>URL: </span> |
952 <input type="text" ng-model="fragment.url" /> | 952 <input type="text" ng-model="fragment.url" required/> |
953 <span>Full URL: </span><span style="font-weight=600">{{page.hostURL}}{{fragment.url}}</span> | 953 <span>Full URL: </span><span style="font-weight=600">{{page.hostURL}}{{fragment.url}}</span> |
954 </div> | 954 </div> |
955 <div class="attribute"> | 955 <div class="attribute"> |
956 <span>Fragment Gain (dB): </span> | 956 <span>Fragment Gain (dB): </span> |
957 <input type="number" ng-model="fragment.gain" /> | 957 <input type="number" ng-model="fragment.gain" /> |