Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: EE-4.2.0.GA, EE-3.3.0.GA_P05
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      jsf2 mobi ace

      Description

      Although primarily for mobile components, there could be a use for this with ace components as well.

      Android devices/api has
      https://www.youtube.com/watch?v=u9gDooP8IhU

      There are also jquery plugins for a "drawer" component that would do. See the following link for one such plugin:-
      http://www.jqueryscript.net/menu/jQuery-CSS3-Sliding-Menu-Using-Navigation-Drawer-Drawer.html

      Not sure if the existing menu based on wijmo can easily be configured for this (including navigation) using the popup feature with a slide-in but will attempt at some point a test case.

        Activity

        Hide
        Ken Fyten added a comment -

        The focus for this component should be a panel with the sliding in/out behaviors that you can nest other components inside (ace:menu, etc).

        Show
        Ken Fyten added a comment - The focus for this component should be a panel with the sliding in/out behaviors that you can nest other components inside (ace:menu, etc).
        Hide
        Arturo Zambrano added a comment -

        r51582: added initial version of ace:drawerPanel component

        Show
        Arturo Zambrano added a comment - r51582: added initial version of ace:drawerPanel component
        Hide
        Arturo Zambrano added a comment -

        r51591: added ability to specify the position of the drawer (top, right, bottom, left); added options to show the bars icon to open and close the drawer; added option to specify a different container to display the drawer instead of the window; made various other corrections

        Show
        Arturo Zambrano added a comment - r51591: added ability to specify the position of the drawer (top, right, bottom, left); added options to show the bars icon to open and close the drawer; added option to specify a different container to display the drawer instead of the window; made various other corrections
        Hide
        Arturo Zambrano added a comment -

        r51592: added overview demo to showcase

        Show
        Arturo Zambrano added a comment - r51592: added overview demo to showcase
        Hide
        Arturo Zambrano added a comment -

        r51594: fix to only set position:fixed; when the container is the window; fix to avoid applying any collision detection when positioning the panel in a container to ensure that it's actually displayed inside the container even if the container is out of scroll

        Show
        Arturo Zambrano added a comment - r51594: fix to only set position:fixed; when the container is the window; fix to avoid applying any collision detection when positioning the panel in a container to ensure that it's actually displayed inside the container even if the container is out of scroll
        Hide
        Arturo Zambrano added a comment -

        Currently, the only supported effect is slide. Of the available effects in jQueryUI, I think the following could be suitable/feasible for the drawer panel: slide, fold, fade, drop, clip, and blind.

        From jQuery UI mobile, we could possibly port the reveal and push effects, which can be seen here:

        https://api.jquerymobile.com/panel/

        Show
        Arturo Zambrano added a comment - Currently, the only supported effect is slide. Of the available effects in jQueryUI, I think the following could be suitable/feasible for the drawer panel: slide, fold, fade, drop, clip, and blind. From jQuery UI mobile, we could possibly port the reveal and push effects, which can be seen here: https://api.jquerymobile.com/panel/
        Hide
        Ken Fyten added a comment -

        For this initial implementation of this component I think we could restrict the effect choices to slide (default), fade, and drop.

        Show
        Ken Fyten added a comment - For this initial implementation of this component I think we could restrict the effect choices to slide (default), fade, and drop.
        Hide
        Ken Fyten added a comment - - edited

        Showcase Demo Review Notes

        • More whitespace between config options border and top of show/hide buttons.
        • Show/Hide buttons could be one button that toggles between states.
        • Default slide delay should be much shorter, the effect is taking too long to complete.
        • The div at the bottom is far too long. Just make it slightly longer than the height of the panel contents.
        • How does the handle button work in terms of how where it gets rendered? I don't see it being rendered inside the div for the open, for example. Very likely the developer would want to place it themselves. Perhaps we need a separate child subcomponent for the handle that they can place where they want and bind to the drawer component?
        Show
        Ken Fyten added a comment - - edited Showcase Demo Review Notes More whitespace between config options border and top of show/hide buttons. Show/Hide buttons could be one button that toggles between states. Default slide delay should be much shorter, the effect is taking too long to complete. The div at the bottom is far too long. Just make it slightly longer than the height of the panel contents. How does the handle button work in terms of how where it gets rendered? I don't see it being rendered inside the div for the open, for example. Very likely the developer would want to place it themselves. Perhaps we need a separate child subcomponent for the handle that they can place where they want and bind to the drawer component?
        Hide
        Arturo Zambrano added a comment -

        r51641: added effect attribute with support for drop, fade, and slide; reduced effect duration to 500ms

        Show
        Arturo Zambrano added a comment - r51641: added effect attribute with support for drop, fade, and slide; reduced effect duration to 500ms
        Hide
        Arturo Zambrano added a comment -

        r51642: added more whitespace between config options border and top of show/hide buttons; modified Show/Hide buttons to toggles between states; made div container shorter and improved its styling; specified literal client ids instead of using component binding; added HTML opening handles for the div container to illustrate how they can be added and custom styled

        Copying explanation sent to Liana, regarding why the opening handle is not supported when the container isn't the whole window:

        That behaviour is mentioned in the TLD documentation. The handle is only applicable when the drawer is set for the whole viewport. This is so, because it's easy to position the handles in that case, since they all have a fixed position. When applying the drawer to a specific div, we could run into all kinds of issues. First of all, we would have to dynamically add the handle markup inside the div, which is something very unorthodox, and we would have to remove that code when unrendering/updating the component. That container div would also have to be absolute or relative positioned for this to work. Another option would be to require that the component be nested inside the div or the component where it should be displayed, but if the drawer is nested inside a component, it would be hard to determine the actual HTML node the drawer should be applied to, as the immediate parent could just be a span or an inline element, and, again, the element would have to be relative or absolute positioned. The easiest thing would be to simply create a handle with pure HTML/CSS, which is very easy to do. We could illustrate this in another demo.

        Show
        Arturo Zambrano added a comment - r51642: added more whitespace between config options border and top of show/hide buttons; modified Show/Hide buttons to toggles between states; made div container shorter and improved its styling; specified literal client ids instead of using component binding; added HTML opening handles for the div container to illustrate how they can be added and custom styled Copying explanation sent to Liana, regarding why the opening handle is not supported when the container isn't the whole window: That behaviour is mentioned in the TLD documentation. The handle is only applicable when the drawer is set for the whole viewport. This is so, because it's easy to position the handles in that case, since they all have a fixed position. When applying the drawer to a specific div, we could run into all kinds of issues. First of all, we would have to dynamically add the handle markup inside the div, which is something very unorthodox, and we would have to remove that code when unrendering/updating the component. That container div would also have to be absolute or relative positioned for this to work. Another option would be to require that the component be nested inside the div or the component where it should be displayed, but if the drawer is nested inside a component, it would be hard to determine the actual HTML node the drawer should be applied to, as the immediate parent could just be a span or an inline element, and, again, the element would have to be relative or absolute positioned. The easiest thing would be to simply create a handle with pure HTML/CSS, which is very easy to do. We could illustrate this in another demo.
        Hide
        Ken Fyten added a comment -

        Looks good.

        However, having the Show/Hide button toggle now raises an issue where it can go out of sync if the user opens the drawerPanel with the Show button, and closes it with the handle. The component should emit a show and and a hide client event, which the demo can register for to keep the Show/Hide toggle button in sync. Of course, these events would also be useful for applications.

        Show
        Ken Fyten added a comment - Looks good. However, having the Show/Hide button toggle now raises an issue where it can go out of sync if the user opens the drawerPanel with the Show button, and closes it with the handle. The component should emit a show and and a hide client event, which the demo can register for to keep the Show/Hide toggle button in sync. Of course, these events would also be useful for applications.
        Hide
        Arturo Zambrano added a comment - - edited

        r51667: added open and close ajax events
        r51668: modified demo to use open and close ajax events
        r51559: fixes to synchronize with the state of the Open/Close button

        Show
        Arturo Zambrano added a comment - - edited r51667: added open and close ajax events r51668: modified demo to use open and close ajax events r51559: fixes to synchronize with the state of the Open/Close button
        Hide
        Ken Fyten added a comment -

        Once this is finished for EE 4.2 it needs to be backported to the EE 3.3 maintenance branch for P05 and the requesting customer.

        Show
        Ken Fyten added a comment - Once this is finished for EE 4.2 it needs to be backported to the EE 3.3 maintenance branch for P05 and the requesting customer.
        Hide
        Liana Munroe added a comment -

        Verified functionality of showcase ace:drawerPanel demo, ICEfaces 4 trunk r51673, Tomcat 8, MS Edge, IE 11, 10, 9, 8, FF 47, Chrome 59.

        Show
        Liana Munroe added a comment - Verified functionality of showcase ace:drawerPanel demo, ICEfaces 4 trunk r51673, Tomcat 8, MS Edge, IE 11, 10, 9, 8, FF 47, Chrome 59.
        Hide
        Arturo Zambrano added a comment - - edited

        r51579: added 'closeOnOutsideClick' attribute to enable closing the drawer when clicking or touching anywhere on the page outside the drawer; changed API and documentation to use the 'open' and 'close' commands instead of 'show' and 'hide' to better reflect the drawer analogy
        r51680: modified demo to use new API names

        Show
        Arturo Zambrano added a comment - - edited r51579: added 'closeOnOutsideClick' attribute to enable closing the drawer when clicking or touching anywhere on the page outside the drawer; changed API and documentation to use the 'open' and 'close' commands instead of 'show' and 'hide' to better reflect the drawer analogy r51680: modified demo to use new API names
        Hide
        Liana Munroe added a comment - - edited

        Tested showcase ace:drawerPanel demo using ICEfaces 4 trunk r51682, Tomcat 8, IE 11, FF 47, Chrome 59.
        After deselecting 'Show handle to close', then pressing 'Open' button the drawer does not open and a console error is seen:

        VM177:184 Uncaught TypeError: this.jq.parent(...).children(...).close is not a function
            at new ice.ace.DrawerPanel (eval at window.ice.icefaces.window.ice.globalEval (coalesced.js.jsf?ln=ice.core&dgst=m2ofw5:13576), <anonymous>:184:58)
            at Object.ice.ace.create (coalesced.js.jsf?ln=ice.core&dgst=m2ofw5:14032)
            at Object.ice.ace.lazy (coalesced.js.jsf?ln=ice.core&dgst=m2ofw5:14030)
            at ice.ace.lazy.registry.form:drawer (<anonymous>:1:67)
            at Object.ice.ace.instance (coalesced.js.jsf?ln=ice.core&dgst=m2ofw5:14029)
            at HTMLButtonElement.onclick (VM192 showcase.jsf?grp=ace:drawerPanel:1)
        Show
        Liana Munroe added a comment - - edited Tested showcase ace:drawerPanel demo using ICEfaces 4 trunk r51682, Tomcat 8, IE 11, FF 47, Chrome 59. After deselecting 'Show handle to close', then pressing 'Open' button the drawer does not open and a console error is seen: VM177:184 Uncaught TypeError: this .jq.parent(...).children(...).close is not a function at new ice.ace.DrawerPanel (eval at window.ice.icefaces.window.ice.globalEval (coalesced.js.jsf?ln=ice.core&dgst=m2ofw5:13576), <anonymous>:184:58) at Object .ice.ace.create (coalesced.js.jsf?ln=ice.core&dgst=m2ofw5:14032) at Object .ice.ace.lazy (coalesced.js.jsf?ln=ice.core&dgst=m2ofw5:14030) at ice.ace.lazy.registry.form:drawer (<anonymous>:1:67) at Object .ice.ace.instance (coalesced.js.jsf?ln=ice.core&dgst=m2ofw5:14029) at HTMLButtonElement.onclick (VM192 showcase.jsf?grp=ace:drawerPanel:1)
        Hide
        Arturo Zambrano added a comment -

        r51688: fixed function name; made correction in TLD documentation

        This fixes issue above.

        Show
        Arturo Zambrano added a comment - r51688: fixed function name; made correction in TLD documentation This fixes issue above.
        Hide
        Arturo Zambrano added a comment -

        r51692: added entries for ace:drawerPanel in AceSymbolicResourceHandler.java and resource-dependency.xml

        Show
        Arturo Zambrano added a comment - r51692: added entries for ace:drawerPanel in AceSymbolicResourceHandler.java and resource-dependency.xml
        Hide
        Arturo Zambrano added a comment -

        r51693: backported ace:drawerPanel component to the EE 3.3 maintenance branch

        Show
        Arturo Zambrano added a comment - r51693: backported ace:drawerPanel component to the EE 3.3 maintenance branch
        Hide
        Liana Munroe added a comment -

        Verified console error resolved ICEfaces 4 trunk r51694, Tomcat 8, IE 11, FF 47, Chrome 59. There is no content for the wiki at: http://www.icesoft.org/wiki/display/ICE/DrawerPanel

        Show
        Liana Munroe added a comment - Verified console error resolved ICEfaces 4 trunk r51694, Tomcat 8, IE 11, FF 47, Chrome 59. There is no content for the wiki at: http://www.icesoft.org/wiki/display/ICE/DrawerPanel
        Hide
        Arturo Zambrano added a comment - - edited

        r51740: added wiki page and committed various corrections to the documentation and other settings
        r51741: added comments to the demo to explain how to code opening handles

        Show
        Arturo Zambrano added a comment - - edited r51740: added wiki page and committed various corrections to the documentation and other settings r51741: added comments to the demo to explain how to code opening handles
        Hide
        Judy Guglielmin added a comment -

        backport showcase example from 4.x trunk to 3.3 maintenance and 3.3.0_P05-Beta

        Show
        Judy Guglielmin added a comment - backport showcase example from 4.x trunk to 3.3 maintenance and 3.3.0_P05-Beta
        Hide
        Judy Guglielmin added a comment -

        rev 51762 on ossrepo/icefaces-ee/tags/icefaces-ee-3.3.0.GA_P05-BETA backports the examples from ICEfaces 4 showcase for drawerPanel.
        Note the js errors for ice.ace.instance. Looked in the Meta file and no widgetVar attribute.

        Show
        Judy Guglielmin added a comment - rev 51762 on ossrepo/icefaces-ee/tags/icefaces-ee-3.3.0.GA_P05-BETA backports the examples from ICEfaces 4 showcase for drawerPanel. Note the js errors for ice.ace.instance. Looked in the Meta file and no widgetVar attribute.
        Hide
        Arturo Zambrano added a comment -

        r51763: fixed namespace, widgetvar and path errors in the demos (ossrepo/icefaces-ee/tags/icefaces-ee-3.3.0.GA_P05-BETA)

        Show
        Arturo Zambrano added a comment - r51763: fixed namespace, widgetvar and path errors in the demos (ossrepo/icefaces-ee/tags/icefaces-ee-3.3.0.GA_P05-BETA)
        Hide
        Judy Guglielmin added a comment -

        backport showcase demo to 3.3.0 maintenance branch

        Show
        Judy Guglielmin added a comment - backport showcase demo to 3.3.0 maintenance branch
        Hide
        Judy Guglielmin added a comment -

        rev 51781 for 3.3.0 maintenance branch backport to showcase example app

        Show
        Judy Guglielmin added a comment - rev 51781 for 3.3.0 maintenance branch backport to showcase example app
        Hide
        Liana Munroe added a comment - - edited

        Verified ICEfaces EE-3.3.0 maintenance branch r51820, Tomcat 8, MS Edge, IE 11, 10, 9, 8, 7, FF 55, Chrome 60.

        The left menu is labeled incorrectly as Configuration instead of Overview. See screenshot drawer.png

        Show
        Liana Munroe added a comment - - edited Verified ICEfaces EE-3.3.0 maintenance branch r51820, Tomcat 8, MS Edge, IE 11, 10, 9, 8, 7, FF 55, Chrome 60. The left menu is labeled incorrectly as Configuration instead of Overview. See screenshot drawer.png
        Hide
        Judy Guglielmin added a comment -

        for subtitle fix in menu from Configuration to Overview

        Show
        Judy Guglielmin added a comment - for subtitle fix in menu from Configuration to Overview
        Hide
        Judy Guglielmin added a comment -

        rev 51821

        Show
        Judy Guglielmin added a comment - rev 51821
        Hide
        Liana Munroe added a comment -

        Verified ICEfaces EE-3.3.0 maintenance branch r51826

        Show
        Liana Munroe added a comment - Verified ICEfaces EE-3.3.0 maintenance branch r51826

          People

          • Assignee:
            Judy Guglielmin
            Reporter:
            Judy Guglielmin
          • Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: