summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Gapczynski <mtgap@owncloud.com>2013-03-03 11:49:04 -0800
committerMichael Gapczynski <mtgap@owncloud.com>2013-03-03 11:49:04 -0800
commit0488968443ee6d94f0695cb5189f5ea9b4d343b3 (patch)
treee8b2cdbabb7b4c3f04a0286a163e1835c33f58d7
parent3021d9b146700ed9b54c2fac391183361222668d (diff)
parent620ddd3baacbfab759bff90c9443a2353fe529f4 (diff)
downloadnextcloud-server-0488968443ee6d94f0695cb5189f5ea9b4d343b3.tar.gz
nextcloud-server-0488968443ee6d94f0695cb5189f5ea9b4d343b3.zip
Merge pull request #2034 from owncloud/fix_bug47
Fix #47 - Duplicate files create a (2) when multiples are uploaded
-rw-r--r--apps/files/js/filelist.js37
-rw-r--r--core/js/js.js89
2 files changed, 68 insertions, 58 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index f5f3f3ba0c6..1db54f45bb8 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -246,14 +246,17 @@ var FileList={
},
checkName:function(oldName, newName, isNewFile) {
if (isNewFile || $('tr').filterAttr('data-file', newName).length > 0) {
- $('#notification').data('oldName', oldName);
- $('#notification').data('newName', newName);
- $('#notification').data('isNewFile', isNewFile);
- if (isNewFile) {
- OC.Notification.showHtml(t('files', '{new_name} already exists', {new_name: escapeHTML(newName)})+'<span class="replace">'+t('files', 'replace')+'</span><span class="suggest">'+t('files', 'suggest name')+'</span><span class="cancel">'+t('files', 'cancel')+'</span>');
- } else {
- OC.Notification.showHtml(t('files', '{new_name} already exists', {new_name: escapeHTML(newName)})+'<span class="replace">'+t('files', 'replace')+'</span><span class="cancel">'+t('files', 'cancel')+'</span>');
- }
+ var html;
+ if(isNewFile){
+ html = t('files', '{new_name} already exists', {new_name: escapeHTML(newName)})+'<span class="replace">'+t('files', 'replace')+'</span><span class="suggest">'+t('files', 'suggest name')+'</span>&nbsp;<span class="cancel">'+t('files', 'cancel')+'</span>';
+ }else{
+ html = t('files', '{new_name} already exists', {new_name: escapeHTML(newName)})+'<span class="replace">'+t('files', 'replace')+'</span><span class="cancel">'+t('files', 'cancel')+'</span>';
+ }
+ html = $('<span>' + html + '</span>');
+ html.attr('data-oldName', oldName);
+ html.attr('data-newName', newName);
+ html.attr('data-isNewFile', isNewFile);
+ OC.Notification.showHtml(html);
return true;
} else {
return false;
@@ -291,9 +294,7 @@ var FileList={
FileList.lastAction = function() {
FileList.finishReplace();
};
- if (isNewFile) {
- OC.Notification.showHtml(t('files', 'replaced {new_name}', {new_name: newName})+'<span class="undo">'+t('files', 'undo')+'</span>');
- } else {
+ if (!isNewFile) {
OC.Notification.showHtml(t('files', 'replaced {new_name} with {old_name}', {new_name: newName}, {old_name: oldName})+'<span class="undo">'+t('files', 'undo')+'</span>');
}
},
@@ -376,19 +377,19 @@ $(document).ready(function(){
FileList.lastAction = null;
OC.Notification.hide();
});
- $('#notification').on('click', '.replace', function() {
+ $('#notification:first-child').on('click', '.replace', function() {
OC.Notification.hide(function() {
- FileList.replace($('#notification').data('oldName'), $('#notification').data('newName'), $('#notification').data('isNewFile'));
+ FileList.replace($('#notification > span').attr('data-oldName'), $('#notification > span').attr('data-newName'), $('#notification > span').attr('data-isNewFile'));
});
});
- $('#notification').on('click', '.suggest', function() {
- $('tr').filterAttr('data-file', $('#notification').data('oldName')).show();
+ $('#notification:first-child').on('click', '.suggest', function() {
+ $('tr').filterAttr('data-file', $('#notification > span').attr('data-oldName')).show();
OC.Notification.hide();
});
- $('#notification').on('click', '.cancel', function() {
- if ($('#notification').data('isNewFile')) {
+ $('#notification:first-child').on('click', '.cancel', function() {
+ if ($('#notification > span').attr('data-isNewFile')) {
FileList.deleteCanceled = false;
- FileList.deleteFiles = [$('#notification').data('oldName')];
+ FileList.deleteFiles = [$('#notification > span').attr('data-oldName')];
}
});
FileList.useUndo=(window.onbeforeunload)?true:false;
diff --git a/core/js/js.js b/core/js/js.js
index 46dd273b068..582d1f808d7 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -1,7 +1,7 @@
/**
* Disable console output unless DEBUG mode is enabled.
* Add
- * define('DEBUG', true);
+ * define('DEBUG', true);
* To the end of config/config.php to enable debug mode.
* The undefined checks fix the broken ie8 console
*/
@@ -44,13 +44,13 @@ function t(app,text, vars){
}
}
var _build = function (text, vars) {
- return text.replace(/{([^{}]*)}/g,
- function (a, b) {
- var r = vars[b];
- return typeof r === 'string' || typeof r === 'number' ? r : a;
- }
- );
- };
+ return text.replace(/{([^{}]*)}/g,
+ function (a, b) {
+ var r = vars[b];
+ return typeof r === 'string' || typeof r === 'number' ? r : a;
+ }
+ );
+ };
if( typeof( t.cache[app][text] ) !== 'undefined' ){
if(typeof vars === 'object') {
return _build(t.cache[app][text], vars);
@@ -274,7 +274,7 @@ var OC={
var popup = $('#appsettings_popup');
if(popup.length == 0) {
$('body').prepend('<div class="popup hidden" id="appsettings_popup"></div>');
- popup = $('#appsettings_popup');
+ popup = $('#appsettings_popup');
popup.addClass(settings.hasClass('topright') ? 'topright' : 'bottomleft');
}
if(popup.is(':visible')) {
@@ -317,35 +317,44 @@ OC.addStyle.loaded=[];
OC.addScript.loaded=[];
OC.Notification={
- getDefaultNotificationFunction: null,
- setDefault: function(callback) {
- OC.Notification.getDefaultNotificationFunction = callback;
- },
- hide: function(callback) {
- $("#notification").text('');
- $('#notification').fadeOut('400', function(){
- if (OC.Notification.isHidden()) {
- if (OC.Notification.getDefaultNotificationFunction) {
- OC.Notification.getDefaultNotificationFunction.call();
- }
- }
- if (callback) {
- callback.call();
- }
- });
- },
- showHtml: function(html) {
- var notification = $('#notification');
- notification.hide();
- notification.html(html);
- notification.fadeIn().css("display","inline");
- },
- show: function(text) {
- var notification = $('#notification');
- notification.hide();
- notification.text(text);
- notification.fadeIn().css("display","inline");
- },
+ queuedNotifications: [],
+ getDefaultNotificationFunction: null,
+ setDefault: function(callback) {
+ OC.Notification.getDefaultNotificationFunction = callback;
+ },
+ hide: function(callback) {
+ $('#notification').fadeOut('400', function(){
+ if (OC.Notification.isHidden()) {
+ if (OC.Notification.getDefaultNotificationFunction) {
+ OC.Notification.getDefaultNotificationFunction.call();
+ }
+ }
+ if (callback) {
+ callback.call();
+ }
+ $('#notification').empty();
+ if(OC.Notification.queuedNotifications.length > 0){
+ OC.Notification.showHtml(OC.Notification.queuedNotifications[0]);
+ OC.Notification.queuedNotifications.shift();
+ }
+ });
+ },
+ showHtml: function(html) {
+ if(($('#notification').filter('span.undo').length == 1) || OC.Notification.isHidden()){
+ $('#notification').html(html);
+ $('#notification').fadeIn().css("display","inline");
+ }else{
+ OC.Notification.queuedNotifications.push(html);
+ }
+ },
+ show: function(text) {
+ if(($('#notification').filter('span.undo').length == 1) || OC.Notification.isHidden()){
+ $('#notification').html(html);
+ $('#notification').fadeIn().css("display","inline");
+ }else{
+ OC.Notification.queuedNotifications.push($(text).html());
+ }
+ },
isHidden: function() {
return ($("#notification").text() === '');
}
@@ -548,7 +557,7 @@ function replaceSVG(){
*/
function object(o) {
function F() {}
- F.prototype = o;
+ F.prototype = o;
return new F();
}
@@ -829,4 +838,4 @@ function sessionHeartBeat(){
$.post(url);
}, 900000);
});
-} \ No newline at end of file
+}