Feature Wiki
Tabs
Revision and Enhancement of the ‘Personal Default Settings‘
Page Overview
[Hide]- 1 Initial Problem
- 2 Conceptual Summary
- 3 User Interface Modifications
- 4 Additional Information
- 4.1 Involved Authorities
- 4.2 Technical Aspects
- 4.3 Privacy
- 4.4 Security
- 4.5 Contact
- 4.6 Funding
- 5 Discussion
- 6 Implementation
- 6.1 Description and Screenshots
- 6.2 Test Cases
- 6.3 Privacy
- 6.4 Approval
This is the proposal to reverse the existing Decision of Test: Abandon Personal Default settings and keep the Feature in an extended and therefore usable way.
1 Initial Problem
Due to the lack of clarity about the need for the feature, we actually wanted to discontinue it. Based on feedback from the community, we are now taking the initiative to upgrade and improve the ‘Personal Test Settings’ feature.
It is quite an old feature that still uses many old UI elements. The changeover to new UI elements is unavoidable as part of the reorganisation.
The feature does not show which settings are stored in its save points.
In addition to the lack of clarity as to what is actually stored in the template, it is not possible to recognise which possible default values have been added with a new ILIAS version. The ILIAS version in which the template was created is also not recognisable.
Additionally from a technical point of view: the information is stored in a serialized format in the database which leads to difficult to solve issues on every change of the settings.
2 Conceptual Summary
- Rename Subtab 'Personal Test Settings Templates' instead 'Personal Default Settings'.
- Toolbar:
- Instead of a 'Microform' in the Toolbar an explicit Button "Add New Setting Template" is used. A Modal to set a Title is shown.
- Modal Header: Add New Setting Template
- Modal Body:
- Message Box with short Explanation the actual Test Settings are used to define the Settings Template.
- Form:
- "Title" (Text Input)
- "Description" (Text Input)
- "Author" (Text Input – prefilled with First Name and Last Name like Question Author)
- Modal Footer: Buttons: "Save new Setting Template" and "Cancel"
- An new Button "Import Settings Template" is placed in Toolbar. A Modal to Upload a Import File is shown.
- Modal Header: Import Setting Template
- Modal Body:
- Message Box with short Explanation that the full Import of Templates is only possible within the same Major Release. (See 'Importing and Exporting Personal Default Settings' in Chapter 4.2 'Technical Aspects'.)
- Form:
- Import File (KS File Upload)
- Modal Footer: Buttons: "Import Setting Template" and "Cancel"
- Instead of a 'Microform' in the Toolbar an explicit Button "Add New Setting Template" is used. A Modal to set a Title is shown.
- Table Header is changed to 'Test Setting Templates' instead 'Available test defaults'.
- Table is revised into new UI Data Table
- Table-Content:
- Column 1: Selection Column
- Column 2: Template Title (Set by Creator, not changable) (sortable Column)
- Column 3: Template Description (Set by Creator, not changable) (not sortable Column)
- Column N: Creation in ILIAS Version (Set to "ILIAS x.y"; Major- and Minor-Version) (sortable Column) (This approach has since been rejected. See 'Regarding "Default Value of a Newer ILIAS Version (ILIAS x.y)"' in Chapter 4.2 Technical Aspects.)
- Column 4: Creation Date (sortable Column – default sortation)
- Column 5: Created by (sortable Column)
- Column 6: Action-Menu
- Action 1: Show Template Details
- Action 2: Apply Settings Template (We should show a confirmation modal here to communicate appling cannot be undone by a click.)
- Action 3: Export Settings Template
- Action 4: Delete
- Table gets only a Bulk Action "Delete".
- Table gets no Filters and no Option to show and hide Columns
- Informations of "Template Details"
- Adaption of Content of "Additional Information" of "History"-Tab of Tests
- Using a Modal within a "Descriptive Listing" of Kitchen Sink to show all Settings a Settings Template is using or affect if applied.
- If a setting is added as part of a major (or minor) release, it has a default value.
Important remarks:
- The Personal Test settings can no longer be selected in the Create Process of a Test. The Mixture of Didactic Templates and (Personal) Settings in ‘Type’ is discontinued. See also Chapter 3.2
- The full/complete import of a settings template is only possible within the same major release. (See Chapter 4.2 Technical Aspects, Subchapter 'Importing and Exporting Personal Default Settings')
3 User Interface Modifications
3.1 List of Affected Views
- Subtab 'Test Settings Templates' (fka. 'Personal Default Settings')
3.2 User Interface Details
Details above in Chapter 2.
We want to use UI Framework Components where possible. E.g. UI Data Table and Modal with Descrptive Listing. There is still no alternative for the button in the toolbar.
The Personal Test settings can no longer be selected in the Create Process of a Test. The Mixture of Didactic Templates and (Personal) Settings in ‘Type’ is discontinued.
3.3 New User Interface Concepts
None.
3.4 Accessibility Implications
Improvements by using UI KitchenSink.
4 Additional Information
4.1 Involved Authorities
- Authority to Sign off on Conceptual Changes: Strassner, Denis [dstrassner]
- Authority to Sign off Code Changes: Kergomard, Stephan [skergomard] & Joußen, Thomas [tjoussen]
If this request is related to multiple components, please list both authorities for all related components.
4.2 Technical Aspects
To provide a reliable implementation of personal default settings, several adjustments to background processes—beyond UI/UX changes—are planned.
Current State:
- Settings are currently stored in the
tst_tests
table and loaded into various*Settings
classes. - Default settings are serialized and stored in the
tst_test_defaults
table, also loaded into corresponding*Settings
classes.
Future State:
- A new database table,
tst_test_settings
, will be introduced. - Settings currently stored in
tst_tests
will be migrated to the newtst_test_settings
table. - A reference ID to the corresponding settings will be stored in the
tst_tests
table. - Default settings from
tst_test_defaults
will also be migrated totst_test_settings
. - A reference ID to these settings will be stored in the
tst_test_defaults
table.
These changes will consolidate the data structure for test and default settings, reduce complexity, and minimize potential maintenance errors - such as synchronization issues between test settings and default settings.
Importing and Exporting Personal Default Settings:
As previously stated, importing and exporting personal default settings will only be supported between identical major ILIAS versions. If a user attempts to import settings from a different major version, only settings that match the current version will be imported. Any unmatched settings - due to additions, renaming, or deletions - will be ignored, and the default values of the target version will apply instead.
Regarding "Default Value of a Newer ILIAS Version (ILIAS x.y)":
From a technical standpoint, we currently see no feasible way to provide this information for the following reasons:
- This data has never been historically available, making it impossible to reliably determine when specific settings were introduced.
- Implementing such a feature would require significant architectural work to track "implementation states."
- Two approaches were discussed:
- Using PHP attributes/annotations
- Misusing language variables to carry version information
- Both approaches come with drawbacks:
- Annotations would require a robust preprocessor and caching mechanism to be reliable and performant.
- Language variables would need to be maintained in at least two languages (English and German), inflating language files unnecessarily with versioning metadata.
- Two approaches were discussed:
- Since the core objective is to support imports/exports only within the same major version, we believe displaying the introduction version of individual settings may lead to confusion. For instance, users of ILIAS 11 may question the relevance of knowing that a setting was introduced in ILIAS 9.
Given these concerns, we, on behalf of the Code Authorities, strongly recommend omitting this version-specific information from all related views.
4.3 Privacy
Personal data get stored, if we decide to make the Templates exportable and importable to show the creator. There is shown {First Name} and {Last Name} by default.
4.4 Security
No specific changes.
4.5 Contact
Person to be contacted in case of questions about the feature or for funding offers: Samoila, Oliver [oliver.samoila]
4.6 Funding
Funding status and funding parties are listed in the block 'Status of Feature' in the right column of this page.
If you are interested to give funding for this feature, please get into contact with the person mentioned above as 'Contact'.
5 Discussion
Kunkel, Matthias [mkunkel], 22 APR 2025: This FR is a great step forwards. Thanks a lot for it. I only have a few questions to fully understand the request:
- You wrote above that the import of a template is only possible within the same ILIAS version. This means I can import a template from another ILIAS v.11 into my ILIAS v.11 installation. But I am not able to do this with a template from a v.12 installation or vice versa, right?
- What is not clearly described is what happens with a template created on my v.11 installation when I update this installation to v.12. I assume the template is still usable and is adapted to new or removed settings, right? Or do we have to create new templates with every new ILIAS version. Please give a short description of the planned behaviour.
- The table for the templates offer a column 'Creation in ILIAS Version'. I assume you mean 'Created in ILIAS Version'. But what is the purpose of this information? And if it says 'version' there should be shown 'ILIAS 9' and not the release '9.6'. If I understand the request correctly, it doesn't matter in which minor release a template is created. It works within the same version anyway. If I am not wrong, I suggest to dispense with this column.
- Have you considered to support a description for a template so that users do not put all information on a template into the title? I can imagine that this would be a helpful information – especially when multiple users work with them.
Samoila, Oliver [oliver.samoila], 28 APR 2025: Thanks Matthias.
After your feedback / questions, the final information on the technical aspects (chapter 4.2) has been provided.
I guess your first three points will be clarified in chapter 4.2. The display of a new column ‘Creation in ILIAS Version’ has been dropped.
I have added the option to enter a description during the creation process.
JourFixe, ILIAS [jourfixe], 28 APR 2025: We highly appreciate this suggestion and accept the feature for trunk.
6 Implementation
Feature has been implemented by {Please add related profile link of this person}
6.1 Description and Screenshots
{ Description of the final implementation and screenshots if possible. }
6.2 Test Cases
Test cases completed at {date} by {user}
- {Test case number linked to Testrail} : {test case title}
6.3 Privacy
Information in privacy.md of component: updated at {date} by {user} | no change required
6.4 Approval
Approved at {date} by {user}.
Last edited: 28. Apr 2025, 15:24, Kunkel, Matthias [mkunkel]