diff options
-rw-r--r-- | .htaccess | 4 | ||||
-rw-r--r-- | files/css/files.css | 10 | ||||
-rw-r--r-- | files/index.php | 1 | ||||
-rw-r--r-- | files/js/fileactions.js | 100 | ||||
-rw-r--r-- | files/js/files.js | 44 | ||||
-rw-r--r-- | files/templates/index.php | 3 | ||||
-rw-r--r-- | files/templates/part.list.php | 2 |
7 files changed, 131 insertions, 33 deletions
diff --git a/.htaccess b/.htaccess new file mode 100644 index 00000000000..58230365bf5 --- /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 1cfca68ff55..7c7965ab847 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 79f8b677018..d796583a4ae 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 00000000000..bb02b639c57 --- /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='<li><a href="" alt="'+name+'">'+name+'</a></li>'; + 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 2c595ee4457..c758432a4f6 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 6222724e7be..11cf0360e1e 100644 --- a/files/templates/index.php +++ b/files/templates/index.php @@ -44,8 +44,5 @@ <div id="file_menu"> <ul> - <li><a href="" title="" id="download_single_file">Download</a></li> - <li><a href="" title="">Share</a></li> - <li><a href="" title="" id="delete_single_file">Delete</a></li> </ul> </div> diff --git a/files/templates/part.list.php b/files/templates/part.list.php index f99cd87be24..16d9d92c040 100644 --- a/files/templates/part.list.php +++ b/files/templates/part.list.php @@ -1,5 +1,5 @@ <?php foreach($_["files"] as $file): ?> - <tr data-file='<?php echo $file['name'];?>' data-type='<?php echo ($file["type"] == "dir")?'dir':'file'?>'> + <tr data-file='<?php echo $file['name'];?>' data-type='<?php echo ($file["type"] == "dir")?'dir':'file'?>' data-mime='<?php echo $file["mime"]?>'> <td class="selection"><input type="checkbox" /></td> <td class="filename"><a style="background-image:url(<?php if($file["type"] == "dir") echo mimetype_icon("dir"); else echo mimetype_icon($file["mime"]); ?>)" href="<?php if($file["type"] == "dir") echo link_to("files", "index.php?dir=".$file["directory"]."/".$file["name"]); else echo link_to("files", "download.php?file=".$file["directory"]."/".$file["name"]); ?>" title=""><?php echo htmlspecialchars($file["name"]); ?></a></td> <td class="filesize"><?php echo human_file_size($file["size"]); ?></td> |