This commit is contained in:
Dennis Eichhorn 2017-07-16 20:39:13 +02:00
parent dd9f3843a6
commit 3ff1b45e65

View File

@ -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 || {}));