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)

SVN:trunk[4257]
This commit is contained in:
Guillaume Lajarige
2016-06-23 12:58:34 +00:00
parent 1e6ab3bdf0
commit 31cafcf2dd
3 changed files with 12 additions and 3 deletions

View File

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

View File

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

View File

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