AutorÃa | Ultima modificación | Ver Log |
// This file is part of Moodle - http://moodle.org///// Moodle is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// Moodle is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with Moodle. If not, see <http://www.gnu.org/licenses/>./*** @module moodle-editor_atto-plugin* @submodule dialogue*//*** Dialogue functions for an Atto Plugin.** See {{#crossLink "M.editor_atto.EditorPlugin"}}{{/crossLink}} for details.** @namespace M.editor_atto* @class EditorPluginDialogue*/function EditorPluginDialogue() {}EditorPluginDialogue.ATTRS = {};EditorPluginDialogue.prototype = {/*** A reference to the instantiated dialogue.** @property _dialogue* @private* @type M.core.Dialogue*/_dialogue: null,/*** Fetch the instantiated dialogue. If a dialogue has not yet been created, instantiate one.** <em><b>Note:</b> Only one dialogue is supported through this interface.</em>** For a full list of options, see documentation for {{#crossLink "M.core.dialogue"}}{{/crossLink}}.** A sensible default is provided for the focusAfterHide attribute.** @method getDialogue* @param {object} config* @param {boolean|string|Node} [config.focusAfterHide=undefined] Set the focusAfterHide setting to the* specified Node according to the following values:* <ul>* <li>If true was passed, the first button for this plugin will be used instead; or</li>* <li>If a String was passed, the named button for this plugin will be used instead; or</li>* <li>If a Node was passed, that Node will be used instead.</li>** This setting is checked each time that getDialogue is called.** @return {M.core.dialogue}*/getDialogue: function(config) {// Config is an optional param - define a default.config = config || {};var focusAfterHide = false;if (config.focusAfterHide) {// Remove the focusAfterHide because we may pass it a non-node value.focusAfterHide = config.focusAfterHide;delete config.focusAfterHide;}if (!this._dialogue) {// Merge the default configuration with any provided configuration.var dialogueConfig = Y.merge({visible: false,modal: true,close: true,draggable: true}, config);// Instantiate the dialogue.this._dialogue = new M.core.dialogue(dialogueConfig);}if (focusAfterHide !== false) {if (focusAfterHide === true) {this._dialogue.set('focusAfterHide', this.buttons[this.buttonNames[0]]);} else if (typeof focusAfterHide === 'string') {this._dialogue.set('focusAfterHide', this.buttons[focusAfterHide]);} else {this._dialogue.set('focusAfterHide', focusAfterHide);}}return this._dialogue;}};Y.Base.mix(Y.M.editor_atto.EditorPlugin, [EditorPluginDialogue]);