X-Git-Url: https://scm.cri.minesparis.psl.eu/git/Portfolio.git/blobdiff_plain/e3e5d18a6b6dfaeb26dc0c2ee99acf2da0e003f8..b5ab6830421b7147eac005470f50d0cb44080daf:/skins/photo_lightbox_viewer.js?ds=sidebyside diff --git a/skins/photo_lightbox_viewer.js b/skins/photo_lightbox_viewer.js index b67f6ab..f4c4498 100644 --- a/skins/photo_lightbox_viewer.js +++ b/skins/photo_lightbox_viewer.js @@ -451,17 +451,38 @@ else { Lightbox.prototype.disableDefaultDragging = function() {}; } +Lightbox.prototype.getSelectedSlides = function() { + var i, e, slide; + var slides = []; + for (i=0 ; i<this.form.elements.length ; i++) { + e = this.form.elements[i]; + if (e.type === 'checkbox' && e.checked) { + slide = e.parentNode.parentNode; + slides.push(slide); + } + } + return slides; +}; Lightbox.prototype.onDragStart = function(evt) { var target = getTargetedObject(evt); this.dragged = target; + this.draggedSelection = this.getSelectedSlides(); + if (this.draggedSelection.indexOf(target) === -1) { + this.draggedSelection.push(target); + } evt.dataTransfer.setData('text', ''); - target.style.opacity = 0; - target.style.width = 0; + var i, slide; + for(i=0 ; i<this.draggedSelection.length ; i++) { + slide = this.draggedSelection[i]; + slide.style.opacity = 0; + slide.style.width = 0; + } }; Lightbox.prototype.onDragOver = function(evt) { var target = getTargetedObject(evt); + if (!target) {return;} while(target.className !== 'slide') { target = target.parentNode; } @@ -469,19 +490,59 @@ Lightbox.prototype.onDragOver = function(evt) { 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) { - this.dragged.style.opacity = 1; - this.dragged.style.width = ''; - if (this.previousDragOver) { - this.previousDragOver.classList.remove('dragover'); + if (this.lastDropTarget) { + this.lastDropTarget.classList.remove('dragover'); + var i, slide; + for(i=this.draggedSelection.length -1 ; i>=0 ; i--) { + slide = this.draggedSelection[i].cloneNode(true); + this.grid.insertBefore(slide, this.lastDropTarget.nextSibling); + slide.style.opacity = 1; + slide.style.width = ''; + } + this.moveSelectedPhotos(); } - this.previousDragOver = this.dragged = undefined; + // 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(); + if (req.status === 200) { + console.log(req.responseText); + // self._refreshGrid(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<this.draggedSelection.length ; i++) { + query += '&uids:list=' + this.draggedSelection[i].getAttribute('name'); + } + query += '&afterUid=' + this.lastDropTarget.getAttribute('name'); + req.send(query); +}; + +Lightbox.prototype.moveSelectedPhoto = function() { }; }()); \ No newline at end of file