diff options
author | Jörn Friedrich Dreyer <jfd@butonic.de> | 2013-09-04 15:24:25 +0200 |
---|---|---|
committer | Jörn Friedrich Dreyer <jfd@butonic.de> | 2013-09-04 16:42:18 +0200 |
commit | 49fd7e9f1e037266304053c7337c714339d82553 (patch) | |
tree | e2aade33ca082e39e3166315b98738897523dbb3 /core/js/oc-dialogs.js | |
parent | 4af5a8c483278eae2e8e38f5ea0a238072848b87 (diff) | |
download | nextcloud-server-49fd7e9f1e037266304053c7337c714339d82553.tar.gz nextcloud-server-49fd7e9f1e037266304053c7337c714339d82553.zip |
refactor dialog creation
Diffstat (limited to 'core/js/oc-dialogs.js')
-rw-r--r-- | core/js/oc-dialogs.js | 134 |
1 files changed, 46 insertions, 88 deletions
diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js index b949fc74d14..5ed24417264 100644 --- a/core/js/oc-dialogs.js +++ b/core/js/oc-dialogs.js @@ -220,28 +220,24 @@ var OCdialogs = { */ fileexists:function(data, original, replacement, controller) { var self = this; - var selection = controller.getSelection(data.originalFiles); - if (selection.defaultAction) { - controller[selection.defaultAction](data); - } else { - var dialog_name = 'oc-dialog-fileexists-content'; - var dialog_id = '#' + dialog_name; - if (this._fileexistsshown) { - // add row - var conflict = $(dialog_id+ ' .conflict').last().clone(); - conflict.find('.name').text(original.name); + var addConflict = function(conflicts, original, replacement) { + + var conflict = conflicts.find('.conflict.template').clone(); + + conflict.find('.filename').text(original.name); conflict.find('.original .size').text(humanFileSize(original.size)); conflict.find('.original .mtime').text(formatDate(original.mtime*1000)); conflict.find('.replacement .size').text(humanFileSize(replacement.size)); conflict.find('.replacement .mtime').text(formatDate(replacement.lastModifiedDate)); - getMimeIcon(original.type,function(path){ - conflict.find('.original .icon').css('background-image','url('+path+')'); + var path = getPathForPreview(original.name); + lazyLoadPreview(path, original.type, function(previewpath){ + conflict.find('.original .icon').css('background-image','url('+previewpath+')'); }); getMimeIcon(replacement.type,function(path){ conflict.find('.replacement .icon').css('background-image','url('+path+')'); }); - $(dialog_id+' .conflict').last().after(conflict); - $(dialog_id).parent().children('.oc-dialog-title').text(t('files','{count} file conflicts',{count:$(dialog_id+ ' .conflict').length})); + conflict.removeClass('template'); + conflicts.append(conflict); //set more recent mtime bold if (replacement.lastModifiedDate.getTime() > original.mtime*1000) { @@ -249,16 +245,16 @@ var OCdialogs = { } else if (replacement.lastModifiedDate.getTime() < original.mtime*1000) { conflict.find('.original .mtime').css('font-weight', 'bold'); } else { - //TODO add to same mtime colletion? + //TODO add to same mtime collection? } // set bigger size bold if (replacement.size > original.size) { - conflict.find('.replacement .size').css('font-weight','bold'); + conflict.find('.replacement .size').css('font-weight', 'bold'); } else if (replacement.size < original.size) { - conflict.find('.original .size').css('font-weight','bold'); + conflict.find('.original .size').css('font-weight', 'bold'); } else { - //TODO add to same size colletion? + //TODO add to same size collection? } //add checkbox toggling actions @@ -269,50 +265,42 @@ var OCdialogs = { //TODO show skip action for files with same size and mtime + }; + var selection = controller.getSelection(data.originalFiles); + if (selection.defaultAction) { + controller[selection.defaultAction](data); + } else { + var dialog_name = 'oc-dialog-fileexists-content'; + var dialog_id = '#' + dialog_name; + if (this._fileexistsshown) { + // add conflict + + var conflicts = $(dialog_id+ ' .conflicts'); + addConflict(conflicts, original, replacement); + + var title = t('files','{count} file conflicts',{count:$(dialog_id+ ' .conflict:not(.template)').length}); + $(dialog_id).parent().children('.oc-dialog-title').text(title); + + //recalculate dimensions $(window).trigger('resize'); + } else { //create dialog this._fileexistsshown = true; $.when(this._getFileExistsTemplate()).then(function($tmpl) { var title = t('files','One file conflict'); - var original_size = humanFileSize(original.size); - var original_mtime = formatDate(original.mtime*1000); - var replacement_size= humanFileSize(replacement.size); - var replacement_mtime = formatDate(replacement.lastModifiedDate); var $dlg = $tmpl.octemplate({ dialog_name: dialog_name, title: title, type: 'fileexists', why: t('files','Which files do you want to keep?'), - what: t('files','If you select both versions, the copied file will have a number added to its name.'), - filename: original.name, - - original_size: original_size, - original_mtime: original_mtime, - - replacement_size: replacement_size, - replacement_mtime: replacement_mtime + what: t('files','If you select both versions, the copied file will have a number added to its name.') }); $('body').append($dlg); - getMimeIcon(original.type,function(path){ - $(dialog_id + ' .original .icon').css('background-image','url('+path+')'); - }); - getMimeIcon(replacement.type,function(path){ - $(dialog_id + ' .replacement .icon').css('background-image','url('+path+')'); - }); - $(dialog_id + ' #newname').val(original.name); - - $(dialog_id + ' #newname').on('keyup', function(e){ - if ($(dialog_id + ' #newname').val() === original.name) { - $(dialog_id + ' + div .rename').removeClass('primary').hide(); - $(dialog_id + ' + div .replace').addClass('primary').show(); - } else { - $(dialog_id + ' + div .rename').addClass('primary').show(); - $(dialog_id + ' + div .replace').removeClass('primary').hide(); - } - }); + var conflicts = $($dlg).find('.conflicts'); + addConflict(conflicts, original, replacement); buttonlist = [{ text: t('core', 'Cancel'), @@ -346,57 +334,27 @@ var OCdialogs = { closeButton: null }); - $(dialog_id + ' + div .rename').hide(); - $(dialog_id + ' #newname').hide(); - - $(dialog_id + ' #newnamecb').on('change', function(){ - if ($(dialog_id + ' #newnamecb').prop('checked')) { - $(dialog_id + ' #newname').fadeIn(); - } else { - $(dialog_id + ' #newname').fadeOut(); - $(dialog_id + ' #newname').val(original.name); - } - }); $(dialog_id).css('height','auto'); - var conflict = $(dialog_id + ' .conflict').last(); - //set more recent mtime bold - if (replacement.lastModifiedDate.getTime() > original.mtime*1000) { - conflict.find('.replacement .mtime').css('font-weight','bold'); - } else if (replacement.lastModifiedDate.getTime() < original.mtime*1000) { - conflict.find('.original .mtime').css('font-weight','bold'); - } else { - //TODO add to same mtime colletion? - } - - // set bigger size bold - if (replacement.size > original.size) { - conflict.find('.replacement .size').css('font-weight','bold'); - } else if (replacement.size < original.size) { - conflict.find('.original .size').css('font-weight','bold'); - } else { - //TODO add to same size colletion? - } - //add checkbox toggling actions - //add checkbox toggling actions - $(dialog_id).find('.allnewfiles').on('click', function(){ - var checkboxes = $(dialog_id).find('.replacement input[type="checkbox"]'); + $(dialog_id).find('.allnewfiles').on('click', function() { + var checkboxes = $(dialog_id).find('.conflict:not(.template) .replacement input[type="checkbox"]'); checkboxes.prop('checked', $(this).prop('checked')); }); - $(dialog_id).find('.allexistingfiles').on('click', function(){ - var checkboxes = $(dialog_id).find('.original input[type="checkbox"]'); + $(dialog_id).find('.allexistingfiles').on('click', function() { + var checkboxes = $(dialog_id).find('.conflict:not(.template) .original input[type="checkbox"]'); checkboxes.prop('checked', $(this).prop('checked')); }); - conflict.find('.replacement,.original').on('click', function(){ + + $(dialog_id).find('.conflicts').on('click', '.replacement,.original', function() { var checkbox = $(this).find('input[type="checkbox"]'); checkbox.prop('checked', !checkbox.prop('checked')); }); //update counters - $(dialog_id).on('click', '.replacement,.allnewfiles', function(){ - var count = $(dialog_id).find('.replacement input[type="checkbox"]:checked').length; - if (count === $(dialog_id+ ' .conflict').length) { + $(dialog_id).on('click', '.replacement,.allnewfiles', function() { + var count = $(dialog_id).find('.conflict:not(.template) .replacement input[type="checkbox"]:checked').length; + if (count === $(dialog_id+ ' .conflict:not(.template)').length) { $(dialog_id).find('.allnewfiles').prop('checked', true); $(dialog_id).find('.allnewfiles + .count').text(t('files','(all selected)')); } else if (count > 0) { @@ -408,8 +366,8 @@ var OCdialogs = { } }); $(dialog_id).on('click', '.original,.allexistingfiles', function(){ - var count = $(dialog_id).find('.original input[type="checkbox"]:checked').length; - if (count === $(dialog_id+ ' .conflict').length) { + var count = $(dialog_id).find('.conflict:not(.template) .original input[type="checkbox"]:checked').length; + if (count === $(dialog_id+ ' .conflict:not(.template)').length) { $(dialog_id).find('.allexistingfiles').prop('checked', true); $(dialog_id).find('.allexistingfiles + .count').text(t('files','(all selected)')); } else if (count > 0) { |