Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.3
    • Component/s: None
    • Labels:
      None
    • Environment:
      Java 7

      Description


      It'd be really useful to have a Dashboard component like the one in PrimeFaces (http://www.primefaces.org/showcase/ui/dashboard.jsf), where you can move your panels around and it'll save the state in the model.

      Thanks

        Activity

        Migration created issue -
        Migration made changes -
        Field Original Value New Value
        Reporter Migration [ remote ] Leo Milhouse [ leomilhouse ]
        Ken Fyten made changes -
        Fix Version/s 4.1 [ 11375 ]
        Hide
        Ken Fyten added a comment -

        Note that this can be readily approximated now using the ace:list component with nested ace:panels. See the http://icefaces-showcase.icesoft.org/showcase.jsf?grp=aceMenu&exp=listBlockComplexBean demo for an approximate example.

        Show
        Ken Fyten added a comment - Note that this can be readily approximated now using the ace:list component with nested ace:panels. See the http://icefaces-showcase.icesoft.org/showcase.jsf?grp=aceMenu&exp=listBlockComplexBean demo for an approximate example.
        Ken Fyten made changes -
        Fix Version/s 4.2 [ 12870 ]
        Fix Version/s 4.1 [ 11375 ]
        Ken Fyten made changes -
        Fix Version/s 4.3 [ 13096 ]
        Fix Version/s 4.2 [ 12870 ]
        Ken Fyten made changes -
        Assignee Arturo Zambrano [ artzambrano ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #52351 Tue Mar 20 14:59:07 MDT 2018 art.zambrano ICE-8653 added initial version of the ace:dashboard component
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/META-INCLUDE/resource-dependency.xml
        Commit graph ADD /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard/dashboard.js
        Commit graph ADD /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardRenderer.java
        Commit graph ADD /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard/dashboard.css
        Commit graph ADD /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/build.xml
        Commit graph ADD /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard/jquery.gridster.css
        Commit graph ADD /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardPane.java
        Commit graph ADD /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardMeta.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/renderkit/AceSymbolicResourceHandler.java
        Commit graph ADD /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard
        Commit graph ADD /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/Dashboard.java
        Commit graph ADD /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardPaneRenderer.java
        Commit graph ADD /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard/jquery.gridster.js
        Commit graph ADD /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardPaneMeta.java
        Hide
        Arturo Zambrano added a comment -

        r52351: added initial version of the ace:dashboard component

        This component is based on the gridster.js third party library: http://dsmorse.github.io/gridster.js/

        Show
        Arturo Zambrano added a comment - r52351: added initial version of the ace:dashboard component This component is based on the gridster.js third party library: http://dsmorse.github.io/gridster.js/
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #52354 Thu Mar 22 15:24:33 MDT 2018 art.zambrano ICE-8653 changed markup to use <div>'s instead of <ul> and <li>'s; removed 'gridster' style class from root and adjusted css rules to use 'ice-ace-dashboard'; set the header to be the draggable handle, instead of the whole pane; added paddings to pane header and pane body; added dotted contour to drop placeholder
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard/dashboard.js
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardRenderer.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard/dashboard.css
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard/jquery.gridster.css
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardPaneRenderer.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardPaneMeta.java
        Hide
        Arturo Zambrano added a comment -

        r52354: changed markup to use <div>'s instead of <ul> and <li>'s; removed 'gridster' style class from root and adjusted css rules to use 'ice-ace-dashboard'; set the header to be the draggable handle, instead of the whole pane; added paddings to pane header and pane body; added dotted contour to drop placeholder

        Show
        Arturo Zambrano added a comment - r52354: changed markup to use <div>'s instead of <ul> and <li>'s; removed 'gridster' style class from root and adjusted css rules to use 'ice-ace-dashboard'; set the header to be the draggable handle, instead of the whole pane; added paddings to pane header and pane body; added dotted contour to drop placeholder
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #52402 Tue Apr 17 15:52:30 MDT 2018 art.zambrano ICE-8653 fixed bug in gridster library; added listener for close button to close a panel with the underlying widget and improved the button's styling; added hover styling for the close button and more padding and rounded corners; added global resizable attribute; added global draggable attribute; added sizeX and sizeY attributes; added paneWidth and paneHeight attributes; added marginX and marginY attributes; added logic to assign a column to panes, according to the maxColumns property as well as a row; implemented approach to handle the size and position state in an efficient way that wouldn't trigger dynamic updated every time something changes
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard/dashboard.js
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardMeta.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardRenderer.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard/dashboard.css
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard/jquery.gridster.css
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardPaneRenderer.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardPaneMeta.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard/jquery.gridster.js
        Hide
        Arturo Zambrano added a comment -

        r52402: fixed bug in gridster library; added listener for close button to close a panel with the underlying widget and improved the button's styling; added hover styling for the close button and more padding and rounded corners; added global resizable attribute; added global draggable attribute; added sizeX and sizeY attributes; added paneWidth and paneHeight attributes; added marginX and marginY attributes; added logic to assign a column to panes, according to the maxColumns property as well as a row; implemented approach to handle the size and position state in an efficient way that wouldn't trigger dynamic updated every time something changes

        Show
        Arturo Zambrano added a comment - r52402: fixed bug in gridster library; added listener for close button to close a panel with the underlying widget and improved the button's styling; added hover styling for the close button and more padding and rounded corners; added global resizable attribute; added global draggable attribute; added sizeX and sizeY attributes; added paneWidth and paneHeight attributes; added marginX and marginY attributes; added logic to assign a column to panes, according to the maxColumns property as well as a row; implemented approach to handle the size and position state in an efficient way that wouldn't trigger dynamic updated every time something changes
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #52404 Fri Apr 20 20:04:53 MDT 2018 art.zambrano ICE-8653 added dragStop, resize, and close ajax events; added logic for assigning specific row and column coordinates to all panes, when they aren't explicitly set; added system to keep the size and position data consistent between the client and the server for all panes after each ajax request; these changes, in turn, will allow to persist the state of the dashboard across sessions if desired by the app developer, while still allowing to easily build a dashboard without having to code a model class if state persistence is not required/desired
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard/dashboard.js
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardRenderer.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardPaneMeta.java
        Hide
        Arturo Zambrano added a comment -

        r52404: added dragStop, resize, and close ajax events; added logic for assigning specific row and column coordinates to all panes, when they aren't explicitly set; added system to keep the size and position data consistent between the client and the server for all panes after each ajax request; these changes, in turn, will allow to persist the state of the dashboard across sessions if desired by the app developer, while still allowing to easily build a dashboard without having to code a model class if state persistence is not required/desired

        Show
        Arturo Zambrano added a comment - r52404: added dragStop, resize, and close ajax events; added logic for assigning specific row and column coordinates to all panes, when they aren't explicitly set; added system to keep the size and position data consistent between the client and the server for all panes after each ajax request; these changes, in turn, will allow to persist the state of the dashboard across sessions if desired by the app developer, while still allowing to easily build a dashboard without having to code a model class if state persistence is not required/desired
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #52408 Tue Apr 24 15:27:05 MDT 2018 art.zambrano ICE-8653 added support to make changes to the size and position state programmatically; added logic for the closed state and thus make dynamic updates more efficient after closing a pane by avoiding a full markup update; added pane footers; added localised message for close button; removed toggle button code; sanitized maxColumns value; removed unused attributes
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard/dashboard.js
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/resources/messages.properties
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardMeta.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardRenderer.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/Dashboard.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardPane.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardPaneRenderer.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardPaneMeta.java
        Hide
        Arturo Zambrano added a comment -

        r52408: added support to make changes to the size and position state programmatically; added logic for the closed state and thus make dynamic updates more efficient after closing a pane by avoiding a full markup update; added pane footers; added localized message for close button; removed toggle button code; sanitized maxColumns value; removed unused attributes

        Show
        Arturo Zambrano added a comment - r52408: added support to make changes to the size and position state programmatically; added logic for the closed state and thus make dynamic updates more efficient after closing a pane by avoiding a full markup update; added pane footers; added localized message for close button; removed toggle button code; sanitized maxColumns value; removed unused attributes
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #52409 Tue Apr 24 15:28:23 MDT 2018 art.zambrano ICE-8653 added ace:dashboard demo
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/java/org/icefaces/samples/showcase/view/menu/data/CentralDataList.java
        Commit graph ADD /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/java/org/icefaces/samples/showcase/example/ace/dashboard/DashboardBean.java
        Commit graph ADD /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/java/org/icefaces/samples/showcase/example/ace/dashboard
        Commit graph ADD /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/webapp/resources/examples/ace/dashboard
        Commit graph MODIFY /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/resources/org/icefaces/samples/showcase/view/resources/messages.properties
        Commit graph MODIFY /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/java/org/icefaces/samples/showcase/example/ace/accordionpanel/AccordionPanelBean.java
        Commit graph ADD /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/webapp/resources/examples/ace/dashboard/dashboard.xhtml
        Hide
        Arturo Zambrano added a comment -

        r52409: added ace:dashboard demo to the showcase

        Show
        Arturo Zambrano added a comment - r52409: added ace:dashboard demo to the showcase
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #52413 Thu Apr 26 11:51:14 MDT 2018 art.zambrano ICE-8653 added State Persistance and Dynamic Panes demos for ace:dashboard
        Files Changed
        Commit graph ADD /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/webapp/resources/examples/ace/dashboard/dashboardDynamicPanes.xhtml
        Commit graph MODIFY /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/java/org/icefaces/samples/showcase/view/menu/data/CentralDataList.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/resources/org/icefaces/samples/showcase/view/resources/messages.properties
        Commit graph ADD /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/java/org/icefaces/samples/showcase/example/ace/dashboard/DashboardStatePersistenceBean.java
        Commit graph ADD /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/webapp/resources/examples/ace/dashboard/dashboardStatePersistence.xhtml
        Commit graph MODIFY /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/webapp/resources/examples/ace/dashboard/dashboard.xhtml
        Commit graph ADD /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/java/org/icefaces/samples/showcase/example/ace/dashboard/DashboardDynamicPanesBean.java
        Hide
        Arturo Zambrano added a comment -

        r49996: added QA test app

        Show
        Arturo Zambrano added a comment - r49996: added QA test app
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #52437 Thu May 10 13:22:46 MDT 2018 art.zambrano ICE-8653 introduce table layout in order to render footer at the bottom of the pane and make content div take all available height; removed css resources from Meta class, since they are already included in combined.css; change resize handler to use fontawesome, so it looks well on any theme; added destroy function; added custom event classes for ajax events; changed close event to silent mode, so that panes below the one closed stay where they are
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard/dashboard.js
        Commit graph ADD /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/event/DashboardResizeEvent.java
        Commit graph ADD /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/event/DashboardDragStopEvent.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardMeta.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardRenderer.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/dashboard/dashboard.css
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardPane.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardPaneRenderer.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardPaneMeta.java
        Hide
        Arturo Zambrano added a comment -

        r52437: introduced table layout in order to render footer at the bottom of the pane and make content div take all available height; removed css resources from Meta class, since they are already included in combined.css; change resize handler to use fontawesome, so it looks well on any theme; added destroy function; added custom event classes for ajax events; changed close event to silent mode, so that panes below the one closed stay where they are

        Show
        Arturo Zambrano added a comment - r52437: introduced table layout in order to render footer at the bottom of the pane and make content div take all available height; removed css resources from Meta class, since they are already included in combined.css; change resize handler to use fontawesome, so it looks well on any theme; added destroy function; added custom event classes for ajax events; changed close event to silent mode, so that panes below the one closed stay where they are
        Arturo Zambrano made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Ken Fyten added a comment - - edited

        Review Notes

        • In the demos it's possible for the dashboard panes to be positioned partially off the right side of the visible demo area. Can we prevent that or make it a scrollable region?
        • In the Dynamic Panes demo if you add more panes than will fit on the page it stops working, you can't close the panes or add any, even if you reload the page. Should use a vertically scrollable region for the dashboard to live inside?
        • It would be more flexible if each dashboardPane could be set to resizable, moveable, or closable. That way you could have panes that are fixed in size or location and cannot be removed, plus others that can. Is that a feasible improvement?
        • Missing Wiki docs
        Show
        Ken Fyten added a comment - - edited Review Notes In the demos it's possible for the dashboard panes to be positioned partially off the right side of the visible demo area. Can we prevent that or make it a scrollable region? In the Dynamic Panes demo if you add more panes than will fit on the page it stops working, you can't close the panes or add any, even if you reload the page. Should use a vertically scrollable region for the dashboard to live inside? It would be more flexible if each dashboardPane could be set to resizable, moveable, or closable. That way you could have panes that are fixed in size or location and cannot be removed, plus others that can. Is that a feasible improvement? Missing Wiki docs
        Ken Fyten made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        Hide
        Arturo Zambrano added a comment -

        Regarding the first bullet point, I don't see that issue on Chrome, FF, and Edge on Windows 10. The whole dashboard fits perfectly with enough white space on both sides. Did you mean make it more centered?

        Regarding the third bullet point, each dashboardPane already has its own 'closable' attribute. As for resizable and draggable, the underlying javascript library (gridster.js) doesn't offer that possibility. Either resizing is enabled for all panes or not at all and either dragging is enabled for all panes or not at all. One particular situation is that, by dragging or resizing a pane, it's possible to displace other panes that are on the way.

        Show
        Arturo Zambrano added a comment - Regarding the first bullet point, I don't see that issue on Chrome, FF, and Edge on Windows 10. The whole dashboard fits perfectly with enough white space on both sides. Did you mean make it more centered? Regarding the third bullet point, each dashboardPane already has its own 'closable' attribute. As for resizable and draggable, the underlying javascript library (gridster.js) doesn't offer that possibility. Either resizing is enabled for all panes or not at all and either dragging is enabled for all panes or not at all. One particular situation is that, by dragging or resizing a pane, it's possible to displace other panes that are on the way.
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #52457 Tue May 22 15:14:19 MDT 2018 art.zambrano ICE-8653 demo modifications for correctness and to avoid issues; created all new panes with the same default minumum size of 1, in order to make correct size and position calculations and this avoid the issue of the dashboard becoming unusable due to javascript errors; also added logic to avoid adding more panes than the maximum number of rows supported by gridster.js (15 rows)
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/webapp/resources/examples/ace/dashboard/dashboardDynamicPanes.xhtml
        Commit graph MODIFY /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/java/org/icefaces/samples/showcase/example/ace/dashboard/DashboardDynamicPanesBean.java
        Hide
        Arturo Zambrano added a comment - - edited

        r52457: demo modifications for correctness and to avoid issues; created all new panes with the same default minumum size of 1, in order to make correct size and position calculations and this avoid the issue of the dashboard becoming unusable due to javascript errors; also added logic to avoid adding more panes than the maximum number of rows supported by gridster.js (15 rows)

        r52458: added code to assume a minimum size of 1, if somehow the x and y sizes are less than 1, in order to make correct size and position calculations

        With these fixes the second bullet point is solved.

        Show
        Arturo Zambrano added a comment - - edited r52457: demo modifications for correctness and to avoid issues; created all new panes with the same default minumum size of 1, in order to make correct size and position calculations and this avoid the issue of the dashboard becoming unusable due to javascript errors; also added logic to avoid adding more panes than the maximum number of rows supported by gridster.js (15 rows) r52458: added code to assume a minimum size of 1, if somehow the x and y sizes are less than 1, in order to make correct size and position calculations With these fixes the second bullet point is solved.
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #52458 Tue May 22 15:18:58 MDT 2018 art.zambrano ICE-8653 added code to assume a minimum size of 1, if somehow the x and y sizes are less than 1, in order to make correct size and position calculations
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dashboard/DashboardRenderer.java
        Hide
        Arturo Zambrano added a comment -

        Added wiki pages for ace:dashboard and ace:dashboardPane, including some important observations for their use.

        Show
        Arturo Zambrano added a comment - Added wiki pages for ace:dashboard and ace:dashboardPane, including some important observations for their use.
        Arturo Zambrano made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Arturo Zambrano
            Reporter:
            Leo Milhouse
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: