Feature Wiki

Information about planned and released features

Tabs

(Project) Views / InnerContent

This is a project page that bundles several feature wiki pages which belong to a larger development activity for the ILIAS component Global Screen Service.

1 Aim of Project

Please note that this Project is at a very early stage, the first step will be a concept describing the project more precisely.

1.1 How does the Global Screen Service work? What does it not (yet) do?

With the introduction of the GlobalScreen service, defined ways were created how certain elements are structured on an ILIAS page. Since then, everything except the inner content area has been managed via the GlobalScreen service. Components offer elements that are collected and managed by the GSS in order to then combine them into a single page.

However, the inner content area still runs via the ilGlobalTemplateInterface and contains any HTML.
Other elements in the content area are still managed using old methods, such as tabs and subtabs.

For example, the online help depends on views being identifiable in ILIAS.

Composing views is currently done implicitly via ilCtrl. A call and thus a view runs through various GUI classes (or rather command classes), which may add something to the content. For example, the inner content, the tabs and the title of the object do not all have to come from the same GUI class.
This circumstance makes it difficult to find errors or to standardize things.

1.2 The idea of views

In order to be able to work within the inner content using the Global Screen Service, a new concept is needed for the components to define and structure their views. These views within the inner content shall be called "views".

 
ILIAS knows already things like views, e.g. in the screenshot below we see the "View" of the "Content" of the "Repository". ("Thing" -> Tab -> Subtab). Besides Tabs and subtabs we sometime see things like the so called "Unterwelten", which are basicly subviews of a view. We can have a look at views as a tree. This is what we would like to have a closer look at and build up a nre concept.
 

Each view (e.g. content on course page) gets a unique ID, but can also be reused (e.g. info tab, rights tab).
For example, the component "Course" must report which tabs are to be displayed so that the standard course view can be displayed. However, the tabs "Learning progress", "Metadata", "Export" and "Rights" are not reported by the component itself because they are reported by other components (e.g. RBAC rights system). However, the service collects this information, which is reported by different components.

In addition, there is the actual content, i.e. which elements can be seen on the page and how they are arranged (e.g. list view, tile view), how the page is organised (text, image, etc.), which objects are displayed, which objects are allowed to be added.
In the future, all this information should also be reported by the component to the Global Screen Service or similar service so that different "views" can be generated.

This project also has a focus on the UI Components for "Inner Content", e.g. the Header of a Content Page with its Actions and so on. And of course our beloved "Tabs" :-)

2 Involved Maintainers and Stakeholders

Participating in the project so far:

3 Timeline

With ILIAS 9 we aim to address the following points:

  • Have a Concept of how to Stack "Views", make them reusable and how Views are "linked" to the request handling
  • Have a solution for static and predicatble identifiactions of Views, even for "legacy" ones which can be used for Online Help. See Persisting Help IDs

...

4 Related Feature Requests and Status

Feature Request

Suggested by

Funding

Planned Release

Status

5 Further Results

6 Additional Information

7 General Discussion

Please discuss specific questions of feature requests on the related feature wiki pages. This discussion section is only for a general discussion of the project and its realisation.

JourFixe, ILIAS [jourfixe], 21 FEB 2022: Schmid, Fabian [fschmid] presented the project at the Big Projects Jour Fixe and answered questions.

  • Relevance for strategic ILIAS development: High priority! Many bugs come from complexity of page structure. It would be simpler and safer in future through predefined structures; also creates more consistency on UI side, also more security.
  • Plan for ILIAS 9: development, elaboration and discussion of the concept; proof of concept of a simple component (probably file object), including new UI components (e.g. assynchronous tabs), screen IDs
  • Chance of realisation: can only be said after concept development; screen IDs financed and thus safe for I9
  • Dependencies: dependent on UI components, on ilCtrl, on GlobalScreen
  • Impact on other development activities: impact on other components only in the context of the respective adaptation

Statement Technical Board, 2022 Apr 6:
The Technical Board believes that this project has a big technical relevance and will have deep architectural impacts to allow ILIAS to be a more "Adaptable Learning Environment". However, we think that the already outlined technical approaches (e.g. integration into the Global Screen Service) should not need too much involvement of the Technical Board. Still, we agree to support „on demand“ when deemed necessary for this medium-to-high priority project.

Statement UX/UI/A11y-Experts, 2022 Apr 6:
This project as well as Project D and E will be important to improve consistency of the UI. They are important steps to continue the change started with the UI-Kitchensink and the Global Screen Service.

Last edited: 18. Oct 2024, 17:39, Kunkel, Matthias [mkunkel]