Paginate long lists in the backend rather than in the frontend
Currently, in Manager, all results are loaded by the frontend to speed up the display of each result page (pagination is done in the frontend.
For pages with huge results sets (transfer and flow history, audit), this can lead to huge pageload time and an increased pression on the backend and on the database to generate the result set.
To remediate that, pagination should be done server-side:
- New page parameters (in the url) should be added for the page to show, the sort column and the sort order
- On page load, only the results required by the parameters should be loaded by the frontend (i.e. what needs to be displayed). if the URL parameters are not given, default values should be used. the default value should be the same as they currently are.
- When the user changes the result page (by clicking prev or next, by entering a direct number, by changing the sort order of the results, or by changing one of the parameters in the URL), a new result set matching the parameters must be loaded from the backend and shown.
- Except when the requested change is initiated by changing directly the URL, the URL should be updated to match the new pagination parameters.