AutorÃa | Ultima modificación | Ver Log |
/* global ns *//*** @class* @alias H5PEditor.SelectorLegacy*/ns.SelectorLegacy = function (libraries, selectedLibrary, changeLibraryDialog) {var self = this;H5P.EventDispatcher.call(this);var defaultLibraryParameterized = selectedLibrary ? selectedLibrary.replace('.', '-').toLowerCase() : undefined;this.currentLibrary = selectedLibrary;var options = '<option value="-">-</option>';for (var i = 0; i < libraries.length; i++) {var library = libraries[i];var libraryName = ns.libraryToString(library);// Never deny editing existing content// For new content deny old or restricted libs.if (selectedLibrary === libraryName ||((library.restricted === undefined || !library.restricted) &&library.isOld !== true)) {options += '<option value="' + libraryName + '"';if (libraryName === selectedLibrary || library.name === defaultLibraryParameterized) {options += ' selected="selected"';}if (library.tutorialUrl !== undefined) {options += ' data-tutorial-url="' + library.tutorialUrl + '"';}if (library.exampleUrl !== undefined) {options += ' data-example-url="' + library.exampleUrl + '"';}options += '>' + library.title + (library.isOld===true ? ' (deprecated)' : '') + '</option>';}}this.$selector = ns.$('' +'<select name="h5peditor-library" title="' + ns.t('core', 'selectLibrary') + '"' + '>' +options +'</select>').change(function () {// Use timeout to avoid bug in Chrome >44, when confirm is used inside change event.// Ref. https://code.google.com/p/chromium/issues/detail?id=525629setTimeout(function () {if (!self.currentLibrary) {self.currentLibrary = self.$selector.val();self.trigger('selected');return;}self.currentLibrary = self.$selector.val();changeLibraryDialog.show(self.$selector.offset().top);}, 0);});};/*** Reset selector to provided library** @param {string} library* @param {Object} params* @param {Object} metadata*/ns.SelectorLegacy.prototype.resetSelection = function (library, params, metadata) {this.$selector.val(library);this.currentParams = params;this.currentMetadata = metadata;this.currentLibrary = library;};/*** Get currently selected library.** @returns {string}*/ns.SelectorLegacy.prototype.getSelectedLibrary = function (next) {var that = this;var $option = this.$selector.find(':selected');next({uberName: that.currentLibrary,tutorialUrl: $option.data('tutorial-url'),exampleUrl: $option.data('example-url')});};/*** Load new params into legacy selector** @returns {undefined}*/ns.SelectorLegacy.prototype.getParams = function () {return this.currentParams;};/*** Load new metadata into legacy selector** @returns {undefined}*/ns.SelectorLegacy.prototype.getMetadata = function () {return this.currentMetadata;};/*** Returns the html element for the hub** @return {HTMLElement}*/ns.SelectorLegacy.prototype.getElement = function () {return this.$selector.get(0);};