MDL-78324 core: Deprecate core/modal_factory

This commit is contained in:
Andrew Nicols 2023-08-18 15:20:36 +08:00
parent 48bc688ccd
commit 82761c582c
No known key found for this signature in database
GPG key ID: 6D1E3157C8CFBF14
4 changed files with 11 additions and 2 deletions

View file

@ -5,6 +5,8 @@ define("core/modal_factory",["exports","jquery","core/modal_events","core/modal_
* @module core/modal_factory * @module core/modal_factory
* @copyright 2016 Ryan Wyllie <ryan@moodle.com> * @copyright 2016 Ryan Wyllie <ryan@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.types=_exports.default=_exports.create=void 0,_jquery=_interopRequireDefault(_jquery),_modal_events=_interopRequireDefault(_modal_events),ModalRegistry=_interopRequireWildcard(ModalRegistry),_modal=_interopRequireDefault(_modal),_modal_save_cancel=_interopRequireDefault(_modal_save_cancel),_modal_delete_cancel=_interopRequireDefault(_modal_delete_cancel),_modal_cancel=_interopRequireDefault(_modal_cancel),_alert=_interopRequireDefault(_alert),Notification=_interopRequireWildcard(Notification),CustomEvents=_interopRequireWildcard(CustomEvents),_pending=_interopRequireDefault(_pending);const types={DEFAULT:"DEFAULT",SAVE_CANCEL:_modal_save_cancel.default.TYPE,DELETE_CANCEL:_modal_delete_cancel.default.TYPE,CANCEL:_modal_cancel.default.TYPE,ALERT:_alert.default.TYPE};_exports.types=types,ModalRegistry.register(types.DEFAULT,_modal.default,_modal.default.TEMPLATE);const create=(modalConfig,triggerElement)=>{const type=modalConfig.type||types.DEFAULT,registryConf=ModalRegistry.get(type);registryConf||Notification.exception({message:"Unable to find modal of type: ".concat(type)});const modal=registryConf.module.create(modalConfig);return triggerElement&&(window.console.warn("The triggerElement feature of the modal_factory has been deprecated. Please use event listeners instead."),((modalPromise,triggerElement,modalConfig)=>{let actualTriggerElement=null;const hasPreShowCallback="function"==typeof modalConfig.preShowCallback,triggeredCallback=(e,data)=>{const pendingPromise=new _pending.default("core/modal_factory:setUpTrigger:triggeredCallback");actualTriggerElement=(0,_jquery.default)(e.currentTarget),modalPromise.then((function(modal){return hasPreShowCallback&&modalConfig.preShowCallback(actualTriggerElement,modal),modal.show(),modal})).then(pendingPromise.resolve),data.originalEvent.preventDefault()};if(Array.isArray(triggerElement)){const selector=triggerElement[1];triggerElement=triggerElement[0],CustomEvents.define(triggerElement,[CustomEvents.events.activate]),triggerElement.on(CustomEvents.events.activate,selector,triggeredCallback)}else CustomEvents.define(triggerElement,[CustomEvents.events.activate]),triggerElement.on(CustomEvents.events.activate,triggeredCallback);modalPromise.then((function(modal){return modal.getRoot().on(_modal_events.default.hidden,(function(){null!==actualTriggerElement&&actualTriggerElement.focus()})),modal}))})(modal,triggerElement,modalConfig)),_jquery.default.when(new Promise(((resolve,reject)=>{modal.then(resolve).catch(reject)})))};_exports.create=create;var _default={create:create,types:types};return _exports.default=_default,_exports.default})); * @deprecated since Moodle 4.3
* @todo Final deprecation in Moodle 4.7/5.2. See MDL-79128/
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.types=_exports.default=_exports.create=void 0,_jquery=_interopRequireDefault(_jquery),_modal_events=_interopRequireDefault(_modal_events),ModalRegistry=_interopRequireWildcard(ModalRegistry),_modal=_interopRequireDefault(_modal),_modal_save_cancel=_interopRequireDefault(_modal_save_cancel),_modal_delete_cancel=_interopRequireDefault(_modal_delete_cancel),_modal_cancel=_interopRequireDefault(_modal_cancel),_alert=_interopRequireDefault(_alert),Notification=_interopRequireWildcard(Notification),CustomEvents=_interopRequireWildcard(CustomEvents),_pending=_interopRequireDefault(_pending);const types={DEFAULT:"DEFAULT",SAVE_CANCEL:_modal_save_cancel.default.TYPE,DELETE_CANCEL:_modal_delete_cancel.default.TYPE,CANCEL:_modal_cancel.default.TYPE,ALERT:_alert.default.TYPE};_exports.types=types,ModalRegistry.register(types.DEFAULT,_modal.default,_modal.default.TEMPLATE);const create=(modalConfig,triggerElement)=>{window.console.warn("The modal_factory has been deprecated since Moodle 4.3. Please use the create method on your target modal type instead.");const type=modalConfig.type||types.DEFAULT,registryConf=ModalRegistry.get(type);registryConf||Notification.exception({message:"Unable to find modal of type: ".concat(type)});const modal=registryConf.module.create(modalConfig);return triggerElement&&(window.console.warn("The triggerElement feature of the modal_factory has been deprecated. Please use event listeners instead."),((modalPromise,triggerElement,modalConfig)=>{let actualTriggerElement=null;const hasPreShowCallback="function"==typeof modalConfig.preShowCallback,triggeredCallback=(e,data)=>{const pendingPromise=new _pending.default("core/modal_factory:setUpTrigger:triggeredCallback");actualTriggerElement=(0,_jquery.default)(e.currentTarget),modalPromise.then((function(modal){return hasPreShowCallback&&modalConfig.preShowCallback(actualTriggerElement,modal),modal.show(),modal})).then(pendingPromise.resolve),data.originalEvent.preventDefault()};if(Array.isArray(triggerElement)){const selector=triggerElement[1];triggerElement=triggerElement[0],CustomEvents.define(triggerElement,[CustomEvents.events.activate]),triggerElement.on(CustomEvents.events.activate,selector,triggeredCallback)}else CustomEvents.define(triggerElement,[CustomEvents.events.activate]),triggerElement.on(CustomEvents.events.activate,triggeredCallback);modalPromise.then((function(modal){return modal.getRoot().on(_modal_events.default.hidden,(function(){null!==actualTriggerElement&&actualTriggerElement.focus()})),modal}))})(modal,triggerElement,modalConfig)),_jquery.default.when(new Promise(((resolve,reject)=>{modal.then(resolve).catch(reject)})))};_exports.create=create;var _default={create:create,types:types};return _exports.default=_default,_exports.default}));
//# sourceMappingURL=modal_factory.min.js.map //# sourceMappingURL=modal_factory.min.js.map

