Feature Wiki

Information about planned and released features

Tabs

(Project) 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 11

October 27, 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 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 ilNestedList
[5]

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 in the process of fundraising and rely on strong contribution from the whole community

Please contact Detemple, Konstanze [kdetemple] & Samoila, Oliver [oliver.samoila] to get involved.

Many thanks to all the institutions that have already contributed to the project.

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
  • Hochschule Bonn-Rhein-Sieg
  • Hochschule Bielefeld
  • Universität Freiburg
  • Universität zu Köln
  • Hochschule Luzern

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
[5] Postponed to ILIAS 11. The current implementation is required for the print dialogues in hierarchical structures such as learning modules. There is a dependency on ilExplorer, which is why a replacement must be postponed.

Last edited: 5. Nov 2024, 13:31, Samoila, Oliver [oliver.samoila]