diff options
author | Robin <robin@Amaya.(none)> | 2010-04-28 12:01:05 +0200 |
---|---|---|
committer | Robin <robin@Amaya.(none)> | 2010-04-28 12:01:05 +0200 |
commit | fb498b9534b545c0e66cb82304e64f199c77a463 (patch) | |
tree | 5dee29e558a580fe57d777aa41b493671b0f5a3b /js | |
parent | 09add452d93f185d89ab51b67cda2fc384772db5 (diff) | |
parent | 854e0c5a9c9060e827fbbfddffeeeadfc2d27278 (diff) | |
download | nextcloud-server-fb498b9534b545c0e66cb82304e64f199c77a463.tar.gz nextcloud-server-fb498b9534b545c0e66cb82304e64f199c77a463.zip |
fix merge conflicts
Diffstat (limited to 'js')
-rw-r--r-- | js/filebrowser.js | 6 | ||||
-rw-r--r-- | js/lib_api.js | 34 | ||||
-rw-r--r-- | js/lib_files.js | 116 |
3 files changed, 100 insertions, 56 deletions
diff --git a/js/filebrowser.js b/js/filebrowser.js index f12cec44143..cc03fe33156 100644 --- a/js/filebrowser.js +++ b/js/filebrowser.js @@ -129,16 +129,16 @@ OC_FILES.browser.files.show=function(parent,fileList){ for(name in fileList){ file=fileList[name]; if(!OC_FILES.browser.files.fileNodes[file.name]){ - OC_FILES.browser.files.add(file.name,file.type,file.size,file.date); + OC_FILES.browser.files.add(file.name,file.type,file.size,file.date,file.mime); } } } } -OC_FILES.browser.files.add=function(name,type,size,date){ +OC_FILES.browser.files.add=function(name,type,size,date,mime){ if(name){ if(!size) size=0; if(!date) date=getTimeString(); - OC_FILES.files[name]=new OC_FILES.file(OC_FILES.dir,name,type); + OC_FILES.files[name]=new OC_FILES.file(OC_FILES.dir,name,type,mime); tr=document.createElement('tr'); OC_FILES.browser.files.fileNodes[name]=tr; OC_FILES.browser.files.tbody.appendChild(tr); diff --git a/js/lib_api.js b/js/lib_api.js new file mode 100644 index 00000000000..51fc843967d --- /dev/null +++ b/js/lib_api.js @@ -0,0 +1,34 @@ +/** +* ownCloud - ajax frontend +* +* @author Robin Appelman +* @copyright 2010 Robin Appelman icewind1991@gmail.com +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE +* License as published by the Free Software Foundation; either +* version 3 of the License, or any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU AFFERO GENERAL PUBLIC LICENSE for more details. +* +* You should have received a copy of the GNU Lesser General Public +* License along with this library. If not, see <http://www.gnu.org/licenses/>. +* +*/ + +OC_API=new Object(); + +OC_API.run=function(action,params,callback,callbackparams){ + var xmlloader=new OCXMLLoader(); + xmlloader.setCallBack(callback); + xmlloader.method="POST"; + var paramString='action='+action; + for(name in params){ + paramString+='&'+name+'='+encodeURIComponent(params[name]); + } + xmlloader.arg=callbackparams; + xmlloader.load('files/api.php',paramString); +}
\ No newline at end of file diff --git a/js/lib_files.js b/js/lib_files.js index c231af2f03f..d1480e36637 100644 --- a/js/lib_files.js +++ b/js/lib_files.js @@ -49,7 +49,7 @@ OC_FILES.getdirectorycontent_parse=function(req){ if(fileElements.length>0){ for(index=0;index<fileElements.length;index++){ var file=new Array(); - var attributes=Array('size','name','type','directory','date'); + var attributes=Array('size','name','type','directory','date','mime'); for(i in attributes){ var name=attributes[i]; file[name]=fileElements.item(index).getAttribute(name); @@ -87,6 +87,10 @@ OC_FILES.getdirectorycontent=function(dir,callback,refresh){ OC_FILES.dir=''; +OC_FILES.get=function(dir,file){ + window.location='files/get_file.php?dir='+encodeURIComponent(dir)+'&files='+encodeURIComponent(file); +} + OC_FILES.upload=function(dir,iframeId){ var file=new Object; var fileSelector=document.getElementById('fileSelector'); @@ -102,6 +106,11 @@ OC_FILES.upload=function(dir,iframeId){ return false; } } + var mime=''; + if(fileSelector.files && fileSelector.files[0].type){ + var mime=fileSelector.files[0].type; + } + file.dir=dir; file.dir=dir; file.name=name; file.type='file'; @@ -114,9 +123,10 @@ OC_FILES.upload=function(dir,iframeId){ OC_FILES.cache.incomplete[dir][name]['name']=name; OC_FILES.cache.incomplete[dir][name]['type']='incomplete'; OC_FILES.cache.incomplete[dir][name]['size']=size; + OC_FILES.cache.incomplete[dir][name]['mime']=mime; OC_FILES.uploadIFrames[iframeId].file=file; OC_FILES.uploadIFrames[iframeId].addEvent('onload',new callBack(OC_FILES.upload_callback,OC_FILES.uploadIFrames[iframeId])); - OC_FILES.browser.files.add(name,'incomplete',size); + OC_FILES.browser.files.add(name,'incomplete',size,null,mime); OC_FILES.uploadForm.submit(); if(OC_FILES.uploadForm.parentElement){ OC_FILES.uploadForm.className='hidden'; @@ -137,7 +147,7 @@ OC_FILES.upload_callback=function(iframeId){ OC_FILES.cache.files[file.name]['type']=file.type; this.uploadForm.parentNode.removeChild(this.uploadForm); this.parentNode.removeChild(this); - delete OC_FILES.uploadIFrames[file.iframeId]; + OC_FILES.uploadIFrames[file.iframeId]=null; OC_FILES.browser.show(file.dir); } } @@ -154,14 +164,12 @@ OC_FILES.rename=function(dir,file,event){ OC_FILES.browser.show(OC_FILES.dir); return false; } - xmlloader=new OCXMLLoader(); - xmlloader.setCallBack(OC_FILES.rename_callback); - xmlloader.arg=new Object; - xmlloader.arg.oldname=file; - xmlloader.arg.newname=newname; - xmlloader.arg.dir=dir; - xmlloader.arg.type=OC_FILES.cache.files[file]['type']; - xmlloader.load('files/rename.php?dir='+dir+'&file='+file+'&newname='+newname); + arg=new Object; + arg.oldname=file; + arg.newname=newname; + arg.dir=dir; + arg.type=OC_FILES.cache.files[file]['type']; + OC_API.run('rename',{dir:dir,file:file,newname:newname},OC_FILES.rename_callback,arg) if(!OC_FILES.cache.incomplete[dir]){ OC_FILES.cache.incomplete[dir]=Array(); } @@ -184,12 +192,9 @@ OC_FILES.rename_callback=function(req,file){ } OC_FILES.remove=function(dir,file){ - remove=confirm('remove file \''+file+'\'?'); + remove=confirm('delete file \''+file+'\'?'); if(remove){ - xmlloader=new OCXMLLoader(); - xmlloader.setCallBack(OC_FILES.remove_callback); - xmlloader.arg=file; - xmlloader.load('files/delete.php?dir='+dir+'&file='+file); + OC_API.run('delete',{dir:dir,file:file},OC_FILES.remove_callback,file) OC_FILES.browser.files.remove(file); delete OC_FILES.cache.files[file]; } @@ -212,13 +217,11 @@ OC_FILES.getSelected=function(){ } OC_FILES.newFile=function(type,name,dir){ - xmlloader=new OCXMLLoader(); - xmlloader.arg=new Object; - xmlloader.arg.name=name; - xmlloader.arg.dir=dir; - xmlloader.arg.type=type; - xmlloader.setCallBack(OC_FILES.new_callback); - xmlloader.load('files/new.php?type='+type+'&dir='+dir+'&name='+name); + arg=new Object; + arg.name=name; + arg.dir=dir; + arg.type=type; + OC_API.run('new',{dir:dir,name:name,type:type},OC_FILES.new_callback,arg) if(!OC_FILES.cache.incomplete[dir]){ OC_FILES.cache.incomplete[dir]=Array(); } @@ -233,8 +236,9 @@ OC_FILES.new_callback=function(req,file){ OC_FILES.cache.files[file.name]=OC_FILES.cache.incomplete[file.dir][file.name]; delete OC_FILES.cache.incomplete[file.dir][file.name]; OC_FILES.cache.files[file.name]['type']=file.type; - OC_FILES.browser.files.remove(name); - OC_FILES.browser.show(OC_FILES.dir); + OC_FILES.browser.files.remove(file.name); +// OC_FILES.browser.files.add(name); + OC_FILES.browser.show(OC_FILES.dir,true); } OC_FILES.move=function(source,target,sourceDir,targetDir){ @@ -248,17 +252,15 @@ OC_FILES.move=function(source,target,sourceDir,targetDir){ if(!OC_FILES.cache.incomplete[targetDir+'/'+target]){ OC_FILES.cache.incomplete[targetDir+'/'+target]=Array(); } - xmlloader=new OCXMLLoader(); - xmlloader.arg=new Object; - xmlloader.arg.source=source; - xmlloader.arg.target=target; - xmlloader.arg.sourceDir=sourceDir; - xmlloader.arg.targetDir=targetDir; - xmlloader.arg.type=OC_FILES.cache.files[source]['type']; + arg=new Object; + arg.source=source; + arg.target=target; + arg.sourceDir=sourceDir; + arg.targetDir=targetDir; + arg.type=OC_FILES.cache.files[source]['type']; OC_FILES.cache.files[source]['type']='incomplete'; - OC_FILES.cache.incomplete[targetDir+'/'+target][source]=OC_FILES.cache.files[source] - xmlloader.setCallBack(OC_FILES.move_callback); - xmlloader.load('files/move.php?sourcedir='+sourceDir+'&targetdir='+targetDir+'&source='+source+'&target='+target); + OC_FILES.cache.incomplete[targetDir+'/'+target][source]=OC_FILES.cache.files[source]; + OC_API.run('move',{sourcedir:sourceDir,source:source,targetdir:targetDir,target:target},OC_FILES.move_callback,arg); } } @@ -293,11 +295,12 @@ OC_FILES.actions_selected.download=function(){ if(files.length==0){ return false; }else if(files.length>1){ - files.join(';'); + files=files.join(';'); }else{ files=files[0]; } - window.location=WEBROOT+'/files/get_file.php?dir='+OC_FILES.dir+'&files='+files; + OC_FILES.get(dir,files); +// window.location=WEBROOT+'/files/get_file.php?dir='+OC_FILES.dir+'&files='+files; } OC_FILES.actions_selected['delete']=function(){ @@ -309,11 +312,17 @@ OC_FILES.actions_selected['delete']=function(){ OC_FILES.files=Array(); -OC_FILES.file=function(dir,file,type){ +OC_FILES.file=function(dir,file,type,mime){ if(file){ this.type=type; this.file=file; this.dir=dir; + this.mime=mime; + if(mime){ + var mimeParts=mime.split('/'); + this.mime1=mimeParts[0]; + this.mime2=mimeParts[1]; + } this.actions=new Object(); if(file.lastIndexOf('.')){ this.extention=file.substr(file.lastIndexOf('.')+1); @@ -332,10 +341,17 @@ OC_FILES.file=function(dir,file,type){ } } } - if(OC_FILES.fileActions[this.extention]){ - for(index in OC_FILES.fileActions[this.extention]){ - if(OC_FILES.fileActions[this.extention][index].call){ - this.actions[index]=OC_FILES.fileActions[this.extention][index]; + if(OC_FILES.fileActions[this.mime1]){ + for(index in OC_FILES.fileActions[this.mime1]){ + if(OC_FILES.fileActions[this.mime1][index].call){ + this.actions[index]=OC_FILES.fileActions[this.mime1][index]; + } + } + } + if(OC_FILES.fileActions[this.mime]){ + for(index in OC_FILES.fileActions[this.mime]){ + if(OC_FILES.fileActions[this.mime][index].call){ + this.actions[index]=OC_FILES.fileActions[this.mime][index]; } } } @@ -361,7 +377,7 @@ OC_FILES.fileActions.all.rename=function(){ OC_FILES.browser.show_rename(this.dir,this.file); } OC_FILES.fileActions.all.download=function(){ - window.location=WEBROOT+'/files/get_file.php?dir='+this.dir+'&files='+this.file; + OC_FILES.get(this.dir,this.file); } OC_FILES.fileActions.all['default']=OC_FILES.fileActions.all.download; @@ -373,19 +389,13 @@ OC_FILES.fileActions.dir.open=function(){ OC_FILES.fileActions.dir['default']=OC_FILES.fileActions.dir.open; OC_FILES.fileActions.dir.dropOn=function(file){ - OC_FILES.move(file.file,this.file,file.dir,this.dir); + OC_FILES.move(file.file,file.file,file.dir,this.dir+'/'+this.file); } -OC_FILES.fileActions.jpg=new Object() +OC_FILES.fileActions.image=new Object() -OC_FILES.fileActions.jpg.show=function(){ -// window.open(WEBROOT+'/files/open_file.php?dir='+this.dir+'&file='+this.file); +OC_FILES.fileActions.image.show=function(){ OC_FILES.browser.showImage(this.dir,this.file); } -OC_FILES.fileActions.jpg['default']=OC_FILES.fileActions.jpg.show; - -OC_FILES.fileActions.jpeg=OC_FILES.fileActions.jpg -OC_FILES.fileActions.png=OC_FILES.fileActions.jpg -OC_FILES.fileActions.gif=OC_FILES.fileActions.jpg -OC_FILES.fileActions.bmp=OC_FILES.fileActions.jpg
\ No newline at end of file +OC_FILES.fileActions.image['default']=OC_FILES.fileActions.image.show;
\ No newline at end of file |