Feature Wiki

Information about planned and released features

Tabs

General Layout and Menu Revision

Stay in contact and get informations about the project: Go to Working Group

Download the following files for an overview of the current state of the General Layout and Menu Revision:

1 Goal

Triggered by an initiative of the University of Bern with the title "Page Layout Revision", multiple processes currently take place in the ILIAS-Community. Overall goal of the "Page Layout Revision" is to redesign the overall ILIAS layout and its core control elements (see Page Layout Revision (Mobile) and Page Layout Revision (Desktop)). Based on a problem analysis of the current ILIAS layout and controls, a proposal for a general redesign of the layout was developed.

The introduction of such a general redesign will lead to large ripple effects through almost all parts of ILIAS. The projected changes in the ILIAS core will affect virtually every developer involved in ILIAS at one time or the other. Some will need to implement menu-abstractions for their components, some will need to refactor minor or major parts of their components, some will need to implement the new devices proposed in resulting FR's of this project. It will be possible to do a lot of work asynchronously, but there will be some synchronization points between different threads in the work. Ultimately there will be a point, where the current implementation of the page layout will be switched out for the new implementation, and the project reaches a point of no return.

2 General Concept

The basis of the project is set by the proposal of the "Page Layout Revision". The During the discussion it became obvious that we had to split this large concept into three individual parts.

Page Layout Revision (Desktop)

  • Summary: The general concept for the UI of the revision on large screens.
  • Dependencies: Main Menu Items
  • State: Release 6.0
  • Jour Fixe Decision: 11 FEB 2019
  • FR: Page Layout Revision (Desktop)

Page Layout Revision (Mobile)

  • Summary: The general concept for the UI of the revision on small screens.
  • Dependencies: Main Menu Items
  • State: Release 6.0
  • Jour Fixe Decision: 11 FEB 2019
  • FR: Page Layout Revision (Mobile)

Main Bar Items

  • Summary: To propose a new concept for the page layout, we first define the "default" menu structure and naming that works with a maximum number of ILIAS installations.
  • Dependencies: Main Bar Items
  • State: Release for 6.0
  • Jour Fixe Decision: 04 FEB 2019
  • FR: Default Configuration of Main Bar Items (ILIAS 6)

Metabar Items

  • Summary: Based on the new layout, the top area is called Metabar. We have to define which items should get a place in the Metabar. This also depends on the Default Configuration of Main Bar Items (6.0).
  • Dependencies: Metabar Items
  • State: Release 6.0
  • Jour Fixe Decision: 04 FEB 2019
  • FR: Overview Metabar Content

Tree for General Layout and Menu Revision

  • Summary: We have to clarify how the repository tree and other tree representations are represented in the slate.
  • Dependencies: Repository Tree and other Trees
  • State: Suggested for 6.0
  • Jour Fixe Decision: not yet
  • FR: Tree for General Layout and Menu Revision

Customisable Main Bar - Icon Upload

  • Summary: Since ILIAS 5.4 the menu structure can be customised. In the new layout menu items on the top level will have an icon. A .svg upload must be added.
  • Dependencies: Customizable Main Menu
  • State: Release 6.0
  • Jour Fixe Decision: not yet
  • FR: Customisable Main Bar - Icon Upload

3 Additional Features

Integration of Page Editor

  • Jour Fixe Decision: not yet
  • FR: Integration of Page Editor

Overview for Favorites on Personal Workspace

Adapt Blog/Portfolio View to new Layout

Dashboard

4 UI Components

Page Layout UI-Components

5 Services / Abstractions

New Main Menu Service (5.4)

  • Summary: To make the new customizable menu come into existence, a new set of abstractions will be required. This abstraction will need to answer questions like: Which elements could be created in sidebars and slates and what are the properties? How can these elements be configured and stored? How are these elements processed to yield the UI-components for the Page Layout?
  • Dependencies: Page Layout Revision, UI-Components
  • State: Release 5.4
  • Jour Fixe Decision: 08 OCT 2018
  • FR: Customisable Main Menu

