summaryrefslogtreecommitdiffstats
path: root/core/js/js.js
diff options
context:
space:
mode:
Diffstat (limited to 'core/js/js.js')
-rw-r--r--core/js/js.js42
1 files changed, 29 insertions, 13 deletions
diff --git a/core/js/js.js b/core/js/js.js
index d7975804f4b..47fe4c4be58 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -1715,38 +1715,54 @@ OC.PasswordConfirmation = {
/**
* @param {function} callback
*/
- requirePasswordConfirmation: function(callback) {
+ requirePasswordConfirmation: function(callback, options) {
+ options = typeof options !== 'undefined' ? options : {};
+ var defaults = {
+ title: t('core','Authentication required'),
+ text: t(
+ 'core',
+ 'This action requires you to confirm your password'
+ ),
+ confirm: t('core', 'Confirm'),
+ label: t('core','Password'),
+ error: '',
+ };
+
+ var config = _.extend(defaults, options);
+
var self = this;
if (this.requiresPasswordConfirmation()) {
OC.dialogs.prompt(
- t(
- 'core',
- 'This action requires you to confirm your password'
- ),
- t('core','Authentication required'),
+ config.text,
+ config.title,
function (result, password) {
if (result && password !== '') {
- self._confirmPassword(password);
+ self._confirmPassword(password, config);
}
},
true,
- t('core','Password'),
+ config.label,
true
).then(function() {
var $dialog = $('.oc-dialog:visible');
$dialog.find('.ui-icon').remove();
+ $dialog.addClass('password-confirmation');
+ if (config.error !== '') {
+ var $error = $('<p></p>').addClass('msg warning').text(config.error);
+ }
+ $dialog.find('.oc-dialog-content').append($error);
var $buttons = $dialog.find('button');
- $buttons.eq(0).text(t('core', 'Cancel'));
- $buttons.eq(1).text(t('core', 'Confirm'));
+ $buttons.eq(0).hide();
+ $buttons.eq(1).text(config.confirm);
});
}
this.callback = callback;
},
- _confirmPassword: function(password) {
+ _confirmPassword: function(password, config) {
var self = this;
$.ajax({
@@ -1763,8 +1779,8 @@ OC.PasswordConfirmation = {
}
},
error: function() {
- OC.PasswordConfirmation.requirePasswordConfirmation(self.callback);
- OC.Notification.showTemporary(t('core', 'Failed to authenticate, try again'));
+ config.error = t('core', 'Failed to authenticate, try again');
+ OC.PasswordConfirmation.requirePasswordConfirmation(self.callback, config);
}
});
}