[ http://issues.apache.org/jira/browse/COCOON-1782?page=all ]
Simone Gianni reassigned COCOON-1782:
-------------------------------------
Assign To: Simone Gianni
> [PATCH] Support for CSS classes in cocoon forms XSL
> ---------------------------------------------------
>
> Key: COCOON-1782
> URL: http://issues.apache.org/jira/browse/COCOON-1782
> Project: Cocoon
> Type: Improvement
> Components: Blocks: Forms
> Reporter: Simone Gianni
> Assignee: Simone Gianni
> Attachments: xsl-css-2.diff, xsl-css-trunk.diff, xsl-css.diff
>
> Added CSS classes to key elements in default cocoon forms XSL. Here is a
> brief explanation of how it works :
> -----------------------
> Common fields styling
> The general rule for common fields (styled by forms-field-styling.xsl) is to
> apply the following classes :
> - "forms" : is placed always, to avoid name clashes with already present
> site-specific classes.
> - <widget name> : can be "field", "action", "output", "booleanfield",
> "multivaluefield", "upload", "repeater", "imagemap", "aggregatefield",
> "form", "messages".
> - <state> : the state of the widget, can be empty, "active", "disbled",
> "output".
> - "required" : if the widget is required.
> - "with-errors" : if there are some fi:validation-messages associated with
> the widget.
> - <class> : an optional, user defined, fi:styling/@class that can be
> specified on a field to fine tune widget styling.
> This technique makes it easy to write very specific CSS rules, as much as
> very general ones. For example :
> input.required {
> color: blue;
> }
> Will make all required inputs have a blue text color, while
> input.upload.required {
> color: red;
> }
> will make only the required upload widgets have a red text color.
> The HTML elements to which this classes will be applied varies depending on
> the widget type and special fi:styling attributes (like list-type for
> selection lists, fi:styling/@type etc..).
> There are also other classes, placed to correctly style other elements, these
> are :
> - "captcha" : applied to the img element of a captcha field.
> - "required-mark" : applied to the span containing the "*" near the required
> fields.
> - "validation-message" : applied to the anchor element containing the "!"
> near the fields with errors.
> - "vertical-list" and "horizontal-list" : applied to the tables used to
> layout these kind of lists.
> - "upload-change-button" : applied to the button that appears next to the
> upload widget when a file has been uploaded.
> For the validation-errors element (which outputs a list of all validation
> errors found in the form) there are other special classes :
> - "validation-errors" : applied to the div that contains the errors recap
> block.
> - "validation-errors-header" and "validation-errors-footer" : applied to the
> paragraphs that contains the header and footer of the errors recap.
> - "validation-errors-content" : applied to the "li" element of the errors
> list.
> Page styling
> Another set of classes is used for page styling (forms-page-styling.xsl). The
> general rule for fi:group is to apply the following classes :
> - "forms" : as always placed to mark a cocoon forms CSS class.
> - "group" : identify a group class
> - <layout> or <type> : the fi:styling/@layout or fi:styling/@type of the
> fi:group
> - <class> : an optional, user defined, fi:styling/@class that can be
> specified on a group to fine tune styling.
> As for the widgets, these classes are applied to different HTML elements
> depèending on the group type and layout.
> For those layouts which uses tables, special classes are used to mark
> specific cells :
> - "label" : applied to the "td" containing the label
> - "content" : applied to the "td" containing the form input
> - "action" : applied to the "td" containing an action widget, for those
> layouts that creates special cells for this widgets.
> - "booleanfield" : applied to the "td" containing a booleanfield widget, for
> those layouts that creates special cells for this widgets.
> - "other" : applied to the "td" containing other content, like another nested
> fi:group or non cocoon forms elements.
> Consider this CSS snippet :
> table.group.columns {
> border: 1px solid blue;
> }
> table.group.columns td {
> background: yellow;
> }
> table.group.columns td.label {
> background: blue;
> color: white;
> width: 20%;
> }
> This will style every fi:group with layout "columns" placing a blue border on
> the table, then using a yello background for every cell in the table, while a
> blue blackground, a while text color and a width of 20% will be used for
> cells containing labels.
> A special case of layout is handled directly in the basic xsl
> (forms-field-styling.xsl), which format with a "columns" similar layout a
> "fi:form". In this case the same classes (label, content etc..) applies.
> Some special classes are used for the tab layout. These are :
> - "tabArea" : applied to the div containing the tabs.
> - "tabContent" : applied to the div containing the tabs contents.
> - "tab" : applied to every span representing a single tab
> - "active" : marks the currently active tab.
> - "validation-message" : applied to the span placed in a tab when there are
> validation-messages in any control inside that tab.
> Compatibility with old classes
> The cocoon forms XSLs prior to this patch used a few CSS classes for tabs,
> required marks, validation messages and another few elements. These classes
> have been mantained to grant backward compatibilty, but should not be used
> anymore.
> -----------------------
> Thanks to Derek Hohls and Helma for sharing with me their work on this
> subject.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira