From f828b51ede75ef25db3859156691fb582b76fe39 Mon Sep 17 00:00:00 2001 From: kondou Date: Sat, 12 Oct 2013 17:28:20 +0200 Subject: Hide files list header, when theres no files to see --- apps/files/js/filelist.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'apps/files/js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index a9297996778..7a0cfa83255 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -12,6 +12,7 @@ var FileList={ isCreatable = (permissions & OC.PERMISSION_CREATE) !== 0; $fileList.empty().html(fileListHtml); $('#emptycontent').toggleClass('hidden', !isCreatable || $fileList.find('tr').length > 0); + $('#filestable th').toggleClass('hidden', !(!isCreatable || $fileList.find('tr').length > 0)); $fileList.find('tr').each(function () { FileActions.display($(this).children('td.filename')); }); @@ -257,6 +258,7 @@ var FileList={ FileList.updateFileSummary(); if($('tr[data-file]').length==0){ $('#emptycontent').removeClass('hidden'); + $('#filescontent th').addClass('hidden'); } }, insertElement:function(name,type,element){ @@ -287,6 +289,7 @@ var FileList={ $('#fileList').append(element); } $('#emptycontent').addClass('hidden'); + $('#filestable th').removeClass('hidden'); FileList.updateFileSummary(); }, loadingDone:function(name, id){ -- cgit v1.2.3 From 1c611a3dfb16c67a940ad74625bda54e4b593a09 Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Fri, 18 Oct 2013 10:57:10 +0200 Subject: give getSelectedFilesTrash() a unique name for the trash.js to avoid confusions with the same function in files.js --- apps/files/js/files.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/files.js b/apps/files/js/files.js index a35ed4add8c..c3a8d81b50d 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -301,7 +301,7 @@ $(document).ready(function() { }); $('.download').click('click',function(event) { - var files=getSelectedFiles('name'); + var files=getSelectedFilesTrash('name'); var fileslist = JSON.stringify(files); var dir=$('#dir').val()||'/'; OC.Notification.show(t('files','Your download is being prepared. This might take some time if the files are big.')); @@ -315,7 +315,7 @@ $(document).ready(function() { }); $('.delete-selected').click(function(event) { - var files=getSelectedFiles('name'); + var files=getSelectedFilesTrash('name'); event.preventDefault(); FileList.do_delete(files); return false; @@ -433,7 +433,7 @@ var createDragShadow = function(event){ $(event.target).parents('tr').find('td input:first').prop('checked',true); } - var selectedFiles = getSelectedFiles(); + var selectedFiles = getSelectedFilesTrash(); if (!isDragSelected && selectedFiles.length == 1) { //revert the selection @@ -562,7 +562,7 @@ var crumbDropOptions={ } function procesSelection(){ - var selected=getSelectedFiles(); + var selected=getSelectedFilesTrash(); var selectedFiles=selected.filter(function(el){return el.type=='file'}); var selectedFolders=selected.filter(function(el){return el.type=='dir'}); if(selectedFiles.length==0 && selectedFolders.length==0) { @@ -607,7 +607,7 @@ function procesSelection(){ * if property is set, an array with that property for each file is returnd * if it's ommited an array of objects with all properties is returned */ -function getSelectedFiles(property){ +function getSelectedFilesTrash(property){ var elements=$('td.filename input:checkbox:checked').parent().parent(); var files=[]; elements.each(function(i,element){ -- cgit v1.2.3 From 60b25a2e975c6824b3d5a5d4c14960a253aaa705 Mon Sep 17 00:00:00 2001 From: kondou Date: Sun, 20 Oct 2013 22:47:44 +0200 Subject: Create FileList.updateEmptyContent() and fix not showing emptycontent after deletion --- apps/files/js/filelist.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 7a0cfa83255..5d1b797ab5e 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -7,12 +7,9 @@ var FileList={ }); }, update:function(fileListHtml) { - var $fileList = $('#fileList'), - permissions = $('#permissions').val(), - isCreatable = (permissions & OC.PERMISSION_CREATE) !== 0; + var $fileList = $('#fileList'); $fileList.empty().html(fileListHtml); - $('#emptycontent').toggleClass('hidden', !isCreatable || $fileList.find('tr').length > 0); - $('#filestable th').toggleClass('hidden', !(!isCreatable || $fileList.find('tr').length > 0)); + FileList.updateEmptyContent(); $fileList.find('tr').each(function () { FileActions.display($(this).children('td.filename')); }); @@ -508,6 +505,7 @@ var FileList={ procesSelection(); checkTrashStatus(); FileList.updateFileSummary(); + FileList.updateEmptyContent(); } else { $.each(files,function(index,file) { var deleteAction = $('tr').filterAttr('data-file',files[i]).children("td.date").children(".action.delete"); @@ -621,6 +619,13 @@ var FileList={ } } }, + updateEmptyContent: function(){ + var $fileList = $('#fileList'); + var permissions = $('#permissions').val(); + var isCreatable = (permissions & OC.PERMISSION_CREATE) !== 0; + $('#emptycontent').toggleClass('hidden', !isCreatable || $fileList.find('tr').length > 0); + $('#filestable th').toggleClass('hidden', !(!isCreatable || $fileList.find('tr').length > 0)); + }, showMask: function(){ // in case one was shown before var $mask = $('#content .mask'); -- cgit v1.2.3 From 40cc57ab3e34a99ec28485fd76a7b052b0da17aa Mon Sep 17 00:00:00 2001 From: kondou Date: Sun, 20 Oct 2013 22:55:49 +0200 Subject: Improve updateEmptyContent logic --- apps/files/js/filelist.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apps/files/js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 5d1b797ab5e..9b66a2e69ae 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -624,7 +624,7 @@ var FileList={ var permissions = $('#permissions').val(); var isCreatable = (permissions & OC.PERMISSION_CREATE) !== 0; $('#emptycontent').toggleClass('hidden', !isCreatable || $fileList.find('tr').length > 0); - $('#filestable th').toggleClass('hidden', !(!isCreatable || $fileList.find('tr').length > 0)); + $('#filestable th').toggleClass('hidden', isCreatable && $fileList.find('tr').length === 0); }, showMask: function(){ // in case one was shown before -- cgit v1.2.3 From 7864a3bf07fab1183bc003e771ee365fc1376c73 Mon Sep 17 00:00:00 2001 From: kondou Date: Mon, 21 Oct 2013 17:41:03 +0200 Subject: Fix shared folder still showing fileheader --- apps/files/index.php | 2 +- apps/files/js/filelist.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/index.php b/apps/files/index.php index 7db3fd96380..22240deadca 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -119,7 +119,7 @@ if ($needUpgrade) { } $isCreatable = \OC\Files\Filesystem::isCreatable($dir . '/'); - $emptyContent = (!isset($files) or !$isCreatable or count($files) > 0 or $ajaxLoad); + $emptyContent = (!isset($files) or count($files) > 0 or $ajaxLoad); OCP\Util::addscript('files', 'fileactions'); OCP\Util::addscript('files', 'files'); diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 9b66a2e69ae..20930b2dce8 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -623,8 +623,8 @@ var FileList={ var $fileList = $('#fileList'); var permissions = $('#permissions').val(); var isCreatable = (permissions & OC.PERMISSION_CREATE) !== 0; - $('#emptycontent').toggleClass('hidden', !isCreatable || $fileList.find('tr').length > 0); - $('#filestable th').toggleClass('hidden', isCreatable && $fileList.find('tr').length === 0); + $('#emptycontent').toggleClass('hidden', $fileList.find('tr').length > 0); + $('#filestable th').toggleClass('hidden', $fileList.find('tr').length === 0); }, showMask: function(){ // in case one was shown before -- cgit v1.2.3 From 732e7db31902e88e4ca6582c56af14b5e3d2bc39 Mon Sep 17 00:00:00 2001 From: kondou Date: Mon, 21 Oct 2013 19:49:09 +0200 Subject: Fix mind-boggling emptycontent logic --- apps/files/index.php | 4 +++- apps/files/js/filelist.js | 2 +- apps/files/templates/index.php | 8 ++++---- 3 files changed, 8 insertions(+), 6 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/index.php b/apps/files/index.php index 22240deadca..c2c0ba02a99 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -119,7 +119,8 @@ if ($needUpgrade) { } $isCreatable = \OC\Files\Filesystem::isCreatable($dir . '/'); - $emptyContent = (!isset($files) or count($files) > 0 or $ajaxLoad); + $fileHeader = (!isset($files) or count($files) > 0); + $emptyContent = $isCreatable or $fileHeader or $ajaxLoad; OCP\Util::addscript('files', 'fileactions'); OCP\Util::addscript('files', 'files'); @@ -145,6 +146,7 @@ if ($needUpgrade) { $tmpl->assign('disableSharing', false); $tmpl->assign('ajaxLoad', $ajaxLoad); $tmpl->assign('emptyContent', $emptyContent); + $tmpl->assign('fileHeader', $fileHeader); $tmpl->printPage(); } diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 20930b2dce8..17e7fb6440e 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -623,7 +623,7 @@ var FileList={ var $fileList = $('#fileList'); var permissions = $('#permissions').val(); var isCreatable = (permissions & OC.PERMISSION_CREATE) !== 0; - $('#emptycontent').toggleClass('hidden', $fileList.find('tr').length > 0); + $('#emptycontent').toggleClass('hidden', !isCreatable || $fileList.find('tr').length > 0); $('#filestable th').toggleClass('hidden', $fileList.find('tr').length === 0); }, showMask: function(){ diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index af9cdffa5a3..c1373c3e9d5 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -42,14 +42,14 @@ -
class="hidden">t('Nothing in here. Upload something!'))?>
+
class="hidden">t('Nothing in here. Upload something!'))?>
- - - +
class="hidden" id='headerName'> + class="hidden" id='headerName'>
@@ -65,8 +65,8 @@
class="hidden" id="headerSize">t('Size')); ?>class="hidden" id="headerDate"> + class="hidden" id="headerSize">t('Size')); ?>class="hidden" id="headerDate"> t( 'Modified' )); ?> -- cgit v1.2.3 From 3bb7cf939ec56f97a5fb01c16282ed7d831e338f Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Tue, 22 Oct 2013 12:08:05 +0200 Subject: Fixed ugly white space while loading file thumbnail Preview images are now pre-loaded before being set on the file element. This fixes #5135 and prevents a white space to be displayed while the thumbnails is being loaded. --- apps/files/js/files.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/files.js b/apps/files/js/files.js index c3a8d81b50d..ec2dc7c62ea 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -663,8 +663,16 @@ function lazyLoadPreview(path, mime, ready, width, height) { $.get(previewURL, function() { previewURL = previewURL.replace('(', '%28'); previewURL = previewURL.replace(')', '%29'); - //set preview thumbnail URL - ready(previewURL + '&reload=true'); + previewURL += '&reload=true'; + + // preload image to prevent delay + // this will make the browser cache the image + var img = new Image(); + img.onload = function(){ + //set preview thumbnail URL + ready(previewURL); + } + img.src = previewURL; }); }); } -- cgit v1.2.3 From 263f8bebfeb6be30a5dc327689dd1c1739f492e5 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Tue, 15 Oct 2013 17:59:59 +0200 Subject: Added FileList.setViewerMode to hide controls Some files app embed themselves under the controls (like the text editor). The new method FileList.setViewerMode() makes it possible to properly show/hide the control buttons using the correct permissions. Apps using this approach must call setViewerMode(true) when starting and setViewerMode(false) upon closing to restore the controls. This is needed for #5284 --- apps/files/js/filelist.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'apps/files/js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 84ff1093253..39b27ec9f3a 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -251,6 +251,31 @@ var FileList={ $('.creatable').toggleClass('hidden', !isCreatable); $('.notCreatable').toggleClass('hidden', isCreatable); }, + /** + * Shows/hides action buttons + * + * @param show true for enabling, false for disabling + */ + showActions: function(show){ + $('.actions,#file_action_panel').toggleClass('hidden', !show); + if (show){ + // make sure to display according to permissions + var permissions = $('#permissions').val(); + var isCreatable = (permissions & OC.PERMISSION_CREATE) !== 0; + $('.creatable').toggleClass('hidden', !isCreatable); + $('.notCreatable').toggleClass('hidden', isCreatable); + } + }, + /** + * Enables/disables viewer mode. + * In viewer mode, apps can embed themselves under the controls bar. + * In viewer mode, the actions of the file list will be hidden. + * @param show true for enabling, false for disabling + */ + setViewerMode: function(show){ + this.showActions(!show); + $('#filestable').toggleClass('hidden', show); + }, remove:function(name){ $('tr').filterAttr('data-file',name).find('td.filename').draggable('destroy'); $('tr').filterAttr('data-file',name).remove(); -- cgit v1.2.3