File diff suppressed because one or more lines are too long

View file

@ -19,6 +19,8 @@
* @module core/modal_factory * @module core/modal_factory
* @copyright 2016 Ryan Wyllie <ryan@moodle.com> * @copyright 2016 Ryan Wyllie <ryan@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @deprecated since Moodle 4.3
* @todo Final deprecation in Moodle 4.7/5.2. See MDL-79128/
*/ */
import $ from 'jquery'; import $ from 'jquery';
@ -128,6 +130,9 @@ const setUpTrigger = (modalPromise, triggerElement, modalConfig) => {
* @return {promise} Resolved with a Modal instance * @return {promise} Resolved with a Modal instance
*/ */
export const create = (modalConfig, triggerElement) => { export const create = (modalConfig, triggerElement) => {
window.console.warn(
'The modal_factory has been deprecated since Moodle 4.3. Please use the create method on your target modal type instead.',
);
// Use of the triggerElement has been deprecated. // Use of the triggerElement has been deprecated.
const type = modalConfig.type || types.DEFAULT; const type = modalConfig.type || types.DEFAULT;

View file

@ -167,6 +167,8 @@ being forced open in all behat tests.
the grade item once the recalculations are completed. (This was fixed in 4.3, 4.2.2) the grade item once the recalculations are completed. (This was fixed in 4.3, 4.2.2)
* Added a new constant called MAX_PASSWORD_CHARACTERS in moodlelib.php to hold a length of accepted password. * Added a new constant called MAX_PASSWORD_CHARACTERS in moodlelib.php to hold a length of accepted password.
* Added a new method called exceeds_password_length in moodlelib.php to validate the password length. * Added a new method called exceeds_password_length in moodlelib.php to validate the password length.
* The core/modal_factory has been deprecated. From Moodle 4.3 onwards please instantiate new modals using the ModalType.create method instead.
Please note that this method does not support the `trigger` option.
=== 4.2 === === 4.2 ===