Current Path : /var/www/ljmtc/cbt/message/amd/build/ |
Current File : /var/www/ljmtc/cbt/message/amd/build/message_drawer_view_settings.min.js.map |
{"version":3,"sources":["../src/message_drawer_view_settings.js"],"names":["define","$","Notification","Str","PubSub","Templates","Repository","CustomEvents","MessageDrawerEvents","SELECTORS","CHECKBOX","SETTINGS","PRIVACY_PREFERENCE","NOTIFICATIONS_PREFERENCE","ENTER_TO_SEND_PREFERENCE","NOTIFICATION_PREFERENCES_CONTAINER","CONTENT_CONTAINER","PLACEHOLDER_CONTAINER","TEMPLATES","NOTIFICATION_PREFERENCES","setPrivacyPreference","body","value","inputs","find","each","index","input","val","prop","setEnterToSend","checkbox","savePreferences","loggedInUserId","preferences","then","publish","PREFERENCES_UPDATED","catch","exception","registerEventListeners","settingsContainer","events","activate","on","e","container","target","closest","checkboxes","length","values","toArray","reduce","carry","push","attr","newValue","join","type","init","getUserMessagePreferences","response","blocknoncontacts","entertosend","notificationProcessors","components","forEach","component","notifications","notificationPreferences","filter","notification","preferencekey","configuration","processors","map","processor","checked","loggedin","loggedoff","displayname","name","locked","lockedmessage","removeClass","render","html","append","addClass","show","namespace","header","footer","Deferred","resolve","promise","description","get_string"],"mappings":"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","sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * Controls the settings page in the message drawer.\n *\n * @module core_message/message_drawer_view_settings\n * @copyright 2018 Ryan Wyllie <ryan@moodle.com>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(\n[\n 'jquery',\n 'core/notification',\n 'core/str',\n 'core/pubsub',\n 'core/templates',\n 'core_message/message_repository',\n 'core/custom_interaction_events',\n 'core_message/message_drawer_events'\n],\nfunction(\n $,\n Notification,\n Str,\n PubSub,\n Templates,\n Repository,\n CustomEvents,\n MessageDrawerEvents\n) {\n\n var SELECTORS = {\n CHECKBOX: 'input[type=\"checkbox\"]',\n SETTINGS: '[data-region=\"settings\"]',\n PRIVACY_PREFERENCE: '[data-preference=\"blocknoncontacts\"] input[type=\"radio\"]',\n NOTIFICATIONS_PREFERENCE: '[data-preference=\"notifications\"] input[type=\"checkbox\"]',\n ENTER_TO_SEND_PREFERENCE: '[data-preference=\"entertosend\"] input[type=\"checkbox\"]',\n NOTIFICATION_PREFERENCES_CONTAINER: '[data-region=\"notification-preference-container\"]',\n CONTENT_CONTAINER: '[data-region=\"content-container\"]',\n PLACEHOLDER_CONTAINER: '[data-region=\"placeholder-container\"]'\n };\n\n var TEMPLATES = {\n NOTIFICATION_PREFERENCES: 'core_message/message_drawer_view_settings_body_content_notification_preferences'\n };\n\n var NOTIFICATION_PREFERENCES_KEY = 'message_provider_moodle_instantmessage';\n\n /**\n * Select the correct radio button in the DOM for the privacy preference.\n *\n * @param {Object} body The settings body element.\n * @param {Number} value Which radio button should be set\n */\n var setPrivacyPreference = function(body, value) {\n var inputs = body.find(SELECTORS.PRIVACY_PREFERENCE);\n inputs.each(function(index, input) {\n input = $(input);\n if (input.val() == value) {\n input.prop('checked', true);\n } else {\n input.prop('checked', false);\n }\n });\n };\n\n /**\n * Set the \"enter to send\" checkbox to the correct value in the DOM.\n *\n * @param {Object} body The settings body element.\n * @param {Bool} value Whether enter to send is enabled or disabled.\n */\n var setEnterToSend = function(body, value) {\n var checkbox = body.find(SELECTORS.ENTER_TO_SEND_PREFERENCE);\n\n if (value) {\n checkbox.prop('checked', true);\n } else {\n checkbox.prop('checked', false);\n }\n };\n\n /**\n * Send a request to the server to save the given preferences. Also publish\n * a preferences updated event for the rest of the message drawer to\n * subscribe to.\n *\n * @param {Number} loggedInUserId The logged in user id.\n * @param {Array} preferences The preferences to set.\n * @return {Object} jQuery promise\n */\n var savePreferences = function(loggedInUserId, preferences) {\n return Repository.savePreferences(loggedInUserId, preferences)\n .then(function() {\n PubSub.publish(MessageDrawerEvents.PREFERENCES_UPDATED, preferences);\n return;\n })\n .catch(Notification.exception);\n };\n\n /**\n * Create all of the event listeners for the message preferences page.\n *\n * @method registerEventListeners\n * @param {Object} body The settings body element.\n * @param {Number} loggedInUserId The logged in user id.\n */\n var registerEventListeners = function(body, loggedInUserId) {\n var settingsContainer = body.find(SELECTORS.SETTINGS);\n\n CustomEvents.define(settingsContainer, [\n CustomEvents.events.activate\n ]);\n\n settingsContainer.on(CustomEvents.events.activate, SELECTORS.NOTIFICATIONS_PREFERENCE, function(e) {\n var container = $(e.target).closest(SELECTORS.NOTIFICATION_PREFERENCES_CONTAINER);\n var checkboxes = container.find(SELECTORS.CHECKBOX);\n if (!checkboxes.length) {\n return;\n }\n // The preference value is all of the enabled processors, comma separated, so let's\n // see which ones are enabled.\n var values = checkboxes.toArray().reduce(function(carry, checkbox) {\n checkbox = $(checkbox);\n if (checkbox.prop('checked')) {\n carry.push(checkbox.attr('data-name'));\n }\n\n return carry;\n }, []);\n var newValue = values.length ? values.join(',') : 'none';\n var preferences = [\n {\n type: 'message_provider_moodle_instantmessage_loggedoff',\n value: newValue\n },\n {\n type: 'message_provider_moodle_instantmessage_loggedin',\n value: newValue\n }\n ];\n\n savePreferences(loggedInUserId, preferences);\n });\n\n settingsContainer.on('change', SELECTORS.PRIVACY_PREFERENCE, function(e) {\n var newValue = $(e.target).val();\n var preferences = [\n {\n type: 'message_blocknoncontacts',\n value: newValue\n }\n ];\n\n savePreferences(loggedInUserId, preferences);\n });\n\n settingsContainer.on(CustomEvents.events.activate, SELECTORS.ENTER_TO_SEND_PREFERENCE, function(e) {\n var newValue = $(e.target).prop('checked');\n var preferences = [\n {\n type: 'message_entertosend',\n value: newValue\n }\n ];\n\n savePreferences(loggedInUserId, preferences);\n });\n };\n\n /**\n * Initialise the module by loading the user's messaging preferences from the server and\n * rendering them in the settings page.\n *\n * Moodle may have many (or no) message processors enabled to notify the user when they\n * receive messages. We need to dynamically build the settings page based on which processors\n * are configured for the user.\n *\n * @param {Object} body The settings body element.\n * @param {Number} loggedInUserId The logged in user id.\n */\n var init = function(body, loggedInUserId) {\n // Load the message preferences from the server.\n Repository.getUserMessagePreferences(loggedInUserId)\n .then(function(response) {\n // Set the values of the stright forward preferences.\n setPrivacyPreference(body, response.blocknoncontacts);\n setEnterToSend(body, response.entertosend);\n\n // Parse the list of other preferences into a more usable format.\n var notificationProcessors = [];\n if (response.preferences.components.length) {\n response.preferences.components.forEach(function(component) {\n if (component.notifications.length) {\n // Filter down to just the notification processors that work on instant\n // messaging. We don't care about another other ones.\n var notificationPreferences = component.notifications.filter(function(notification) {\n return notification.preferencekey == NOTIFICATION_PREFERENCES_KEY;\n });\n\n if (notificationPreferences.length) {\n // Messaging only has one config at the moment which is for notifications\n // on personal messages.\n var configuration = component.notifications[0];\n notificationProcessors = configuration.processors.map(function(processor) {\n // Consider the the processor enabled if either preference is set. This is\n // for backwards compatibility. Going forward they will be treated as one\n // setting.\n var checked = processor.loggedin.checked || processor.loggedoff.checked;\n return {\n displayname: processor.displayname,\n name: processor.name,\n checked: checked,\n // The admin can force processors to be enabled at a site level so\n // we need to check if this processor has been locked by the admin.\n locked: processor.locked,\n lockedmessage: processor.lockedmessage || null,\n };\n });\n }\n }\n });\n }\n\n var container = body.find(SELECTORS.NOTIFICATION_PREFERENCES_CONTAINER);\n if (notificationProcessors.length) {\n // We have processors (i.e. email, mobile, jabber) to show.\n container.removeClass('hidden');\n // Render the processor options.\n return Templates.render(TEMPLATES.NOTIFICATION_PREFERENCES, {processors: notificationProcessors})\n .then(function(html) {\n container.append(html);\n return html;\n });\n } else {\n return true;\n }\n })\n .then(function() {\n // We're done loading so hide the loading placeholder and show the settings.\n body.find(SELECTORS.CONTENT_CONTAINER).removeClass('hidden');\n body.find(SELECTORS.PLACEHOLDER_CONTAINER).addClass('hidden');\n // Register the event listers for if the user wants to change the preferences.\n registerEventListeners(body, loggedInUserId);\n return;\n })\n .catch(Notification.exception);\n };\n\n /**\n * Initialise the settings page by adding event listeners to\n * the checkboxes.\n *\n * @param {string} namespace The route namespace.\n * @param {Object} header The settings header element.\n * @param {Object} body The settings body element.\n * @param {Object} footer The footer body element.\n * @param {Number} loggedInUserId The logged in user id.\n * @return {Object} jQuery promise\n */\n var show = function(namespace, header, body, footer, loggedInUserId) {\n if (!body.attr('data-init')) {\n init(body, loggedInUserId);\n body.attr('data-init', true);\n }\n\n return $.Deferred().resolve().promise();\n };\n\n /**\n * String describing this page used for aria-labels.\n *\n * @return {Object} jQuery promise\n */\n var description = function() {\n return Str.get_string('messagedrawerviewsettings', 'core_message');\n };\n\n return {\n show: show,\n description: description,\n };\n});\n"],"file":"message_drawer_view_settings.min.js"}