Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 2.0.0
-
Fix Version/s: 2.0.1
-
Component/s: ICE-Components
-
Labels:None
-
Environment:ICEfaces 2 JSF 2.0.3
-
Affects:Documentation (User Guide, Ref. Guide, etc.)
Description
This code resulted in the outputConnectionStatus component rendering in disconnected state in ICEfaces 1.8.2:
<ice:outputConnectionStatus showPopupOnDisconnect="true"/>
<h:form>
<h:commandButton value="Invalidate Session" actionListener="#{applicantController.invalidate}" />
</h:form>
public void invalidate(ActionEvent ae){
ExternalContext ectx = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest req = (HttpServletRequest)ectx.getRequest();
HttpSession session = req.getSession(false);
if(session != null){
session.invalidate();
}
}
When using this component in ICEfaces 2, the icon renders in disconneted state, but there is also a modal popup (without the reload button)
User Session Expired
Reload this page to start a new user session.
So the default befavior has changed, giving us a modal pane by default now and this seems to overlap with the showPopupOnDisconnect="true" attribute (which brings up a different modal pane with a reload button)
<ice:outputConnectionStatus showPopupOnDisconnect="true"/>
<h:form>
<h:commandButton value="Invalidate Session" actionListener="#{applicantController.invalidate}" />
</h:form>
public void invalidate(ActionEvent ae){
ExternalContext ectx = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest req = (HttpServletRequest)ectx.getRequest();
HttpSession session = req.getSession(false);
if(session != null){
session.invalidate();
}
}
When using this component in ICEfaces 2, the icon renders in disconneted state, but there is also a modal popup (without the reload button)
User Session Expired
Reload this page to start a new user session.
So the default befavior has changed, giving us a modal pane by default now and this seems to overlap with the showPopupOnDisconnect="true" attribute (which brings up a different modal pane with a reload button)
The popups rendered are the default indicators that ICEfaces2.0 core puts up. Up until now their rendering could be disabled only by using Javascript calls.
The fix makes possible the disabling of default indicators (popups) by using 'org.icefaces.disableDefaultIndicators' context parameter. The default value is 'false', meaning that the popups will be rendered.
Also the fix refactored default indicators code to be rendered within the limits of view's root element thus avoiding configuration overlap when running in portlet environment.
Component-showcase configuration was modified to disable the default indicators since the the application uses ice:outputConnectionStatus component and 'compat' popups.