|
|
|
| The following comment has been added to this issue: |
[ Permlink ] |
|
Author: Florent Guillaume
Date: 29/06/07 18:45
Comment:
The component has been updated to allow self-referential vocabularies (parent needs to be searched for NULL at the first level).
|
|
Create a component + facelet that allows a choice in a list of values from a tree based on directories.
The values selected by this component are "hierarchical", they have a path-based structure.
- paths are of the for 'foo' or 'foo/bar/baz'
- the root is represented by '/'
- the path separator must be configurable to allow a choice different than '/'
The tree is represented by a fixed number of directory tables. Each table represent a "level" of the tree, in this model each level has "homogenous" values.
- the first table represents the toplevel entries of the tree, with columns for id and label (and obsolete) (see NXP-190)
- the remaining table have column for parent_id, id and label. id is just the last component. (parent_id + id) represent a unique key. parent_id+separator+id represents the full value.
The UI of the tree is based on chained selects, like http://www.dynamicdrive.com/dynamicindex1/chainedmenu/index.htm provides.
Another example is the Apple Widget browser at http://www.apple.com/downloads/dashboard/
The facelet must provide options to:
- treats the label as a msgid for i18n
- filters out "obsolete" values: an 'obsolete' column holding a boolean True when the value shouldn't be used anymore
- sort the values by id or label, or "user-visible label" (see below)
- allow selection of only leaves or of values at any level
- allow single or multi-select (note that the problem of multi-select for values with different parent may need a quite different UI)
- if values at any level are allowed, allow selection of the root or not
There must be options to decide how to display a "user-visible label" for the resulting value based on all the labels and ids of the different levels. For example, suppose we have value foo/bar/baz where foo has label "TheFoo", bar has label "TheBar", baz has label "TheBaz". Depending on the chosen options, we may want to display the final value as:
- TheBaz
- TheFoo/TheBar/TheBaz (with configurable separator, so TheFoo > TheBar > TheBaz is also an option)
- baz TheBaz (i.e., prefix the id)
- bar baz TheBaz (i.e., prefix the id also of the parent)
- foo bar baz TheBaz (idem)
This same kind of configurability is needed at each level when the user makes a choice, so for instance in the different select the user may want to see:
- TheFoo | TheBar | TheBaz
- foo TheFoo | bar TheBar | baz TheBaz
An alternative facelet would provide a UI based on a popup with an explorer-based tree (see CPS).
A useful enhancement would be to offer a search field instead of displaying a big select when a level has many entries (more than some threshold?).
|
|
|
|
![]() |
|
_______________________________________________
ECM-tickets mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm-tickets