Feature Wiki
Tabs
Centralizing UI-Components
Page Overview
[Hide]- 1 Requirements
- 1.1 Background
- 1.2 Goals
- 1.3 Requirements
- 1.4 Limitations
- 1.5 Timeline
- 2 JF-Presentations
- 3 Proposal for JF
- 4 Additional Information
- 5 Discussion
- 6 Implementation
1 Requirements
1.1 Background
The Guidelines generated by the UI Kitchen Sink Project sprout many todos concerning UI-Components. The current implementation of UI-Components is problematic (A list of problems was compiled during a meeting with the SIG Refactoring). A proposal of a new approach to handle UI-Components was appreciated by the participants of the last Special Jour Fixe for Kitchensink (see section Centralizing UI-Components). This FR is the result of the feedback that gathered during this last meeting.
1.2 Goals
The main goal of this project is to build the foundation and structure along with guidelines for a centralized UI Service serving as home for new UI specific implementations and target place to move all existing ones.
1.3 Requirements
The project will offer the following key elements upon completion:
- A ready to commit code base defining the base structure of the new UI-Service for 5.2
- Guidelines and a defined process offering other developers help by contributing to the new UI-Service.
- Ready to use implementations of Buttons, Glyphs and Counters in the new UI-Service as a Proof of Concept.
- A proposal on how to input KS content through comments in the code base.
- A proposal on how to achieve a high Unit Test coverage for the new UI elements.
- A proposal of necessary and possible next steps after this project to move existing UI components to the new service.
- A metric to monitor the progress of shifting existing components to the new service and method to messure it.
1.4 Limitations
The Centralizing UI-Components will NOT offer a complete ready to use service for all UI-Elements found in ILIAS. Much more it will build a solid foundation and structure to add further UI-Elements in the future.
The proposal of complete Less and JS guidelines is beyond the scope of this project. We are aware that this is a very important issue to tacke in the near future though.
1.5 Timeline
We have a proposal ready to be discussed in the first JF of may.
2 JF-Presentations
This is the current draft for some parts of the rules that I want to present on the JF on Monday, 2016-04-25. I do not want to discuss the rules in detail but rather try to show the intentions and ideas that led to the rules and collect feedback and criticism. This also only covers the part of the rules that to me seem less controversial, to get at least somewhere. The more controversial parts will be presented on another JF. We also might need some other place to discuss the rules than the JF.
Klees, Richard [rklees]
The JF 2016-04-25 asked for code. That's in the presentation for JF 2016-05-23. There also is a probably highly controversial proposal for the interfaces, which I want to dicuss.
Klees, Richard [rklees]
3 Proposal for JF
- We propose these rules to govern the collaborative work on the UI-Framework.
- We propose this basis implementation for an ILIAS UI framework.
4 Additional Information
- Idea / concept: Output of the Special Jour Fixe for Kitchensink
- Funded by: Universität Bern, CaT Concepts and Training GmbH
- Concept is done by Richard Klees, CaT Concepts and Training GmbH
5 Discussion
JourFixe, ILIAS [jourfixe]: Februar 29, 2016: We highly appreciate this suggestion and looking forward for the concept.
JourFixe, ILIAS [jourfixe], April 25, 2016: Richard Klees made suggestions for processes and interfaces for centralising UI components and invited all developers to comment these suggestions, see chapter 2. Richard will continue the discussion at the next JF.
JourFixe, ILIAS [jourfixe], May 23, 2016: Richard gaves us an update of the current concepts, esp. for interfaces. He proposes immutable component representations and showed us implementation examples for the Factory interface, Component interface and Renderer interface. We highly appreciate his suggestions and kindly ask him to continue his work.
JourFixe, ILIAS [jourfixe], June 20, 2016: Richard and Timon gave a final presentation of the current concept. We are convinced of this concept and schedule this request for 5.2.
6 Implementation
The UI-framework and additional information about its implementation and how to use it is available on GitHub at: https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/src/UI
Approval
General Feature: Approved at 1.8.2016 by Amstutz, Timon [amstutz]. (Developed by CaT)
Last edited: 4. Sep 2017, 17:20, Amstutz, Timon [amstutz]