Add prompt dialog to OC.dialogs

This commit is contained in:
Robin Appelman 2014-05-09 17:09:06 +02:00
parent bba2d60d36
commit 163a7a47f9
1 changed files with 59 additions and 0 deletions

View File

@ -61,6 +61,65 @@ var OCdialogs = {
confirm:function(text, title, callback, modal) {
this.message(text, title, 'notice', OCdialogs.YES_NO_BUTTONS, callback, modal);
},
/**
* displays prompt dialog
* @param text content of dialog
* @param title dialog title
* @param callback which will be triggered when user presses YES or NO
* (true or false would be passed to callback respectively)
* @param modal make the dialog modal
* @param name name of the input field
* @param password wether the input should be a password input
*/
prompt: function (text, title, callback, modal, name, password) {
$.when(this._getMessageTemplate()).then(function ($tmpl) {
var dialogName = 'oc-dialog-' + OCdialogs.dialogsCounter + '-content';
var dialogId = '#' + dialogName;
var $dlg = $tmpl.octemplate({
dialog_name: dialogName,
title : title,
message : text,
type : 'notice'
});
var input = $('<input/>');
input.attr('type', password ? 'password' : 'text').attr('id', dialogName + '-input');
var label = $('<label/>').attr('for', dialogName + '-input').text(name + ': ');
$dlg.append(label);
$dlg.append(input);
if (modal === undefined) {
modal = false;
}
$('body').append($dlg);
var buttonlist = [
{
text : t('core', 'Yes'),
click : function () {
if (callback !== undefined) {
callback(true, input.val());
}
$(dialogId).ocdialog('close');
},
defaultButton: true
},
{
text : t('core', 'No'),
click: function () {
if (callback !== undefined) {
callback(false, input.val());
}
$(dialogId).ocdialog('close');
}
}
];
$(dialogId).ocdialog({
closeOnEscape: true,
modal : modal,
buttons : buttonlist
});
OCdialogs.dialogsCounter++;
});
},
/**
* show a file picker to pick a file from
* @param title dialog title