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

        Hide
        Ken Fyten added a comment -

        Also possibly related, the ice:inputRichText demo on the public ICEfaces showcase doesn't load either.

        http://icefaces-showcase.icesoft.org/showcase.jsf?grp=compatMenu&exp=richtext

        Show
        Ken Fyten added a comment - Also possibly related, the ice:inputRichText demo on the public ICEfaces showcase doesn't load either. http://icefaces-showcase.icesoft.org/showcase.jsf?grp=compatMenu&exp=richtext
        Hide
        Mircea Toma added a comment -

        Fixed the calculation of the extension mapping used by the container (portlet case). Implemented Resource.getContentType method in ResourceEntry class since returning the content-type in Resource.getResponseHeaders is not enough. Also the the calculated resource URLs are ran through the ExternalContext.encodeResourceURL before creating the resource mapping used by CKeditor.

        Show
        Mircea Toma added a comment - Fixed the calculation of the extension mapping used by the container (portlet case). Implemented Resource.getContentType method in ResourceEntry class since returning the content-type in Resource.getResponseHeaders is not enough. Also the the calculated resource URLs are ran through the ExternalContext.encodeResourceURL before creating the resource mapping used by CKeditor.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: