{{!
    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_component_notification

    The notification preferences page

    Classes required for JS:
    * disabled

    Data attributes required for JS:
    * All data attributes are required

    Context variables required for this template:
    * displayname   The notification display name
    * preferencekey The unique key to identify this preference
    * processors    The list of processors for this notification

    Example context (json):
    {
        "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"
            }
        ]
    }
}}
<tr class="preference-row" data-region="preference-row" data-preference-key="{{{preferencekey}}}">
    <td class="preference-name">{{{displayname}}}</td>
    {{#processors}}
        <td {{^userconfigured}}class="disabled"{{/userconfigured}} data-processor-name="{{name}}">
            {{#locked}}
                <div class="dimmed_text" title="{{lockedlabel}}">{{{lockedmessage}}}</div>
            {{/locked}}
            {{^locked}}
                <form>
                    <div class="preference-state" data-preference="{{{preferencekey}}}_{{{name}}}">
                        <div class="custom-control custom-switch">
                            <input type="checkbox"
                                id="{{{preferencekey}}}_{{{name}}}"
                                name="{{{preferencekey}}}_{{{name}}}"
                                class="custom-control-input notification_enabled{{#disableall}} disabled{{/disableall}}"
                                {{#disableall}} disabled="true" {{/disableall}}
                                {{#enabled}}checked{{/enabled}}
                            >
                            <label for="{{{preferencekey}}}_{{{name}}}" class="custom-control-label"
                                title="{{enabledlabel}}" >
                            </label>
                        </div>
                    </div>
                </form>
            {{/locked}}
        </td>
    {{/processors}}
</tr>
