diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index f5f3f3ba0c..1db54f45bb 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)})+''+t('files', 'replace')+''+t('files', 'suggest name')+''+t('files', 'cancel')+''); - } else { - OC.Notification.showHtml(t('files', '{new_name} already exists', {new_name: escapeHTML(newName)})+''+t('files', 'replace')+''+t('files', 'cancel')+''); - } + var html; + if(isNewFile){ + html = t('files', '{new_name} already exists', {new_name: escapeHTML(newName)})+''+t('files', 'replace')+''+t('files', 'suggest name')+' '+t('files', 'cancel')+''; + }else{ + html = t('files', '{new_name} already exists', {new_name: escapeHTML(newName)})+''+t('files', 'replace')+''+t('files', 'cancel')+''; + } + html = $('' + html + ''); + 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})+''+t('files', 'undo')+''); - } else { + if (!isNewFile) { OC.Notification.showHtml(t('files', 'replaced {new_name} with {old_name}', {new_name: newName}, {old_name: oldName})+''+t('files', 'undo')+''); } }, @@ -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 46dd273b06..582d1f808d 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(''); - 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 +}