{{!
    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 id="notificationpreferencesheading">{{#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" aria-labelledby="notificationpreferencesheading">
            <thead>
                <tr>
                    <th scope="col">
                        <span class="visually-hidden">{{#str}}preference, message{{/str}}</span>
                    </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}}
