diff -r 7c67caaafdeb -r 761ba7426984 web/res/metadataplayer/AnnotationsController.js --- a/web/res/metadataplayer/AnnotationsController.js Mon Nov 20 18:10:58 2023 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,219 +0,0 @@ -/* - * Widget that ties AnnotationList and CreateAnnotation together - * using buttons to hide/show AnnotationList and CreateAnnotation widgets. - * - */ - -IriSP.Widgets.AnnotationsController = function(player, config){ - IriSP.Widgets.Widget.call(this, player, config); -}; - -IriSP.Widgets.AnnotationsController.prototype = new IriSP.Widgets.Widget(); - -IriSP.Widgets.AnnotationsController.prototype.defaults = { - // If true, displaying AnnotationList will hide CreateAnnotation and vice versa. - display_or_write: false, - toggle_widgets: false, - starts_hidden: false, - hide_without_segment: false, - hide_when_writing: true, - starting_widget: false, - always_show_widget: false, - segments_annotation_type: "chap", - custom_write_text: false, - custom_display_text: false, -}; - -IriSP.Widgets.AnnotationsController.prototype.template = - "
" - + "
" - + "
{{#custom_write_text}}{{/custom_write_text}}{{custom_write_text}}{{^custom_write_text}}{{l10n.write}}{{/custom_write_text}}
" - + "
{{#custom_display_text}}{{/custom_display_text}}{{custom_display_text}}{{^custom_display_text}}{{l10n.display}}{{/custom_display_text}}
" - + "
" - + "
" - -IriSP.Widgets.AnnotationsController.prototype.messages = { - en : { - write : "Write", - display : "Display", - }, - fr : { - write : "Ecrire", - display : "Voir" - } -}; - -IriSP.Widgets.AnnotationsController.prototype.draw = function() { - this.renderTemplate(); - var _this = this; - this.element_$ = this.$.find(".Ldt-AnnotationsController") - - this.displayButton_$ = this.$.find(".Ldt-AnnotationsController-ShowAnnotationsListButton"); - this.writeButton_$ = this.$.find(".Ldt-AnnotationsController-ShowCreateAnnotationButton"); - - this.writeButton_$.click(function(){ - if (!_this.writeButton_$.hasClass("selected")){ - _this.player.trigger("CreateAnnotation.show") - if (_this.display_or_write){ - _this.player.trigger("AnnotationsList.hide"); - } - } - else { - _this.player.trigger("CreateAnnotation.hide") - if (_this.toggle_widgets){ - _this.player.trigger("AnnotationsList.show") - } - else if (_this.display_or_write){ - _this.player.trigger("AnnotationsList.hide"); - } - } - }); - this.displayButton_$.click(function(){ - if (!_this.displayButton_$.hasClass("selected")){ - _this.player.trigger("AnnotationsList.show") - if (_this.display_or_write){ - _this.player.trigger("CreateAnnotation.hide"); - } - } - else { - _this.player.trigger("AnnotationsList.hide") - if (_this.toggle_widgets){ - _this.player.trigger("CreateAnnotation.show") - } - else if (_this.display_or_write){ - _this.player.trigger("CreateAnnotation.hide"); - } - } - - }) - - if(this.hide_without_segment){ - this.onMediaEvent("timeupdate", function(){ - _this.refresh(); - }) - this.onMediaEvent("settimerange", function(_timeRange){ - _this.refresh(_timeRange); - }) - this.segments = this.source.getAnnotationsByTypeTitle(this.segments_annotation_type) - this.currentSegment = false - } - - - this.createAnnotationEnabled = false; - this.onMdpEvent("CreateAnnotation.hide", function(){ - if (_this.hide_when_writing){ - _this.show() - } - _this.createAnnotationEnabled = false; - _this.writeButton_$.toggleClass("selected", false); - }) - this.onMdpEvent("CreateAnnotation.show", function(){ - if (_this.hide_when_writing){ - _this.hide() - } - _this.createAnnotationEnabled = true; - _this.writeButton_$.toggleClass("selected", true); - }) - this.onMdpEvent("AnnotationsList.hide", function(){ - _this.displayButton_$.toggleClass("selected", false); - }) - this.onMdpEvent("AnnotationsList.show", function(){ - _this.displayButton_$.toggleClass("selected", true); - }) - - if (this.starts_hidden) { - this.visible = true - this.hide(); - } - else{ - this.visible = false - this.show(); - } - - if (this.starting_widget && this.visible){ - if (this.starting_widget == "AnnotationsList"){ - this.player.trigger("AnnotationsList.show") - } - else if (this.starting_widget == "CreateAnnotation"){ - this.player.trigger("CreateAnnotation.show") - } - } - -}; - -IriSP.Widgets.AnnotationsController.prototype.refresh = function(_timeRange){ - _timeRange = typeof _timeRange !== 'undefined' ? _timeRange : false ; - - if(!_timeRange){ - if (this.media.getTimeRange()){ - _timeRange = this.media.getTimeRange(); - } - } - - if (this.hide_without_segment){ - if (!_timeRange && !this.media.getTimeRange()){ - _currentTime = this.media.getCurrentTime() - _currentSegments = this.segments.filter(function(_segment){ - return (_currentTime >= _segment.begin && _currentTime <= _segment.end) - }); - if(_currentSegments.length > 0){ - currentSegment = true; - } - else { - currentSegment = false; - } - } - else { - var _timeRangeBegin = _timeRange[0], - _timeRangeEnd = _timeRange[1]; - _currentSegments = this.segments.filter(function(_segment){ - return (_timeRangeBegin == _segment.begin && _timeRangeEnd == _segment.end) - }); - if(_currentSegments.length > 0){ - currentSegment = true; - } - else { - currentSegment = false; - } - } - if (!currentSegment && _currentSegments.length == 0){ - if (this.visible || this.hide_when_writing){ - this.writeButton_$.toggleClass("selected", false); - this.displayButton_$.toggleClass("selected", false); - this.player.trigger("CreateAnnotation.hide"); - this.player.trigger("AnnotationsList.hide"); - this.hide(); - } - } - else { - if (!this.visible){ - if (!this.createAnnotationEnabled){ - this.show(); - } - this.writeButton_$.toggleClass("selected", false); - this.displayButton_$.toggleClass("selected", false); - if (this.starting_widget == "AnnotationsList"){ - this.player.trigger("AnnotationsList.show") - } - if (this.starting_widget == "CreateAnnotation"){ - this.player.trigger("CreateAnnotation.show") - } - } - - } - } -} - -IriSP.Widgets.AnnotationsController.prototype.hide = function() { - if (this.visible){ - this.visible = false; - this.element_$.hide(); - } -} - -IriSP.Widgets.AnnotationsController.prototype.show = function() { - if(!this.visible){ - this.visible = true; - this.element_$.show(); - } -}