Extension Global Screen Service: View/Screens/Layout

  • Summary: The aim is to extend the Global Screen Service that not only the MainMenu or rather MainBar, but also the layout of the complete page (UI Component Page) is supported. Because the layout of the page has to change depending on the context, we need a second service to support the layout of the page, providing information about which operating elements have to be available in which context.
  • Dependencies: Page Layout Revision, UI-Components, Contextual Slates
  • State: Suggested for 6.0
  • Jour Fixe Decision: none
  • FR: Global Screen Extension for View/Screen/Layout (Working Title) and embedding in NavigationContext-Service (N/A)

Introduction of a Service for the Notification Center

  • Summary: Similar to the abstractions required for the new menu structure, the implementation of the Notification Center will require abstractions not yet present in ILIAS. These will mainly need to answer the question, what entries in the Notification Center are and which properties they need to have. The new abstractions then should easily be able to fuel a service to actually implement the Notification Center.
  • Dependencies: None
  • State: Release 6.0
  • Jour Fixe Decision: none
  • FR: Notification Center

6 Refactorings

Several existing services or interfaces need to be refactored to properly work with the new page layout and meet the "Beyond Standard" goal of stated by the Strategy 2017:

Personal Desktop Revision

  • Summary: There are several changes on the Personal Desktop needed to nicely work with the new Page Layout (e.g. get Rid of the 3 Column Layout and other occuring redundancies). 
  • Dependencies: None
  • State: Iin Discussion
  • Jour Fixe Decision: Release 6.0
  • FR: Overview Personal Desktop Revision

Refactoring ilTemplate

  • Summary: To implement the new Page Layout into ILIAS at some point, a major refactoring will be required. Although it might be possible to somehow fiddle the new Page Layout into the current ilTemplate class without major changes to the class, the current state of ilTemplate suggests, that such attempts won’t lead to a clean solution. 
  • Dependencies: None
  • State: Might be started
  • Jour Fixe Decision: 
  • FR: Refactoring ilTemplate

Cleanup and Replacing Global ilTemplate, ilMainMenu and others

  • Summary: To complete the implementation of the Page Layout Revision it will not be enough to see the new layout in the GUI of ILIAS. It will rather be necessary to also remove outdated and obsolete parts of the code base that were superseded by new code introduced during the revision. The two obvious targets for this cleanup will be the global ilTemplate and ilMainMenu instances and the code required for them. Many other less obvious targets will require clean up as well: templates, JS-code[1], auxiliary classes, methods not in use anymore, …[1] e.g. the Yahoo UI Library
  • Dependencies: All other steps
  • State: Might be started
  • Jour Fixe Decision: 
  • FR: Through PRs

7 Contact

  • Author of the Request: Richard Klees, Timon Amstutz
  • Maintainer: Various
  • Implementation of the feature is done by: Various

8 Funding

If you are interest in funding this feature, please add your name and institution to this list.

9 Discussion

Killing, Alexander [alex], 27 Feb 2018: Thanks for the great overview! Do you have already any ideas how this can be split into development stages for the upcoming releases? Especially what would be the minimal first stage for ILIAS 5.4? I think it could/should be possible to not include menu configration (main menu abstraction) and notification center in 5.4. So basically concentrate on the page layout revision for desktop and mobile in the first step. Of course if ressources are still available we could do more...

10 Previous status of this Feature Request

The content presented in this document is mostly result of a roadmap propsed by CaT Concepts and Training GmbH to tackle the Page Layout Revision (Desktop) project in mutliple steps. The Universität Bern thanks CaT for this great contribution.

10.1 Goal

Triggered by an initiative of the University of Bern with the title "Page Layout Revision", multiple processes currently take place in the ILIAS-Community. Overall goal of the "Page Layout Revision" is to redesign the overall ILIAS layout and its core control elements (see Page Layout Revision (Mobile) and Page Layout Revision (Desktop)). Based on a problem analysis of the current ILIAS layout and controls, a proposal for a general redesign of the layout was developed. The introduction of such a general redesign will lead to large ripple effects through almost all parts of ILIAS. The projected changes in the ILIAS core will affect virtually every developer involved in ILIAS at one time or the other. Some will need to implement menu-abstractions for their components, some will need to refactor minor or major parts of their components, some will need to implement the new devices proposed in resulting FR's of this project. It will be possible to do a lot of work asynchronously, but there will be some synchronization points between different threads in the work. Ultimately there will be a point, where the current implementation of the page layout will be switched out for the new implementation, and the project reaches a point of no return.

