diff options
Diffstat (limited to 'js/lib_files.js')
-rw-r--r-- | js/lib_files.js | 412 |
1 files changed, 0 insertions, 412 deletions
diff --git a/js/lib_files.js b/js/lib_files.js deleted file mode 100644 index 54af643272a..00000000000 --- a/js/lib_files.js +++ /dev/null @@ -1,412 +0,0 @@ -/** -* 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_FILES=new Object(); - -OC_FILES.cache=new Object(); - -OC_FILES.cache.files=Array(); -OC_FILES.cache.incomplete=Array(); -OC_FILES.cache.actions=new Object(); - -OC_FILES.cache.actions.move=Array(); -OC_FILES.cache.actions.rename=Array(); -OC_FILES.cache.actions['new']=Array(); -OC_FILES.cache.actions['delete']=Array(); -OC_FILES.cache.actions.upload=Array(); - -OC_FILES.cache.refresh=function(){ - OC_FILES.getdirectorycontent(OC_FILES.dir,false,true); -} - -OC_FILES.xmlloader=new OCXMLLoader(); - -OC_FILES.getdirectorycontent_parse=function(req){ - var files=new Array(); - var json=eval('('+req.responseText+')'); - OC_FILES.cache.files=Array(); - if(json){ - for(var name in json){ - if(name!='__max_upload'){ - var file=new Array(); - var attributes=Array('size','name','type','directory','date','mime'); - for(var i in attributes){ - var attributeName=attributes[i]; - file[attributeName]=json[name][attributeName]; - } - files[file.name]=file; - } - } - OC_FILES.cache.files=files; - if(OC_FILES.cache.incomplete[OC_FILES.dir]){ - files=arrayMerge(files,OC_FILES.cache.incomplete[OC_FILES.dir]); - } - files['max_upload']=json['__max_upload']; - if(OC_FILES.getdirectorycontent_callback){ - OC_FILES.getdirectorycontent_callback(files); - } - } -} - -OC_FILES.getdirectorycontent=function(dir,callback,refresh){ - if(refresh || OC_FILES.dir!=dir){ - OC_FILES.dir=dir; - if(callback){ - OC_FILES.getdirectorycontent_callback=callback; - } - OC_FILES.xmlloader.setCallBack(OC_FILES.getdirectorycontent_parse); -// OC_FILES.xmlloader.load('files/get_files.php?dir='+encodeURIComponent(dir)); - OC_FILES.xmlloader.load('files/api.php?action=getfiles&dir='+encodeURIComponent(dir)); - }else{ - var files=OC_FILES.cache.files - if(OC_FILES.cache.incomplete[OC_FILES.dir]){ - files=arrayMerge(files,OC_FILES.cache.incomplete[OC_FILES.dir]); - } - callback(files); - } -} - -OC_FILES.dir=''; - -OC_FILES.get=function(dir,file){ - window.location='files/api.php?action=get&dir='+encodeURIComponent(dir)+'&file='+encodeURIComponent(file); -} - -OC_FILES.upload=function(iframeId){ - var dir=OC_FILES.dir; - var file=new Object; - var fileSelector=document.getElementById('fileSelector'); - var max_upload=document.getElementById('max_upload').value; - var name=false; - if(fileSelector.files && fileSelector.files[0].fileName){ - name=fileSelector.files[0].fileName; - } - if(fileSelector.files && fileSelector.files[0].fileSize){ - var size=fileSelector.files[0].fileSize; - if(size>max_upload){ - new OCNotification('File too large',10000) - return false; - } - } - var mime=''; - if(fileSelector.files && fileSelector.files[0].type){ - var mime=fileSelector.files[0].type; - } - file.dir=OC_FILES.dir; - file.name=name; - file.type='file'; - file.size=size; - file.iframeId=iframeId; - if(!OC_FILES.cache.incomplete[dir]){ - OC_FILES.cache.incomplete[dir]=Array(); - } - OC_FILES.cache.incomplete[dir][name]=Array(); - 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,null,mime); - OC_FILES.uploadForm.submit(); - if(OC_FILES.uploadForm.parentElement){ - OC_FILES.uploadForm.className='hidden'; - OC_FILES.uploadForm.parentNode.removeChild(OC_FILES.uploadForm); - var body=document.getElementsByTagName('body').item(0); - body.appendChild(OC_FILES.uploadForm); - OC_FILES.uploadIFrames[iframeId].uploadForm=OC_FILES.uploadForm; - OC_FILES.browser.showuploader(OC_FILES.dir,OC_FILES.uploadIFrames[iframeId].uploadParent,OC_FILES.maxUpload) - } -} - -OC_FILES.upload_callback=function(iframeId){ - var file=this.file; - if(OC_FILES.cache.incomplete[file.dir][file.name]){ - OC_FILES.browser.files.remove(file.name); - 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; - this.uploadForm.parentNode.removeChild(this.uploadForm); - this.parentNode.removeChild(this); - OC_FILES.uploadIFrames[file.iframeId]=null; - if(file.name){ - OC_FILES.browser.show(file.dir); - }else{ - OC_FILES.browser.show(file.dir,true);//if the data from the file isn't correct, force a reload of the cache - } - }else{ - OC_FILES.browser.show(OC_FILES.dir); - } -} - -OC_FILES.rename=function(dir,file,event){ - if(event && event.preventDefault){ - event.preventDefault(); - } - var item=document.getElementById(file+'_newname'); - var newname=item.value; - if(newname==''){ - return false; - }else if(file==newname){ - OC_FILES.browser.show(OC_FILES.dir); - return false; - } - 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(); - } - OC_FILES.cache.files[file]['type']='incomplete'; - OC_FILES.cache.incomplete[dir][newname]=OC_FILES.cache.files[file]; - OC_FILES.cache.incomplete[dir][newname]['name']=newname; - OC_FILES.browser.files.remove(file); - OC_FILES.browser.files.add(newname,'incomplete'); - return false; -} - - -OC_FILES.rename_callback=function(req,file){ - delete OC_FILES.cache.files[file.oldname] - OC_FILES.cache.files[file.newname]=OC_FILES.cache.incomplete[file.dir][file.newname]; - delete OC_FILES.cache.incomplete[file.dir][file.newname]; - OC_FILES.browser.files.remove(file.newname); - OC_FILES.cache.files[file.newname]['type']=file.type; - OC_FILES.browser.show(OC_FILES.dir); -} - -OC_FILES.remove=function(dir,file,force){ - remove=force||confirm('Delete file \''+file+'\'?'); - if(remove){ - 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]; - } -} - -OC_FILES.remove_callback=function(req,name){ -// OC_FILES.browser.files.remove(name); -// OC_FILES.browser.show(OC_FILES.dir); -} - -OC_FILES.getSelected=function(){ - var nodes=document.getElementsByName('fileSelector'); - var files=Array(); - for(var index=0;index<nodes.length;index++){ - if(nodes[index].checked){ - files[files.length]=nodes[index].value; - } - } - return files; -} - -OC_FILES.newFile=function(type,name,dir){ - arg=new Object; - arg.name=name; - arg.dir=dir; - if(OC_FILES.cache.files[name]){//check if the file already exists - alert(((type=='dir')?'folder ':'file ')+name+' already exists.'); - return; - } - 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(); - } - OC_FILES.cache.incomplete[dir][name]=Array(); - OC_FILES.cache.incomplete[dir][name]['name']=name; - OC_FILES.cache.incomplete[dir][name]['type']='incomplete'; - OC_FILES.cache.incomplete[dir][name]['size']=0; - OC_FILES.browser.files.add(name,'incomplete'); -} - -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(file.name); -// OC_FILES.browser.files.add(name); - OC_FILES.browser.show(OC_FILES.dir,true); -} - -OC_FILES.move=function(source,target,sourceDir,targetDir){ - if(sourceDir!=targetDir || source!=target){ - if(!OC_FILES.cache.incomplete[sourceDir]){ - OC_FILES.cache.incomplete[sourceDir]=Array(); - } - if(!OC_FILES.cache.incomplete[targetDir]){ - OC_FILES.cache.incomplete[targetDir]=Array(); - } - if(!OC_FILES.cache.incomplete[targetDir+'/'+target]){ - OC_FILES.cache.incomplete[targetDir+'/'+target]=Array(); - } - 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]; - OC_API.run('move',{sourcedir:sourceDir,source:source,targetdir:targetDir,target:target},OC_FILES.move_callback,arg); - } -} - -OC_FILES.move_callback=function(req,file){ - OC_FILES.cache.incomplete[file.targetDir+'/'+file.target][file.source]['type']=file.type; - delete OC_FILES.cache.files[file.source]; - OC_FILES.browser.show(OC_FILES.dir); -} - -OC_FILES.selectAll=function(){ - var value=document.getElementById('select_all').checked; - var nodes=document.getElementsByName('fileSelector'); - for(var index=0;index<nodes.length;index++){ - if(nodes[index].value){ - nodes[index].checked=value; - } - } -} - -OC_FILES.action_selected=function(){ - var dropdown=action=document.getElementById('selected_action'); - var action=dropdown.options[dropdown.selectedIndex].value; - if(OC_FILES.actions_selected[action] && OC_FILES.actions_selected[action].call){ - OC_FILES.actions_selected[action].call(OC_FILES); - } -} - -OC_FILES.actions_selected=new Object(); - -OC_FILES.actions_selected.download=function(){ - files=OC_FILES.getSelected(); - if(files.length==0){ - return false; - }else if(files.length>1){ - files=files.join(';'); - }else{ - files=files[0]; - } - OC_FILES.get(this.dir,files); -} - -OC_FILES.actions_selected['delete']=function(){ - files=OC_FILES.getSelected(); - remove=confirm('Delete files \''+files.join('\', \'')+'\'?'); - if(remove){ - for(index in files){ - OC_FILES.remove(OC_FILES.dir,files[index],true); - } - } -} - -OC_FILES.files=Array(); - -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); - }else{ - this.extention; - } - for(index in OC_FILES.fileActions.all){ - if(OC_FILES.fileActions.all[index].call){ - this.actions[index]=OC_FILES.fileActions.all[index]; - } - } - if(OC_FILES.fileActions[this.type]){ - for(index in OC_FILES.fileActions[this.type]){ - if(OC_FILES.fileActions[this.type][index].call){ - this.actions[index]=OC_FILES.fileActions[this.type][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]; - } - } - } - } -} - -OC_FILES.file.prototype.showactions=function(){ - OC_FILES.browser.showactions(this.file); -} - -OC_FILES.file.prototype.hideactions=function(){ - OC_FILES.browser.showactions(this.file,true); -} - -OC_FILES.fileActions=new Object(); - -OC_FILES.fileActions.all=new Object(); - -OC_FILES.fileActions.all.remove=function(){ - OC_FILES.remove(this.dir,this.file); -} -OC_FILES.fileActions.all.rename=function(){ - OC_FILES.browser.show_rename(this.dir,this.file); -} -OC_FILES.fileActions.all.download=function(){ - OC_FILES.get(this.dir,this.file); -} -OC_FILES.fileActions.all['default']=OC_FILES.fileActions.all.download; - -OC_FILES.fileActions.dir=new Object() - -OC_FILES.fileActions.dir.open=function(){ - OC_FILES.browser.show(this.dir+'/'+this.file); -} -OC_FILES.fileActions.dir['default']=OC_FILES.fileActions.dir.open; - -OC_FILES.fileActions.dir.dropOn=function(file){ - OC_FILES.move(file.file,file.file,file.dir,this.dir+'/'+this.file); -} - -OC_FILES.fileActions.image=new Object() - -OC_FILES.fileActions.image.show=function(){ - OC_FILES.browser.showImage(this.dir,this.file); -} - -OC_FILES.fileActions.image['default']=OC_FILES.fileActions.image.show; |