moodle/message/amd/build/message_preferences.min.js.map
Andrew Nicols 0a4047ab31 MDL-73915 js: Switch amd minification to terser
Unfortunately the babel minify-mangle plugin seems to be abandoned and
in certain circumstances can be very buggy. The only safe options are to
disable it, or to switch to a different minification library.

Not minifying our javascript is not ideal, so this commit updates the
javascript tasks to use a rollup, combined with babel, and terser.

Babel still converts code from ES/UMD/AMD to AMD modules with the
relevant browser support, whilst terser minifies the code.

The rollup bundler handles tracking and creation of sourcemaps, and
supports better parallelisation of the tasks.

Since the upgrade to Node LTS/Gallium requires an upgrade to @babel/core
and eslint, which change the built files anyway, this seems like the
ideal time to make this change.
2022-02-23 08:55:09 +08:00

1 line
6.1 KiB
Plaintext

{"version":3,"file":"message_preferences.min.js","sources":["../src/message_preferences.js"],"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 message preference page.\n *\n * @module core_message/message_preferences\n * @copyright 2016 Ryan Wyllie <ryan@moodle.com>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['jquery', 'core/ajax', 'core/notification',\n 'core_message/message_notification_preference', 'core/custom_interaction_events'],\n function($, Ajax, Notification, MessageNotificationPreference, CustomEvents) {\n\n var SELECTORS = {\n PREFERENCE: '[data-state]',\n PREFERENCES_CONTAINER: '[data-region=\"preferences-container\"]',\n CONTACTABLE_PRIVACY_CONTAINER: '[data-region=\"privacy-setting-container\"]',\n };\n\n /**\n * Constructor for the MessagePreferences.\n *\n * @class\n * @param {object} element The root element for the message preferences\n */\n var MessagePreferences = function(element) {\n this.root = $(element);\n this.userId = this.root.find(SELECTORS.PREFERENCES_CONTAINER).attr('data-user-id');\n\n this.registerEventListeners();\n };\n\n /**\n * Check if the preferences have been disabled on this page.\n *\n * @method preferencesDisabled\n * @return {bool}\n */\n MessagePreferences.prototype.preferencesDisabled = function() {\n return this.root.find(SELECTORS.PREFERENCES_CONTAINER).hasClass('disabled');\n };\n\n /**\n * Update the contactable privacy user preference in the DOM and\n * send a request to update on the server.\n *\n * @return {Promise}\n * @method saveContactablePrivacySetting\n */\n MessagePreferences.prototype.saveContactablePrivacySetting = function() {\n var container = this.root.find(SELECTORS.CONTACTABLE_PRIVACY_CONTAINER);\n var value = $(\"input[type='radio']:checked\").val();\n\n if (container.hasClass('loading')) {\n return $.Deferred().resolve();\n }\n\n container.addClass('loading');\n\n var request = {\n methodname: 'core_user_update_user_preferences',\n args: {\n userid: this.userId,\n preferences: [\n {\n type: container.attr('data-preference-key'),\n value: value,\n }\n ]\n }\n };\n\n return Ajax.call([request])[0]\n .fail(Notification.exception)\n .always(function() {\n container.removeClass('loading');\n });\n };\n\n /**\n * Create all of the event listeners for the message preferences page.\n *\n * @method registerEventListeners\n */\n MessagePreferences.prototype.registerEventListeners = function() {\n CustomEvents.define(this.root, [\n CustomEvents.events.activate\n ]);\n\n this.root.on('change', function(e) {\n // Add listener for privacy setting radio buttons change.\n if (e.target.name == 'message_blocknoncontacts') {\n this.saveContactablePrivacySetting();\n } else {\n // Add listener for processor preferences.\n if (!this.preferencesDisabled()) {\n var preferencesContainer = $(e.target).closest(SELECTORS.PREFERENCES_CONTAINER);\n var preferenceElement = $(e.target).closest(SELECTORS.PREFERENCE);\n var messagePreference = new MessageNotificationPreference(preferencesContainer, this.userId);\n\n preferenceElement.addClass('loading');\n messagePreference.save().always(function() {\n preferenceElement.removeClass('loading');\n });\n }\n }\n }.bind(this));\n };\n\n return MessagePreferences;\n});\n"],"names":["define","$","Ajax","Notification","MessageNotificationPreference","CustomEvents","SELECTORS","MessagePreferences","element","root","userId","this","find","attr","registerEventListeners","prototype","preferencesDisabled","hasClass","saveContactablePrivacySetting","container","value","val","Deferred","resolve","addClass","request","methodname","args","userid","preferences","type","call","fail","exception","always","removeClass","events","activate","on","e","target","name","preferencesContainer","closest","preferenceElement","messagePreference","save","bind"],"mappings":";;;;;;;AAsBAA,0CAAO,CAAC,SAAU,YAAa,oBACvB,+CAAgD,mCAChD,SAASC,EAAGC,KAAMC,aAAcC,8BAA+BC,kBAE/DC,qBACY,eADZA,gCAEuB,wCAFvBA,wCAG+B,4CAS/BC,mBAAqB,SAASC,cACzBC,KAAOR,EAAEO,cACTE,OAASC,KAAKF,KAAKG,KAAKN,iCAAiCO,KAAK,qBAE9DC,iCASTP,mBAAmBQ,UAAUC,oBAAsB,kBACxCL,KAAKF,KAAKG,KAAKN,iCAAiCW,SAAS,aAUpEV,mBAAmBQ,UAAUG,8BAAgC,eACrDC,UAAYR,KAAKF,KAAKG,KAAKN,yCAC3Bc,MAAQnB,EAAE,+BAA+BoB,SAEzCF,UAAUF,SAAS,kBACZhB,EAAEqB,WAAWC,UAGxBJ,UAAUK,SAAS,eAEfC,QAAU,CACVC,WAAY,oCACZC,KAAM,CACFC,OAAQjB,KAAKD,OACbmB,YAAa,CACT,CACIC,KAAMX,UAAUN,KAAK,uBACrBO,MAAOA,iBAMhBlB,KAAK6B,KAAK,CAACN,UAAU,GACvBO,KAAK7B,aAAa8B,WAClBC,QAAO,WACJf,UAAUgB,YAAY,eASlC5B,mBAAmBQ,UAAUD,uBAAyB,WAClDT,aAAaL,OAAOW,KAAKF,KAAM,CAC3BJ,aAAa+B,OAAOC,gBAGnB5B,KAAK6B,GAAG,SAAU,SAASC,MAEP,4BAAjBA,EAAEC,OAAOC,UACJvB,yCAGAP,KAAKK,sBAAuB,KACzB0B,qBAAuBzC,EAAEsC,EAAEC,QAAQG,QAAQrC,iCAC3CsC,kBAAoB3C,EAAEsC,EAAEC,QAAQG,QAAQrC,sBACxCuC,kBAAoB,IAAIzC,8BAA8BsC,qBAAsB/B,KAAKD,QAErFkC,kBAAkBpB,SAAS,WAC3BqB,kBAAkBC,OAAOZ,QAAO,WAC5BU,kBAAkBT,YAAY,gBAI5CY,KAAKpC,QAGJJ"}