X7ROOT File Manager
Current Path:
/home/cbholdings/pasukulu/message/amd/src
home
/
cbholdings
/
pasukulu
/
message
/
amd
/
src
/
📁
..
📄
default_notification_preferences.js
(3.37 KB)
📄
message_drawer.js
(12.51 KB)
📄
message_drawer_events.js
(2.26 KB)
📄
message_drawer_helper.js
(2.73 KB)
📄
message_drawer_lazy_load_list.js
(9.39 KB)
📄
message_drawer_router.js
(10.26 KB)
📄
message_drawer_routes.js
(1.21 KB)
📄
message_drawer_view_contact.js
(2.95 KB)
📄
message_drawer_view_contacts.js
(6.94 KB)
📄
message_drawer_view_contacts_section_contacts.js
(6.14 KB)
📄
message_drawer_view_contacts_section_requests.js
(4.34 KB)
📄
message_drawer_view_conversation.js
(86.72 KB)
📄
message_drawer_view_conversation_constants.js
(7.61 KB)
📄
message_drawer_view_conversation_patcher.js
(51.37 KB)
📄
message_drawer_view_conversation_renderer.js
(63.17 KB)
📄
message_drawer_view_conversation_state_manager.js
(30.2 KB)
📄
message_drawer_view_group_info.js
(5.83 KB)
📄
message_drawer_view_overview.js
(10.5 KB)
📄
message_drawer_view_overview_section.js
(33.02 KB)
📄
message_drawer_view_search.js
(32.56 KB)
📄
message_drawer_view_settings.js
(11.51 KB)
📄
message_notification_preference.js
(2.09 KB)
📄
message_popover.js
(3.36 KB)
📄
message_preferences.js
(4.35 KB)
📄
message_repository.js
(33.98 KB)
📄
message_send_bulk.js
(3.36 KB)
📄
message_user_button.js
(3.78 KB)
📄
notification_preference.js
(4.55 KB)
📄
notification_processor.js
(1.86 KB)
📄
notification_processor_settings.js
(10.06 KB)
📄
preferences_notifications_list_controller.js
(6.2 KB)
📄
preferences_processor_form.js
(2.96 KB)
📄
toggle_contact_button.js
(6.7 KB)
Editing: notification_preference.js
// 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/>. /** * Controls the preference for an individual notification type on the * message preference page. * * @module core_message/notification_preference * @copyright 2016 Ryan Wyllie <ryan@moodle.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ define(['jquery', 'core/ajax', 'core/notification', 'core_message/notification_processor'], function($, Ajax, Notification, NotificationProcessor) { const SELECTORS = { PROCESSOR: '[data-processor-name]', STATE_INPUTS: '[data-state] input', }; /** * Constructor for the Preference. * * @class * @param {object} element jQuery object root element of the preference * @param {int} userId The current user id */ const NotificationPreference = function(element, userId) { this.root = $(element); this.userId = userId; }; /** * Get the unique prefix key that identifies this user preference. * * @method getPreferenceKey * @return {string} */ NotificationPreference.prototype.getPreferenceKey = function() { return this.root.attr('data-preference-key'); }; /** * Get the unique key for the enabled preference. * * @method getEnabledPreferenceKey * @return {string} */ NotificationPreference.prototype.getEnabledPreferenceKey = function() { return this.getPreferenceKey() + '_enabled'; }; /** * Get the list of Processors available for this preference. * * @method getProcessors * @return {array} */ NotificationPreference.prototype.getProcessors = function() { return this.root.find(SELECTORS.PROCESSOR).map(function(index, element) { return new NotificationProcessor($(element)); }); }; /** * Flag the preference as loading. * * @method startLoading */ NotificationPreference.prototype.startLoading = function() { this.root.addClass('loading'); this.root.find(SELECTORS.STATE_INPUTS).prop('disabled', true); }; /** * Remove the loading flag for this preference. * * @method stopLoading */ NotificationPreference.prototype.stopLoading = function() { this.root.removeClass('loading'); this.root.find(SELECTORS.STATE_INPUTS).prop('disabled', false); }; /** * Check if the preference is loading. * * @method isLoading * @return {Boolean} */ NotificationPreference.prototype.isLoading = function() { return this.root.hasClass('loading'); }; /** * Persist the current state of the processors for this preference. * * @method save * @return {object} jQuery promise */ NotificationPreference.prototype.save = function() { if (this.isLoading()) { return $.Deferred().resolve(); } this.startLoading(); let enabledValue = ''; this.getProcessors().each(function(index, processor) { if (processor.isEnabled()) { if (enabledValue === '') { enabledValue = processor.getName(); } else { enabledValue += ',' + processor.getName(); } } }); if (enabledValue === '') { enabledValue = 'none'; } const args = { userid: this.userId, preferences: [ { type: this.getEnabledPreferenceKey(), value: enabledValue, } ], }; const request = { methodname: 'core_user_update_user_preferences', args: args, }; return Ajax.call([request])[0] .fail(Notification.exception) .always(function() { this.stopLoading(); }.bind(this)); }; return NotificationPreference; });
Upload File
Create Folder