Merge branch 'MDL-67119-39' of git://github.com/aanabit/moodle into MOODLE_39_STABLE
[moodle.git] / message / templates / message_preferences.mustache
blobebe1c40840c1275e4965f9806fc71d8c6ad02bad
1 {{!
2     This file is part of Moodle - http://moodle.org/
4     Moodle is free software: you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by
6     the Free Software Foundation, either version 3 of the License, or
7     (at your option) any later version.
9     Moodle is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
14     You should have received a copy of the GNU General Public License
15     along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
17 {{!
18     @template core_message/message_preferences
20     The message preferences page
22     Classes required for JS:
23     * None
25     Data attibutes required for JS:
26     * All data attributes are required
28     Context variables required for this template:
29     * userid The logged in user id
30     * disableall If the user has disabled notifications
31     * components The list of notification components
32     * privacychoices The choice options for the contactable privacy setting
34     Example context (json):
35     {
36         "userid": 1,
37         "disableall": 0,
38         "components": [
39             {
40                 "notifications": [
41                     {
42                         "displayname": "Notices about minor problems",
43                         "preferencekey": "message_provider_moodle_notices",
44                         "onlinehelphtml": "<p>some help HTML</p>",
45                         "offlinehelphtml": "<p>some help HTML</p>",
46                         "processors": [
47                             {
48                                 "displayname": "Popup notification",
49                                 "name": "popup",
50                                 "locked": 0,
51                                 "userconfigured": 1,
52                                 "loggedin": {
53                                     "name": "loggedin",
54                                     "displayname": "When I'm logged in",
55                                     "checked": 0,
56                                     "disableall": 0
57                                 },
58                                 "loggedoff": {
59                                     "name": "loggedoff",
60                                     "displayname": "When I'm offline",
61                                     "checked": 0,
62                                     "disableall": 0
63                                 }
64                             }
65                         ]
66                     }
67                 ]
68             }
69         ],
70         "privacychoices": [
71             {
72                 "value": 1,
73                 "text": "My contacts only",
74                 "checked": 0
75             },
76             {
77                 "value": 2,
78                 "text": "Anyone within courses I am a member of",
79                 "checked": 1
80             }
81         ]
82     }
84 <div class="preferences-page-container" data-region="preferences-page-container">
85     <h2>{{#str}} messagepreferences, message {{/str}}</h2>
86     <div class="privacy-setting-container"
87          data-user-id="{{userid}}"
88          data-region="privacy-setting-container"
89          data-preference-key="message_blocknoncontacts">
90         <p>{{#str}} contactableprivacy, message {{/str}}</p>
91        {{#privacychoices}}
92         <input id="action-selection-option-{{value}}"
93                type="radio"
94                name="message_blocknoncontacts"
95                value="{{value}}"
96                {{#checked}}checked="checked"{{/checked}}/>
97         <label for="action-selection-option-{{value}}">{{text}}</label>
98         <br>
99        {{/privacychoices}}
100     </div><br>
101     <div class="preferences-container {{#disableall}}disabled{{/disableall}}"
102         data-user-id="{{userid}}"
103         data-region="preferences-container">
104         <table class="table table-hover preference-table" data-region="preference-table">
105             <tbody>
106                 {{#components}}
107                     {{> message/message_preferences_component }}
108                 {{/components}}
109             </tbody>
110         </table>
111     </div>
112 </div>
113 {{#js}}
114 require(['jquery', 'core_message/message_preferences'],
115     function($, MessagePreferences) {
117     new MessagePreferences($('[data-region="preferences-page-container"]'));
119 {{/js}}