Pārlūkot izejas kodu

Enhancement: prevent reloading a list while the configuration dialog is open.

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@2206 a333f486-631f-4898-b8df-5754b55c2be0
dflaven 12 gadi atpakaļ
vecāks
revīzija
7bab35d24e
2 mainītis faili ar 29 papildinājumiem un 11 dzēšanām
  1. 9 1
      js/datatable.js
  2. 20 10
      js/utils.js

+ 9 - 1
js/datatable.js

@@ -132,7 +132,7 @@ $(function()
 			if (oSettings.val() == 'defaults')
 			{
 				oOptions = { iPageSize: this.options.oDefaultSettings.iDefaultPageSize, 
-							 oColumns: this.options.oDefaultSettings.oColumns,
+							 oColumns: this.options.oDefaultSettings.oColumns
 						   };
 			}
 			else
@@ -247,6 +247,14 @@ $(function()
 			dlgElement.find('input[name=page_size]').val(this.originalState.iDefaultPageSize);
 			
 			dlgElement.find(':itop-fieldsorter').fieldsorter('option', { fields: this.originalState.oFields });
+		},
+		IsDialogOpen: function()
+		{
+			var sId = new String(this.element.attr('id'));
+			var sListId = sId.replace('datatable_', '');
+			var oDlgOpen = $('#datatable_dlg_'+sListId+' :visible');
+			
+			return (oDlgOpen.length > 0);
 		}
 	});	
 });

+ 20 - 10
js/utils.js

@@ -74,16 +74,26 @@ function TruncateList(divId, iLimit, sNewLabel, sLinkLabel)
  */ 
 function ReloadBlock(divId, sStyle, sSerializedFilter, sExtraParams)
 {
-	$('#'+divId).block();
-	//$('#'+divId).blockUI();
-	$.post(GetAbsoluteUrlAppRoot()+'pages/ajax.render.php?style='+sStyle,
-	   { operation: 'ajax', filter: sSerializedFilter, extra_params: sExtraParams },
-	   function(data){
-		 $('#'+divId).empty();
-		 $('#'+divId).append(data);
-		 $('#'+divId).removeClass('loading');
-		}
-	 );
+	// Check if the user is not editing the list properties right now
+	var bDialogOpen = false;
+	var oDataTable = $('#'+divId+' :itop-datatable');
+	if (oDataTable.length > 0)
+	{
+		bDialogOpen = oDataTable.datatable('IsDialogOpen');
+	}
+	if (!bDialogOpen)
+	{
+		$('#'+divId).block();
+		
+		$.post(GetAbsoluteUrlAppRoot()+'pages/ajax.render.php?style='+sStyle,
+		   { operation: 'ajax', filter: sSerializedFilter, extra_params: sExtraParams },
+		   function(data){
+			 $('#'+divId).empty();
+			 $('#'+divId).append(data);
+			 $('#'+divId).removeClass('loading');
+			}
+		 );
+	}
 }
 
 /**