The roadmap presented on this page outlines major tasks that need to be accomplished to implement the Page Layout Revision in the ILIAS core as they are foreseeable now. The division of this project into various sub parts is done to minimize the risk for ILIAS by shifting steps that require a complete buy in to the very end of the roadmap. The proposed tasks also try to minimize the risk for everyone engaging in the project by trying to generate results that will be useful for ILIAS, even if the complete Page Layout Revision may not completely succeed or find acceptance.

10.2 Roadmap

Several of the steps listed in this roadmap can be tackled in parallel others have dependencies that must be met, before the topic can be tackled. All have a state which is either implemented, agreed, ready for JF, in discussion, work in progress, might be started, unresolved dependency.

10.3 Overview

The following charts gives an overview about the current stage of the project. The individual topics are explained further bellow. Note that some of the nature of PR's and some have the nature of FR's.

10.4 General Concept

New Main Menu Service (5.4)

  • Summary: To make the new customizable menu come into existence, a new set of abstractions will be required. This abstraction will need to answer questions like: Which elements could be created in sidebars and slates and what are the properties? How can these elements be configured and stored? How are these elements processed to yield the UI-components for the Page Layout? These new abstractions are not to be confused with the UI-components, they need to address problems that logically come before the UI-components can be created. We also suggest, to dismiss the problem how components can announce the controls they want to contribute to the new menu, but instead hardwire the dependency in some menu service class for the time being. This problem is closely related to similar problems when it comes to components that contribute to other components (e.g. contexts for mail templates, modes for the learning progress determination, …) and should be tackled as such.The new abstractions and UI-Components will need to be bound together in a new service that turns the menus configuration and entries into the UI-components that will be displayed to the user. Most probably this service will also need to offer additional functionality to the ILIAS components, e.g. to open a menu entry code wise or react on content in the content area. We suggest to keep this implementation separate from the current ilMainMenu to be able to maintain the functionality of the system while the implementation is in progress.
  • Dependencies: Page Layout Revision (Desktop), Page Layout Revision (Mobile), Main Menu Items, UI-Components
  • State: Allready implemented in ILIAS 5.4 (Must be adapted to the new main menu structure  / unresolved dependency)
  • Jour Fixe Decision: 08 OCT 2018
  • FR: Customisable Main Menu

Introduction of a Service for the Notification Center

  • Summary: Similar to the abstractions required for the new menu structure, the implementation of the Notification Center will require abstractions not yet present in ILIAS. These will mainly need to answer the question, what entries in the Notification Center are and which properties they need to have.The new abstractions then should easily be able to fuel a service to actually implement the Notification Center. As for the menu structure abstractions, we suggest to intentionally ignore the problem, how components can announce their entries to the notification center, and hardwire them in the service.
  • Dependencies: None
  • State: Suggested for 6.0
  • Jour Fixe Decision: none
  • FR: Notification Center

10.5 Implementations

Implementation of Controls for the new Menu Structure (5.4)

  • Summary: The abstractions for the menu structure need to be substantiated to yield actually existing items to be used in the menu and its configuration. This will need to be done for every individual ILIAS component that needs to take part in the new menu structure and thus will require various ILIAS maintainers to add code to their component.
  • Dependencies: Introduction of Abstractions for Menu Structure
  • State: Allready implemented in ILIAS 5.4 (Must be adapted to the new main menu structure / unresolved dependency)
  • Jour Fixe Decision: 08 OCT 2018
  • FR: Customisable Main Menu

Implementation of Notification Center Entries

  • Summary: The abstractions for the notification center need to be concretized in the different ILIAS components that want to take part in that device. Presumably these abstraction will be simple and easy to implement.
  • Dependencies: Introduction of a Service for the Notification Center
  • State: In Discussion
  • Jour Fixe Decision: none
  • FR: Notification Center

Last edited: 16. Apr 2020, 14:30, Kunkel, Matthias [mkunkel]