ICEfaces
  1. ICEfaces
  2. ICE-7761

Application specific CSS classes are loaded before ICEfaces CSS

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 3.0
    • Fix Version/s: EE-3.0.0.BETA, 3.0.1
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      ICEfaces 3.0

      Description

      Pre-ICEfaces 3.0 final release it was possible to define a custom style class and have it render after the built in ICEfaces CSS. On the 3.0 final release the custom style classes are rendered first before the ICEfaces CSS. This makes it not possible to override the ICEfaces CSS with a custom class.
      1. Case10958Example.zip
        17 kB
        Arran Mccullough
      1. stylesheet-ICEfaces-3-RC1.jpg
        335 kB
      2. stylesheet-ICEfaces-3-Final.jpg
        204 kB

        Issue Links

          Activity

          Hide
          Arran Mccullough added a comment -

          Screen shots showing the different rendering of the custom CSS file from the different ICEfaces releases.

          Show
          Arran Mccullough added a comment - Screen shots showing the different rendering of the custom CSS file from the different ICEfaces releases.
          Hide
          Arturo Zambrano added a comment -

          Note that the test page is using a <link /> element. This is not an issue when one uses <h:outputStylesheet /> instead. Moving <link /> elements and placing them after ICEfaces' resources is not very straight-forward. Using <h:outputStylesheet /> might be the easiest thing to do. Just make sure to put the resources under META-INF/resources. Then, you can just use <h:outputStylesheet name="style.css" library="css" />

          Show
          Arturo Zambrano added a comment - Note that the test page is using a <link /> element. This is not an issue when one uses <h:outputStylesheet /> instead. Moving <link /> elements and placing them after ICEfaces' resources is not very straight-forward. Using <h:outputStylesheet /> might be the easiest thing to do. Just make sure to put the resources under META-INF/resources. Then, you can just use <h:outputStylesheet name="style.css" library="css" />
          Hide
          Pierre Asselin added a comment -

          This is not an option for us; the stylesheets need to be in the provided URI, outside of the META-INF resources. This was working fine in RC1 but something was changed in a later version that changed the rendering order in the h:head.

          Show
          Pierre Asselin added a comment - This is not an option for us; the stylesheets need to be in the provided URI, outside of the META-INF resources. This was working fine in RC1 but something was changed in a later version that changed the rendering order in the h:head.
          Hide
          Arturo Zambrano added a comment -

          Fixed at revision 27929 in the trunk and at revision 27930 in maintenance branch.

          The resource loading sequence in BridgeSetup.java was modified to ensure that the theme is loaded before any other children in <h:head>, including <link /> tags.

          The reason this was working before was because we were using a Head renderer, which gives more control over the order in which resources are loaded on the page, but this had to be removed because it creates conflicts with other JSF libraries.

          Show
          Arturo Zambrano added a comment - Fixed at revision 27929 in the trunk and at revision 27930 in maintenance branch. The resource loading sequence in BridgeSetup.java was modified to ensure that the theme is loaded before any other children in <h:head>, including <link /> tags. The reason this was working before was because we were using a Head renderer, which gives more control over the order in which resources are loaded on the page, but this had to be removed because it creates conflicts with other JSF libraries.
          Hide
          Ken Fyten added a comment -

          Re-open due to incompatibilities with MyFaces. Need to adopt a custom head renderer approach instead to ensure predictable resource loading sequencing.

          Show
          Ken Fyten added a comment - Re-open due to incompatibilities with MyFaces. Need to adopt a custom head renderer approach instead to ensure predictable resource loading sequencing.
          Hide
          Arturo Zambrano added a comment -

          The problems with myfaces are now fixed, the custom h:head renderer was re-enabled as part of ICE-7789.

          Show
          Arturo Zambrano added a comment - The problems with myfaces are now fixed, the custom h:head renderer was re-enabled as part of ICE-7789 .

            People

            • Assignee:
              Arturo Zambrano
              Reporter:
              Arran Mccullough
            • Votes:
              1 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: