mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 00:46:50 +02:00

If a component has no available notification types (because they're disabled), then it (the component) should be hidden entirely from the user notification preferences page.
105 lines
3.6 KiB
Text
105 lines
3.6 KiB
Text
{{!
|
|
This file is part of Moodle - http://moodle.org/
|
|
|
|
Moodle is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
Moodle is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
|
}}
|
|
{{!
|
|
@template core_message/notification_preferences
|
|
|
|
The list of notifications for the notification preferences page
|
|
|
|
Classes required for JS:
|
|
* None
|
|
|
|
Data attibutes required for JS:
|
|
* All data attributes are required
|
|
|
|
Context variables required for this template:
|
|
* userid The logged in user id
|
|
* disableall If the user has disabled notifications
|
|
* components The list of notification components
|
|
|
|
Example context (json):
|
|
{
|
|
"userid": 1,
|
|
"disableall": 0,
|
|
"processors": [
|
|
{
|
|
"displayname": "Popup notification",
|
|
"name": "popup",
|
|
"hassettings": 1,
|
|
"userid": 3,
|
|
"contextid": 3
|
|
}
|
|
],
|
|
"components": [
|
|
{
|
|
"displayname": "System",
|
|
"colspan": 2,
|
|
"hasnotifications": 1,
|
|
"notifications": [
|
|
{
|
|
"displayname": "Notices about minor problems",
|
|
"preferencekey": "message_provider_moodle_notices",
|
|
"processors": [
|
|
{
|
|
"displayname": "Popup notification",
|
|
"name": "popup",
|
|
"locked": 0,
|
|
"userconfigured": 1,
|
|
"enabled": 1,
|
|
"enabledlabel": "Sending Assignment enabled status"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}}
|
|
<div class="preferences-page-container">
|
|
<h2>{{#str}} notificationpreferences, message {{/str}}</h2>
|
|
<div class="checkbox-container" data-region="disable-notification-container">
|
|
<input id="disable-notifications"
|
|
type="checkbox"
|
|
data-disable-notifications
|
|
{{#disableall}}checked{{/disableall}} />
|
|
<label for="disable-notifications">{{#str}} disableall, message {{/str}}</label>
|
|
{{> core/loading }}
|
|
</div>
|
|
<div class="preferences-container {{#disableall}}disabled{{/disableall}}" data-user-id="{{userid}}">
|
|
<table class="table preference-table">
|
|
<thead>
|
|
<tr>
|
|
<th>{{{displayname}}}</th>
|
|
{{#processors}}
|
|
{{> message/notification_preferences_processor }}
|
|
{{/processors}}
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{{#components}}
|
|
{{> message/notification_preferences_component }}
|
|
{{/components}}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
{{#js}}
|
|
require(['jquery', 'core_message/preferences_notifications_list_controller'],
|
|
function($, Controller) {
|
|
|
|
new Controller($('.preferences-container'));
|
|
});
|
|
{{/js}}
|