Feature Wiki
Tabs
Customisable Main Menu
Page Overview
[Hide]- 1 Initial Problem
- 2 Conceptual Summary
- 2.1 Terminologies
- 2.2 Technical Background and Services
- 2.3 Administration
- 2.3.1 Subtab «Main Menu Subitems »
- 2.3.2 Subtab «Main Menu Items»
- 2.4 Types
- 2.5 Plugins
- 3 User Interface Modifications
- 3.1 List of Affected Views
- 3.2 User Interface Details
- 3.2.1 Slate Entries
- 3.2.2 Main Menu Entries
- 3.3 New User Interface Concepts
- 4 Technical Information
- 5 Contact
- 6 Funding
- 7 Discussion
- 8 Implementation
Due to the new General Layout and Menu Revision project this article has been revised.
This is an updated version of the request adapted to the new feature page structure and renamed.
This feature request has already been worked out in different versions and has especially the following background:
- Transfer of the functionalities, which are already offered by different Main-Menu-Plugins for some time: Adjusting the main navigation in order and content. The possibility to create your own main menu entries and make them available to certain user groups.
- Furthermore, the page layout revision for ILIAS 6 also results in a fundamental adjustment regarding the appearance of the main menu, this is described in the feature request General Layout and Menu Revision.
1 Initial Problem
In 5.3 the main menu is restricted to the menues for Personal Desktop, Repository and Administration. Plugins allow adding additional main menu entries.
With the General Layout and Menu Revision we propose to change the structure of the main menu. Our proposal aims to work well on as many installation as possible but due to the diverse workflows we believe it to be an imporant part of the concept to offer ways to customise this new menu.
In 5.3 the main menu is restricted to the menues for Personal Desktop, Repository and Administration. Plugins allow adding additional main menu entries.
With the General Layout and Menu Revision we propose to change the structure of the main menu. Our proposal aims to work well on as many installation as possible but due to the diverse workflows we believe it to be an imporant part of the concept to offer ways to custimize this new menu.
2 Conceptual Summary
2.1 Terminologies
In order to describe the functions of the MainMenu but also its configuration, we propose the following terms together with this feature request. These will be helpful in the implementation of the elements in the UI service for ILIAS 6 to identify the elements.
In the current situation we have to do the balancing act between terms that we use implicitly or explicitly in the current ILIAS versions, terms that will still be valid in ILIAS 5.4 (as the appearance of the MainMenus will remain the same) and terms that will keep their validity if possible with the complete redesign of the MainMenu in ILIAS 6. This feature request suggests these terms, but makes them explicitly available for discussion.
Item | ILIAS 5.3 | ILIAS 5.4 | ILIAS 6.0 |
---|---|---|---|
![]() | Main Menu | Main Menu | Main Menu |
![]() | Main Menu Entry | Top Item | Slate Item (?) |
![]() | Dropdown | Items | Slate (?) |
![]() | No specific name | Complex Item (Administration) or LinkList (Last Visited) | Complex Item Or ListLink |
![]() | Menu Entry | Item (Link, RepositoryLink, Complex [depending on type]) | Slate Entry (?) |
![]() | Separator | Separator (Item) | Separator |
JF DECISION NEEDED: The terms around the MainMenu should be finally decided, then the PR for the GlobalScreen service is adapted and merged.
2.2 Technical Background and Services
The technical aspects of this implementation are presented and discussed in Pull Request 1146. Nevertheless, the technical decisions also have an impact on the feature, as presented here.
Some important hints that already concern the current feature request due to the PR:
- "Default Main Menu Items" are supplied by so-called providers. These Items can not be deleted, only deactivated.
- Since many different providers can contribute entries to the Main Menu, the configuration (table) must be supplemented with a "Provider" column. This shows which provider delivers this one entry, so that the entries remain identifiable for the administrators even after a renaming.
- g. Slates can have Icons. We currently propose to pass the pathes to the icon as a string to the UX-Services. But this concept is not final since we could also have the possibility to pass UI-Elements directly.
The most important service for the implementation is the newly introduced GlobalScreen Service. The components communicate via it with the MainMenu (and later also with other components of the GlobalScreen).
The components thus deliver the "Default Main Menu Entries", the sorting and nesting is delivered with the help of a database step.
2.3 Administration
The administration in ILIAS should contain a new menu item, which allows the adaptation of the MainMenu.
JF DECISION NEEDED: The new menu item is called Administration -> Main Menu
The Main Menu Administration has two tabs
- Main Menu
- Permissions
- Main Menu Subitems
- Main Menu Items
2.3.1 Subtab «Main Menu Subitems »
This subtab manages the entries in the Main Menu Items, i.e. the Main Menu SubItems. This table always shows a full view of all available items, regardless of whether they are displayed for a user or not. The following settings can be applied via the table and the Save button:
- Define affiliation to Main Menu Item
- Define sequence (Position column)
- Activate/deactivate entry (checkbox)
![](./data/docu/mobs/mm_63806/Bildschirmfoto_vom_2018-10-01_um_15.37.56.png?il_wac_token=4b0394d677ddba8e44ce388a27329a666dc4271c&il_wac_ttl=5&il_wac_ts=1725753290)
All further actions are accessible via the Actions menu:
- Edit
- Translate
- Delete (only for Custom)
![](./data/docu/mobs/mm_63807/Bildschirmfoto_vom_2018-09-28_um_16.53.44.png?il_wac_token=4b0394d677ddba8e44ce388a27329a666dc4271c&il_wac_ttl=5&il_wac_ts=1725753290)
Adding a new Sub Item is done with the following Form (from the new UI Service Form). Editing is done the same way but the Type is no longer changable:
![](./data/docu/mobs/mm_63856/Bildschirmfoto_vom_2018-10-01_um_15.49.19.png?il_wac_token=4b0394d677ddba8e44ce388a27329a666dc4271c&il_wac_ttl=5&il_wac_ts=1725753290)
2.3.2 Subtab «Main Menu Items»
This subtab manages the directly visible main entries in the menu, the Main Menu Items. In the case of ILIAS 5.4, the focus here is on the title, while in ILIAS 6 an icon is displayed. For the implementation of the administration in ILIAS 5.4 the icon is therefore not considered yet, but the abstraction in the GlobalScreen Service is already prepared to be able to work with icons.
As with the subitems, items that are already delivered with ILIAS cannot be deleted. Only self-created entries can be deleted.
Analogous to the subitems, the respective provider is named. Since only items of type Slate can currently be found in the first level of the menu, no Type column is displayed.
Items are translated in the same way as subitems.
The following settings can be made directly in this table:
- Position (sequence in the display in the Main Menu)
- Active: Setting whether this main menu item should be displayed or not.
- Sticky: Decision whether this item is also displayed when space is scarce (in the mobile view)
The remaining actions are located in the actions menu of the respective entry.
A column indicates how many subitems are present in an item.
![](./data/docu/mobs/mm_63857/Bildschirmfoto_vom_2018-10-01_um_15.43.54.png?il_wac_token=4b0394d677ddba8e44ce388a27329a666dc4271c&il_wac_ttl=5&il_wac_ts=1725753290)
Adding a new Main Menu Item is done with the following form (UI Service). Editing an Item is done accordingly, but the Type can't be changed anymore. Please note that the "Type" options need to be discussed:
![](./data/docu/mobs/mm_63858/Bildschirmfoto_vom_2018-10-01_um_11.43.44.png?il_wac_token=4b0394d677ddba8e44ce388a27329a666dc4271c&il_wac_ttl=5&il_wac_ts=1725753290)
JF DECISION NEEDED:
- Should Main Menu Items themselves be allowed to be links (or other types)? if so, which types are allowed?
- ILIAS 5.4 won't have Icons in the Main Menu Items, therefore the Administration should not have according settings (e.g. a column Icon as proposed in a former version of this request)
2.4 Types
- Slate -> Main Menu Item
- Link -> Simple Link provides by the Core-Provider or Plugin
- RepositoryLink -> link to an item in the repository (Ref-ID). The Item in the Main menu is only visible of the users sees the object in the Repository (RBAC)
- LinkList -> a List of multiple links which will appear in the order given by the provider and can have a title
- Complex Item -> Rich content and mostly asynchronous loaded content, e.g. the Administration-Menu-Item or the whole Last-Visited + Repository
- Separator -> Visual separator between to items
- Plugin -> only the interface has to be implemented, types can be whatever they want to provide
Special case "Separator"
In the MainMenu in ILIAS 5.3 it already has separators, which visually separate individual entries in the "Personal Desktop", for example. In the implementation in ilMainMenuGUI these separators sometimes have several conditions that they appear. For example, a separator is only displayed before the "Calendar" entry if either LearningProgress, Badges, Skills, Portfolio, Workspace or Staff are activated (to prevent two separators from following each other). Such dependencies would no longer be possible with the new MainMenu service. Therefore, separators in ILIAS 5.4 are always deletable entries and can be created as often as necessary. In the default delivery, corresponding separators are included, but they do not disappear automatically if, for example, a service is deactivated after installation.
Special case "Complex Item"
In ILIAS 5.4 there will be two Complex Items:
- The Content of the Administration Menu Item which will be loaded asynchronously
- The Last Visited Item
2.5 Plugins
We recommend that all plugin types (not only UI) can act as providers of main menu items and subitems. This allows any plugin to offer a variety of new functions and at the same time the core is not affected. The UI hook plugins should also be able to explicitly deliver new types.
This results in two functions for Plugins:
- Offer items for the main menu (aka Global Screen Provider). Only existing types can be delivered (or at runtime known, e.g. from other plugins, which is not recommendes but not impossible). These cannot be deleted in the administration as well as core items, but can be deactivated. It makes sense for plugins to provide a MainMenu item with all its subitems. If a plugin is deactivated or deleted, the MainMenu items also disappear.
- UIHook plugins can also explicitly provide new types for the creation of custom items. These are offered when custom items are created in administration and provide additional settings and options in the creation and editing form. The UI hook plug-in is responsible for storing the specific data and also for rendering such types.
The terms used in this FR are subject to discussion. For starters we use the following terms:
- The Main Menu is located at the side of the srceen where the reading direction starts.
- The Main Menu Entries reside in the Main Menu. Upon click Main Menu Entries may expand the slate.
- ILIAS is shippled with a number of Main Menu Entries. These Default Main Menu Entries cannot be deleted, however they can be deactivated.
- Administrators can add and configure Custom Main Menu Entries. Custom Main Menu Entries requires a custom icon and a title.
- Upon clicking a Main Menu Entry a Slate is expanded. The Slate is pushing or overlaying (not discussed here) the content in directon of reading.
- A Slate has Slate Entries. The Slate Entries can be of the Type "Link", "Link List" and "Tool". Slate Entries can only reside inside a Slate.
- ILIAS is shippled with a number of Slate Entries. These Default Slate Entries cannot be deleted. The availability of a Default Slate Entry is governed either by permissons or by general configuration of a service.
- Administrators can add and configure Custom Slate Entries. Custom Slate Entries requires a title. Some Default Slate Entries are NOT selectable in for Custom Slate Entries (e.g. the type of the "Who is online" or Background Task widget).
In the admininistration it is possible to customize the set and ordering of Main Menu Entries as well as the set and ordering of the Slate Entries disyplayed inside the Slate.
Note that currently a context based entry point in the main menu is also discussed. Currently there is no concept on how to customize this or the top header area in this FR.
Notes on implementing and adapting this FeatureRequest based on the technical discussions in the pull request:
The technical aspects of this implementation are presented and discussed in Pull Request 1146. Nevertheless, the technical decisions also have an impact on the feature, as presented here.
Some important hints that already concern the current feature request due to the PR:
- "Default Main Menu Entries" are supplied by so-called providers. In a discussion via Skype, the idea came up that "Default Main Menu Entries" can also be deleted, contrary to the statement in the Feature Request here, but that these can then be added again at any time. This idea has now again been rejected or can be discussed in the JF. From our point of view, the configuration of the Main Menu Entries would have to know too much about the individual Entries to offer this e.g. similarly as in the CtrlMain menu for new creation.
- Since many different providers can contribute entries to the MyMenu, the configuration (table) must be supplemented with a "Provider" column. This shows which provider delivers this one entry, so that the entries remain identifiable for the administrators even after a renaming.
- e.g. Slates can have Icons. We currently propose to pass the pathes to the icon as a string to the UX-Services. But this concept is not final since we coud also have the possiblity wo pass UI-Elements directly. Best would be to discuss this with the UI-Service-Coordinators.
Topics to decide in JF:
- Shall Entries be able to be deleted or not? [NO]
- How is the MainMenu-Configuration locatoed in the Administration? [Administration » Main Menu]
- How shall the localization of entries be done? [as in the Mockups | New ML-Input]
- Which types of plugins shall be able to provide Entries? [All types]
- How shall Icons be passed to Entries? shall we already put UI-Elements in it or just paths? [Paths]
- We do not see the necessity for LinkList, should we still implement them? [no]
- We suggest to have to have a BackgroundTask wich collects all available Entries for the case one is missing (e.g. from Plugins)
3 User Interface Modifications
3.1 List of Affected Views
- New Entry in the Administration Menu: Main Menu
- Two tabs
- Main Menu
- Permissions
- Two Subtabs in "Main Menu"
- Main Menu Subitems
- Main Menu Items
![](./data/docu/mobs/mm_63866/Bildschirmfoto_2018-10-01_um_14.13.44.png?il_wac_token=4b0394d677ddba8e44ce388a27329a666dc4271c&il_wac_ttl=5&il_wac_ts=1725753290)
Administration » General Settings » Main Menu (to be discussed)
3.2 User Interface Details
The administration of the main menu will offer two sub tabs, a primary one to check, assign, order and configure the set of Slate Entries and a second one to configure and order the set of Main Menu Entries along with the forms necessary to add and modify Slate Entries and Main Menu entries.
3.2.1 Slate Entries
The set of slate entries shown in a table along with their ordering and their assignment to some main mene entry is the main entry point to the main menu administration. This table is supposed to make the complete set of available items for configuration or reassignment immediately visible.
Note that this table is rather larger. In the following mockups we decided to list all currently visioned widgets (see: Default Configuration of Main Bar Items (ILIAS 6)) along with some custom ones to give an example that is as realistic as possible.
A few point are worth pointing out:
- Slate Entries offered by the system can not be deleted, only deactivated (note the missing checkbox for multi action).
- All Slate Entries can be deactivated. Those are not visible in the main menu anymore. This is also valid for the administration, which makes a known static link necessary in case somebody is not able to access the administration anymore, since it is not active in the Main Menu.
- All Slate Entries must be assigned to exactly one Main Menu Entry.
- All Slate Entries have exactly one type, determining it's looks and necessary information for editing (see bellow).
- Slate Entries might have a status that prevents them from being activated (e.g. the service "Study Program" is not active on the system, therefore the according widget can not be activated). The status hints the reason and links to the place in the administration to change the according setting if possible.
- Some default Slate Entries might have very restricted options to be configured. E.g. the "Overview" Slate Entry of type link in "Personal Desktop" desktop might be renamed and moved to another Main Menu Entry or position, but the target of it's link can not be changed in the administration.
The following screen shows how new widgets can be added:
Note:
- All Slate Entries have a type.
- A freshly created Slate Entry is without content. Content will be needed for most Slate Entry types (e.g. for type link or linked list). This content is added by configuring the Slate Entry (see bellow).
- Slate Entries that are not yet configured can not be activeted. An according status is shown in the respective listing.
- There might be multiple type that are defined by the Slate Entry template plugin slot. This plugins slot defines how the widget in the slate will look like and what content is necessary for the widget to be configured.
3.2.2 Main Menu Entries
On the second sub tab, the list of Main Menu Entries along with the necessary icon is shown:
Note:
- Main Menu Entries offered by the system by default can not be deleted. They can be moved or renamed however. Also, the icon of those Main Menu Entries can be changed.
- Custom Main Menu Entries also need an icon.
- Main Menu Entries with assigned Slate Entries can not be deleted.
- Main Menu Entries can be set to inactive, which removes them and their Slate Entries (if any) from the main menu.
- Main Menu Entries can be marked as sticky, preventing them from beeing shifter into some more like drawer if space is scarce (to be discussed).
- Main Menu Entries can be disabled to be shown an mobile devices (or small screen sizes).
The form for adding a drawer can look like so:
Note:
- Main Menu Entries can be of type slate, allowing Slate Entries to be assigned, or of type link (directly pointing somewhere in ILIAS without opening the slate).
- Main Menu Entries of type link can not have any Slate Entries and therefore do not apear in the set of Slate Entries on the first tab in the main menu.
The administration of the main menu requires no new UI-Concept. Note that the new main menu itself most certainly does, however, this is not handled in this PR.
Please see the specific screens directly in the mockups above.
3.3 New User Interface Concepts
There are no new concepts needed.
4 Technical Information
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?
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.
5 Contact
- Author of the Request: Tödt, Alexandra [atoedt] for version 1, Kunkel, Matthias [mkunkel] for version 2, Seiler, Yvonne [yvseiler] & Amstutz, Timon [amstutz] for version 3, Schmid, Fabian [fschmid] for current version
- Maintainer: {Please add your name before applying for an initial workshop or a Jour Fixe meeting.}
- Implementation of the feature is done by: Schmid, Fabian [fschmid]
6 Funding
If you are interest in funding this feature, please add your name and institution to this list.
- ...
7 Discussion
The main administration node should be extended by a new tab "Main menu" where the main menu can be configured. Like known from the two plugins, the main menu administration should allow to:
- Add a new main menu entry.
- Add a menu item to a custom main menu entry. Items could be:
- any existing main menu item
- any repository node
- an external web page (via URL) incl. parameter
- a separator
- a sub-menu drop-down
- any administration node
- Show (or hide) the default entries "Personal Desktop" and "Repository".
- Control visibility and accessibility of any item according to RBAC permissions (no permission to see target » menu item not visible)
- Access control through global and local roles
- Support of black list and white list
- Customizing styles per entry by using IDs.
- Translation for any entry and item incl. overwriting of titles should be supported.
Registration of Actions through Components
According to the suggestion made by Alexander Killing, the new customizable main menu should allow components to register actions and control their visibility. The main menu collects all actions and allows to configure the general layout (menues and submenues). This concept is preferred against ilCtrl routing.
Configuring the top bar as additional requirement has been discussed during the workshop but is seen as an additional feature that can be implemented with a future main menu version.
Kaiser, Sascha [skaiser] Begrüßenswerte wichtige Funktion, die es verdient in den Trunk zu kommen. Wir nutzen das derzeit das Plugin um unsere Navigation zu erweitern.
Amstutz, Timon [amstutz] 30th of March 2016: We agree that the Main Menu should be configurable through the administration. We currently use the CtrlMainMenu plugin. We do not know the 'Main Menu Plugin' Plugin discussed here but would like to point out two great features we use and would like to see in the core integration:
- Role Based access: Easy to configure links/access to objects through through specific roles.
- Routing via ilCtrl: We have several UI-Interface-Hook Plugins we access through the Main Menu. The possibility to link to them greatly enhances the flexibility with which an ILIAS installation can be customized through plugins.
![](./data/docu/mobs/mm_48612/main_menu.png?il_wac_token=4b0394d677ddba8e44ce388a27329a666dc4271c&il_wac_ttl=5&il_wac_ts=1725753290)
Amstutz, Timon [amstutz] 30th of March 2016: We do not want to promote this as the way to go for the new Main Menu Plugin but would like to see the possibility to link by ilCtrl Elements in the core integration of the new plugin. Discussable are also ways that plugins would have the possibility to enlist themself as entry and so make themself selectable for Main Menu entries. An other solution could be to add a plugin slot for custom entries in the main menu.
Studer, Martin [mstuder] 31th of March 2016: A configurable Main Menu is an important core feature for ILIAS. If the integration will be done the way of the LfMainMenu Plugin, we and our customer will still be dependent on our CtrlMainMenu Plugin and will not able to use the ILIAS Core function. We need two functions the LfMainMenu Plugin not has:
- Role Based access
- Routing via ilCtrl
Hübsch, Wolfgang [wolfganghuebsch] 4th of April 2016: Role based access is in my view a very important feature. It reduces the complexitivity of menus a lot. If you ever used it, you will never disclaime it.
Kiegel, Colin [kiegel] 2016-07-08: If a main menu plugin is included in the core, we too would require a possibility for ilCtrl routing. To provide a good user experience, we suggest to support a copy-and-paste workflow even for URLs which contain cmdNodes.
- On saving a URL with cmdNodes
- save the raw-URL as is (with cmdNodes)
- also save the control-structure derived from the cmdNodes
- When generating a menu, or displaying future edit screens
- generate fresh cmdNodes from the saved control-structure and replace it in the raw-URL
Undoubtedly there will be cases, when ilCtrl-routing of an ILIAS component will change and those URLs will break. But these cases should be rare compared to a global invalidation of all cmdNodes after a minor local change. And after all, even goto-links may break if content is deleted.
Another thing we would really like to see, at least in the future, is the possibility for other plugins to register new menus and/or menu items which could be administrated via the custom menu administration. But IMO this should be step 2 and not part of the first implementation, because this would require a solid concept which is fine for all major plugin developers.
Kunkel, Matthias [mkunkel], March 24, 2017: I picked up this request and suggest it for 5.3. I apdapted the page to the new page structure, added problem and suggestion and renamed it from "Integrating Main Menu Plugin into Trunk" to "Customisable Main Menu". This does not mean that we won't reuse parts of one of the plugins. But the major aim is to have this feature available and not to integrate a plugin into trunk. I would like to discuss this feature in a VC before presenting it at the Jour Fixe, see here
Jansen, Michael [mjansen], March 29, 2017. There is a 3rd main menu (UI hook plugin) implemented by Aresch Yavari (Databay AG), which is used on some productive ILIAS installations and also known by certain (not many) developers (but not added to the official plugin data collection). This main menu plugin addresses two features which should be taken into consideration:
- Creating multi lingual content pages (with the TinyMCE, the ILIAS page editor should be the choice for the ILIAS core) not related to any repository object. These pages are not RBAC controlled, but can be protected by requiring certain role assignments. Maybe this could be elaborated for a core solution, e.g. in future releases.
- This main menu plugin provides a slot for other ILIAS plugins (not necessarily UI hook plugins). So any ILIAS plugin can enhance the main menu structure by implementing an interface, so a concrete plugin can offern/return 0 - N menu items. This concrete plugin (if it implements the interface) can be chosen (via a selectbox) as one type of a single main menu item in the plugin configuration. The total number of available plugins is determined by scanning the plugin directories when the configuration screen for a single main menu entry is built/rendered. If chosen by the administator, the menu (sub-)structure returned by the plugin during runtime/rendertime is used in the main menu presentation.
Killing, Alexander [alex], 30 Mar 2017: I support the idea of a role based access configuration type. I would object any solution that relies on entering any cmd class paths or other ilCtrl internal stuff (cmdnode, ...). This is an error prone concept and entries may break with every update. I would strongly advise for a solution where ILIAS components (and plugins) can register actions for the main menu. A base implementation for this is available in lfMainMenu and Areschs solution seems to include something similar. The big advantage is that in this way the consuming components can take care of controling the availability of a feature. Example: lfMainMenu allows to add all actions of the personal desktop drop down separately, e.g. the "Mail" action. No ilCtrl interna is being entered by the user and the feature itself is sensitive agains its global activation (or rbac control or whatever) exactly like the function in the ILIAS standard. So the idea is: Components register actions and control their visibility. The main menu collects the actions and allows to configure the general layout (menues and submenues).
Kunkel, Matthias [mkunkel], April 11, 2017: Today, we had a one hour workshop to discuss this feature request and to improve the feature description. All ideas and suggestions have been integrated in chapter 2.
Killing, Alexander [alex], 3 July 2018: It would be easily possible to extend the ilUIHookPluginGUI slot with an additional method getMainMenuSlateEntries() that e.g. can return at least a set of Links. If we can agree on a feasible return type for such a method, plugins could extend the main menu already in the first version.
Kunkel, Matthias [mkunkel], 13 AUG 2018 : Some questions and comments from my side:
- Concerning Add Slate Entry: We have to support titles in all languages activated on a system, not only German and English. 'Multilinguality' can be implemented similar to categories. And how do I enter the link target or the link list items? Does this happen on a second screen or is a form opened when clicking one of the radio boxes?
- Concerning Edit Slate Entry: If we only support permalinks (and external http links I assume), we need to guarantee that all possible link targets in the system have permalinks (which is not the case yet).
JourFixe, ILIAS [jourfixe], 27 AUG 2018 : We discussed Fabian's questions:
- Shall Entries be able to be deleted or not? Main menu entries provided by the system (like 'Overview' or 'Repository') should only be deactivated but not deleted. This means that each on these entries can only appear once (but nevertheless a second entry to such a target can be made by adding a link).
- We discussed if the administration interface should use technical terms (like "slate") or common terms (like "main menu entry" and "main menu sub-entry") but postponed this discussion to the feature page.
JourFixe, ILIAS [jourfixe], 08 OCT 2018 : We highly appreciate this suggestion and schedule it for 5.4 with the following changes / modificatons:
- We would like to use the term "item" instead of "entry" (new labels are already changed by Fabian in chap 2)
- We would like to have a filter (All | Active) for the list of items.
- We can remove the 'sticky' option because this won't be needed for 5.4.
- We would like to have an additional column 'CSS ID' for the top item table.
- We would like to prevent double separators (should be handled when menu is rendered).
- All type plugins should be allowed to add items to the main menu.
- Top items of the main menu could already be links.
8 Implementation
The whole feature has been implemented as described above. Screenshots of the implementation:
![](./data/docu/mobs/mm_64574/Bildschirmfoto_2018-10-30_um_13.17.39.png?il_wac_token=4b0394d677ddba8e44ce388a27329a666dc4271c&il_wac_ttl=5&il_wac_ts=1725753290)
![](./data/docu/mobs/mm_64575/Bildschirmfoto_2018-10-30_um_13.17.46.png?il_wac_token=4b0394d677ddba8e44ce388a27329a666dc4271c&il_wac_ttl=5&il_wac_ts=1725753290)
![](./data/docu/mobs/mm_64576/Bildschirmfoto_2018-10-30_um_13.18.42.png?il_wac_token=4b0394d677ddba8e44ce388a27329a666dc4271c&il_wac_ttl=5&il_wac_ts=1725753290)
![](./data/docu/mobs/mm_64577/Bildschirmfoto_2018-10-30_um_13.18.51.png?il_wac_token=4b0394d677ddba8e44ce388a27329a666dc4271c&il_wac_ttl=5&il_wac_ts=1725753290)
![](./data/docu/mobs/mm_64578/Bildschirmfoto_2018-10-30_um_13.19.46.png?il_wac_token=4b0394d677ddba8e44ce388a27329a666dc4271c&il_wac_ttl=5&il_wac_ts=1725753290)
Test Cases
Test cases completed at {date} by {user}
- 24997: Link-Haupteintrag hinzufügen
- 25066: Link-Haupteintrag in Sprachen übersetzen
- 24998: Container-Haupteintrag hinzufügen
- 24999: Haupteintrag deaktivieren
- 25001: Sortierung ändern
- 25002: Link-Eintrag hinzufügen
- 25003: Trenner-Eintrag hinzufügen
- 25004: Eintrag deaktivieren
- 25005: Eintrag deaktivieren
- 25006: Sortierung ändern
- 25007: Zuweisung zu Haupteintrag ändern
- 25000: Haupteintrag mit Zuweisung löschen
Approval
Approved at 26.10.2018 by Amstutz, Timon [amstutz].
Last edited: 20. Mar 2023, 09:16, Samoila, Oliver [oliver.samoila]