You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

91 lines
2.4 KiB

YUI.add('moodle-backup-confirmcancel', function (Y, NAME) {
/**
* Add a confirmation dialogue when cancelling a backup.
*
* @module moodle-backup-confirmcancel
*/
/**
* Add a confirmation dialogue when cancelling a backup.
*
* @class M.core_backup.confirmcancel
*/
// Namespace for the backup.
M.core_backup = M.core_backup || {};
M.core_backup.confirmcancel = {
/**
* An array of EventHandlers which call the confirm_cancel dialogue.
*
* @property listeners
* @protected
* @type Array
*/
listeners: [],
/**
* The configuration supplied to this instance.
*
* @property config
* @protected
* @type Object
*/
config: {},
/**
* Initializer to watch all cancel buttons.
*
* @method watch_cancel_buttons
* @param {Object} config The configuration for the confirmation dialogue.
*/
watch_cancel_buttons: function(config) {
this.config = config;
this.listeners.push(
Y.one(Y.config.doc.body).delegate('click', this.confirm_cancel, '.confirmcancel', this)
);
},
/**
* Display the confirmation dialogue.
*
* @method confirm_cancel
* @protected
* @param {EventFacade} e
*/
confirm_cancel: function(e) {
// Prevent the default event (submit) from firing.
e.preventDefault();
// Create the confirmation dialogue.
var confirm = new M.core.confirm(this.config);
// If the user clicks yes.
confirm.on('complete-yes', function() {
// Detach the listeners for the confirm box so they don't fire again.
new Y.EventHandle(M.core_backup.confirmcancel.listeners).detach();
// The currentTarget is a div surrounding the form elements. Simulating a click on the div is
// not going to submit a form so we need to find the form element to click.
var element = e.currentTarget.one('input, select, button');
// Simulate the original cancel button click.
if (element) {
element.simulate('click');
} else {
// Backwards compatibility only.
e.currentTarget.simulate('click');
}
}, this);
// Show the confirm box.
confirm.show();
}
};
}, '@VERSION@', {"requires": ["node", "node-event-simulate", "moodle-core-notification-confirm"]});