aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/js
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2013-10-23 17:16:16 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2013-10-23 17:16:16 +0200
commit1909288fcb9231006ae7703422f046309635b4e2 (patch)
treea9c1a75169dca9023d629176d9c395433d9d742c /apps/files/js
parentf9bbfad3e561c52cd3a7a9002ed9708a87237dc5 (diff)
parent3d5e229ac5f6f93c4e9a5176eb3fe70b7cae80cf (diff)
downloadnextcloud-server-1909288fcb9231006ae7703422f046309635b4e2.tar.gz
nextcloud-server-1909288fcb9231006ae7703422f046309635b4e2.zip
Merge branch 'master' into fix-sharing-code
Diffstat (limited to 'apps/files/js')
-rw-r--r--apps/files/js/filelist.js41
-rw-r--r--apps/files/js/files.js22
2 files changed, 52 insertions, 11 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 84ff1093253..85bdd509715 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -7,11 +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);
+ FileList.updateEmptyContent();
$fileList.find('tr').each(function () {
FileActions.display($(this).children('td.filename'));
});
@@ -251,12 +249,38 @@ 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();
FileList.updateFileSummary();
if($('tr[data-file]').length==0){
$('#emptycontent').removeClass('hidden');
+ $('#filescontent th').addClass('hidden');
}
},
insertElement:function(name,type,element){
@@ -287,6 +311,7 @@ var FileList={
$('#fileList').append(element);
}
$('#emptycontent').addClass('hidden');
+ $('#filestable th').removeClass('hidden');
FileList.updateFileSummary();
},
loadingDone:function(name, id){
@@ -505,6 +530,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");
@@ -618,6 +644,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', $fileList.find('tr').length === 0);
+ },
showMask: function(){
// in case one was shown before
var $mask = $('#content .mask');
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index a35ed4add8c..ec2dc7c62ea 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){
@@ -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;
});
});
}