X-Git-Url: https://scm.cri.mines-paristech.fr/git/Portfolio.git/blobdiff_plain/6abfa75e909be774c2e52e3442c08507f64c1419..1a791f652fc028bbb22d800351ce748a7c56974f:/skins/photo_lightbox_viewer.js?ds=inline diff --git a/skins/photo_lightbox_viewer.js b/skins/photo_lightbox_viewer.js index cffa157..e0f304d 100644 --- a/skins/photo_lightbox_viewer.js +++ b/skins/photo_lightbox_viewer.js @@ -481,34 +481,97 @@ Lightbox.prototype.onDragStart = function(evt) { }; Lightbox.prototype.onDragOver = function(evt) { + if (!this.dragged) { + return; + } var target = getTargetedObject(evt); - if (!target) {return;} - while(target.className !== 'slide') { + while(target && target.className !== 'slide') { target = target.parentNode; } + if (!target) {return;} target = target.parentNode; if (target !== this.dragged) { target.classList.add('dragover'); } - if (this.previousDragOver && this.previousDragOver !== target) { - this.previousDragOver.classList.remove('dragover'); + if (this.lastDropTarget && this.lastDropTarget !== target) { + this.lastDropTarget.classList.remove('dragover'); } - this.previousDragOver = target; + this.lastDropTarget = target; }; Lightbox.prototype.onDragEnd = function(evt) { - if (this.previousDragOver) { - this.previousDragOver.classList.remove('dragover'); + if (this.lastDropTarget) { + this.lastDropTarget.classList.remove('dragover'); var i, slide; + this.pendingMovedSlides = []; for(i=this.draggedSelection.length -1 ; i>=0 ; i--) { - console.log(i); slide = this.draggedSelection[i].cloneNode(true); - this.grid.insertBefore(slide, this.previousDragOver.nextSibling); + this.pendingMovedSlides.push(slide); + this.grid.insertBefore(slide, this.lastDropTarget.nextSibling); slide.style.opacity = 1; slide.style.width = ''; } + this.moveSelectedPhotos(); + } + // this.draggedSelection = this.lastDropTarget + this.dragged = undefined; +}; + +Lightbox.prototype.moveSelectedPhotos = function() { + var req = new XMLHttpRequest(); + self = this; + req.onreadystatechange = function() { + switch (req.readyState) { + case 1 : + showProgressImage(); + break; + case 4 : + hideProgressImage(); + self._moveSelectedPhotos(req); + break; + } + }; + + var url = absolute_url() + '/portfolio_move_photos'; + req.open("POST", url, true); + req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); + var query = 'container_type=' + this.container_type; + var i; + for (i=0 ; i