Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 2.0.1, EE-2.0.0.GA
-
Fix Version/s: 3.0.1, EE-3.0.0.GA
-
Component/s: ICE-Components
-
Labels:None
-
Environment:ICEfaces 2 Portal Portlet InputRichText
Description
The InputRichTextSetup class attempts to use a SystemEventListener to add the scripts for the CKEditor to the head. This is similar to the strategy we use for other head scripts (ie bridge.js). However, the CKEditor resource URLs are created using the ResourceRegistry rather than the standard JSF library/name system.
When loading a page in WebSphere Portal, Firebug shows that "CKEDITOR is not defined". Looking at the page URL it's trying to load:
http://192.168.55.111:10039/wps/myportal/Home/cs1/!ut/p/b1/04_SjzS0NDQyNzOysDDSj9CPykssy0xPLMnMz0vMAfGjzOINzAKMA3ycTU1M_D3NDDxDPUJCjJx8jQxcDYEKIoEKnN0dPUzMfQwMLEwtDA08HT1Czc2CXYwMHI3x6g8118-NynEEAFUr3OM!/
But the CKEditor resource URL ends up being:
http://192.168.55.111:10039/wps/component-showcase/icefaces/resource/LTE5NDk5MzQyNTU=//ckeditor.js
On WebSphere Portal, this doesn't match the typical <head> resource URL which looks more like:
http://192.168.55.111:10039/wps/myportal/Home/cs1/!ut/p/b1/dY3LboMwFAW_JV9wL7YDZOmCVRNMA-KR4A1CyEqIQqBAkJKvL60qddWzO9JoBjSUxNlZhKBL4QT6Xi_tuZ7b_l7fvr-2K7RjGitvy9ghsDHIZZaRt4igsOAI-gfx3rlkjkJ0t66FAZe5Y6c-QU5_AfxnHOFD9p1ZTaV2_lKe8Pw15Rdh6KcEcU2NZuofY2MgaermYpRZzC2uzwZSOCGr0qs7hEo8JhSzygSbrXYOVcMWlQ8Hq9xF4TREaV4Vz-d4fNEiL3jC5_3rkyWbDXR6L2nn8S-MqFo-/
It does manage to work on Liferay but that's because the URL is a Registry resource style and we are allowing a "direct" connection to the app context (bypassing the portal). For example, the URL for a portal page in Liferay looks like:
http://localhost:8080/web/guest/cs1
But the CKEditor resource is still:
http://localhost:8080/component-showcase-portlet/icefaces/resource/LTE5NDk5MzQyNTU=//ckeditor.js
It appears that trying to create the URL to the .js file that is lodged somewhere in the .jar file using our current ResourceRegistry won't work. So we either need to:
- ensure that the ResourceRegistry is completely portlet friendly when generating URLs or
- perhaps we should use the same "library" style strategy we use for bridge.js, etc?
When loading a page in WebSphere Portal, Firebug shows that "CKEDITOR is not defined". Looking at the page URL it's trying to load:
http://192.168.55.111:10039/wps/myportal/Home/cs1/!ut/p/b1/04_SjzS0NDQyNzOysDDSj9CPykssy0xPLMnMz0vMAfGjzOINzAKMA3ycTU1M_D3NDDxDPUJCjJx8jQxcDYEKIoEKnN0dPUzMfQwMLEwtDA08HT1Czc2CXYwMHI3x6g8118-NynEEAFUr3OM!/
But the CKEditor resource URL ends up being:
http://192.168.55.111:10039/wps/component-showcase/icefaces/resource/LTE5NDk5MzQyNTU=//ckeditor.js
On WebSphere Portal, this doesn't match the typical <head> resource URL which looks more like:
http://192.168.55.111:10039/wps/myportal/Home/cs1/!ut/p/b1/dY3LboMwFAW_JV9wL7YDZOmCVRNMA-KR4A1CyEqIQqBAkJKvL60qddWzO9JoBjSUxNlZhKBL4QT6Xi_tuZ7b_l7fvr-2K7RjGitvy9ghsDHIZZaRt4igsOAI-gfx3rlkjkJ0t66FAZe5Y6c-QU5_AfxnHOFD9p1ZTaV2_lKe8Pw15Rdh6KcEcU2NZuofY2MgaermYpRZzC2uzwZSOCGr0qs7hEo8JhSzygSbrXYOVcMWlQ8Hq9xF4TREaV4Vz-d4fNEiL3jC5_3rkyWbDXR6L2nn8S-MqFo-/
It does manage to work on Liferay but that's because the URL is a Registry resource style and we are allowing a "direct" connection to the app context (bypassing the portal). For example, the URL for a portal page in Liferay looks like:
http://localhost:8080/web/guest/cs1
But the CKEditor resource is still:
http://localhost:8080/component-showcase-portlet/icefaces/resource/LTE5NDk5MzQyNTU=//ckeditor.js
It appears that trying to create the URL to the .js file that is lodged somewhere in the .jar file using our current ResourceRegistry won't work. So we either need to:
- ensure that the ResourceRegistry is completely portlet friendly when generating URLs or
- perhaps we should use the same "library" style strategy we use for bridge.js, etc?
While looking at the other resource loading issues in WebSphere Portal, please check that the Input Rich Text (CKEditor) resources are loading properly as well.