Design
Default Configuration
Default Behaviour(s) :
#01 : Top filter bar is displayed on the search results page. Each cursor can have its top filter bar.
#02 : Default top filter bar for all assets cursor is composed of the following filters :
Assets
Category
Campaign
Keywords
Language
Rights
People
#03 : Default top filter bar for all videos cursor is composed of the following filters :
Category
Campaign
Keywords
Language
Rights
People
Assets filter
Default Behaviour(s) :
The asset’s filter is composed of the following information :
Filter name : Assets
Section name : Type
Option type : Multiple selection
Option Values : Values are automatically generated from technical assets’s data available
Section name : Orientation
Option type : Multiple selection
Option Values : Landscape, Portrait, Square
Section name : Size
Type : Number field
Field : Width, Height
Section name : Dominant colors
Type : Multiple selection (colors band)
Option Values :
Section name : Color Space
Option type : Multiple selection
Option Values : Values are automatically generated from technical assets’s data available
Section name : Document type
Option type : Multiple selection
Option Values : Values are automatically generated from technical assets’s data available
Section name : File extension
Type : Input text
Option values : None. Once the user start typing a word, the filter immediately applies.
Keywords filter
The Keywords filter is composed of the following information :
Filter name : Keywords
The closed list filter will list all keyword values (exept IA keyword), in a paginated list
Search is enabled for looking a specific value
Checkboxes will select the value
Counts are available by default
Rights filter
The Rights filter is composed of the following information :
Filter name : Rights
Section name : Rights Type
Type : Multiple selection
Option values :
External
External but publication
Internal
Section name : Expiration Date (radio button)
Type : Radio Button
Option values :
Never Expires
Expire within a year
Expire within a month
Expire within a week
Between two dates
People filter
The people filter is composed of the following information :
Filter name : People
Section Name : People
Type : Radio button (currently working with multiple selection)
Option values :
With People
Without People
Section Name : Age
Type : Multiple selection
Option values :
Baby
Children
Adults
Seniors
Category filter
The Category filter is composed of the following information :
Filter name : Category
Type : Thesaurus, single selection
Trees and thesaurus will list all values by default
Search is activated by default
Option values :
Category 1
Category 2
Category 2.1
Category 2.2
Category 3
Category 4
Category 4.1
Category 4.2
Campaign filter
The Campaign filter is composed of the following information :
Filter name : Campaign
Type : Thesaurus, single selection
Option values :
Campaign 1
Campaign 2
Campaign 2.1
Campaign 2.2
Campaign 3
Campaign 4
Campaign 4.1
Campaign 4.2
Language
The Language filter is composed of the following information :
Filter name : Language
Type : Multiple selection
Option values :
English
French
Deutsch
Configuring the search bar
Resolving the search bar to use for a context
Search bars are configured per cursor and resource, based on the current context chosen by the user. The application falls back to default configuration if no search bar can be found for current context. Config is loaded from first existing configuration from:
$.dam.explore.filters.<cursorName>.<resourceName>
$.dam.explore.filters.<cursorName>.defaultResourceConfig
$.dam.explore.filters.defaultCursorConfig.<resourceName>
$.dam.explore.filters.defaultCursorConfig.defaultResourceConfig
Exemple: Given user has chosen a context mapping to cursor “activeCursor” and resource “activeResource”, the application will load first existing search bar config from the following paths:
$.dam.explore.filters.activeCursor.activeResource
$.dam.explore.filters.activeCursor.defaultResourceConfig
$.dam.explore.filters.defaultCursorConfig.activeResource
$.dam.explore.filters.defaultCursorConfig.defaultResourceConfig
Configuring a search bar
From a configuration perspective, a search bar is defined by an object with following properties:
hideSide
:boolean
- Defines if a side search should be displayedfilters
:Array<SearchItem>
- Defines the items that are used as search entries. Each item will at that level will reflect either:A button in the search bar
An entry in the side search (entry must describe a tree field filter)
SearchItem
description
A SearchItem can be one of the following:
A
string
referencing aNamedFilterConfig
An
ItemFilterConfig
A
GroupFilterConfig
NamedFilterConfig
description
NamedFilterConfig
are named filters configurations. This allows to define Filters once and to re-use them across different contexts.
NamedFilterConfig
are defined in $.common.namedFilters
. It can be one of:
A
string
reflecting aNamedFilterConfig
A
string
reflecting a field name (as defined in the admin structure area)An
ItemFilterConfig
A
CustomConstraintFilterConfig
A
GroupFilterConfig
ItemFilterConfig
description
An ItemFilterConfig
reflects a single filter. It can be defined as:
A
string
representing the field you want to create a filter from. In such case, default behaviour of this filter will be defined base on the field type. This is equivalent to creating a FieldFilterConfig by only specifying the field property:"myfieldname" // equivalent to { "field": "myfieldname" }
An
FieldFilterConfig
describing the filter.
If ever you define a NamedFilterConfig
with the same name as a structure field, you will not be able to access this field only as a String by its name: Otherwise, the application will end in an infinite loop calling the NamedFilterConfig
FieldFilterConfig
description
An Object
representing a filter for a given field.
Common FieldFilterConfig
properties
Property | Type | Default | Description |
---|---|---|---|
|
|
| When set to true, the field button won’t show by default. User will need to select the field from the + button |
|
|
| Allows to add one or more classes to the component |
|
|
| Allows to force a component to be used. Usage of this property is discouraged. |
|
| value of | Name of the constraint to which this filter applies |
|
|
| When set to true, the filter is considered as a custom parameter and sent as such to the REST service |
|
|
| The name of the field on which the filter applies. If not provided, the filter will be resolved as a |
|
|
| I18n key to use for the button of the field |
|
|
field label if i18n not available | The label of the button |
Additional FieldFilterConfig
properties for Boolean
fields
Property | Type | Default | Description |
---|---|---|---|
|
|
| Shows boolean filter as a Switch |
Additional FieldFilterConfig
properties for Date
fields
Property | Type | Default | Description |
---|---|---|---|
|
|
| Adds ability to filter between two dates |
|
|
| Can only define one value: |
|
|
| Allows to define “built-in” constraints for searching on the date field: |
DateConstraint
description
Property | Type | Description |
---|---|---|
|
| Label of the constraint |
|
| The constraint to apply on the date field |
See in v0 config $.common.namedFilters.rightsGroupEndRights
for examples
Additional FieldFilterConfig
properties for Number
fields
Property | Type | Default | Description |
---|---|---|---|
|
|
| Will use each operator to produce an input |
Additional FieldFilterConfig
properties for Relationship
fields
Property | Type | Default | Description |
---|---|---|---|
|
| Resolved from the field referenced resource | Allows to force not using a tree filter for a tree field. |
Before resolving a relationship filter, the application will by default discover if the field is a tree relationship. It is possible to force the application NOT to use a tree filter for a tree field
It is NOT possible to force the application to use a tree filter for a non-tree relationship.
Additional FieldFilterConfig
for non tree Relationship
fields
Property | Type | Default | Description |
---|---|---|---|
|
| One of Defines how aggregates should be used
| |
|
|
| Name of the cursor, or cursor definition to use for displaying possible relationship values. If an empty object, an anonymous cursor is created based on the field’s related resource |
|
|
| Max number of displayed items |
|
| If the field is a child, If the field is a childmultiple,
| The operator to use for the filter |
|
|
| Enable searching when number of possible values reaches this value |
Additional FieldFilterConfig
for tree Relationship
fields
Property | Type | Default | Description |
---|---|---|---|
|
|
| Allows to display |
|
|
| Allows to use an alternate layout. |
|
|
| The operator to use for the filter |
|
|
| Allows to move the filter to the side of the search bar |
|
|
| Allows to define the default filter to use in the side panel when multiple are available |
|
|
| Name of the tree, or tree definition to use for displaying possible relationship values. If an empty object, an anonymous tree is created based on the field’s related resource |
Additional FieldFilterConfig
for tree String
fields
Property | Type | Default | Description |
---|---|---|---|
|
|
| Will use each operator to produce an input |
CustomConstraintFilterConfig
description
CustomConstraintFilterConfig
allows to define a filter that relies on filters applying to multiple fields.
Property | Type | Default | Description |
---|---|---|---|
|
|
| When set to true, the field button won’t show by default. User will need to select the field from the + button |
|
|
| Allows to add one or more classes to the component |
|
|
| Allows to force a component to be used. Usage of this property is discouraged. |
|
| value of | Name of the constraint to which this filter applies |
|
|
| The filter’s constraint. |
|
|
| I18n key to use for the button of the field |
|
|
field label if i18n not available | The label of the button |
GroupFilterConfig
description
A GroupFilterConfig
allows to group multiple ItemFilterConfig
or GroupFilterConfig
together.
For easier configuration, a GroupFilterConfig can de defined as a simple Array, where:
The first item in the array is either:
a
string
(the value is considered to be an i18n keyan
Array<string>
wherefirst item is an i18n key
second item is a css selector used for displaying the icon
an
Object
null
Other items are all of type
SearchItem
On such configuration, this array is transformed by the application into a GroupFilterConfig
object:
["some.key", "item1", "item2"]
is equivalent to:
{ "i18n": "some.key", "config": ["item1", "item2"] }
[{...props}, "item1", "item2"]
is equivalent to:
{ ...props, "config": ["item1", "item2"] }
[["some.key", "far fa-cog"], "item1", "item2"]
is equivalent to:
{ "i18n": "some.key", "icon": "far fa-cog", "config": ["item1", "item2"] }
[null, "item1", "item2"]
is equivalent to:
{ "config": ["item1", "item2"] }
GroupFilterConfig
properties
Property | Type | Default | Description |
---|---|---|---|
|
|
| The i18n key of the group name |
|
|
| The icon for the group button |
|
|
| The |
GroupTabWrapper
additional properties
A tabs
property can be provided to define how to organise , items within the groups.
Passing tabs as an Array
Use the array syntax for static tabs. Each item within the tabs array should be an object with following properties:
Property | Type | Default | Description |
---|---|---|---|
|
|
| The i18n key of the tab name |
|
|
| The content of the tab |
Passing tabs as an Object
Use the object syntax if you want to generate the tabs as values of a filter. On such circumstance, tabs should be an object with following properties:
Property | Type | Default | Description |
---|---|---|---|
|
|
| A This |
|
|
| The content of the tab. Each key should be the value of the |
GroupWrapper
additional properties
Property | Type | Default | Description |
---|---|---|---|
|
|
| When defined, allows to group constraints from nested configs with logical operators |
|
|
| When set to |