moodle/message/templates/message_preferences.mustache
Sara Arjona f7dfa9ba3e MDL-63214 message: Add privacy preferences to filter who can message
Add new messaging profile preferences to allow users to choose who
can message them:
- By default, users can select between 'My contacts only' and 'My
contacts and anyone in my courses'
- When $CFG->messagingallusers is enabled, a new option is displayed
also: 'Anyone on the site'. For users who have selected this option,
if $CFG->messagingallusers is disabled, the behaviour will be changed
to 'My contacts and anyone in my courses'
2018-10-17 11:52:57 +02:00

120 lines
4.3 KiB
Plaintext

{{!
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/message_preferences
The message 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
* privacychoices The choice options for the contactable privacy setting
Example context (json):
{
"userid": 1,
"disableall": 0,
"components": [
{
"notifications": [
{
"displayname": "Notices about minor problems",
"preferencekey": "message_provider_moodle_notices",
"onlinehelphtml": "<p>some help HTML</p>",
"offlinehelphtml": "<p>some help HTML</p>",
"processors": [
{
"displayname": "Popup notification",
"name": "popup",
"locked": 0,
"userconfigured": 1,
"loggedin": {
"name": "loggedin",
"displayname": "When I'm logged in",
"checked": 0,
"disableall": 0
},
"loggedoff": {
"name": "loggedoff",
"displayname": "When I'm offline",
"checked": 0,
"disableall": 0
}
}
]
}
]
}
],
"privacychoices": [
{
"value": 1,
"text": "My contacts only",
"checked": 0
},
{
"value": 2,
"text": "Anyone within courses I am a member of",
"checked": 1
}
]
}
}}
<div class="preferences-page-container" data-region="preferences-page-container">
<h2>{{#str}} messagepreferences, message {{/str}}</h2>
<div class="privacy-setting-container"
data-user-id="{{userid}}"
data-region="privacy-setting-container"
data-preference-key="message_blocknoncontacts">
<p>{{#str}} contactableprivacy, message {{/str}}</p>
{{#privacychoices}}
<input id="action-selection-option-{{value}}"
type="radio"
name="message_blocknoncontacts"
value="{{value}}"
{{#checked}}checked="checked"{{/checked}}/>
<label for="action-selection-option-{{value}}">{{text}}</label>
<br>
{{/privacychoices}}
</div><br>
<div class="preferences-container {{#disableall}}disabled{{/disableall}}"
data-user-id="{{userid}}"
data-region="preferences-container">
<table class="table table-hover preference-table" data-region="preference-table">
<tbody>
{{#components}}
{{> message/message_preferences_component }}
{{/components}}
</tbody>
</table>
</div>
</div>
{{#js}}
require(['jquery', 'core_message/message_preferences'],
function($, MessagePreferences) {
new MessagePreferences($('[data-region="preferences-page-container"]'));
});
{{/js}}