|
|
@@ -23,6 +23,11 @@ |
|
|
|
* this class to ease the usage of jquery dialogs |
|
|
|
*/ |
|
|
|
var OCdialogs = { |
|
|
|
// dialog button types |
|
|
|
YES_NO_BUTTONS: 70, |
|
|
|
OK_BUTTONS: 71, |
|
|
|
// used to name each dialog |
|
|
|
dialogs_counter: 0, |
|
|
|
/** |
|
|
|
* displays alert dialog |
|
|
|
* @param text content of dialog |
|
|
@@ -31,7 +36,7 @@ var OCdialogs = { |
|
|
|
* @param modal make the dialog modal |
|
|
|
*/ |
|
|
|
alert:function(text, title, callback, modal) { |
|
|
|
OCdialogs.message(text, title, 'alert', OCdialogs.OK_BUTTON, callback, modal); |
|
|
|
this.message(text, title, 'alert', OCdialogs.OK_BUTTON, callback, modal); |
|
|
|
}, |
|
|
|
/** |
|
|
|
* displays info dialog |
|
|
@@ -41,7 +46,7 @@ var OCdialogs = { |
|
|
|
* @param modal make the dialog modal |
|
|
|
*/ |
|
|
|
info:function(text, title, callback, modal) { |
|
|
|
OCdialogs.message(text, title, 'info', OCdialogs.OK_BUTTON, callback, modal); |
|
|
|
this.message(text, title, 'info', OCdialogs.OK_BUTTON, callback, modal); |
|
|
|
}, |
|
|
|
/** |
|
|
|
* displays confirmation dialog |
|
|
@@ -51,81 +56,7 @@ var OCdialogs = { |
|
|
|
* @param modal make the dialog modal |
|
|
|
*/ |
|
|
|
confirm:function(text, title, callback, modal) { |
|
|
|
OCdialogs.message(text, title, 'notice', OCdialogs.YES_NO_BUTTONS, callback, modal); |
|
|
|
}, |
|
|
|
/** |
|
|
|
* prompt for user input |
|
|
|
* @param text content of dialog |
|
|
|
* @param title dialog title |
|
|
|
* @param callback which will be triggered when user presses OK (input text will be passed to callback) |
|
|
|
* @param modal make the dialog modal |
|
|
|
*/ |
|
|
|
prompt:function(text, title, default_value, callback, modal) { |
|
|
|
var input = '<input type="text" id="oc-dialog-prompt-input" value="' + escapeHTML(default_value) + '" style="width:90%">'; |
|
|
|
var content = '<p><span class="ui-icon ui-icon-pencil"></span>' + escapeHTML(text) + ':<br/>' + input + '</p>'; |
|
|
|
OCdialogs.message(content, title, 'prompt', OCdialogs.OK_BUTTON, callback, modal); |
|
|
|
}, |
|
|
|
/** |
|
|
|
* prompt user for input with custom form |
|
|
|
* fields should be passed in following format: [{text:'prompt text', name:'return name', type:'input type', value: 'default value'},...] |
|
|
|
* example: |
|
|
|
* var fields=[{text:'Test', name:'test', type:'select', options:[{text:'hello1',value:1},{text:'hello2',value:2}] }]; |
|
|
|
* @param fields to display |
|
|
|
* @param title dialog title |
|
|
|
* @param callback which will be triggered when user presses OK (user answers will be passed to callback in following format: [{name:'return name', value: 'user value'},...]) |
|
|
|
* @param modal make the dialog modal |
|
|
|
*/ |
|
|
|
form:function(fields, title, callback, modal) { |
|
|
|
var content = '<table>'; |
|
|
|
$.each(fields, function(index, field){ |
|
|
|
content += '<tr><td>' + escapeHTML(field.text) + '</td><td>'; |
|
|
|
var type = field.type; |
|
|
|
|
|
|
|
if (type === 'text' || type === 'checkbox' || type === 'password') { |
|
|
|
content += '<input type="' + type + '" name="' + field.name + '"'; |
|
|
|
if (type === 'checkbox' && field.value === true) { |
|
|
|
content += ' checked="checked"'; |
|
|
|
} else if (type === 'text' || type === 'password' && val.value) { |
|
|
|
content += ' value="' + escapeHTML(field.value) + '"'; |
|
|
|
} |
|
|
|
content += '>'; |
|
|
|
} else if (type === 'select') { |
|
|
|
content += '<select name="' + escapeHTML(field.name) + '"'; |
|
|
|
if (field.value !== undefined) { |
|
|
|
content += ' value="' + escapeHTML(field.value) + '"'; |
|
|
|
} |
|
|
|
content += '>'; |
|
|
|
$.each(field.options, function(index, field_option){ |
|
|
|
content += '<option value="' + escapeHTML(field_option.value) + '">' + escapeHTML(field_option.text) + '</option>'; |
|
|
|
}); |
|
|
|
content += '</select>'; |
|
|
|
} |
|
|
|
content += '</td></tr>'; |
|
|
|
|
|
|
|
}); |
|
|
|
content += '</table>'; |
|
|
|
|
|
|
|
var dialog_name = 'oc-dialog-' + OCdialogs.dialogs_counter + '-content'; |
|
|
|
var dialog_id = '#' + dialog_name; |
|
|
|
var dialog_div = '<div id="' + dialog_name + '" title="' + escapeHTML(title) + '">' + content + '</div>'; |
|
|
|
if (modal === undefined) { modal = false }; |
|
|
|
$('body').append(dialog_div); |
|
|
|
var buttonlist = [{ |
|
|
|
text: t('core', 'Ok'), |
|
|
|
click: function(){ OCdialogs.form_ok_handler(callback, dialog_id); } |
|
|
|
}, |
|
|
|
{ |
|
|
|
text: t('core', 'Cancel'), |
|
|
|
click: function(){ $(dialog_id).dialog('close'); } |
|
|
|
}]; |
|
|
|
var dialog_height = ( $('tr', dialog_div).length + 1 ) * 30 + 120; |
|
|
|
$(dialog_id).dialog({ |
|
|
|
width: (4/9) * $(document).width(), |
|
|
|
height: dialog_height, |
|
|
|
modal: modal, |
|
|
|
buttons: buttonlist |
|
|
|
}); |
|
|
|
OCdialogs.dialogs_counter++; |
|
|
|
this.message(text, title, 'notice', OCdialogs.YES_NO_BUTTONS, callback, modal); |
|
|
|
}, |
|
|
|
_getFilePickerTemplate: function() { |
|
|
|
var defer = $.Deferred(); |
|
|
@@ -231,6 +162,7 @@ var OCdialogs = { |
|
|
|
}]; |
|
|
|
|
|
|
|
self.$filePicker.dialog({ |
|
|
|
closeOnEscape: true, |
|
|
|
width: (4/9)*$(document).width(), |
|
|
|
height: 420, |
|
|
|
modal: modal, |
|
|
@@ -304,6 +236,7 @@ var OCdialogs = { |
|
|
|
}; |
|
|
|
|
|
|
|
$(dialog_id).dialog({ |
|
|
|
closeOnEscape: true, |
|
|
|
modal: modal, |
|
|
|
buttons: buttonlist |
|
|
|
}); |
|
|
@@ -313,12 +246,6 @@ var OCdialogs = { |
|
|
|
alert(t('core', 'Error loading file picker template')); |
|
|
|
}); |
|
|
|
}, |
|
|
|
// dialog button types |
|
|
|
YES_NO_BUTTONS: 70, |
|
|
|
OK_BUTTONS: 71, |
|
|
|
// used to name each dialog |
|
|
|
dialogs_counter: 0, |
|
|
|
|
|
|
|
determineValue: function(element) { |
|
|
|
if ( $(element).attr('type') === 'checkbox' ) { |
|
|
|
return element.checked; |
|
|
@@ -362,7 +289,7 @@ var OCdialogs = { |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
self.fillTreeList(); |
|
|
|
self.fillSlug(); |
|
|
|
var sorted = dirs.concat(others); |
|
|
|
|
|
|
|
$.each(sorted, function(idx, entry) { |
|
|
@@ -382,27 +309,25 @@ var OCdialogs = { |
|
|
|
/** |
|
|
|
* fills the tree list with directories |
|
|
|
*/ |
|
|
|
fillTreeList: function() { |
|
|
|
fillSlug: function() { |
|
|
|
this.$dirTree.empty(); |
|
|
|
var self = this |
|
|
|
var path = this.$filePicker.data('path'); |
|
|
|
if(!path) { |
|
|
|
return; |
|
|
|
} |
|
|
|
var $template = $('<span data-dir="{dir}">{name}</span>'); |
|
|
|
var paths = path.split('/'); |
|
|
|
//paths.pop(); |
|
|
|
$.each(paths, function(index, dir) { |
|
|
|
var dir = paths.pop(); |
|
|
|
if(dir === '') { |
|
|
|
return false; |
|
|
|
} |
|
|
|
self.$dirTree.prepend($template.octemplate({ |
|
|
|
dir: paths.join('/') + '/' + dir, |
|
|
|
name: dir |
|
|
|
})); |
|
|
|
}); |
|
|
|
self.$dirTree.prepend($template.octemplate({ |
|
|
|
if(path) { |
|
|
|
var paths = path.split('/'); |
|
|
|
$.each(paths, function(index, dir) { |
|
|
|
var dir = paths.pop(); |
|
|
|
if(dir === '') { |
|
|
|
return false; |
|
|
|
} |
|
|
|
self.$dirTree.prepend($template.octemplate({ |
|
|
|
dir: paths.join('/') + '/' + dir, |
|
|
|
name: dir |
|
|
|
})); |
|
|
|
}); |
|
|
|
} |
|
|
|
this.$dirTree.prepend($template.octemplate({ |
|
|
|
dir: '', |
|
|
|
name: '/' |
|
|
|
})); |