make fileactions extendable by plugins
This commit is contained in:
parent
3892fe5511
commit
1eb0faa264
|
@ -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
|
|
@ -4,6 +4,7 @@
|
||||||
{
|
{
|
||||||
display: none;
|
display: none;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
right:0px;
|
||||||
background-color: #EEE;
|
background-color: #EEE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,7 +37,7 @@
|
||||||
#file_upload_filename {
|
#file_upload_filename {
|
||||||
background-image:url(../../img/mimetypes/file.png);
|
background-image:url(../../img/mimetypes/file.png);
|
||||||
}
|
}
|
||||||
#file_upload_start {opacity:0;}
|
#file_upload_start {opacity:0;filter: alpha(opacity = 0);}
|
||||||
|
|
||||||
#file_newfolder_name {
|
#file_newfolder_name {
|
||||||
background-image:url(../../img/places/folder.png); font-weight: bold;
|
background-image:url(../../img/places/folder.png); font-weight: bold;
|
||||||
|
@ -104,3 +105,10 @@ table td.filename a
|
||||||
text-decoration: none;
|
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');
|
||||||
|
}
|
|
@ -36,6 +36,7 @@ if( !OC_USER::isLoggedIn()){
|
||||||
OC_UTIL::addStyle( "files", "files" );
|
OC_UTIL::addStyle( "files", "files" );
|
||||||
OC_UTIL::addScript( "files", "files" );
|
OC_UTIL::addScript( "files", "files" );
|
||||||
OC_UTIL::addScript( 'files', 'filelist' );
|
OC_UTIL::addScript( 'files', 'filelist' );
|
||||||
|
OC_UTIL::addScript( 'files', 'fileactions' );
|
||||||
OC_APP::setActiveNavigationEntry( "files_index" );
|
OC_APP::setActiveNavigationEntry( "files_index" );
|
||||||
// Load the files
|
// Load the files
|
||||||
$dir = isset( $_GET['dir'] ) ? $_GET['dir'] : '';
|
$dir = isset( $_GET['dir'] ) ? $_GET['dir'] : '';
|
||||||
|
|
|
@ -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');
|
|
@ -15,11 +15,22 @@ $(document).ready(function() {
|
||||||
|
|
||||||
// Sets the file-action buttons behaviour :
|
// Sets the file-action buttons behaviour :
|
||||||
$('td.fileaction a').live('click',function() {
|
$('td.fileaction a').live('click',function() {
|
||||||
$(this).parent().append($('#file_menu'));
|
event.preventDefault();
|
||||||
$('#file_menu').slideToggle(250);
|
FileActions.display($(this).parent());
|
||||||
return false;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 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 :
|
// Sets the select_all checkbox behaviour :
|
||||||
$('#select_all').click(function() {
|
$('#select_all').click(function() {
|
||||||
if($(this).attr('checked'))
|
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() {
|
$('#file_newfolder_submit').click(function() {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: 'ajax/newfolder.php',
|
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(){
|
complete: function(data){boolOperationFinished(data, function(){
|
||||||
var date=formatDate(new Date());
|
var date=formatDate(new Date());
|
||||||
FileList.addDir($('#file_newfolder_name').val(),'0 B',date)
|
FileList.addDir($('#file_newfolder_name').val(),'0 B',date)
|
||||||
|
|
|
@ -44,8 +44,5 @@
|
||||||
|
|
||||||
<div id="file_menu">
|
<div id="file_menu">
|
||||||
<ul>
|
<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>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?php foreach($_["files"] as $file): ?>
|
<?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="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="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>
|
<td class="filesize"><?php echo human_file_size($file["size"]); ?></td>
|
||||||
|
|
Loading…
Reference in New Issue