[ https://jira.nuxeo.com/browse/NXP-4930?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Anahide Tchertchian updated NXP-4930: ------------------------------------- Fix Version/s: (was: 5.4.x) 6.0 > Package more widgets > -------------------- > > Key: NXP-4930 > URL: https://jira.nuxeo.com/browse/NXP-4930 > Project: Nuxeo Enterprise Platform > Issue Type: Sub-task > Components: Layouts / Widgets > Reporter: Anahide Tchertchian > Fix For: 6.0 > > > 2.1 Currentexistingwidgets > > There is a dozen of builtin widget types, to handle common field types: text, > int, > secret, textarea, datetime, file, htmltext, selectOneDirectory, > selectManyDirectory, > checkbox, template, list. > These "builtin" widget types are contributed to the layout service using > extension > points and java classes, in the layout-client module. > Most of them are coded in JAVA, and implement the widget behaviour depending > on > the mode: for widget of type "text" for instance, a standard JSF component > "h:out- > putText" will be used in view mode, and "h:inputText" will be used in edit > mode, ac - > companied with a JSF component "h:message" to display conversion/validation > er- > rors. > The "template" widget is a little special because it enables the use of a > xhtml page > to describe the widget behaviour: no JAVA code is then involved. Some > variables are > made available within these templates (but they are not properly documented > yet). > More variables could be made available to get more features already offered > when > writing the JAVA code. > The "list" widget is also special because it is in fact a widget of type > "template" de - > signed to use an hardcoded template: "/widgets/list_widget_template.xhtml". > So when defining new widget types, two options are available: > - code in JAVA the widget behaviour > - use an xhtml page and hardcode its path in a JAVA class that inherits from > the template widget type handler. > 2.2 Currentwidget templates > > There is a lot of widget templates in several nuxeo packages: even if these > tem- > plates are sometimes generic, they are not registered to the layout service > exten- > sion point. Using them requires to use a widget of type "template" and state > in the > widget properties the template path. > These widgets could be easily added to the list of "builtin" available > widgets. > Here is the list of generic widgets: > - complex_widget_template.xhtml (from layout-client): makes it possible to > map a > complex field (map-like) by defining sub-widgets for each item of the map. > It > could be repackaged as a template widget named "complex". > - complex_list_item_widget_template.xhtml (from layout-client): makes it > possible > to map a complex field (map-like) when the field is held in a list. It is > different > from a simple complex widget because the mapping of sub-fields cannot be > done exactly in the same way in both cases. It could be repackaged as a > tem- > plate widget named "complex_list_item". > - list_subwidget_template.xhtml (from layout-client): makes it possible to > map a > sub-field of type list by defining sub-widgets for each element of the > list (e.g > when defining a structure involving a list of lists). It could be > repackaged as a > template widget named "sublist". > It is different from the simple "list" widget handler because the first > list widget > will define an ajax region and an iteration variable that would get mixed > up with > the sublist ajax region and iteration variable: this template does not > define a > new ajax region, and uses a distinct iteration variable. Note that yet > another > template would be needed to handle a list of lists of lists, to use a > distinct itera - > tion variable. > - user_password_validation_widget_template.xhtml (from webapp-base): provides > an hidden field that performs validation over password and password > confirma- > tion (to check that they match). It depends on webapp-base seam components, > so it should not be made available in layout-client, but it could be > repackaged > here as a template widget named "single_user_group_suggestion". It also > provides a basic cross-validation example. > - single_user_suggestion_widget_template.xhtml (from webapp-base): provides a > suggestion box for a single user/group selection. It depends on webapp-base > user management seam components, so it should not be made available in lay- > out-client, but it could be repackaged here as a template widget named > "single_user_group_suggestion". > - user_suggestion_widget_template.xhtml (from webapp-base): provides a sug- > gestion box for a list of users/group selection. It depends on webapp-base > user > management seam components, so it should not be made available in > layout-cli- > ent, but it could be repackaged here as a template widget > named > "user_group_suggestion". > - user_prefixed_suggestion_widget_template.xhtml (ffrom webapp-base): sames > as above, but provides "user:" and "group:" prefixes when selecting users > and > groups, which is useful when needing to identify the selection type (for > workflow > participants for instance). It could be repackaged as > "prefixed_user_group_sug- > gestion". > Here is the list of specific widgets that could be made generic: > - directive_widget_template.xhtml (from > jbpm-web), > protocol_type_widget_template.xhtml (from > mail-web), > moderation_type_widget_template.xhtml (from webapp) : these are select one > menus with specific values that are not stored in a directory. They could > be > rewritten using a generic selection widget (see chapter 2.5) > - duedate_widget_template.xhtml (from jbpm-web): this is a datetime widget > with > an additional validator. This can be expressed in the XML and does not > require a > template. It should be removed and the widget calling it should be > rewritten. > - emails_limit_widget_template.xhtml (from mail-web): this is standard text > widget with a standard JSF validator. It could be rewritten using a > generic way- > of defining validators (see chapter 2.4) > - join_list_widget_widget_template.xhtml (from mail-web) and contributors- > widget.xhtml (from webapp): these are templates presenting a list of items > joined with a given character, and final delimiter. This could be addressed > providing more presentation options to the list widget in view mode (see > chapter 2.3) > - subjects_widget.xhtml (from webapp), coverage_widget.xhtml (from webapp), > chain_monoselect_2levels_widget.xhtml (from studio) > and > chain_multiselect_2levels_widget.xhtml (from studio): these are chain > select > widget templates. Templates used in studio are more generic and could be > packaged as is in ui-web, naming them "chain_monoselect_2levels" and > "chain_multiselect_2levels", and subjects and coverage widgets rewritten > to use > them, but improvements to chain select may have to be considered first (see > chapter 2.5) > - nolabel_list_widget_template.xhtml (from > webapp), > studio_list_widget_template.xhtml (from studio) > and > files_list_widget_template.xhtml (from webapp) are all variations of the > list > widget presentation: sometimes label should not be displayed for each > subwidget of the list, and sometimes input file values need to be kept > using > some javascript hack so that chosen file paths are not removed from the DOM > when performing an AJAX action (add or remove a new item from the list for > instance). This could be addressed adding more presentation options for > the list > widget (see chapter 2.3) > - boolean_radio_widget_template.xhtml > and > integer_yes_no_widget_template.xhtml (from webapp): these are presenting > identical screens, but the value stored is either a boolean either an > integer. > They could be rewritten using a generic selection widget (see chapter 2.5). > - extended_file_widget.xhtml and extended_subfile_widget.xhtml (from webapp) > are presenting, on top of the file, additional features (live edit, pdf > preview and > preview links). They depend on webapp-core features, so it should not be > made > available in layout-client, but it could be repackaged here as template > widgets > named "extended_file" and "extended_subfile". > See -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira _______________________________________________ ECM-tickets mailing list ECM-tickets@lists.nuxeo.com http://lists.nuxeo.com/mailman/listinfo/ecm-tickets