diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000000..58230365bf --- /dev/null +++ b/.htaccess @@ -0,0 +1,4 @@ +ErrorDocument 404 //owncloud/templates/404.php +php_value upload_max_filesize 20M +php_value post_max_size 20M +SetEnv htaccessWorking true diff --git a/files/css/files.css b/files/css/files.css index 1cfca68ff5..7c7965ab84 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -4,6 +4,7 @@ { display: none; position: absolute; + right:0px; background-color: #EEE; } @@ -36,7 +37,7 @@ #file_upload_filename { background-image:url(../../img/mimetypes/file.png); } -#file_upload_start {opacity:0;} +#file_upload_start {opacity:0;filter: alpha(opacity = 0);} #file_newfolder_name { background-image:url(../../img/places/folder.png); font-weight: bold; @@ -104,3 +105,10 @@ table td.filename a text-decoration: none; } +.dropArrow{ + height:16px; + width:16px; + display: -moz-inline-box; /* fallback for older firefox versions*/ + display: inline-block; + background-image:url('../../img/drop-arrow.png'); +} \ No newline at end of file diff --git a/files/index.php b/files/index.php index 79f8b67701..d796583a4a 100644 --- a/files/index.php +++ b/files/index.php @@ -36,6 +36,7 @@ if( !OC_USER::isLoggedIn()){ OC_UTIL::addStyle( "files", "files" ); OC_UTIL::addScript( "files", "files" ); OC_UTIL::addScript( 'files', 'filelist' ); +OC_UTIL::addScript( 'files', 'fileactions' ); OC_APP::setActiveNavigationEntry( "files_index" ); // Load the files $dir = isset( $_GET['dir'] ) ? $_GET['dir'] : ''; diff --git a/files/js/fileactions.js b/files/js/fileactions.js new file mode 100644 index 0000000000..bb02b639c5 --- /dev/null +++ b/files/js/fileactions.js @@ -0,0 +1,100 @@ +FileActions={ + actions:{}, + defaults:{}, + register:function(mime,name,action){ + if(!FileActions.actions[mime]){ + FileActions.actions[mime]={}; + } + FileActions.actions[mime][name]=action; + }, + setDefault:function(mime,name){ + FileActions.defaults[mime]=FileActions.actions[mime][name]; + }, + get:function(mime,type){ + var actions={}; + if(FileActions.actions.all){ + actions=$.extend( actions, FileActions.actions.all ) + } + if(mime){ + if(FileActions.actions[mime]){ + actions=$.extend( actions, FileActions.actions[mime] ) + } + var mimePart=mime.substr(0,mime.indexOf('/')); + if(FileActions.actions[mimePart]){ + actions=$.extend( actions, FileActions.actions[mimePart] ) + } + } + if(type){//type is 'dir' or 'file' + if(FileActions.actions[type]){ + actions=$.extend( actions, FileActions.actions[type] ) + } + } + return actions; + }, + getDefault:function(mime,type){ + if(mime){ + var mimePart=mime.substr(0,mime.indexOf('/')); + } + if(mime && FileActions.defaults[mime]){ + return FileActions.defaults[mime]; + }else if(mime && FileActions.defaults[mimePart]){ + return FileActions.defaults[mimePart]; + }else if(type && FileActions.defaults[type]){ + return FileActions.defaults[type]; + }else{ + return FileActions.defaults.all; + } + }, + display:function(parent){ + $('#file_menu>ul').empty(); + parent.append($('#file_menu')); + var actions=FileActions.get(FileActions.getCurrentMimeType(),FileActions.getCurrentType()); + for(name in actions){ + var html='
  • '+name+'
  • '; + var element=$(html); + element.data('action',name); + element.click(function(){ + event.preventDefault(); + actions[$(this).data('action')](FileActions.getCurrentFile()); + }); + $('#file_menu>ul').append(element); + } + $('#file_menu').slideToggle(250); + return false; + }, + getCurrentFile:function(){ + return $('#file_menu').parents('tr:first').attr('data-file'); + }, + getCurrentMimeType:function(){ + return $('#file_menu').parents('tr:first').attr('data-mime'); + }, + getCurrentType:function(){ + return $('#file_menu').parents('tr:first').attr('data-type'); + } +} + +FileActions.register('all','Download',function(filename){ + window.location='ajax/download.php?files='+filename+'&dir='+$('#dir').val(); + $('#file_menu').slideToggle(250); +}); + +FileActions.register('all','Delete',function(filename){ + $.ajax({ + url: 'ajax/delete.php', + data: "dir="+$('#dir').val()+"&file="+filename, + complete: function(data){ + boolOperationFinished(data, function(){ + FileList.remove(filename); + }); + } + }); +}); + +FileActions.setDefault('all','Download'); + +FileActions.register('dir','Open',function(filename){ + window.location='index.php?dir='+$('#dir').val()+'/'+filename; + $('#file_menu').slideToggle(250); +}); + +FileActions.setDefault('dir','Open'); \ No newline at end of file diff --git a/files/js/files.js b/files/js/files.js index 2c595ee445..c758432a4f 100644 --- a/files/js/files.js +++ b/files/js/files.js @@ -15,11 +15,22 @@ $(document).ready(function() { // Sets the file-action buttons behaviour : $('td.fileaction a').live('click',function() { - $(this).parent().append($('#file_menu')); - $('#file_menu').slideToggle(250); - return false; + event.preventDefault(); + FileActions.display($(this).parent()); }); - + + // Sets the file link behaviour : + $('td.filename a').live('click',function() { + event.preventDefault(); + var filename=$(this).text(); + var mime=$(this).parent().parent().attr('data-mime'); + var type=$(this).parent().parent().attr('data-type'); + var action=FileActions.getDefault(mime,type); + if(action){ + action(filename); + } + }); + // Sets the select_all checkbox behaviour : $('#select_all').click(function() { if($(this).attr('checked')) @@ -40,33 +51,10 @@ $(document).ready(function() { } }); - // Download current file - $('#download_single_file').click(function() { - filename = $('#file_menu').parents('tr:first').find('.filename:first').children('a:first').text(); - window.location='ajax/download.php?files='+filename+'&dir='+$('#dir').val(); - $('#file_menu').slideToggle(250); - return false; - }); - - // Delete current file - $('#delete_single_file').click(function() { - filename = $('#file_menu').parents('tr:first').attr('data-file'); - $.ajax({ - url: 'ajax/delete.php', - data: "dir="+$('#dir').val()+"&file="+filename, - complete: function(data){ - boolOperationFinished(data, function(){ - FileList.remove(filename); - }); - } - }); - return false; - }); - $('#file_newfolder_submit').click(function() { $.ajax({ url: 'ajax/newfolder.php', - data: "dir="+$('#dir').val()+"&foldername="+$('#file_newfolder_name').val(), + data: "dir="+$('#dir').val()+"&foldername="+$('#file_newfolder_name').val(), complete: function(data){boolOperationFinished(data, function(){ var date=formatDate(new Date()); FileList.addDir($('#file_newfolder_name').val(),'0 B',date) diff --git a/files/templates/index.php b/files/templates/index.php index 6222724e7b..11cf0360e1 100644 --- a/files/templates/index.php +++ b/files/templates/index.php @@ -44,8 +44,5 @@
    diff --git a/files/templates/part.list.php b/files/templates/part.list.php index f99cd87be2..16d9d92c04 100644 --- a/files/templates/part.list.php +++ b/files/templates/part.list.php @@ -1,5 +1,5 @@ - ' data-type=''> + ' data-type='' data-mime=''> )" href="" title="">