ICEfaces
  1. ICEfaces
  2. ICE-7754

Compat Rich Input Text resources not loading in portlets

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • 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 portlet portal

      Description

      When loading the compat version of the Rich Input Text component using ICEfaces 3 and Liferay 5.2.3 (the Liferay version may not be relevant given the nature of the problem), there are a couple of ckeditor resources that don't load.

      The initial ckeditor.js file loads properly using the following URL:

      http://localhost:8080/web/guest/richtext?_inputRichText_WAR_componentshowcaseportlet_INSTANCE_6ThI_javax.faces.resource=inputrichtext%2Fckeditor%2Fckeditor.js&p_p_col_count=1&p_p_col_id=column-1&p_p_id=inputRichText_WAR_componentshowcaseportlet_INSTANCE_6ThI&p_p_lifecycle=2

      But two other files that CKEditor depends on do not because they don't appear to use standard JSF loading techniques:

      Request URL:http://localhost:8080/web/guest/skins/kama/editor.css?t=B1GG4Z6
      Request Method:GET
      Status Code:404 Not Found

      Request URL:http://localhost:8080/web/guest/lang/en.js?t=B1GG4Z6
      Request Method:GET
      Status Code:404 Not Found

      During evaluation of ckeditor.js, there are console errors becauses the files cannot be found and because the language file did not load:

      GET http://localhost:8080/web/guest/lang/en.js?t=B1GG4Z6 404 (Not Found)
      Uncaught TypeError: Cannot read property 'options' of undefined
      GET http://localhost:8080/web/guest/skins/kama/editor.css?t=B1GG4Z6 404 (Not Found)

      The language one is particularly problematic because it prevents the creation of the editor around this code:

      onLoad:function(){j.contextMenu=e.createClass({base:a.menu,$:function(m){this.base.call(this,m,{panel:{className:m.skinClass+' cke_contextmenu',attributes:{'aria-label':m.lang.contextmenu.options}}});

      I'm not familiar with how we get the CKEditor to load up the resources it is dependent on but seems that they should be using standard JSF resource handling strategies or we'll have problems with portlets.

        Activity

        Repository Revision Date User Message
        ICEsoft Public SVN Repository #27887 Wed Feb 15 17:18:18 MST 2012 mircea.toma ICE-7754 Determine correctly the extension mapping used by the container (portlet case). Implement Resource.getContentType method in ResourceEntry class since returning the content-type in Resource.getResponseHeaders is not enough. Run the calculated URLs through the ExternalContext.encodeResourceURL before creating the resource mapping used by CKeditor.
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/inputrichtext/InputRichTextResourceHandler.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #27917 Fri Feb 17 09:37:53 MST 2012 ken.fyten ICE-7754 Determine correctly the extension mapping used by the container (portlet case). Implement Resource.getContentType method in ResourceEntry class since returning the content-type in Resource.getResponseHeaders is not enough. Run the calculated URLs through the ExternalContext.encodeResourceURL before creating the resource mapping used by CKeditor.
        Files Changed
        Commit graph MODIFY /icefaces3/branches/icefaces-3.0.x-maintenance/icefaces/compat/components/src/main/java/com/icesoft/faces/component/inputrichtext/InputRichTextResourceHandler.java

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Deryk Sinotte
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: