Kaynağa Gözat

- Always display the number of elements (and the number of elements selected) when displaying a list.
- Nicer display of paginated lists

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@1357 a333f486-631f-4898-b8df-5754b55c2be0

dflaven 14 yıl önce
ebeveyn
işleme
feebcbd081
2 değiştirilmiş dosya ile 24 ekleme ve 14 silme
  1. 13 12
      pages/UI.php
  2. 11 2
      pages/ajax.render.php

+ 13 - 12
pages/UI.php

@@ -442,6 +442,7 @@ function DisplayMultipleSelectionForm($oP, $oFilter, $sNextOperation, $oChecker,
 		$oP->add("<input type=\"hidden\" name=\"operation\" value=\"$sNextOperation\">\n");
 		$oP->add("<input type=\"hidden\" name=\"class\" value=\"".$oFilter->GetClass()."\">\n");
 		$oP->add("<input type=\"hidden\" name=\"filter\" value=\"".$oFilter->Serialize()."\">\n");
+		$oP->add("<input type=\"hidden\" name=\"transaction_id\" value=\"".utils::GetNewTransactionId()."\">\n");
 		foreach($aExtraFormParams as $sName => $sValue)
 		{
 			$oP->add("<input type=\"hidden\" name=\"$sName\" value=\"$sValue\">\n");
@@ -450,7 +451,15 @@ function DisplayMultipleSelectionForm($oP, $oFilter, $sNextOperation, $oChecker,
 		$oBlock->Display($oP, 1, $aExtraParams);
 		$oP->add("<input type=\"button\" value=\"".Dict::S('UI:Button:Cancel')."\" onClick=\"window.history.back()\">&nbsp;&nbsp;<input type=\"submit\" value=\"".Dict::S('UI:Button:Next')."\">\n");
 		$oP->add("</form>\n");
-		$oP->add_ready_script("CheckAll('.selectList1:not(:disabled)', true);\n");
+		$oP->add_ready_script(
+<<<EOF
+	$(':checkbox[name^=selectObject]').change(function() {					
+		var v = $('#1 table.listResults :checkbox[name^=selectObject]:checked').length;
+		$('#1 .selectedCount').text(v);
+	});
+	CheckAll('.selectList1:not(:disabled)', true);
+EOF
+);
 }
 
 /***********************************************************************************
@@ -1212,18 +1221,10 @@ EOF
 			$oP->add("<h1>".Dict::S('UI:BulkDeleteTitle')."</h1>\n");
 			// TO DO: limit the search filter by the user context
 			$oFilter = CMDBSearchFilter::unserialize($sFilter); // TO DO : check that the filter is valid
-			$oSet = new DBObjectSet($oFilter);
-			$oBlock = new DisplayBlock($oFilter, 'list', false);
-			$oP->add("<form method=\"post\">\n");
-			$oP->add("<input type=\"hidden\" name=\"operation\" value=\"bulk_delete\">\n");
-			$oP->add("<input type=\"hidden\" name=\"class\" value=\"".$oFilter->GetClass()."\">\n");
-			$oP->add("<input type=\"hidden\" name=\"filter\" value=\"".$oFilter->Serialize()."\">\n");
-			$oP->add("<input type=\"hidden\" name=\"transaction_id\" value=\"".utils::GetNewTransactionId()."\">\n");
-			$oBlock->Display($oP, 1, array('selection_type' => 'multiple', 'selection_mode' => true, 'display_limit' => false, 'menu' => false));
-			$oP->add("<input type=\"button\" value=\"".Dict::S('UI:Button:Cancel')."\" onClick=\"window.history.back()\">&nbsp;&nbsp;<input type=\"submit\" value=\"".Dict::S('UI:Button:Next')."\">\n");
-			$oP->add("</form>\n");
+			$oChecker = new ActionChecker($oFilter, UR_ACTION_BULK_DELETE);
+			DisplayMultipleSelectionForm($oP, $oFilter, 'bulk_delete', $oChecker);
 		break;
-		
+
 		///////////////////////////////////////////////////////////////////////////////////////////
 
 		case 'bulk_delete_confirmed': // Confirm bulk deletion of objects

+ 11 - 2
pages/ajax.render.php

@@ -67,7 +67,7 @@ try
 		}
 		$iStart = utils::ReadParam('start',0);
 		$iEnd = utils::ReadParam('end',1);
-		$iSortCol = utils::ReadParam('sort_col',null);
+		$iSortCol = utils::ReadParam('sort_col','null');
 		$sSelectMode = utils::ReadParam('select_mode', '');
 		$bDisplayKey = utils::ReadParam('display_key', 'true') == 'true';
 		$aList = utils::ReadParam('display_list', array());
@@ -87,7 +87,7 @@ try
 		if ($bDisplayKey)
 		{
 			$aConfig['key'] = array();
-			if ($iSortIndex == $iSortCol)
+			if (($iSortCol != 'null') && ($iSortIndex == $iSortCol))
 			{
 				$aOrderBy['friendlyname'] = (utils::ReadParam('sort_order', 'asc') == 'asc');
 			}
@@ -120,6 +120,15 @@ try
 			}
 			$iSortIndex++;
 		}
+		
+		if (count($aOrderBy) == 0)
+		{
+			$aOrderBy['friendlyname'] = true; // By default, sort by name
+		}
+		else
+		{
+//			$oPage->add("</p>ICI: OrderBy already set to: <pre>'".print_r($aOrderBy, true)."'</pre></p>\n");		
+		}
 
 		// Load only the requested columns
 		$oSet = new DBObjectSet($oFilter, $aOrderBy, $aExtraParams, null, $iEnd-$iStart, $iStart);