AutorÃa | Ultima modificación | Ver Log |
var DROPDOWN_NAME = "Dropdown menu",DROPDOWN;/*** Provides an in browser PDF editor.** @module moodle-assignfeedback_editpdf-editor*//*** This is a drop down list of buttons triggered (and aligned to) a button.** @namespace M.assignfeedback_editpdf* @class dropdown* @constructor* @extends M.core.dialogue*/DROPDOWN = function(config) {config.draggable = false;config.centered = false;config.width = 'auto';config.visible = false;config.footerContent = '';DROPDOWN.superclass.constructor.apply(this, [config]);};Y.extend(DROPDOWN, M.core.dialogue, {/*** Initialise the menu.** @method initializer* @return void*/initializer: function(config) {var button, body, headertext, bb;DROPDOWN.superclass.initializer.call(this, config);bb = this.get('boundingBox');bb.addClass('assignfeedback_editpdf_dropdown');// Align the menu to the button that opens it.button = this.get('buttonNode');// Close the menu when clicked outside (excluding the button that opened the menu).body = this.bodyNode;headertext = Y.Node.create('<h3/>');headertext.addClass('accesshide');headertext.setHTML(this.get('headerText'));body.prepend(headertext);body.on('clickoutside', function(e) {if (this.get('visible')) {// Note: we need to compare ids because for some reason - sometimes button is an Object, not a Y.Node.if (e.target.get('id') !== button.get('id') && e.target.ancestor().get('id') !== button.get('id')) {e.preventDefault();this.hide();}}}, this);button.on('click', function(e) {e.preventDefault(); this.show();}, this);button.on('key', this.show, 'enter,space', this);},/*** Override the show method to align to the button.** @method show* @return void*/show: function() {var button = this.get('buttonNode'),result = DROPDOWN.superclass.show.call(this);this.align(button, [Y.WidgetPositionAlign.TL, Y.WidgetPositionAlign.BL]);return result;}}, {NAME: DROPDOWN_NAME,ATTRS: {/*** The header for the drop down (only accessible to screen readers).** @attribute headerText* @type String* @default ''*/headerText: {value: ''},/*** The button used to show/hide this drop down menu.** @attribute buttonNode* @type Y.Node* @default null*/buttonNode: {value: null}}});Y.Base.modifyAttrs(DROPDOWN, {/*** Whether the widget should be modal or not.** Moodle override: We override this for commentsearch to force it always false.** @attribute Modal* @type Boolean* @default false*/modal: {getter: function() {return false;}}});M.assignfeedback_editpdf = M.assignfeedback_editpdf || {};M.assignfeedback_editpdf.dropdown = DROPDOWN;