Feature Wiki

Information about planned and released features

Tabs

Functions

Removing of Legacy-UIComponents-Service and Table

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

1 Aim of Project

The Legacy-UIComponents-Service and the Legacy-Table-Service have been lingering and causing problems for user experience, accessibility, updatability, and consistency for a long while now. They also cause a lot of work as many changes in the UI need to be backported there. To avoid this state going on forever the whole UIComponents- and Table-Services are marked as deprecated and will be removed as quickly as possible, ideally with ILIAS 10. The parts of the UIComponents already marked as deprecated on January 1st 2022 will be removed with ILIAS 9.
General objectives
  • Remove Legacy-UIComponents as well as the ilTableGUI and ilTable2GUI Implementations.
  • Quality and Compliance Improvements
  • better Maintainability
  • avoid or reduce unmaintained Code
  • Reduction of redundant Code
  • Reduce the amount of HTML templates and CSS classes used in them
Relevant documentation of the deprecations: GitHub-Commit (see also chapter four on this site)

2 Timeline

Phase 1
Inventory, project framework and funding
Phase 2
Implementation in ILIAS 9
Phase 3
Preparation of the replacement of the services for ILIAS 10
Phase 4
Project conclusion and handover
Coding Completed ILIAS 9
October 27, 2023
Coding Completed ILIAS 10
October 25, 2024
Coding Completed ILIAS 10
October 2025

3 Involved Maintainers and Stakeholders

  • Maintainer to all Components and Services:

4 Details of Deprecations

4.1 List of Deprecations in ILIAS 9

Deprecation of Legacy-UIComponents-Service
class ilAdvancedSelectionListGUI implements ilToolbarItem
class ilButton extends ilButtonBase
class ilImageLinkButton extends ilLinkButton
class ilJsLinkButton extends ilButton
class ilLinkButton extends ilButtonBase
class ilSubmitButton extends ilButtonBase
Character Selector »» "Abandon Special Character Selector"
Remark: There remain a limited number of exceptions that are relevant to usages of other classes that are defined as 'Deprecated' for ILIAS 10.

4.2 List of Deprecations in ILIAS 10

Deprecation of Legacy-UIComponents-Service
class ilGlyphGUI
class ilGroupedListGUI
class ilLightboxGUI
class ilModalGUI
class ilNestedList
class ilOverlayGUI
 
class ilPanelGUI
class ilProgressBar
class ilSplitButtonGUI (including [1]
class ilTooltipGUI

4.3 List of Deprecations in ILIAS 11

Deprecation of Legacy-UIComponents-Service
abstract class ilButtonBase implements ilToolbarItem
class ilConfirmationGUI & ilConfirmationTableGUI
class ilExplorer (including [2], [3] & [4])
class ilSyntaxHighlighter
class ilTextHighlighterGUI
class ilToolbarGUI
class ilTabsGUI
 
Deprecation of Services/Table
class TableGUIRequest
class ilTable2GUI extends ilTableGUI
class ilTableGUI
class ilTableTemplatesStorage
interface ilTableFilterItem

4.4 Exemplary usage of the classes marked as deprecated

Deprecation of Services/Table
Usages: 
  • almost in every component
class class ilConfirmationGUI is often used to confirm deletion processes
Usages: 
  • almost in every component
  • Move or Merge Threads in Forum
  • User Deletion next to withdrawl Terms of Service
  • … 
  • and some more.
class ilExplorer is an often used Tree View
Usages: 
  • Excercise
  • Forum
  • Glossary
  • Media Pool
  • Question Pools
  • Page Editor
  • and some more.
ilGlyphGUI is used for various Glyphs
Usages: 
  • '+', '-', '⌃' and '⌄' in Test & Assessment (and other forms)
  • Filter in Who-is-online
  • Search-Glyoh in Online Help
  • Drag-Glyph in Page Editor
  • and some more.
class ilGroupedListGUI is used for some more complex sets
Usages: 
  • "Add-New-Item" Menu (Services Object)
  • Test 
  • Help
  • Employee Talk
class ilLightboxGUI is used for presentation of media
Usages:
  • Audio Files in a News on Dashboard
class ilModalGUI is used for:
  • Long Menu Question in Test & Assessment
  • Exercise
  • Draft History in Forum
  • Notes 
  • Timeline in Courses : Media in a News of Timeline
class ilNestedList is used for:
  • Wiki Navigation
  • Evaluation of Survey
  • Print View in ILIAS Learning Module 
class ilOverlayGUI is used for:
  • DataCollection
  • Test & Assessment : Definition of randomized Questions and Taxonomy
  • Lucene-Search-GUI
  • saving individual views on learning porgress
class ilPanelGUI is used for varius informations and actions
Usages:
  • Statistics in Wiki
  • Users in Repository Chat
  • Excercise
  • Survey
  • Personal Skills
  • User Gallary
class ilProgressBar is used for … … …
Usages:
  • Copying a course
  • Relevance of Search Results
  • Results of a Poll
  • Progress of answering a survey
  • Wiki Exports

5 Compensation patterns to Legacy-UI

6 Fundraising & Contributions 

We are at the beginning of fundraising and rely on strong contribution from the whole community
Committed contribution
  • ILIAS open source e-Learning e.V.
  • Katholische Hochschule Nordrhein-Westfalen
  • Universität Bern
  • Sächsische Informatik Dienste
  • Fachhochschule Aachen
  • Technische Hochschule Ostwestfalen-Lippe
  • Fachhochschule Vorarlberg
  • Katholische Hochschule Freiburg
  • Pädagogische Hochschule Zürich
  • Philipps-Universität Marburg
  • Karlsruher Institut für Technologie (KIT)
  • Fachhochschule Münster
  • Deutsche Lebens-Rettungs-Gesellschaft e.V.
  • Duale Hochschule Baden-Württemberg
  • Universität Hohenheim
  • Universität Basel
  • Hochschule Bremen

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], 27 NOV 2023: Oliver presented the planned steps for the project for ILIAS 10. No additional comments.
The TB considers the "Removal of Legacy UIComponents Service and Table" project to be one of the key projects for ILIAS 10 and of top priority. We expect all maintainers to actively participate in this project so that the goals set for ILIAS 10 can be achieved in full.
The project is pursuing important strategic goals, in particular "Reliable Learning Management" and "Usable for Everyone", as outlined in our "Strategy of the Technical Board - July 2023" → see here.
Statement UX/UI/A11y-Experts, 6 DEC 2023
The following goals can be achieved and help users to operate the system: Same looks the same and works the same, simplify and/or standardize workflows, simplified SCSS customizations and better code base that can be maintained by more people. We therefore welcome this Big Development Project and would give this a prioritization level 1.
08 DEC 2023: The Product Manager considers the removal of LegacyUI from ILIAS as a major project with great significance for accessibility, user-friendliness and reusability of components. Even though we might not be able to remove all the old UI components in the large code base of ILIAS, we should do a big step forward in this project with ILIAS 10. All ILIAS-using institutions and companies are cordially invited to support the realisation of this big project through appropriate funding.

[1] ilSplitButtonItemDivider, ilSplitButtonSeparatorMenuItem & ilSplitButtonMenuItem
[2] abstract class ilExplorerBaseGUI
[3] abstract class ilExplorerSelectInputGUI extends ilFormPropertyGUI implements ilTableFilterItem
[4] abstract class ilTreeExplorerGUI extends ilExplorerBaseGUI implements \ILIAS\UI\Component\Tree\TreeRecursion

Last edited: 6. Jun 2024, 07:53, Samoila, Oliver [oliver.samoila]