Feature Wiki
Tabs
Async Content Loading
Page Overview
[Hide]1 Initial Problem
With ILIAS 6 we introduced a beatufily new Main and Meta Bar. However, almost everytime a navigation takes place, the whole screen is realoded. Since this reload includes the Meta and Mainbar, this is in many cases a waste of ressources, since those do not change that frequently. Further in results in flickering if the reload takes a long time.
This FR is out of date and currently under Revision. Please contact Amstutz, Timon [amstutz] if you are interested in this project.
2 Conceptual Summary
We propose to offer some "Opt. Out" for distinct screen of this full page reload. For navigating through tabs, sub tabs toolbar and also Buttons or Links in the Mainbar, there should be a way to load only re-load the content area (including title and the tab) or the inner content area (excluding the title and tabs).
This might be needed to be accompanied by some new offers of the main bar and meta bar client side interface to replace content there as well (e.g. recently visited would need to be changed if a new place in the repository is offered).
Note that this can quickly move the a AAA project with tremondous complexity. We hope to achieve a clean solution with limited interface changes to tackle the most prominent cases without causing too much disturbance on the overall UX of the application.
3 User Interface Modifications
There should be no difference in the layout of the screen except maybe for a loading animation for the parts of the application being loaded async.
3.1 List of Affected Views
Depending on the level of implementation, many.
3.2 User Interface Details
We might think about some distinct layout to be shown when parts of the screen are reloaded (e.g. loading animation in grey box or similar).
3.3 New User Interface Concepts
One or multiple PRs to the UI components will be necessary, see bellow.
4 Technical Information
Some base ideas on how async loading can work are given by the popover component of the UI Framework. However, those concepts would need to be extended. We might think about adding some withAsyncTarget(AsyncLoadableComponent $c) to Buttons and maybe even link. However this would need to be further sketched out in a UI Framework PR.
5 Privacy Information
{ Please list all personal data that will need to be stored or processed to implement this feature. For each date give a short explanation why it is necessary to use that date. }
6 Security Implications
{ Does the feature include any special security relevant changes, e.g. the introducion of new endpoints or other new possible attack vectors. If yes, please explain these implications and include a commitment to deliver a written security concept as part of the feature development. This concept will need an additional approvement by the JourFixe. }
7 Contact
- Author of the Request: Amstutz, Timon [amstutz]
- Maintainer: Multiple
- Implementation of the feature is done by: {The maintainer must add the name of the implementing developer.}
8 Funding
If you are interest in funding this feature, please add your name and institution to this list.
- …
9 Discussion
10 Implementation
{The maintainer has to give a description of the final implementation and add screenshots if possible.}
Test Cases
Test cases completed at {date} by {user}
- {Test case number linked to Testrail} : {test case title}
Approval
Approved at {date} by {user}.
Last edited: 26. Jun 2020, 13:17, Amstutz, Timon [amstutz]