Red Hat Bugzilla – Bug 534440
enhance JSF table component to have visible feedback on pageSize or pageIndex change
Last modified: 2014-11-09 17:48:08 EST
today, since the pagination happens asynchronously wrt to the UI operation, the user doesn't know that anything is actually happening. extend the base table component so that all paginated tables in the system inherit this functionality auto-magically.
Pagination on pages like http://localhost:7080/rhq/discovery/queue.xhtml appears broken if there is any sort of delay in rendering at all
I'd like to fix this, but we need to be careful. we're getting much more dependent on a4j updates now and i've had to mess around quite a bit to get this work with multiple regions on a page.
i'm not worried about region'ing. (the a4j documentation clearly points out the delineation between regions as well as provides mechanisms by which a4j component that dynamic update / re-render regions can target specific ones. basically, if you don't specify a target region on a4j component that update / re-render a delimited list of components, it will default to the region the component is place within, which may be the null/root/page-level region.)
in any event, i'm not sure we even want to update the page / data table. i tested embedding an <a4j:status> tag in one of the tabular footer facets, but this only works if the developer did not embed other user controls in the same footer. delete/update/edit/etc buttons get in the way, and squish the update text between them and the pagination controls. additionally, the update text is only available on the footer for pagination actions, but i'd think we would want a solution that provided visual feedback on sort actions as well.
what i'm thinking is a hidden div. when you sort up or down, move to a different page, or change the page size, the div will be triggered and become visible in the center of the visible area of the page (browser-centered). it will be displayed until the action finishes updating the underlying data model, and then fade away. the div could be as simple and generic as "processing..." or as complex as to show some details as to what it's doing such as "moving to page 2...", or "sort on descending availability...". i'm also envisioning that control to the underlying page should be temporarily disabled while this ajax request is processing. the user will still be able to scroll the browser up and down, but editing text, clicking buttons, and performing other ajax requests will be disabled. the temporary lock-down could easily be achieved by enabling / disabling a full-screen div with 0% opacity.
ok, i think this jira is obsolete. although i wanted to make it fancy and page-specific, greg's recent checkin' indirectly fixes that by adding a "Processing..." image in the lower-left hand corner of the screen. it exists on all JSF-rooted pages, and so should suffice to provide that visual feedback during ajax requests.
Now get the "Loading..." indicator at the top of the page, except for places like the resource browser where it seems to reload the entire page. I don't see any issues where there is loading going on but no visible indication. rev3509
This bug was previously known as http://jira.rhq-project.org/browse/RHQ-1235