diff options
Diffstat (limited to 'apps/files/js')
-rw-r--r-- | apps/files/js/file-upload.js | 252 | ||||
-rw-r--r-- | apps/files/js/fileactions.js | 14 | ||||
-rw-r--r-- | apps/files/js/filelist.js | 141 | ||||
-rw-r--r-- | apps/files/js/files.js | 240 | ||||
-rw-r--r-- | apps/files/js/keyboardshortcuts.js | 6 |
5 files changed, 303 insertions, 350 deletions
diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js index ec8c97ff457..be3d7e08aff 100644 --- a/apps/files/js/file-upload.js +++ b/apps/files/js/file-upload.js @@ -544,7 +544,6 @@ $(document).ready(function() { return t('files', 'File upload is in progress. Leaving the page now will cancel the upload.'); } }); - //add multiply file upload attribute to all browsers except konqueror (which crashes when it's used) if(navigator.userAgent.search(/konqueror/i) === -1) { $('#file_upload_start').attr('multiple', 'multiple'); @@ -582,138 +581,147 @@ $(document).ready(function() { } }); }); - $('#new li').click(function() { - if($(this).children('p').length === 0) { + $('#new').click(function(event){ + event.stopPropagation(); + }); + $('#new>a').click(function(){ + $('#new>ul').toggle(); + $('#new').toggleClass('active'); + }); + $('#new li').click(function(){ + if($(this).children('p').length==0){ return; } - $('#new li').each(function(i, element) { - if($(element).children('p').length === 0) { - $(element).children('form').remove(); - $(element).append('<p>' + $(element).data('text') + '</p>'); - } - }); + $('#new li').each(function(i, element) { + if($(element).children('p').length === 0) { + $(element).children('form').remove(); + $(element).append('<p>' + $(element).data('text') + '</p>'); + } + }); - var type = $(this).data('type'); - var text = $(this).children('p').text(); - $(this).data('text', text); - $(this).children('p').remove(); - var form = $('<form></form>'); - var input = $('<input>'); - form.append(input); - $(this).append(form); - input.focus(); - form.submit(function(event) { - event.stopPropagation(); - event.preventDefault(); - var newname=input.val(); - if(type === 'web' && newname.length === 0) { - OC.Notification.show(t('files', 'URL cannot be empty.')); - return false; - } else if (type !== 'web' && !Files.isFileNameValid(newname)) { - return false; - } else if( type === 'folder' && $('#dir').val() === '/' && newname === 'Shared') { - OC.Notification.show(t('files', 'Invalid folder name. Usage of \'Shared\' is reserved by ownCloud')); - return false; - } - if (FileList.lastAction) { - FileList.lastAction(); - } - var name = getUniqueName(newname); - if (newname !== name) { - FileList.checkName(name, newname, true); - var hidden = true; - } else { - var hidden = false; - } - switch(type) { - case 'file': - $.post( - OC.filePath('files', 'ajax', 'newfile.php'), - {dir:$('#dir').val(), filename:name}, - function(result) { - if (result.status === 'success') { - var date = new Date(); - FileList.addFile(name, 0, date, false, hidden); - var tr = $('tr').filterAttr('data-file', name); - tr.attr('data-mime', result.data.mime); - tr.attr('data-id', result.data.id); - getMimeIcon(result.data.mime, function(path) { - tr.find('td.filename').attr('style', 'background-image:url('+path+')'); - }); - } else { - OC.dialogs.alert(result.data.message, t('core', 'Error')); + var type = $(this).data('type'); + var text = $(this).children('p').text(); + $(this).data('text', text); + $(this).children('p').remove(); + var form = $('<form></form>'); + var input = $('<input>'); + form.append(input); + $(this).append(form); + input.focus(); + form.submit(function(event) { + event.stopPropagation(); + event.preventDefault(); + var newname=input.val(); + if(type === 'web' && newname.length === 0) { + OC.Notification.show(t('files', 'URL cannot be empty.')); + return false; + } else if (type !== 'web' && !Files.isFileNameValid(newname)) { + return false; + } else if( type === 'folder' && $('#dir').val() === '/' && newname === 'Shared') { + OC.Notification.show(t('files', 'Invalid folder name. Usage of \'Shared\' is reserved by ownCloud')); + return false; + } + if (FileList.lastAction) { + FileList.lastAction(); + } + var name = getUniqueName(newname); + if (newname !== name) { + FileList.checkName(name, newname, true); + var hidden = true; + } else { + var hidden = false; + } + switch(type) { + case 'file': + $.post( + OC.filePath('files', 'ajax', 'newfile.php'), + {dir:$('#dir').val(), filename:name}, + function(result) { + if (result.status === 'success') { + var date = new Date(); + FileList.addFile(name, 0, date, false, hidden); + var tr = $('tr').filterAttr('data-file', name); + tr.attr('data-size',result.data.size); + tr.attr('data-mime', result.data.mime); + tr.attr('data-id', result.data.id); + tr.find('.filesize').text(humanFileSize(result.data.size)); + var path = getPathForPreview(name); + lazyLoadPreview(path, result.data.mime, function(previewpath){ + tr.find('td.filename').attr('style','background-image:url('+previewpath+')'); + }); + } else { + OC.dialogs.alert(result.data.message, t('core', 'Error')); + } } - } - ); - break; - case 'folder': - $.post( - OC.filePath('files', 'ajax', 'newfolder.php'), - {dir:$('#dir').val(), foldername:name}, - function(result) { - if (result.status === 'success') { - var date = new Date(); - FileList.addDir(name, 0, date, hidden); - var tr = $('tr').filterAttr('data-file', name); - tr.attr('data-id', result.data.id); - } else { - OC.dialogs.alert(result.data.message, t('core', 'Error')); + ); + break; + case 'folder': + $.post( + OC.filePath('files', 'ajax', 'newfolder.php'), + {dir:$('#dir').val(), foldername:name}, + function(result) { + if (result.status === 'success') { + var date = new Date(); + FileList.addDir(name, 0, date, hidden); + var tr = $('tr').filterAttr('data-file', name); + tr.attr('data-id', result.data.id); + } else { + OC.dialogs.alert(result.data.message, t('core', 'Error')); + } } + ); + break; + case 'web': + if (name.substr(0, 8) !== 'https://' && name.substr(0, 7) !== 'http://') { + name = 'http://' + name; } - ); - break; - case 'web': - if (name.substr(0, 8) !== 'https://' && name.substr(0, 7) !== 'http://') { - name = 'http://' + name; - } - var localName = name; - if(localName.substr(localName.length-1, 1) === '/') { //strip / - localName = localName.substr(0, localName.length-1); - } - if (localName.indexOf('/')) { //use last part of url - localName = localName.split('/').pop(); - } else { //or the domain - localName = (localName.match(/:\/\/(.[^\/]+)/)[1]).replace('www.', ''); - } - localName = getUniqueName(localName); - //IE < 10 does not fire the necessary events for the progress bar. - if ($('html.lte9').length > 0) { - } else { - $('#uploadprogressbar').progressbar({value:0}); - $('#uploadprogressbar').fadeIn(); - } + var localName = name; + if(localName.substr(localName.length-1, 1) === '/') { //strip / + localName = localName.substr(0, localName.length-1); + } + if (localName.indexOf('/')) { //use last part of url + localName = localName.split('/').pop(); + } else { //or the domain + localName = (localName.match(/:\/\/(.[^\/]+)/)[1]).replace('www.', ''); + } + localName = getUniqueName(localName); - var eventSource = new OC.EventSource( - OC.filePath('files', 'ajax', 'newfile.php'), - {dir:$('#dir').val(), source:name, filename:localName} - ); - eventSource.listen('progress', function(progress) { //IE < 10 does not fire the necessary events for the progress bar. - if($('html.lte9').length > 0) { - } else { - $('#uploadprogressbar').progressbar('value', progress); + if($('html.lte9').length === 0) { + $('#uploadprogressbar').progressbar({value:0}); + $('#uploadprogressbar').fadeIn(); } - }); - eventSource.listen('success', function(data) { - var mime = data.mime; - var size = data.size; - var id = data.id; - $('#uploadprogressbar').fadeOut(); - var date = new Date(); - FileList.addFile(localName, size, date, false, hidden); - var tr = $('tr').filterAttr('data-file', localName); - tr.data('mime', mime).data('id', id); - tr.attr('data-id', id); - getMimeIcon(mime, function(path) { - tr.find('td.filename').attr('style', 'background-image:url(' + path + ')'); + var eventSource = new OC.EventSource( + OC.filePath('files', 'ajax', 'newfile.php'), + {dir:$('#dir').val(), source:name, filename:localName} + ); + eventSource.listen('progress',function(progress){ + //IE < 10 does not fire the necessary events for the progress bar. + if($('html.lte9').length === 0) { + $('#uploadprogressbar').progressbar('value', progress); + } + }); + eventSource.listen('success', function(data) { + var mime = data.mime; + var size = data.size; + var id = data.id; + $('#uploadprogressbar').fadeOut(); + var date = new Date(); + FileList.addFile(localName, size, date, false, hidden); + var tr = $('tr').filterAttr('data-file', localName); + tr.data('mime', mime).data('id', id); + tr.attr('data-id', id); + var path = $('#dir').val()+'/'+localName; + lazyLoadPreview(path, mime, function(previewpath){ + tr.find('td.filename').attr('style','background-image:url('+previewpath+')'); + }); + }); + eventSource.listen('error', function(error) { + $('#uploadprogressbar').fadeOut(); + alert(error); }); - }); - eventSource.listen('error', function(error) { - $('#uploadprogressbar').fadeOut(); - alert(error); - }); - break; + break; } var li = form.parent(); form.remove(); diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 277abcfdb15..703e543bf4b 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -65,7 +65,7 @@ var FileActions = { FileActions.currentFile = parent; var actions = FileActions.get(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions()); var file = FileActions.getCurrentFile(); - if ($('tr').filterAttr('data-file', file).data('renaming')) { + if ($('tr[data-file="'+file+'"]').data('renaming')) { return; } parent.children('a.name').append('<span class="fileactions" />'); @@ -123,14 +123,11 @@ var FileActions = { img = img(file); } if (typeof trashBinApp !== 'undefined' && trashBinApp) { - var html = '<a href="#" original-title="' + t('files', 'Delete permanently') + '" class="action delete" />'; + var html = '<a href="#" original-title="' + t('files', 'Delete permanently') + '" class="action delete delete-icon" />'; } else { - var html = '<a href="#" original-title="' + t('files', 'Delete') + '" class="action delete" />'; + var html = '<a href="#" class="action delete delete-icon" />'; } var element = $(html); - if (img) { - element.append($('<img class ="svg" src="' + img + '"/>')); - } element.data('action', actions['Delete']); element.on('click', {a: null, elem: parent, actionFunc: actions['Delete']}, actionHandler); parent.parent().children().last().append(element); @@ -164,10 +161,11 @@ $(document).ready(function () { window.location = OC.filePath('files', 'ajax', 'download.php') + '?files=' + encodeURIComponent(filename) + '&dir=' + encodeURIComponent($('#dir').val()); }); } - $('#fileList tr').each(function () { FileActions.display($(this).children('td.filename')); }); + + $('#fileList').trigger(jQuery.Event("fileActionsReady")); }); @@ -200,7 +198,7 @@ FileActions.register('all', 'Rename', OC.PERMISSION_UPDATE, function () { FileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename) { - var dir = $('#dir').val() + var dir = $('#dir').val(); if (dir !== '/') { dir = dir + '/'; } diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index eb57672e464..77ae039f807 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -15,9 +15,10 @@ var FileList={ // filename td td = $('<td></td>').attr({ "class": "filename", - "style": 'background-image:url('+iconurl+')' + "style": 'background-image:url('+iconurl+'); background-size: 32px;' }); - td.append('<input type="checkbox" />'); + var rand = Math.random().toString(16).slice(2); + td.append('<input id="select-'+rand+'" type="checkbox" /><label for="select-'+rand+'"></label>'); var link_elem = $('<a></a>').attr({ "class": "name", "href": linktarget @@ -144,8 +145,9 @@ var FileList={ remove:function(name){ $('tr').filterAttr('data-file',name).find('td.filename').draggable('destroy'); $('tr').filterAttr('data-file',name).remove(); + FileList.updateFileSummary(); if($('tr[data-file]').length===0){ - $('#emptyfolder').show(); + $('#emptycontent').show(); } }, insertElement:function(name,type,element){ @@ -175,7 +177,8 @@ var FileList={ }else{ $('#fileList').append(element); } - $('#emptyfolder').hide(); + $('#emptycontent').hide(); + FileList.updateFileSummary(); }, loadingDone:function(name, id){ var mime, tr=$('tr').filterAttr('data-file',name); @@ -185,8 +188,9 @@ var FileList={ if (id) { tr.attr('data-id', id); } - getMimeIcon(mime,function(path){ - tr.find('td.filename').attr('style','background-image:url('+path+')'); + var path = getPathForPreview(name); + lazyLoadPreview(path, mime, function(previewpath){ + tr.find('td.filename').attr('style','background-image:url('+previewpath+')'); }); tr.find('td.filename').draggable(dragOptions); }, @@ -198,7 +202,7 @@ var FileList={ tr=$('tr').filterAttr('data-file',name); tr.data('renaming',true); td=tr.children('td.filename'); - input=$('<input class="filename"/>').val(name); + input=$('<input type="text" class="filename"/>').val(name); form=$('<form></form>'); form.append(input); td.children('a.name').hide(); @@ -371,9 +375,7 @@ var FileList={ } for (var i=0; i<files.length; i++) { var deleteAction = $('tr').filterAttr('data-file',files[i]).children("td.date").children(".action.delete"); - var oldHTML = deleteAction.html(); - var newHTML = '<img class="move2trash" data-action="Delete" title="'+t('files', 'perform delete operation')+'" src="'+ OC.imagePath('core', 'loading.gif') +'"></a>'; - deleteAction.html(newHTML); + deleteAction.removeClass('delete-icon').addClass('progress-icon'); } // Finish any existing actions if (FileList.lastAction) { @@ -393,13 +395,119 @@ var FileList={ }); procesSelection(); checkTrashStatus(); + FileList.updateFileSummary(); } else { $.each(files,function(index,file) { - var deleteAction = $('tr').filterAttr('data-file',file).children("td.date").children(".move2trash"); - deleteAction.html(oldHTML); + var deleteAction = $('tr').filterAttr('data-file',files[i]).children("td.date").children(".action.delete"); + deleteAction.removeClass('progress-icon').addClass('delete-icon'); }); } }); + }, + createFileSummary: function() { + if( $('#fileList tr').length > 0 ) { + var totalDirs = 0; + var totalFiles = 0; + var totalSize = 0; + + // Count types and filesize + $.each($('tr[data-file]'), function(index, value) { + if ($(value).data('type') === 'dir') { + totalDirs++; + } else if ($(value).data('type') === 'file') { + totalFiles++; + } + totalSize += parseInt($(value).data('size')); + }); + + // Get translations + var directoryInfo = n('files', '%n folder', '%n folders', totalDirs); + var fileInfo = n('files', '%n file', '%n files', totalFiles); + + var infoVars = { + dirs: '<span class="dirinfo">'+directoryInfo+'</span><span class="connector">', + files: '</span><span class="fileinfo">'+fileInfo+'</span>' + } + + var info = t('files', '{dirs} and {files}', infoVars); + + // don't show the filesize column, if filesize is NaN (e.g. in trashbin) + if (isNaN(totalSize)) { + var fileSize = ''; + } else { + var fileSize = '<td class="filesize">'+humanFileSize(totalSize)+'</td>'; + } + + $('#fileList').append('<tr class="summary"><td><span class="info">'+info+'</span></td>'+fileSize+'<td></td></tr>'); + + var $dirInfo = $('.summary .dirinfo'); + var $fileInfo = $('.summary .fileinfo'); + var $connector = $('.summary .connector'); + + // Show only what's necessary, e.g.: no files: don't show "0 files" + if ($dirInfo.html().charAt(0) === "0") { + $dirInfo.hide(); + $connector.hide(); + } + if ($fileInfo.html().charAt(0) === "0") { + $fileInfo.hide(); + $connector.hide(); + } + } + }, + updateFileSummary: function() { + var $summary = $('.summary'); + + // Check if we should remove the summary to show "Upload something" + if ($('#fileList tr').length === 1 && $summary.length === 1) { + $summary.remove(); + } + // If there's no summary create one (createFileSummary checks if there's data) + else if ($summary.length === 0) { + FileList.createFileSummary(); + } + // There's a summary and data -> Update the summary + else if ($('#fileList tr').length > 1 && $summary.length === 1) { + var totalDirs = 0; + var totalFiles = 0; + var totalSize = 0; + $.each($('tr[data-file]'), function(index, value) { + if ($(value).data('type') === 'dir') { + totalDirs++; + } else if ($(value).data('type') === 'file') { + totalFiles++; + } + if ($(value).data('size') !== undefined) { + totalSize += parseInt($(value).data('size')); + } + }); + + var $dirInfo = $('.summary .dirinfo'); + var $fileInfo = $('.summary .fileinfo'); + var $connector = $('.summary .connector'); + + // Substitute old content with new translations + $dirInfo.html(n('files', '%n folder', '%n folders', totalDirs)); + $fileInfo.html(n('files', '%n file', '%n files', totalFiles)); + $('.summary .filesize').html(humanFileSize(totalSize)); + + // Show only what's necessary (may be hidden) + if ($dirInfo.html().charAt(0) === "0") { + $dirInfo.hide(); + $connector.hide(); + } else { + $dirInfo.show(); + } + if ($fileInfo.html().charAt(0) === "0") { + $fileInfo.hide(); + $connector.hide(); + } else { + $fileInfo.show(); + } + if ($dirInfo.html().charAt(0) !== "0" && $fileInfo.html().charAt(0) !== "0") { + $connector.show(); + } + } } }; @@ -507,13 +615,14 @@ $(document).ready(function(){ var currentUploads = parseInt(uploadtext.attr('currentUploads')); currentUploads -= 1; uploadtext.attr('currentUploads', currentUploads); + var translatedText = n('files', 'Uploading %n file', 'Uploading %n files', currentUploads); if(currentUploads === 0) { var img = OC.imagePath('core', 'filetypes/folder.png'); data.context.find('td.filename').attr('style','background-image:url('+img+')'); - uploadtext.text(''); - uploadtext.hide(); + uploadtext.text(translatedText); + uploadtext.show(); } else { - uploadtext.text(currentUploads + ' ' + t('files', 'files uploading')); + uploadtext.text(translatedText); } // update folder size @@ -696,4 +805,6 @@ $(document).ready(function(){ $(window).unload(function (){ $(window).trigger('beforeunload'); }); + + FileList.createFileSummary(); }); diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 53405c7fe7e..9a725fc2077 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -54,9 +54,23 @@ Files={ if (usedSpacePercent > 90) { OC.Notification.show(t('files', 'Your storage is almost full ({usedSpacePercent}%)', {usedSpacePercent: usedSpacePercent})); } + }, + + displayEncryptionWarning: function() { + + if (!OC.Notification.isHidden()) { + return; + } + + var encryptedFiles = $('#encryptedFiles').val(); + if (encryptedFiles === '1') { + OC.Notification.show(t('files_encryption', 'Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files.')); + return; + } } }; $(document).ready(function() { + Files.displayEncryptionWarning(); Files.bindKeyboardShortcuts(document, jQuery); $('#fileList tr').each(function(){ //little hack to set unescape filenames in attribute @@ -225,196 +239,6 @@ $(document).ready(function() { e.preventDefault(); // prevent browser from doing anything, if file isn't dropped in dropZone }); - $.assocArraySize = function(obj) { - // http://stackoverflow.com/a/6700/11236 - var size = 0, key; - for (key in obj) { - if (obj.hasOwnProperty(key)) size++; - } - return size; - }; - - //add multiply file upload attribute to all browsers except konqueror (which crashes when it's used) - if(navigator.userAgent.search(/konqueror/i)==-1){ - $('#file_upload_start').attr('multiple','multiple') - } - - //if the breadcrumb is to long, start by replacing foldernames with '...' except for the current folder - var crumb=$('div.crumb').first(); - while($('div.controls').height()>40 && crumb.next('div.crumb').length>0){ - crumb.children('a').text('...'); - crumb=crumb.next('div.crumb'); - } - //if that isn't enough, start removing items from the breacrumb except for the current folder and it's parent - var crumb=$('div.crumb').first(); - var next=crumb.next('div.crumb'); - while($('div.controls').height()>40 && next.next('div.crumb').length>0){ - crumb.remove(); - crumb=next; - next=crumb.next('div.crumb'); - } - //still not enough, start shorting down the current folder name - var crumb=$('div.crumb>a').last(); - while($('div.controls').height()>40 && crumb.text().length>6){ - var text=crumb.text() - text=text.substr(0,text.length-6)+'...'; - crumb.text(text); - } - - $(document).click(function(){ - $('#new>ul').hide(); - $('#new').removeClass('active'); - $('#new li').each(function(i,element){ - if($(element).children('p').length==0){ - $(element).children('form').remove(); - $(element).append('<p>'+$(element).data('text')+'</p>'); - } - }); - }); - $('#new').click(function(event){ - event.stopPropagation(); - }); - $('#new>a').click(function(){ - $('#new>ul').toggle(); - $('#new').toggleClass('active'); - }); - $('#new li').click(function(){ - if($(this).children('p').length==0){ - return; - } - - $('#new li').each(function(i,element){ - if($(element).children('p').length==0){ - $(element).children('form').remove(); - $(element).append('<p>'+$(element).data('text')+'</p>'); - } - }); - - var type=$(this).data('type'); - var text=$(this).children('p').text(); - $(this).data('text',text); - $(this).children('p').remove(); - var form=$('<form></form>'); - var input=$('<input>'); - form.append(input); - $(this).append(form); - input.focus(); - form.submit(function(event){ - event.stopPropagation(); - event.preventDefault(); - var newname=input.val(); - if(type == 'web' && newname.length == 0) { - OC.Notification.show(t('files', 'URL cannot be empty.')); - return false; - } else if (type != 'web' && !Files.isFileNameValid(newname)) { - return false; - } else if( type == 'folder' && $('#dir').val() == '/' && newname == 'Shared') { - OC.Notification.show(t('files','Invalid folder name. Usage of \'Shared\' is reserved by Owncloud')); - return false; - } - if (FileList.lastAction) { - FileList.lastAction(); - } - var name = getUniqueName(newname); - if (newname != name) { - FileList.checkName(name, newname, true); - var hidden = true; - } else { - var hidden = false; - } - switch(type){ - case 'file': - $.post( - OC.filePath('files','ajax','newfile.php'), - {dir:$('#dir').val(),filename:name}, - function(result){ - if (result.status == 'success') { - var date=new Date(); - FileList.addFile(name,0,date,false,hidden); - var tr=$('tr').filterAttr('data-file',name); - tr.attr('data-mime',result.data.mime); - tr.attr('data-id', result.data.id); - getMimeIcon(result.data.mime,function(path){ - tr.find('td.filename').attr('style','background-image:url('+path+')'); - }); - } else { - OC.dialogs.alert(result.data.message, t('core', 'Error')); - } - } - ); - break; - case 'folder': - $.post( - OC.filePath('files','ajax','newfolder.php'), - {dir:$('#dir').val(),foldername:name}, - function(result){ - if (result.status == 'success') { - var date=new Date(); - FileList.addDir(name,0,date,hidden); - var tr=$('tr').filterAttr('data-file',name); - tr.attr('data-id', result.data.id); - } else { - OC.dialogs.alert(result.data.message, t('core', 'Error')); - } - } - ); - break; - case 'web': - if(name.substr(0,8)!='https://' && name.substr(0,7)!='http://'){ - name='http://'+name; - } - var localName=name; - if(localName.substr(localName.length-1,1)=='/'){//strip / - localName=localName.substr(0,localName.length-1) - } - if(localName.indexOf('/')){//use last part of url - localName=localName.split('/').pop(); - }else{//or the domain - localName=(localName.match(/:\/\/(.[^/]+)/)[1]).replace('www.',''); - } - localName = getUniqueName(localName); - //IE < 10 does not fire the necessary events for the progress bar. - if($('html.lte9').length > 0) { - } else { - $('#uploadprogressbar').progressbar({value:0}); - $('#uploadprogressbar').fadeIn(); - } - - var eventSource=new OC.EventSource(OC.filePath('files','ajax','newfile.php'),{dir:$('#dir').val(),source:name,filename:localName}); - eventSource.listen('progress',function(progress){ - //IE < 10 does not fire the necessary events for the progress bar. - if($('html.lte9').length > 0) { - } else { - $('#uploadprogressbar').progressbar('value',progress); - } - }); - eventSource.listen('success',function(data){ - var mime=data.mime; - var size=data.size; - var id=data.id; - $('#uploadprogressbar').fadeOut(); - var date=new Date(); - FileList.addFile(localName,size,date,false,hidden); - var tr=$('tr').filterAttr('data-file',localName); - tr.data('mime',mime).data('id',id); - tr.attr('data-id', id); - getMimeIcon(mime,function(path){ - tr.find('td.filename').attr('style','background-image:url('+path+')'); - }); - }); - eventSource.listen('error',function(error){ - $('#uploadprogressbar').fadeOut(); - alert(error); - }); - break; - } - var li=form.parent(); - form.remove(); - li.append('<p>'+li.data('text')+'</p>'); - $('#new>a').click(); - }); - }); - //do a background scan if needed scanFiles(); @@ -604,8 +428,9 @@ var createDragShadow = function(event){ if (elem.type === 'dir') { newtr.find('td.filename').attr('style','background-image:url('+OC.imagePath('core', 'filetypes/folder.png')+')'); } else { - getMimeIcon(elem.mime,function(path){ - newtr.find('td.filename').attr('style','background-image:url('+path+')'); + var path = getPathForPreview(elem.name); + lazyLoadPreview(path, elem.mime, function(previewpath){ + newtr.find('td.filename').attr('style','background-image:url('+previewpath+')'); }); } }); @@ -727,21 +552,13 @@ function procesSelection(){ $('#headerSize').text(humanFileSize(totalSize)); var selection=''; if(selectedFolders.length>0){ - if(selectedFolders.length==1){ - selection+=t('files','1 folder'); - }else{ - selection+=t('files','{count} folders',{count: selectedFolders.length}); - } + selection += n('files', '%n folder', '%n folders', selectedFolders.length); if(selectedFiles.length>0){ selection+=' & '; } } if(selectedFiles.length>0){ - if(selectedFiles.length==1){ - selection+=t('files','1 file'); - }else{ - selection+=t('files','{count} files',{count: selectedFiles.length}); - } + selection += n('files', '%n file', '%n files', selectedFiles.length); } $('#headerName>span.name').text(selection); $('#modified').text(''); @@ -789,6 +606,23 @@ function getMimeIcon(mime, ready){ } getMimeIcon.cache={}; +function getPathForPreview(name) { + var path = $('#dir').val() + '/' + name; + return path; +} + +function lazyLoadPreview(path, mime, ready) { + getMimeIcon(mime,ready); + var x = $('#filestable').data('preview-x'); + var y = $('#filestable').data('preview-y'); + var previewURL = OC.Router.generate('core_ajax_preview', {file: encodeURIComponent(path), x:x, y:y}); + $.get(previewURL, function() { + previewURL = previewURL.replace('(','%28'); + previewURL = previewURL.replace(')','%29'); + ready(previewURL + '&reload=true'); + }); +} + function getUniqueName(name){ if($('tr').filterAttr('data-file',name).length>0){ var parts=name.split('.'); @@ -820,4 +654,4 @@ function checkTrashStatus() { $("input[type=button][id=trash]").removeAttr("disabled"); } }); -}
\ No newline at end of file +} diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index cc2b5d42139..9d6c3ae8c33 100644 --- a/apps/files/js/keyboardshortcuts.js +++ b/apps/files/js/keyboardshortcuts.js @@ -131,7 +131,9 @@ var Files = Files || {}; return; } var preventDefault = false; - if ($.inArray(event.keyCode, keys) === -1) keys.push(event.keyCode); + if ($.inArray(event.keyCode, keys) === -1) { + keys.push(event.keyCode); + } if ( $.inArray(keyCodes.n, keys) !== -1 && ($.inArray(keyCodes.cmdFirefox, keys) !== -1 || $.inArray(keyCodes.cmdOpera, keys) !== -1 || $.inArray(keyCodes.leftCmdWebKit, keys) !== -1 || $.inArray(keyCodes.rightCmdWebKit, keys) !== -1 || $.inArray(keyCodes.ctrl, keys) !== -1 || event.ctrlKey)) { preventDefault = true; //new file/folder prevent browser from responding @@ -165,4 +167,4 @@ var Files = Files || {}; removeA(keys, event.keyCode); }); }; -})(Files);
\ No newline at end of file +})(Files); |