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();
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']
);
}
}

View File

@@ -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;

View File

@@ -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);
}
}
}