mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 10:26:08 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const dragAndDropSetup = {
 | |
|     autoExpandMS: 600,
 | |
|     draggable: { // modify default jQuery draggable options
 | |
|         zIndex: 1000,
 | |
|         scroll: false,
 | |
|         containment: "parent",
 | |
|         revert: "invalid"
 | |
|     },
 | |
|     preventRecursiveMoves: true, // Prevent dropping nodes on own descendants
 | |
|     preventVoidMoves: true, // Prevent dropping nodes 'before self', etc.
 | |
| 
 | |
|     dragStart: function (node, data) {
 | |
|         // This function MUST be defined to enable dragging for the tree.
 | |
|         // Return false to cancel dragging of node.
 | |
|         return true;
 | |
|     },
 | |
|     dragEnter: function (node, data) {
 | |
|         /* data.otherNode may be null for non-fancytree droppables.
 | |
|         * Return false to disallow dropping on node. In this case
 | |
|         * dragOver and dragLeave are not called.
 | |
|         * Return 'over', 'before, or 'after' to force a hitMode.
 | |
|         * Return ['before', 'after'] to restrict available hitModes.
 | |
|         * Any other return value will calc the hitMode from the cursor position.
 | |
|         */
 | |
|         // Prevent dropping a parent below another parent (only sort
 | |
|         // nodes under the same parent):
 | |
|         //    if(node.parent !== data.otherNode.parent){
 | |
|         //      return false;
 | |
|         //    }
 | |
|         // Don't allow dropping *over* a node (would create a child). Just
 | |
|         // allow changing the order:
 | |
|         //    return ["before", "after"];
 | |
|         // Accept everything:
 | |
|         return true;
 | |
|     },
 | |
|     dragExpand: function (node, data) {
 | |
|         // return false to prevent auto-expanding data.node on hover
 | |
|     },
 | |
|     dragOver: function (node, data) {
 | |
|     },
 | |
|     dragLeave: function (node, data) {
 | |
|     },
 | |
|     dragStop: function (node, data) {
 | |
|     },
 | |
|     dragDrop: function (node, data) {
 | |
|         // This function MUST be defined to enable dropping of items on the tree.
 | |
|         // data.hitMode is 'before', 'after', or 'over'.
 | |
| 
 | |
|         if (data.hitMode === "before") {
 | |
|             moveBeforeNode(data.otherNode, node);
 | |
|         }
 | |
|         else if (data.hitMode === "after") {
 | |
|             moveAfterNode(data.otherNode, node);
 | |
|         }
 | |
|         else if (data.hitMode === "over") {
 | |
|             moveToNode(data.otherNode, node);
 | |
|         }
 | |
|         else {
 | |
|             throw new Exception("Unknown hitMode=" + data.hitMode);
 | |
|         }
 | |
|     }
 | |
| };
 |