comparison test_create.html @ 2857:80a3b693b3f6

More test_create work
author Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk>
date Thu, 27 Apr 2017 11:24:16 +0100
parents 5591d01adf1c
children cffde1e75b2d
comparison
equal deleted inserted replaced
2856:5591d01adf1c 2857:80a3b693b3f6
108 </div> 108 </div>
109 </div> 109 </div>
110 </div> 110 </div>
111 <div id="globalpresurvey" class="node"> 111 <div id="globalpresurvey" class="node">
112 <h2>Pre Test Survey</h2> 112 <h2>Pre Test Survey</h2>
113 <button type="button" class="btn btn-success" ng-click="specification.preTest.addOption()">Add Entry</button>
113 <div class="node" ng-repeat="opt in specification.preTest.options" ng-controller="surveyOption"> 114 <div class="node" ng-repeat="opt in specification.preTest.options" ng-controller="surveyOption">
114 <h3>Survey Entry</h3> 115 <h3>Survey Entry</h3>
115 <div class="attributes"> 116 <div class="attributes">
116 <div class="attribute"> 117 <div class="attribute">
117 <span>Survey Type: </span> 118 <span>Survey Type: </span>
195 <input type="text" ng-model="option.text" /> 196 <input type="text" ng-model="option.text" />
196 </div> 197 </div>
197 </div> 198 </div>
198 </div> 199 </div>
199 </div> 200 </div>
201 <div class="node">
202 <h4>Conditionals</h4>
203 <button type="button" class="btn btn-default" ng-click="addCondition()">Add Condition</button>
204 <div class="node" ng-repeat="condition in opt.conditions">
205 <div class="attributes">
206 <div class="attribute">
207 <button type="button" class="btn btn-danger" ng-click="removeCondition(condition)">Remove</button>
208 </div>
209 <div class="attribute">
210 <span>Check Type:</span>
211 <select ng-model="condition.check">
212 <option value="equals">Equal To</option>
213 <option value="lessThan">Less Than</option>
214 <option value="greaterThan">Greater Than</option>
215 <option value="stringContains">String Contains</option>
216 </select>
217 </div>
218 <div class="attribute">
219 <span>Value: </span>
220 <input type="text" ng-model="condition.value" />
221 </div>
222 <div class="attribute">
223 <span>Jump To On Pass: </span>
224 <select ng-model="condition.jumpToOnPass">
225 <option value="">None</option>
226 <option ng-repeat="entry in specification.preTest.options" value="{{entry.id}}">{{entry.id}}</option>
227 </select>
228 </div>
229 <div class="attribute">
230 <span>Jump To On Fail: </span>
231 <select ng-model="condition.jumpToOnFail">
232 <option value="">None</option>
233 <option ng-repeat="entry in specification.preTest.options" value="{{entry.id}}">{{entry.id}}</option>
234 </select>
235 </div>
236 </div>
237 </div>
238 </div>
200 </div> 239 </div>
201 </div> 240 </div>
202 <div id="globalpostsurvey" class="node"> 241 <div id="globalpostsurvey" class="node">
203 <h2>Post Test Survey</h2> 242 <h2>Post Test Survey</h2>
243 <button type="button" class="btn btn-success" ng-click="specification.postTest.addOption()">Add Entry</button>
204 <div class="node" ng-repeat="opt in specification.postTest.options" ng-controller="surveyOption"> 244 <div class="node" ng-repeat="opt in specification.postTest.options" ng-controller="surveyOption">
205 <h3>Survey Entry</h3> 245 <h3>Survey Entry</h3>
206 <div class="attributes"> 246 <div class="attributes">
207 <div class="attribute"> 247 <div class="attribute">
208 <span>Survey Type: </span> 248 <span>Survey Type: </span>
286 <input type="text" ng-model="option.text" /> 326 <input type="text" ng-model="option.text" />
287 </div> 327 </div>
288 </div> 328 </div>
289 </div> 329 </div>
290 </div> 330 </div>
331 <div class="node">
332 <h4>Conditionals</h4>
333 <button type="button" class="btn btn-default" ng-click="addCondition()">Add Condition</button>
334 <div class="node" ng-repeat="condition in opt.conditions">
335 <div class="attributes">
336 <div class="attribute">
337 <button type="button" class="btn btn-danger" ng-click="removeCondition(condition)">Remove</button>
338 </div>
339 <div class="attribute">
340 <span>Check Type:</span>
341 <select ng-model="condition.check">
342 <option value="equals">Equal To</option>
343 <option value="lessThan">Less Than</option>
344 <option value="greaterThan">Greater Than</option>
345 <option value="stringContains">String Contains</option>
346 </select>
347 </div>
348 <div class="attribute">
349 <span>Value: </span>
350 <input type="text" ng-model="condition.value" />
351 </div>
352 <div class="attribute">
353 <span>Jump To On Pass: </span>
354 <select ng-model="condition.jumpToOnPass">
355 <option value="">None</option>
356 <option ng-repeat="entry in specification.postTest.options" value="{{entry.id}}">{{entry.id}}</option>
357 </select>
358 </div>
359 <div class="attribute">
360 <span>Jump To On Fail: </span>
361 <select ng-model="condition.jumpToOnFail">
362 <option value="">None</option>
363 <option ng-repeat="entry in specification.postTest.options" value="{{entry.id}}">{{entry.id}}</option>
364 </select>
365 </div>
366 </div>
367 </div>
368 </div>
291 </div> 369 </div>
292 </div> 370 </div>
293 <div id="globalinterface" class="node" ng-controller="interfaceNode" ng-init="interface = specification.interfaces"> 371 <div id="globalinterface" class="node" ng-controller="interfaceNode" ng-init="interface = specification.interfaces">
294 <h2>Interface (Globals)</h2> 372 <h2>Interface (Globals)</h2>
295 <div class="node interfaceOptions"> 373 <div class="node interfaceOptions">
336 </div> 414 </div>
337 </div> 415 </div>
338 </div> 416 </div>
339 </div> 417 </div>
340 </div> 418 </div>
419 <div style="text-align: center;">
420 <button type="button" class="btn btn-success" ng-click="addPage()">Add Page</button>
421 </div>
341 <div class="node pageNode" ng-controller="page" ng-repeat="page in specification.pages"> 422 <div class="node pageNode" ng-controller="page" ng-repeat="page in specification.pages">
342 <h2>Page</h2> 423 <h2>Page</h2>
424 <div class="attributes">
425 <div class="attribute">
426 <span>Unique ID: </span>
427 <input type="text" ng-model="page.id" />
428 </div>
429 <div class="attribute">
430 <span>Fragment common-root URL: </span>
431 <input type="text" ng-model="page.hostURL" />
432 </div>
433 <div class="attribute">
434 <span>Randomise Fragment Order: </span>
435 <input type="checkbox" ng-model="page.randomiseOrder" />
436 </div>
437 <div class="attribute">
438 <span>Repeat Page N-times: </span>
439 <input type="number" ng-model="page.repeatCount" />
440 </div>
441 <div class="attribute">
442 <span>Loop audio: </span>
443 <input type="checkbox" ng-model="page.loop" />
444 </div>
445 <div class="attribute">
446 <span>Synchronous audio playback: </span>
447 <input type="checkbox" ng-model="page.synchronous" />
448 </div>
449 <div class="attribute">
450 <span>Loudness (page): </span>
451 <input type="number" ng-model="page.loudness" max="0" />
452 </div>
453 <div class="attribute">
454 <span>Label type: </span>
455 <select ng-model="page.label">
456 <option value="default">Default</option>
457 <option value="none">None</option>
458 <option value="number">[1, 2, 3...]</option>
459 <option value="letter">[a, b, c...]</option>
460 <option value="capital">[A, B, C...]</option>
461 <option value="samediff" ng-show="specification.interface == 'AB'">[Same, Different]</option>
462 </select>
463 </div>
464 <div class="attribute" ng-show="page.label != 'default' && page.label != 'none'">
465 <span>Label Start: </span>
466 <input type="text" ng-model="page.labelStart" />
467 </div>
468 <div class="attribute">
469 <span>Fragment pool size: </span>
470 <input type="number" ng-model="page.poolSize" min="0" max="page.audioElements.length" />
471 </div>
472 <div class="attribute" ng-show="specification.poolSize > 0">
473 <span>Always include page: </span>
474 <input type="checkbox" ng-model="page.alwaysInclude" />
475 </div>
476 <div class="attribute">
477 <span>Fixed Page Position: </span>
478 <input type="number" ng-model="page.position" max="{{specification.pages.length}}" />
479 </div>
480 <div class="attribute">
481 <span>Fixed Page Position: </span>
482 <input type="number" ng-model="page.position" min="0" max="{{specification.pages.length}}" />
483 </div>
484 <div class="attribute">
485 <span>Fragment pre-silence: </span>
486 <input type="number" ng-model="page.preSilence" min="0" step="0.1" />
487 </div>
488 <div class="attribute">
489 <span>Fragment post-silence: </span>
490 <input type="number" ng-model="page.postSilence" min="0" step="0.1" />
491 </div>
492 <div class="attribute">
493 <span>Cannot interupt audio: </span>
494 <input type="checkbox" ng-model="page.playOne" />
495 </div>
496 <div class="attribute">
497 <span>Only move playing audio: </span>
498 <input type="checkbox" ng-model="page.restrictMovement" />
499 </div>
500 </div>
501 <div class="node">
502 <h3>Page Title</h3>
503 <textarea ng-model="page.title"></textarea>
504 </div>
505 <div class="node">
506 <h3>Comment box text prefix</h3>
507 <textarea ng-model="page.commentboxprefix"></textarea>
508 <p>Example:
509 <span style="font-weight:600">{{page.commentboxprefix}} A</span>
510 </p>
511 </div>
512 <div class="node">
513 <h2>Pre Page Survey</h2>
514 <button type="button" class="btn btn-success" ng-click="page.preTest.addOption()">Add Entry</button>
515 <div class="node" ng-repeat="opt in page.preTest.options" ng-controller="surveyOption">
516 <h3>Survey Entry</h3>
517 <div class="attributes">
518 <div class="attribute">
519 <span>Survey Type: </span>
520 <select ng-model="opt.type">
521 <option value="question">Question</option>
522 <option value="radio">Radio</option>
523 <option value="checkbox">Checkbox</option>
524 <option value="statement">Statement</option>
525 <option value="number">Number</option>
526 <option value="slider">Slider</option>
527 <option value="video">Video</option>
528 <option value="youtube">YouTube</option>
529 </select>
530 </div>
531 <div class="attribute">
532 <span>Unique Survey Entry ID:</span>
533 <input type="text" ng-model="opt.id" />
534 </div>
535 <div class="attribute">
536 <span>Entry Name:</span>
537 <input type="text" ng-model="opt.name" />
538 </div>
539 <div class="attribute" ng-show="['question', 'checkbox', 'radio', 'number'].indexOf(opt.type) >= 0">
540 <span>Mandatory:</span>
541 <input type="checkbox" ng-model="opt.mandatory" />
542 </div>
543 <div class="attribute">
544 <span>Minimum Wait Time (s):</span>
545 <input type="number" ng-model="opt.minWait" min="0" />
546 </div>
547 <div class="attribute" ng-show="opt.type == 'question'">
548 <span>Box Size:</span>
549 <select ng-model="opt.boxsize">
550 <option value="small">Small</option>
551 <option value="normal">Normal</option>
552 <option value="large">Large</option>
553 <option value="huge">Huge</option>
554 </select>
555 </div>
556 <div class="attribute" ng-show="['checkbox', 'radio'].indexOf(opt.type) >= 0">
557 <span>Minimum Selected:</span>
558 <input type="number" ng-model="opt.min" min="0" />
559 </div>
560 <div class="attribute" ng-show="['checkbox', 'radio'].indexOf(opt.type) >= 0">
561 <span>Maximum Selected:</span>
562 <input type="number" ng-model="opt.max" max="{{opt.options.length}}" />
563 </div>
564 <div class="attribute" ng-show="['slider', 'number'].indexOf(opt.type) >= 0">
565 <span>Minimum Value:</span>
566 <input type="number" ng-model="opt.min" />
567 </div>
568 <div class="attribute" ng-show="['slider', 'number'].indexOf(opt.type) >= 0">
569 <span>Maximum Value:</span>
570 <input type="number" ng-model="opt.max" />
571 </div>
572 <div class="attribute" ng-show="['video', 'youtube'].indexOf(opt.type) >= 0">
573 <span>Video URL:</span>
574 <input type="text" ng-model="opt.url" />
575 </div>
576 </div>
577 <div class="node">
578 <h4>Statement</h4>
579 <textarea ng-model="opt.statement"></textarea>
580 </div>
581 <div class="node" ng-show="['checkbox', 'radio'].indexOf(opt.type) >= 0">
582 <h4>Options</h4>
583 <div>
584 <button type="button" class="btn btn-default" ng-click="addOption();">Add Option</button>
585 </div>
586 <div class="node" ng-repeat="option in opt.options">
587 <div class="attributes">
588 <div class="attribute">
589 <button type="button" class="btn btn-default" ng-click="removeOption(option);">Remove</button>
590 </div>
591 <div class="attribute">
592 <span>Name: </span>
593 <input type="text" ng-model="option.name" />
594 </div>
595 <div class="attribute">
596 <span>Displayed Text: </span>
597 <input type="text" ng-model="option.text" />
598 </div>
599 </div>
600 </div>
601 </div>
602 <div class="node">
603 <h4>Conditionals</h4>
604 <button type="button" class="btn btn-default" ng-click="addCondition()">Add Condition</button>
605 <div class="node" ng-repeat="condition in opt.conditions">
606 <div class="attributes">
607 <div class="attribute">
608 <button type="button" class="btn btn-danger" ng-click="removeCondition(condition)">Remove</button>
609 </div>
610 <div class="attribute">
611 <span>Check Type:</span>
612 <select ng-model="condition.check">
613 <option value="equals">Equal To</option>
614 <option value="lessThan">Less Than</option>
615 <option value="greaterThan">Greater Than</option>
616 <option value="stringContains">String Contains</option>
617 </select>
618 </div>
619 <div class="attribute">
620 <span>Value: </span>
621 <input type="text" ng-model="condition.value" />
622 </div>
623 <div class="attribute">
624 <span>Jump To On Pass: </span>
625 <select ng-model="condition.jumpToOnPass">
626 <option value="">None</option>
627 <option ng-repeat="entry in page.postTest.options" value="{{entry.id}}">{{entry.id}}</option>
628 </select>
629 </div>
630 <div class="attribute">
631 <span>Jump To On Fail: </span>
632 <select ng-model="condition.jumpToOnFail">
633 <option value="">None</option>
634 <option ng-repeat="entry in page.postTest.options" value="{{entry.id}}">{{entry.id}}</option>
635 </select>
636 </div>
637 </div>
638 </div>
639 </div>
640 </div>
641 </div>
642 <div class="node">
643 <h2>Post Page Survey</h2>
644 <button type="button" class="btn btn-success" ng-click="page.postTest.addOption()">Add Entry</button>
645 <div class="node" ng-repeat="opt in page.postTest.options" ng-controller="surveyOption">
646 <h3>Survey Entry</h3>
647 <div class="attributes">
648 <div class="attribute">
649 <span>Survey Type: </span>
650 <select ng-model="opt.type">
651 <option value="question">Question</option>
652 <option value="radio">Radio</option>
653 <option value="checkbox">Checkbox</option>
654 <option value="statement">Statement</option>
655 <option value="number">Number</option>
656 <option value="slider">Slider</option>
657 <option value="video">Video</option>
658 <option value="youtube">YouTube</option>
659 </select>
660 </div>
661 <div class="attribute">
662 <span>Unique Survey Entry ID:</span>
663 <input type="text" ng-model="opt.id" />
664 </div>
665 <div class="attribute">
666 <span>Entry Name:</span>
667 <input type="text" ng-model="opt.name" />
668 </div>
669 <div class="attribute" ng-show="['question', 'checkbox', 'radio', 'number'].indexOf(opt.type) >= 0">
670 <span>Mandatory:</span>
671 <input type="checkbox" ng-model="opt.mandatory" />
672 </div>
673 <div class="attribute">
674 <span>Minimum Wait Time (s):</span>
675 <input type="number" ng-model="opt.minWait" min="0" />
676 </div>
677 <div class="attribute" ng-show="opt.type == 'question'">
678 <span>Box Size:</span>
679 <select ng-model="opt.boxsize">
680 <option value="small">Small</option>
681 <option value="normal">Normal</option>
682 <option value="large">Large</option>
683 <option value="huge">Huge</option>
684 </select>
685 </div>
686 <div class="attribute" ng-show="['checkbox', 'radio'].indexOf(opt.type) >= 0">
687 <span>Minimum Selected:</span>
688 <input type="number" ng-model="opt.min" min="0" />
689 </div>
690 <div class="attribute" ng-show="['checkbox', 'radio'].indexOf(opt.type) >= 0">
691 <span>Maximum Selected:</span>
692 <input type="number" ng-model="opt.max" max="{{opt.options.length}}" />
693 </div>
694 <div class="attribute" ng-show="['slider', 'number'].indexOf(opt.type) >= 0">
695 <span>Minimum Value:</span>
696 <input type="number" ng-model="opt.min" />
697 </div>
698 <div class="attribute" ng-show="['slider', 'number'].indexOf(opt.type) >= 0">
699 <span>Maximum Value:</span>
700 <input type="number" ng-model="opt.max" />
701 </div>
702 <div class="attribute" ng-show="['video', 'youtube'].indexOf(opt.type) >= 0">
703 <span>Video URL:</span>
704 <input type="text" ng-model="opt.url" />
705 </div>
706 </div>
707 <div class="node">
708 <h4>Statement</h4>
709 <textarea ng-model="opt.statement"></textarea>
710 </div>
711 <div class="node" ng-show="['checkbox', 'radio'].indexOf(opt.type) >= 0">
712 <h4>Options</h4>
713 <div>
714 <button type="button" class="btn btn-default" ng-click="addOption();">Add Option</button>
715 </div>
716 <div class="node" ng-repeat="option in opt.options">
717 <div class="attributes">
718 <div class="attribute">
719 <button type="button" class="btn btn-default" ng-click="removeOption(option);">Remove</button>
720 </div>
721 <div class="attribute">
722 <span>Name: </span>
723 <input type="text" ng-model="option.name" />
724 </div>
725 <div class="attribute">
726 <span>Displayed Text: </span>
727 <input type="text" ng-model="option.text" />
728 </div>
729 </div>
730 </div>
731 </div>
732 <div class="node">
733 <h4>Conditionals</h4>
734 <button type="button" class="btn btn-default" ng-click="addCondition()">Add Condition</button>
735 <div class="node" ng-repeat="condition in opt.conditions">
736 <div class="attributes">
737 <div class="attribute">
738 <button type="button" class="btn btn-danger" ng-click="removeCondition(condition)">Remove</button>
739 </div>
740 <div class="attribute">
741 <span>Check Type:</span>
742 <select ng-model="condition.check">
743 <option value="equals">Equal To</option>
744 <option value="lessThan">Less Than</option>
745 <option value="greaterThan">Greater Than</option>
746 <option value="stringContains">String Contains</option>
747 </select>
748 </div>
749 <div class="attribute">
750 <span>Value: </span>
751 <input type="text" ng-model="condition.value" />
752 </div>
753 <div class="attribute">
754 <span>Jump To On Pass: </span>
755 <select ng-model="condition.jumpToOnPass">
756 <option value="">None</option>
757 <option ng-repeat="entry in page.postTest.options" value="{{entry.id}}">{{entry.id}}</option>
758 </select>
759 </div>
760 <div class="attribute">
761 <span>Jump To On Fail: </span>
762 <select ng-model="condition.jumpToOnFail">
763 <option value="">None</option>
764 <option ng-repeat="entry in page.postTest.options" value="{{entry.id}}">{{entry.id}}</option>
765 </select>
766 </div>
767 </div>
768 </div>
769 </div>
770 </div>
771 </div>
772 <div class="node" ng-repeat="interface in page.interfaces" ng-controller="interfaceNode">
773 <h2>Interface</h2>
774 <div class="node interfaceOptions">
775 <div class="attributes">
776 <div class="attribute" name="fragmentPlayed" type="check">
777 <span>Check all fragments played: </span>
778 <input type="checkbox" ng-click="enableInterfaceOption($event)" />
779 </div>
780 <div class="attribute" name="fragmentFullPlayback" type="check">
781 <span>Check all fragments fully played: </span>
782 <input type="checkbox" ng-click="enableInterfaceOption($event)" />
783 </div>
784 <div class="attribute" name="fragmentMoved" type="check">
785 <span>Check all fragments have been moved: </span>
786 <input type="checkbox" ng-click="enableInterfaceOption($event)" />
787 </div>
788 <div class="attribute" name="fragmentComments" type="check">
789 <span>Check all fragments have comments: </span>
790 <input type="checkbox" ng-click="enableInterfaceOption($event)" />
791 </div>
792 <div class="attribute" name="scalerange" type="check">
793 <span>Enforce a scale usage: </span>
794 <input type="checkbox" ng-click="enableInterfaceOption($event)" />
795 <span>Minimum:</span>
796 <input type="number" min="0" max="100" name="min" />
797 <span>Maximum:</span>
798 <input type="number" min="0" max="100" name="max" />
799 </div>
800 <div class="attribute" name="volume" type="show">
801 <span>Show master volume control: </span>
802 <input type="checkbox" ng-click="enableInterfaceOption($event)" />
803 </div>
804 <div class="attribute" name="playhead" type="show">
805 <span>Show playhead: </span>
806 <input type="checkbox" ng-click="enableInterfaceOption($event)" />
807 </div>
808 <div class="attribute" name="page-count" type="show">
809 <span>Show Page Count: </span>
810 <input type="checkbox" ng-click="enableInterfaceOption($event)" />
811 </div>
812 <div class="attribute" name="comments" type="show">
813 <span>Show Fragment Comments: </span>
814 <input type="checkbox" ng-click="enableInterfaceOption($event)" />
815 </div>
816 </div>
817 </div>
818 <div class="node">
819 <h3>Axis Title</h3>
820 <textarea ng-model="interface.title"></textarea>
821 <div class="attributes">
822 <div class="attribute">
823 <span>Axis name (in saves): </span>
824 <input type="text" ng-model="interface.name" />
825 </div>
826 </div>
827 </div>
828 <div class="node">
829 <h3>Axis Image</h3>
830 <textarea ng-model="interface.image"></textarea>
831 </div>
832 <div class="node">
833 <h3>Axis Scales</h3>
834 <button type="button" class="btn btn-default" ng-click="addScale();">Add</button>
835 <div class="node" ng-repeat="scale in interface.scales">
836 <div class="attributes">
837 <div class="attribute">
838 <button type="button" class="btn btn-danger" ng-click="removeScale(scale);">Remove</button>
839 </div>
840 <div class="attribute">
841 <span>Position: </span>
842 <input type="number" min="0" max="100" ng-model="scale.position" />
843 </div>
844 <div class="attribute">
845 <span>Text: </span>
846 <input type="text" ng-model="scale.text" />
847 </div>
848 </div>
849 </div>
850 </div>
851 </div>
852 <div class="node">
853 <h3>Comment Questions</h3>
854 <div class="node" ng-repeat="cq in page.commentQuestions">
855 <div class="attributes">
856 <div class="attribute">
857 <span>Unique ID:</span>
858 <input type="text" ng-model="cq.id" />
859 </div>
860 <div class="attribute">
861 <span>Common Name:</span>
862 <input type="text" ng-model="cq.name" />
863 </div>
864 <div class="attribute" ng-show="cq.type == 'slider'">
865 <span>Minimum:</span>
866 <input type="number" ng-model="cq.min" />
867 </div>
868 <div class="attribute" ng-show="cq.type == 'slider'">
869 <span>Maximum:</span>
870 <input type="number" ng-model="cq.max" />
871 </div>
872 <div class="attribute" ng-show="cq.type == 'slider'">
873 <span>Step size:</span>
874 <input type="number" ng-model="cq.step" />
875 </div>
876 <div class="attribute" ng-show="cq.type == 'slider'">
877 <span>Initial Value:</span>
878 <input type="number" ng-model="cq.value" />
879 </div>
880 </div>
881 <div class="node">
882 <h4>Question:</h4>
883 <textarea ng-model="cq.statement"></textarea>
884 </div>
885 <div class="node" ng-show="['radio', 'checkbox'].indexOf(cq.type) >= 0">
886 <h4>Options</h4>
887 <div class="node" ng-repeat="option in cq.options">
888 <div class="attributes">
889 <div class="attribute">
890 <button type="button" class="btn btn-danger" ng-click="removeCommentQuestionOption(cq,option)">Remove</button>
891 </div>
892 <div class="attribute">
893 <span>Name: </span>
894 <input type="text" ng-model="option.name" />
895 </div>
896 <div class="attribute">
897 <span>Display Text: </span>
898 <input type="text" ng-model="option.text" />
899 </div>
900 </div>
901 </div>
902 </div>
903 </div>
904 </div>
905 <div class="node" ng-repeat="fragment in page.audioElements">
906 <h3>Audio Fragment</h3>
907 <div class="attributes">
908 <div class="attribute">
909 <span>Unique ID: </span>
910 <input type="text" ng-model="fragment.id" />
911 </div>
912 <div class="attribute">
913 <span>URL: </span>
914 <input type="text" ng-model="fragment.url" />
915 <span>Full URL: </span><span style="font-weight=600">{{page.hostURL}}{{fragment.url}}</span>
916 </div>
917 <div class="attribute">
918 <span>Fragment Gain (dB): </span>
919 <input type="number" ng-model="fragment.gain" />
920 </div>
921 <div class="attribute">
922 <span>Fragment Label: </span>
923 <input type="text" ng-model="fragment.label" />
924 </div>
925 <div class="attribute">
926 <span>Fragment Common name: </span>
927 <input type="text" ng-model="fragment.name" />
928 </div>
929 <div class="attribute">
930 <span>Fragment Type: </span>
931 <select ng-model="fragment.type">
932 <option value="normal">Normal</option>
933 <option value="anchor">Hidden Anchor</option>
934 <option value="reference">Hidden Reference</option>
935 <option value="outside-reference">Outside Reference</option>
936 </select>
937 </div>
938 <div class="attribute" ng-show="fragment.type == 'anchor'">
939 <span>Anchor must be below: </span>
940 <input type="number" ng-model="fragment.marker" min="0" max="100" />
941 </div>
942 <div class="attribute" ng-show="fragment.type == 'reference'">
943 <span>Reference must be above: </span>
944 <input type="number" ng-model="fragment.marker" min="0" max="100" />
945 </div>
946 <div class="attribute">
947 <span>Loudness: </span>
948 <input type="number" ng-model="fragment.loudness" max="0" />
949 </div>
950 <div class="attribute" ng-show="page.poolSize > 0">
951 <span>Always include fragment: </span>
952 <input type="checkbox" ng-model="fragment.alwaysInclude" max="0" />
953 </div>
954 <div class="attribute">
955 <span>Fragment Pre-Silence: </span>
956 <input type="number" ng-model="fragment.preSilence" max="0" step="0.1" />
957 </div>
958 <div class="attribute">
959 <span>Fragment Post-Silence: </span>
960 <input type="number" ng-model="fragment.postSilence" max="0" step="0.1" />
961 </div>
962 <div class="attribute">
963 <span>Fragment playback start position (s): </span>
964 <input type="number" ng-model="fragment.startTime" min="0" max="{{fragment.stopTime}}" />
965 </div>
966 <div class="attribute">
967 <span>Fragment playback stop position (s): </span>
968 <input type="number" ng-model="fragment.stopTime" min="{{fragment.startTime}}" />
969 </div>
970 <div class="attribute">
971 <span>Fragment sampling rate: </span>
972 <input type="number" ng-model="fragment.sampleRate" min="1" />
973 </div>
974 <div class="attribute">
975 <span>Fragment Image (URL): </span>
976 <input type="text" ng-model="fragment.image" />
977 </div>
978 </div>
979 </div>
343 </div> 980 </div>
344 <div id="popupHolder" ng-show="popupVisible"> 981 <div id="popupHolder" ng-show="popupVisible">
345 <div ng-controller="introduction" class="popup" ng-show="popupVisible"> 982 <div ng-controller="introduction" class="popup" ng-show="popupVisible">
346 <div class="popupTitle" ng-switch="state"> 983 <div class="popupTitle" ng-switch="state">
347 <span ng-switch-when="0">Test Creator</span> 984 <span ng-switch-when="0">Test Creator</span>