From: Benoît Pin <benoit.pin@gmail.com>
Date: Sun, 8 Dec 2013 20:59:09 +0000 (+0100)
Subject: L’objet FolderDDropControler doit être instancié à chaque fois (même quand le critère... 
X-Git-Url: https://svn.cri.ensmp.fr/git/Plinn.git/commitdiff_plain/e920fb0c2489e797d1a062a210c34545a62f98b8

L’objet FolderDDropControler doit être instancié à chaque fois (même quand le critère de tri n’est pas l’ordre) car il gère désormais la sélection de cases à cocher.
---

diff --git a/skins/ajax_scripts/folder_contents_script.js b/skins/ajax_scripts/folder_contents_script.js
index 7edda7d..45ec76a 100644
--- a/skins/ajax_scripts/folder_contents_script.js
+++ b/skins/ajax_scripts/folder_contents_script.js
@@ -18,7 +18,7 @@ function getTargetRow(evt){
 	return target;
 }
 
-FolderDDropControler = function(listing, firstItemPos) {
+FolderDDropControler = function(listing, orderable, firstItemPos) {
 	this.folderUrl = document.getElementById("FolderUrl").innerHTML;
 	this.targetRow = null;
 	this.lastOverPosition = null;
@@ -29,10 +29,12 @@ FolderDDropControler = function(listing, firstItemPos) {
 	this._updatePositions();
 	this.lastCBChecked = undefined;
 	var thisControler = this;
-	this.listing.onmousedown	= function(evt) {thisControler.drag(evt);};
-	this.listing.onmouseover	= function(evt) {thisControler.moveRow(evt);};
-	this.listing.onmouseup		= function(evt) {thisControler.drop(evt);};
-	addListener(this.listing, 'click', function(evt) {thisControler.disableClickAfterDrop(evt);});
+	if (orderable) {
+		this.listing.onmousedown	= function(evt) {thisControler.drag(evt);};
+		this.listing.onmouseover	= function(evt) {thisControler.moveRow(evt);};
+		this.listing.onmouseup		= function(evt) {thisControler.drop(evt);};
+		addListener(this.listing, 'click', function(evt) {thisControler.disableClickAfterDrop(evt);});
+	}
 	addListener(this.listing, 'click', function(evt) {thisControler.selectCBRange(evt);});
 	
 	if (browser.isIE) {
diff --git a/skins/photo_theme/folder_contents_macros.pt b/skins/photo_theme/folder_contents_macros.pt
index 042dfbc..a9d046a 100644
--- a/skins/photo_theme/folder_contents_macros.pt
+++ b/skins/photo_theme/folder_contents_macros.pt
@@ -75,37 +75,29 @@
     </div>
     <script type="text/javascript">
 		(function(){
-			// variables for drag-and-drop ordered support
-			var ddEnabled = false
-			try {
-				var firstItemPos = parseInt(document.getElementById("FirstItemPos").innerHTML);
-				ddEnabled = true;
-			}
-			catch (e) {}
-
-			var topNavBatchBar		= document.getElementById("topNavBatchBar");
-			var bottomNavBatchBar	= document.getElementById("bottomNavBatchBar");
+			// ordering / selecting
+			var firsItemPosElement = document.getElementById('FirstItemPos');
 			var listing = document.getElementById("FolderListingBody");
-
-			if (ddEnabled) {
-				var fDDcontroler = new FolderDDropControler(listing, firstItemPos);
-				var topNavBatchBar		= document.getElementById("topNavBatchBar");
-				var bottomNavBatchBar	= document.getElementById("bottomNavBatchBar");
+			var orderable = firsItemPosElement ? true : false;
+			var firstItemPos = orderable ? parseInt(firsItemPosElement.innerHTML, 10) : 1;
+			var fDDcontroler = new FolderDDropControler(listing, orderable, firstItemPos);
+			var topNavBatchBar, bottomNavBatchBar;
+			if (orderable) {
+				topNavBatchBar = document.getElementById("topNavBatchBar");
+				bottomNavBatchBar = document.getElementById("bottomNavBatchBar");
 				if (topNavBatchBar && bottomNavBatchBar) {
 					new DropTarget(topNavBatchBar, fDDcontroler);
 					new DropTarget(bottomNavBatchBar, fDDcontroler);
 				}
 			}
-
-
 			addListener(document.getElementById("FolderListingHeader"), "click", loadListing);
 			if (topNavBatchBar && bottomNavBatchBar) {
 				addListener(topNavBatchBar, "click", loadListing);
 				addListener(bottomNavBatchBar, "click", loadListing);
 			}
-			
+			// upload by drag and drop
 			var uploadUrl = absolute_url() + '/put_upload';
-      new DDFolderUploader(document.getElementById('ForematterCell'), uploadUrl, listing);
+			new DDFolderUploader(document.getElementById('ForematterCell'), uploadUrl, listing);
 
 		}());
     </script>