Feature Wiki
Tabs
DataCollection Notifications
Page Overview
[Hide]- 1 Initial Problem
- 2 Conceptual Summary
- 2.1 Conditions
- 2.1.1 Rules
- 2.2 Action
- 2.1 Conditions
- 3 User Interface Modifications
- 4 Technical Information
- 5 Contact
- 6 Funding
- 7 Discussion
- 8 Implementation
Samoila, Oliver [oliver.samoila], 28 August 2024: The general interest in such detailed configurability is understandable. However, this proposal would result in an extreme increase in complexity. The request has not been pursued for more than five years and immediately after its creation. In the interests of the majority of end users, I would oppose such an extension.
1 Initial Problem
Currently, the ILIAS DataCollection supports only a very basic notification system: when a user activates the notification, he/she will receive a notification when a new entry is added. This covers only very few of the use cases for a DataCollection. A more detailed and flexible notification system is required.
2 Conceptual Summary
An administrator with the permission "Edit Settings" will be able to add and configure notifications for each table of the DataCollection.
A notifications consists of one or multiple conditions and an action:
2.1 Conditions
The conditions define when the notification is triggered:
- If a notification has multiple conditions, it is only triggered if all of the conditions are met ('AND'-condition).
- A condition consists of one or multiple rules and is considered fulfilled if one of its rules are fulfilled ('OR'-condition).
2.1.1 Rules
A rule consists of a field, an operator and a value (e.g. 'field x = 123'), and has a title for better readability.
Rules can be defined in a separate subtab (see mockups) and can be used in all conditions of all notifications of the table. The possible operators for a rule depend on the field type chosen:
Field Type | Possible Operators |
Text | = |
Text Selection | =, ≠ |
Integer | =, ≠, <, > |
Checkbox | = |
Date | =, ≠, <, > |
Date Selection | =, ≠ |
Media Object | Not Available |
File Upload | Not Available |
Reference | =, ≠ |
ILIAS Object | =, ≠ |
Rating | Not Available |
Formula | =, ≠, <, > |
Plugin | Defined by plugin |
User * | "has Role", "doesn't have Role" |
* User is not a field type, but can be used to check whether the current user has a specific role.
2.2 Action
The action defines the following points:
- Which (group of) users the notification will be sent to (record owner, specific user(s) and/or user(s) with role)
- What mail template will be used.
- If the notification's conditions should be checked immediately (on record creation and/or record updates) or it should be a reminder (check all x days, via cronjob)
- If the notification is active/inactive
2.2.1 Mail templates and delivery
The available mail templates can be defined in a separate subtab (see mockups). A default template will be given for each DataCollection table.
When a notification's conditions are met, the mail will not be sent directly. All notifications will be collected in the background and delivered via Cronjob.
3 User Interface Modifications
3.1 List of Affected Views
When editing a DataCollection table, a new tab Notifications will appear. This tab consists of three subtabs: Notifications, Conditions and Mail Templates. These three subtabs are described in the mockups below.
![](./data/docu/mobs/mm_67890/notifications_table.png?il_wac_token=aca6b7e0ba425c5580cfb82c4ead004bcfadac8e&il_wac_ttl=5&il_wac_ts=1725755643)
![](./data/docu/mobs/mm_67879/conditions_table.png?il_wac_token=aca6b7e0ba425c5580cfb82c4ead004bcfadac8e&il_wac_ttl=5&il_wac_ts=1725755643)
![](./data/docu/mobs/mm_67880/condition_form.png?il_wac_token=aca6b7e0ba425c5580cfb82c4ead004bcfadac8e&il_wac_ttl=5&il_wac_ts=1725755643)
![](./data/docu/mobs/mm_68003/action_form.png?il_wac_token=aca6b7e0ba425c5580cfb82c4ead004bcfadac8e&il_wac_ttl=5&il_wac_ts=1725755643)
![](./data/docu/mobs/mm_67882/rules_table.png?il_wac_token=aca6b7e0ba425c5580cfb82c4ead004bcfadac8e&il_wac_ttl=5&il_wac_ts=1725755643)
![](./data/docu/mobs/mm_67883/rule_form.png?il_wac_token=aca6b7e0ba425c5580cfb82c4ead004bcfadac8e&il_wac_ttl=5&il_wac_ts=1725755643)
![](./data/docu/mobs/mm_67884/mail_templates_table.png?il_wac_token=aca6b7e0ba425c5580cfb82c4ead004bcfadac8e&il_wac_ttl=5&il_wac_ts=1725755643)
![](./data/docu/mobs/mm_68034/mail_templates_form.png?il_wac_token=aca6b7e0ba425c5580cfb82c4ead004bcfadac8e&il_wac_ttl=5&il_wac_ts=1725755643)
3.2 User Interface Details
All provided mockups are completely new views. The only modification on existing views is the additional "Notifications" Tab in a tables "Settings", "Fields" and "Views" view.
Alternatives
As alternative to the table GUIs it might be considerable to use KS Presentation Tables instead: https://test54.ilias.de/goto_test54_stys_21_TablePresentationPresentation_default_delos.html
3.3 New User Interface Concepts
There are two new UI-Elements:
Multiple Select Input (will probably need another name): See Mockup "Edit / Add New Condition". A normal Selection Input as we know it, but with the possibility to add multiple values via the "+ -" buttons.
Multiple Text Input: See Mockup "Edit Action". A normal Text Input as we know it, but with the possibility to add multiple values via the "+ -" buttons. This InputGUI already exists in ILIAS but is not yet added to Kitchen Sink.
4 Technical Information
Condition Check: A condition check may affect the performance (especially when combing multiple conditions and rules). In order to maintain a good user experience, the conditions will not be checked directly when saving an entry. Instead a background task will be created.
Mail Delivery: As mentioned above, the notification mails will not be sent directly after a condition has been validated. Instead, the notifications will be stored in a database table. A cronjob will check this table regularly and send the notifications. Multiple notifications for the same user will be collected in one email.
Cron Job: A new cronjob will be implemented with this feature. It has two functionalities: 1) it sends the collected notifications (see Mail Delivery above) and 2) it checks and sends the notifications of type "Reminder", which have to be checked at the configured frequency (e.g. every 7 days).
Copy: When a DataCollection is copied, the notifications will be copied as well, but all notifications will be set inactive.
5 Contact
- Author of the Request:
- Maintainer:
- Implementation of the feature is done by: {The maintainer must add the name of the implementing developer.}
6 Funding
If you are interest in funding this feature, please add your name and institution to this list.
- …
7 Discussion
8 Implementation
{The maintainer has to give a description of the final implementation and add screenshots if possible.}
Test Cases
Test cases completed at {date} by {user}
- {Test case number linked to Testrail} : {test case title}
Approval
Approved at {date} by {user}.
Last edited: 28. Aug 2024, 20:43, Samoila, Oliver [oliver.samoila]