mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 00:46:50 +02:00

If a user drags an activity and press the ALT key, the activity will be duplicated in the new place instead of simply moved. This behaviour is quite normal in many softwares and it is a non intrusive usability improvement.
15 lines
No EOL
1.7 KiB
JavaScript
15 lines
No EOL
1.7 KiB
JavaScript
define("core_courseformat/local/courseeditor/dndcmitem",["exports","core/reactive"],(function(_exports,_reactive){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;
|
|
/**
|
|
* Course index cm component.
|
|
*
|
|
* This component is used to control specific course modules interactions like drag and drop
|
|
* in both course index and course content.
|
|
*
|
|
* @module core_courseformat/local/courseeditor/dndcmitem
|
|
* @class core_courseformat/local/courseeditor/dndcmitem
|
|
* @copyright 2021 Ferran Recio <ferran@moodle.com>
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
class _default extends _reactive.BaseComponent{configDragDrop(cmid){this.id=cmid,this.reactive.isEditing&&this.reactive.supportComponents&&(this.dragdrop=new _reactive.DragDrop(this),this.classes=this.dragdrop.getClasses())}destroy(){void 0!==this.dragdrop&&this.dragdrop.unregister()}dragStart(dropdata){this.reactive.dispatch("cmDrag",[dropdata.id],!0)}dragEnd(dropdata){this.reactive.dispatch("cmDrag",[dropdata.id],!1)}getDraggableData(){return this.reactive.getExporter().cmDraggableData(this.reactive.state,this.id)}validateDropData(dropdata){return"cm"===(null==dropdata?void 0:dropdata.type)}showDropZone(dropdata){dropdata.nextcmid!=this.id&&dropdata.id!=this.id&&this.element.classList.add(this.classes.DROPUP)}hideDropZone(){this.element.classList.remove(this.classes.DROPUP)}drop(dropdata,event){if(dropdata.id!=this.id&&dropdata.nextcmid!=this.id){const mutation=event.altKey?"cmDuplicate":"cmMove";this.reactive.dispatch(mutation,[dropdata.id],null,this.id)}}}return _exports.default=_default,_exports.default}));
|
|
|
|
//# sourceMappingURL=dndcmitem.min.js.map
|