From 6c90ccfbaadd7cce8a4d9622db00138fcd0c1c49 Mon Sep 17 00:00:00 2001 From: chfhtw Date: Mon, 13 Apr 2026 10:38:58 +0200 Subject: [PATCH] add drag-drop-touch-js/dragdroptouch to composer and use it to add drag and drop functionality for touch devices --- composer.json | 14 ++++++++++++++ composer.lock | 12 +++++++++++- public/js/components/Dashboard/Item.js | 7 +++++++ public/js/directives/dragClick.js | 7 +++++++ public/js/directives/draggable.js | 7 +++++++ public/js/directives/drop.js | 7 +++++++ 6 files changed, 53 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index c1f4506c6..ce6fc71e1 100644 --- a/composer.json +++ b/composer.json @@ -70,6 +70,18 @@ } } }, + { + "type": "package", + "package": { + "name": "drag-drop-touch-js/dragdroptouch", + "version": "2.0.3", + "source": { + "url": "https://github.com/drag-drop-touch-js/dragdroptouch.git", + "type": "git", + "reference": "master" + } + } + }, { "type": "package", "package": { @@ -452,6 +464,8 @@ "easyrdf/easyrdf": "0.9.*", + "drag-drop-touch-js/dragdroptouch": "*", + "fgelinas/timepicker": "0.3.3", "fortawesome/font-awesome4": "4.7.*", "fortawesome/font-awesome6": "6.1.*", diff --git a/composer.lock b/composer.lock index 7525b7f5b..212eea3be 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f4f0af4586f46f97d8b6092c1ac0fb3a", + "content-hash": "869cbc35bd1ba90ab90934fcb41b0f51", "packages": [ { "name": "afarkas/html5shiv", @@ -804,6 +804,16 @@ "abandoned": true, "time": "2018-03-09T06:07:41+00:00" }, + { + "name": "drag-drop-touch-js/dragdroptouch", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/drag-drop-touch-js/dragdroptouch.git", + "reference": "master" + }, + "type": "library" + }, { "name": "easyrdf/easyrdf", "version": "0.9.1", diff --git a/public/js/components/Dashboard/Item.js b/public/js/components/Dashboard/Item.js index 3ba1971d2..6db83caed 100644 --- a/public/js/components/Dashboard/Item.js +++ b/public/js/components/Dashboard/Item.js @@ -2,6 +2,13 @@ import BsModal from "../Bootstrap/Modal.js"; import { useCachedWidgetLoader } from "../../composables/Dashboard/CachedWidgetLoader.js"; import HeightTransition from "../Tranistion/HeightTransition.js"; +import { enableDragDropTouch } from "../../../../vendor/drag-drop-touch-js/dragdroptouch/dist/drag-drop-touch.esm.min.js"; + +if (!document.dragDropTouchActive) { + enableDragDropTouch(); + document.dragDropTouchActive = true; +} + export default { name: 'Item', components: { diff --git a/public/js/directives/dragClick.js b/public/js/directives/dragClick.js index 5603eb93f..9e6048c9a 100644 --- a/public/js/directives/dragClick.js +++ b/public/js/directives/dragClick.js @@ -1,5 +1,12 @@ import { bindDragEnterLeave } from '../helpers/DragAndDrop.js'; +import { enableDragDropTouch } from "../../../vendor/drag-drop-touch-js/dragdroptouch/dist/drag-drop-touch.esm.min.js"; + +if (!document.dragDropTouchActive) { + enableDragDropTouch(); + document.dragDropTouchActive = true; +} + export default { mounted(el, binding) { const delay = parseInt(binding.arg) || 300; diff --git a/public/js/directives/draggable.js b/public/js/directives/draggable.js index 64747c15a..d534b9703 100644 --- a/public/js/directives/draggable.js +++ b/public/js/directives/draggable.js @@ -1,5 +1,12 @@ import { setTransferData, convertToValidDragObject } from '../helpers/DragAndDrop.js'; +import { enableDragDropTouch } from "../../../vendor/drag-drop-touch-js/dragdroptouch/dist/drag-drop-touch.esm.min.js"; + +if (!document.dragDropTouchActive) { + enableDragDropTouch(); + document.dragDropTouchActive = true; +} + const EFFECTS = [ 'none', 'copy', diff --git a/public/js/directives/drop.js b/public/js/directives/drop.js index 4c50e1b8e..4e14c5296 100644 --- a/public/js/directives/drop.js +++ b/public/js/directives/drop.js @@ -1,5 +1,12 @@ import { getValidTransferData, eventHasTypes, bindDragEnterLeave } from '../helpers/DragAndDrop.js'; +import { enableDragDropTouch } from "../../../vendor/drag-drop-touch-js/dragdroptouch/dist/drag-drop-touch.esm.min.js"; + +if (!document.dragDropTouchActive) { + enableDragDropTouch(); + document.dragDropTouchActive = true; +} + const EFFECTS = [ 'move', 'copy',