summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorThomas Tanghus <thomas@tanghus.net>2013-05-17 07:14:43 +0200
committerThomas Tanghus <thomas@tanghus.net>2013-05-17 07:14:43 +0200
commit2f91606e35fb8c64e7b4c6b9eadd97813818195f (patch)
tree73ee4ca5b59a926106b881a0e1edbccb83b0082b /core
parenta0b79f564944479beb497a75bb45cf02fcaf38ca (diff)
downloadnextcloud-server-2f91606e35fb8c64e7b4c6b9eadd97813818195f.tar.gz
nextcloud-server-2f91606e35fb8c64e7b4c6b9eadd97813818195f.zip
Dialogs: Cleanup.
Diffstat (limited to 'core')
-rw-r--r--core/js/oc-dialogs.js127
1 files changed, 26 insertions, 101 deletions
diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js
index 43b698df68f..074d3656f98 100644
--- a/core/js/oc-dialogs.js
+++ b/core/js/oc-dialogs.js
@@ -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: '/'
}));