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