Переглянути джерело

Customers portal : BrowseBrick : Extra field columns can be hidden in list mode while remaining filterable. (Use case example : Hide a "keywords" attribute to enable filtering on it)

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@4257 a333f486-631f-4898-b8df-5754b55c2be0
glajarige 9 роки тому
батько
коміт
cb3a24a866

+ 3 - 2
datamodels/2.x/itop-portal-base/portal/src/controllers/browsebrickcontroller.class.inc.php

@@ -360,11 +360,12 @@ class BrowseBrickController extends BrickController
 				{
 					$aLevelsProperties[$sCurrentLevelAlias]['fields'] = array();
 
-					foreach ($aLevel['fields'] as $sFieldAttCode)
+					foreach ($aLevel['fields'] as $sFieldAttCode => $aFieldProperties)
 					{
 						$aLevelsProperties[$sCurrentLevelAlias]['fields'][] = array(
 							'code' => $sFieldAttCode,
-							'label' => MetaModel::GetAttributeDef($oSearch->GetClass(), $sFieldAttCode)->GetLabel()
+							'label' => MetaModel::GetAttributeDef($oSearch->GetClass(), $sFieldAttCode)->GetLabel(),
+							'hidden' => $aFieldProperties['hidden']
 						);
 					}
 				}

+ 7 - 1
datamodels/2.x/itop-portal-base/portal/src/entities/browsebrick.class.inc.php

@@ -349,12 +349,18 @@ class BrowseBrick extends PortalBrick
 						{
 							if ($oFieldNode->hasAttribute('id') && $oFieldNode->getAttribute('id') !== '')
 							{
-								$aLevel[$sTagName][] = $oFieldNode->getAttribute('id');
+								$aLevel[$sTagName][$oFieldNode->getAttribute('id')] = array('hidden' => false);
 							}
 							else
 							{
 								throw new DOMFormatException('BrowseBrick :  ' . $sTagName . '/* tag must have an "id" attribute and it must not be empty', null, null, $oFieldNode);
 							}
+
+							$oFieldSubNode = $oFieldNode->GetOptionalElement('hidden');
+							if ($oFieldSubNode !== null)
+							{
+								$aLevel[$sTagName][$oFieldNode->getAttribute('id')]['hidden'] = ($oFieldSubNode->GetText() === 'true') ? true : false;
+							}
 						}
 					}
 					break;

+ 2 - 0
datamodels/2.x/itop-portal-base/portal/src/views/bricks/browse/mode_list.html.twig

@@ -195,11 +195,13 @@
 							"width": "auto",
 							"searchable": true,
 							"sortable": false,
+							"visible": !oLevelsProperties[sKey].fields[i].hidden,
 							"title": oLevelsProperties[sKey].fields[i].label,
 							"defaultContent": "",
 							"type": "html",
 							"data": oLevelsProperties[sKey].alias+".fields."+oLevelsProperties[sKey].fields[i].code
 						});
+						console.log(oLevelsProperties[sKey].fields[i].visible);
 					}
 				}
 			}