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/>./*** Drag and drop reorder via HTML5.** @module tool_lp/dragdrop-reorder* @copyright 2015 Damyon Wiese <damyon@moodle.com>* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/define(['core/str', 'core/yui'], function(str, Y) {// Private variables and functions./*** Store the current instance of the core drag drop.** @property {object} dragDropInstance M.tool_lp.dragdrop_reorder*/var dragDropInstance = null;/*** Translate the drophit event from YUI* into simple drag and drop nodes.* @param {Y.Event} e The yui drop event.*/var proxyCallback = function(e) {var dragNode = e.drag.get('node');var dropNode = e.drop.get('node');this.callback(dragNode.getDOMNode(), dropNode.getDOMNode());};return /** @alias module:tool_lp/dragdrop-reorder */ {// Public variables and functions./*** Create an instance of M.tool_lp.dragdrop** @param {String} group Unique string to identify this interaction.* @param {String} dragHandleText Alt text for the drag handle.* @param {String} sameNodeText Used in keyboard drag drop for the list of items target.* @param {String} parentNodeText Used in keyboard drag drop for the parent target.* @param {String} sameNodeClass class used to find the each of the list of items.* @param {String} parentNodeClass class used to find the container for the list of items.* @param {String} dragHandleInsertClass class used to find the location to insert the drag handles.* @param {function} callback Drop hit handler.*/dragdrop: function(group,dragHandleText,sameNodeText,parentNodeText,sameNodeClass,parentNodeClass,dragHandleInsertClass,callback) {// Here we are wrapping YUI. This allows us to start transitioning, but// wait for a good alternative without having inconsistent UIs.str.get_strings([{key: 'emptydragdropregion', component: 'moodle'},{key: 'movecontent', component: 'moodle'},{key: 'tocontent', component: 'moodle'},]).done(function() {Y.use('moodle-tool_lp-dragdrop-reorder', function() {var context = {callback: callback};if (dragDropInstance) {dragDropInstance.destroy();}dragDropInstance = M.tool_lp.dragdrop_reorder({group: group,dragHandleText: dragHandleText,sameNodeText: sameNodeText,parentNodeText: parentNodeText,sameNodeClass: sameNodeClass,parentNodeClass: parentNodeClass,dragHandleInsertClass: dragHandleInsertClass,callback: Y.bind(proxyCallback, context)});});});}};});