mirror of
https://github.com/Karaka-Management/jsOMS.git
synced 2026-02-16 09:18:42 +00:00
Fix dnd
This commit is contained in:
parent
dd9f3843a6
commit
3ff1b45e65
|
|
@ -25,6 +25,7 @@
|
||||||
{
|
{
|
||||||
this.app = app;
|
this.app = app;
|
||||||
this.draggable = {};
|
this.draggable = {};
|
||||||
|
this.dragging = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -73,44 +74,72 @@
|
||||||
*/
|
*/
|
||||||
jsOMS.UI.DragNDrop.prototype.bindElement = function (id)
|
jsOMS.UI.DragNDrop.prototype.bindElement = function (id)
|
||||||
{
|
{
|
||||||
const element = document.getElementById(id);
|
const element = document.getElementById(id),
|
||||||
|
self = this;
|
||||||
|
|
||||||
console.log(id);
|
console.log(id);
|
||||||
|
|
||||||
if(!element) {
|
if(!element) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
element.addEventListener('dragstart', function(event) {
|
element.addEventListener('dragstart', function(e) {
|
||||||
// todo:
|
if(self.dragging === null) {
|
||||||
console.log('drag start');
|
self.dragging = this;
|
||||||
});
|
e.dataTransfer.effectAllowed = 'move';
|
||||||
|
e.dataTransfer.setData('text/html', this.innerHTML);
|
||||||
|
|
||||||
element.addEventListener('dragenter', function(event) {
|
console.log(self.dragging);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('drag start');
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
element.addEventListener('dragenter', function(e) {
|
||||||
// todo: highlight
|
// todo: highlight
|
||||||
console.log('drag enter');
|
console.log('drag enter');
|
||||||
});
|
}, false);
|
||||||
|
|
||||||
element.addEventListener('dragover', function(event) {
|
element.addEventListener('dragover', function(e) {
|
||||||
// todo: highlight if not already highlight
|
e.preventDefault();
|
||||||
|
|
||||||
|
e.dataTransfer.dropEffect = 'move';
|
||||||
|
|
||||||
console.log('drag over');
|
console.log('drag over');
|
||||||
});
|
}, false);
|
||||||
|
|
||||||
|
element.addEventListener('dragleave', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
element.addEventListener('dragleave', function(event) {
|
|
||||||
// todo: don't highlight
|
// todo: don't highlight
|
||||||
console.log('drag leave');
|
console.log('drag leave');
|
||||||
});
|
}, false);
|
||||||
|
|
||||||
|
element.addEventListener('dragend', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
element.addEventListener('dragend', function(event) {
|
|
||||||
// todo: reset all changes
|
// todo: reset all changes
|
||||||
console.log('drag end');
|
console.log('drag end');
|
||||||
});
|
}, false);
|
||||||
|
|
||||||
|
//element.addEventListener('drag', function(e) {});
|
||||||
|
element.addEventListener('drop', function(e) {
|
||||||
|
e.stopPropagation();
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
if(self.dragging === this) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.dragging.innerHTML = this.innerHTML;
|
||||||
|
this.innerHTML = e.dataTransfer.getData('text/html');
|
||||||
|
|
||||||
//element.addEventListener('drag', function(event) {});
|
|
||||||
element.addEventListener('drop', function(event) {
|
|
||||||
// todo: add to now destination
|
// todo: add to now destination
|
||||||
// todo: remove from old destination
|
// todo: remove from old destination
|
||||||
console.log('drag drop');
|
console.log('drag drop');
|
||||||
});
|
|
||||||
|
self.dragging = null;
|
||||||
|
}, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
}(window.jsOMS = window.jsOMS || {}));
|
}(window.jsOMS = window.jsOMS || {}));
|
||||||
Loading…
Reference in New Issue
Block a user