Details
Description
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Turned off GZip filter in
./tomcat-6.0.26/webapps/component-showcase-portlet/WEB-INF/web.xml
however, the GZip filter was not originally present in the .war web.xml. It must be applied by Liferay during portlet deployment.
With the above GZip filter removal, the following now work with only minor styling issues:
- selectInputDate
- outputProgress
- dataTable-rowSelection
- dataTable-grouping
- panelCollapsible
- menuBar
- menuPopup (image still missing)
- selectInputText
- panelPopup
outputChart, gmap, richText, and outputResource still not working.
Neil suggests:
Do you have speed-filters-enabled=false in WEB-INF/liferay-plugin-package.properties?
That should remove the GZip filter.
speed-filters-enabled fix verified and checked in.
menuPopup sample contains the following for inserting the image:
<ice:graphicImage value="./images/icefaces-menupop.png"
alt="ICEfaces" title="ICEfaces" width="352" height="122"/>
This is likely not the correct way to resolve an image resource in a JSF 2.0 Portlet. Will create a separate JIRA: ICE-5973 assigned to Neil.
OutputResourceRenderer.java is currently generating URLs that are not processed for Portlet use:
- resource.setAttribute(HTML.ONCLICK_ATTR, "window.open('" + outputResource.getPath() + "');");
+ resource.setAttribute(HTML.ONCLICK_ATTR, "window.open('" + getResourceURL(facesContext, "/" + outputResource.getPath()) + "');");
However, the PortletFaces Bridge does not currently handle Servlet requests; see ICE-5974.
Note that a long term solution for resources in the Portlet environment should not require a Servlet mapping. This would require a full migration of the compat ResourceRegistry to standard JSF Resource URLs.
GMap demo can be fixed by adding
<script src="http://maps.google.com/maps?file=api&v=2&key=
ABQIAAAADlu0ZiSTam64EKaCQr9eTRTOTuQNzJNXRlYRLknj4cQ89tFfpxTEqxQnVWL4k55OPI
CgF5_SOZE06A" type="text/javascript"/>
to includes/examples/custom/gmap.xhtml
We will need to verify why the google JavaScript apparently needs to be added to the page template rather than just the include containing the google map component. Since this JavaScript is served dynamically from google, it is possible that google has addressed past incompatibilities.
If we attempt to add the script dynamically to the page with the ui:include, the JSF bridge attempts to load the maps.google.com JavaScript, however, the script is hosted on the google server resulting in a security warning:
XMLHttpRequest cannot load http://maps.google.com/maps?file=api&v=2&key=%20ABQIAAAADlu0ZiSTam64EKaCQr9eTRTOTuQNzJNXRlYRLknj4cQ89tFfpxTEqxQnVWL4k55OPI%20CgF5_SOZE06A. Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.
General Observations
- Session expiry or view expiry exceptions do not propagate to the client the same way as a regular web app. May need to discuss how to best handle this.
- Seeing this logging on certain page reloads and window closures: INFO [PortalImpl:3812] Current URL /web/guest/dispose-window.icefaces.jsf generates exception: null
Specific Portlet Observations
- Drag and Drop: The actual dragging can be flaky at times (either the drag image is not close to the mouse or the drop target doesn't always light up) but overall functionality appears to be there.
- GMap: Map does not display at all but don't see any errors on server or client side.
- Menu Bar: Vertical sub-menus don't render close to the mouse.
- Menu Popup: Menus don't render close to the mouse. Popups get rendered behind portlet window title bars.
- Tree: Trouble restoring state (the HtmlPanelGroup is doing Object values[] = (Object[]) state
javax.faces.FacesException: Unexpected error restoring state for component with id 960694047:iceform:tree:n-2-3:j_idt306. Cause: java.lang.ClassCastException: com.sun.faces.application.view.StateHolderSaver.
at com.sun.faces.application.view.StateManagementStrategyImpl$1.visit(StateManagementStrategyImpl.java:269)
at com.sun.faces.component.visit.FullVisitContext.invokeVisitCallback(FullVisitContext.java:147)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1481)
at com.icesoft.faces.component.tree.Tree.visitTreeNodes(Tree.java:1480)
...[very deep stack]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:613)
Caused by: java.lang.ClassCastException: com.sun.faces.application.view.StateHolderSaver
at com.icesoft.faces.component.ext.HtmlPanelGroup.restoreState(HtmlPanelGroup.java:708)
at com.sun.faces.application.view.StateManagementStrategyImpl$1.visit(StateManagementStrategyImpl.java:261)
... 187 more
- Charts: Chart doesn't display but don't see any client or server errors.
- File Download: Clicking to download reloads the entire page but doesn't download anything.
- Panel Popup: Draggable panel can only be dragged once and only if it's displayed first.
- Panel Positioned: Can only be used/dragged once then stops responding.
- Panel Tooltip: Tooltips render too far from mouse.
- Datatable Data Export: Much like File Download, reloads the page but doesn't download anything.
Improved and/or Fixed
- The dispose-window.icefaces.jsf requests no long cause exceptions. Still need to verify that things are disposed as designed.
- Drag and Drop: Improved. Chrome still seems to have some issues with the drag image not being "tied" to the mouse pointer all the time but this is mostly a visual not functional issue.
- Tree appears to work now.
Still Issues
- Session expiry or view expiry exceptions do not propagate to the client.
- GMap: Map does not display - error on client console is Uncaught ReferenceError: GMap2 is not defined.
- Menu Bar: Vertical sub-menus don't render close to the mouse.
- Menu Popup: Menus don't render close to the mouse. Popups get rendered behind portlet window title bars.
- Charts: Chart doesn't display.
- File Download: Clicking to download reloads the entire page but doesn't download anything.
The requested resource was not found.
http://localhost:8080/web/guest/icefaces/resource/LTE5MDkyODA2Ng==/Choose-a-new-file-name.pdf
- Panel Popup: Draggable works much better but Modal dialog drifts away as you scroll and the overlay doesn't cover the entire viewport.
- Panel Positioned: Can only be used/dragged once then stops responding.
- Panel Tooltip: Tooltips render too far from mouse.
- Datatable Data Export: Much like File Download, reloads the page but doesn't download anything.
Checked in a fix to the DynamicResourceDispatcher where the prefix for icefaces resource was relative. Changed it to be absolute so that resources would properly resolve. This allows the File Download, Data Export, and Charts portlets to work properly.
Took another tour through the components given some recent activity in both ICEfaces and the PortletFaces bridge:
Known or still existing issues:
- GMap: Not functional.
- Drag and Drop: Draggable image is offset from mouse (Safari only)
- Positioned Panel: Can only drag once.
- Popup Panel: Draggable only draggable once. Modal dialog not initially positioned correctly along with grey background. Drifts when you scroll.
- Menu Popup: Menu is offset from mouse. Mouse button needs to be held down (Firefox only).
- Menu Bar: Vertical menu doesn't work (menu items are offset from mouse).
- Tooltip: Popups are too far offset from mouse.
New or previously undetected issues:
- Buttons and Links: first value submitted "sticks around" (becomes the default value after hitting Reset).
- Selection Components: Checking the first checkbox also submit value for Component Type list.
- Rich Text Editor: Link to component resources is malformed
Behaviour around dispose-window and session expiration still need to be re-evaluated.
Adjusted the renderer for Rich Text component as per http://jira.icefaces.org/browse/ICE-6127. Appears to have fixed the problem.
Apparently the behaviour in Selection Components is as designed and not a new or incorrect behaviour. Apparently I need to pay closer attention.
The behaviour of Buttons and Links is only problematic when there is more than one sample ICEfaces portlet on the page. When the Buttons and Links portlet is the only portlet on the page, it behaves as expected.
Due to work for http://jira.icefaces.org/browse/ICE-6141, Google Maps is now operational.
I've opened a separate case for the behaviour of the Buttons and Links portlet (http://jira.icefaces.org/browse/ICE-6144).
I ran through all the portlets in the Component Showcase using the following environment:
Server
Liferay 6.0.5 + Tomcat 6.0.26
Browsers
FireFox 3.6.12
Safari 5.0.2
Chrome 7
IE 8
Issues
Different behaviour when multiple portlets on page
The behaviour of some portlets is different when they are on a page with other portlets compared to when they are by themselves. I opened a JIRA that noted Buttons and Links specifically (http://jira.icefaces.org/browse/ICE-6144) but running through these again in more detail showed some other portlets that function fine when on a page by themselves but don't function properly when other portlets are on the page. It's possible these are all related to how the initial update is applied.
- Buttons and Links: The first value is remembered and cannot be reset back to a blank field.
- Progress Bar: Clicking the buttons and such seems to be okay, but actually starting the progress bar causes the portlet to "explode" out to a full page. Likely due to the update being a full page replacement. After some clicking around and reloading, it is possible to get it working properly but it's highly unreliable.
- Select Input Text: The menu of matching choices does not display if there are other portlets on the page. This seems to be new as I'm fairly certain that it did work previously.
- Postioned Panel: You can only drag a single item once. After that the items are no longer draggable. This was noted previously but it does work properly if there are no other portlets on the page. There is an odd comment displayed above the list <!-- 721 --> after the intial item is dragged.
Google Maps in IE
While the maps will load, selecting a city or typing in and address results in a "xxx not found" message being displayed and the map doesn't navigate to the new location.
Popup Panels
In all browser:
- the draggable panel is no longer draggable and is not well positioned
- the modal dialog doesn't appear to block the background page as I can select text
Popups tracking to mouse position
With a number of the popup type items, the actual popped up div is not tracking next to the mouse. This is true of things like the:
- tooltips over the provinces (all browsers)
- drag items (perhaps just FF)
- menup popup (all browsers)
*Note: For some reason on FF, the mouse must remain held down to keep the menu popup visible. The other browsers don't require this.
Vertical menus
Switching the menus to vertical mode causes them to display oddly and for the sub-menus to be rendered away from the mouse. This behaviour has been known for some time.
Resolving this case as fixed with the following comments. Specific portlet issues should get their own JIRAs going forward.
- Different behaviour when multiple portlets on page
Given the changes made recently to correct the ViewState issue (http://jira.icefaces.org/browse/ICE-6022) by creating our own patched version of JSF 2.0.4_b06, I've revisited the Compat Component Showcase portlets. All behaviour related to this problem has been rectified.
- Buttons and Links: The first value is remembered and cannot be reset back to a blank field.
The problem is covered in separate JIRAs and is related to a problem with PortletFaces Bridge.
http://jira.portletfaces.org/browse/BRIDGE-39
http://jira.icefaces.org/browse/ICE-6144
- Postioned Panel: There is an odd comment displayed above the list <!-- 721 --> after the intial item is dragged.
Identified and fixed as per http://jira.icefaces.org/browse/ICE-6326.
- Google Maps in IE
If the Google Maps API key does not match the URL that you are testing from, you will see this problem. In other words, I was testing IE from VMware and connection to a remote server (not localhost). Since the Google API key was set for localhost, the problem of not finding the City would occur. Testing IE from a server running with the proper key showed there was no issue.
- Popup Panels: The modal dialog position is slightly off in Liferay 6 and it "travels" down and to the right each time the scroll bar is used. This appears to be related to a styling conflict with Liferay 6 as the same problem does not occur in Liferay 5.
Other noted issues (e.g vertical menus, popup position tracking to mouse position) are generally related to styling and have been noted as Known Issues in previous ICEfaces releases.
In summary: all components appear to work except for CSS and some other resource loading problems.
Buttons and Links: works
TextFields: minor alignment issues
dataTable-columns: minor styling issues
dataTable-commandSortHeader: minor styling issues
dataTable-dataExport: Error Not Found
http://localhost:8080/web/guest/icefaces/resource/OTQ1MjQ3MzU4/export_1281024722867.csv
dataTable-dataScrolling: minor styling issues
dataTable-expandable: minor styling issues
dataTable-grouping: styling issues (group cells not visible)
dataTable-resizableColumns: styling issues (border handles not visible)
dataTable-rowSelection: styling issues (selected row not highlighted)
dragDrop: works, but draggable offset from cursor, styling issues
effects: works
gmap: no map shown, GMap2 is not defined in error console
inputRichText: editor not shown, Ice.FckEditor is undefined in error console
menuBar: significant styling issues, but appears to work
menuPopup: significant styling issues, but appears to work, image missing in second panel
outputChart: charts not shown
outputConnectionStatus: all icons shown
outputDeclaraion: likely not relevant to portlets
outputMedia: works
outputProgress: push occurs but progress bar image not displayed
outputResource: Error Not Found
http://localhost:8080/web/guest/icefaces/resource/MjAyNjQwNTE1MA==/icefaces.jpg
panelBorder: minor styling issues
panelCollapsible: significant styling issues, but appears to work, handles not styled
panelDivider: significant styling issues, unclear if working since handle was not visible
panelPopup: significant styling issues, but appears to work, handles not styled
panelPositioned: minor styling issues
panelSeries: works
panelStack: minor styling issues
panelTabSet-dynamic: significant styling issues, but appears to work, tabs not styled
panelTabSet-static: significant styling issues, but appears to work, tabs not styled
panelTooltip: significant styling issues, but appears to work
selectInputDate: significant styling issues, essentially works, popup not tested as not visible
selectInputText: significant styling issues, but works
selectionTags: minor styling issues
setEventPhase: appears to work
tree: works