summaryrefslogtreecommitdiffstats
path: root/files/js/filelist.js
diff options
context:
space:
mode:
Diffstat (limited to 'files/js/filelist.js')
-rw-r--r--files/js/filelist.js54
1 files changed, 54 insertions, 0 deletions
diff --git a/files/js/filelist.js b/files/js/filelist.js
new file mode 100644
index 00000000000..14cce8a3897
--- /dev/null
+++ b/files/js/filelist.js
@@ -0,0 +1,54 @@
+FileList={
+ update:function(fileListHtml) {
+ $('#fileList').empty().html(fileListHtml);
+ },
+ addFile:function(name,size,lastModified){
+ var html='<tr data-file="'+name+'" data-type="file">';
+ html+='<td class="selection"><input type="checkbox" /></td>';
+ html+='<td class="filename"><a style="background-image:url(img/file.png)" href="download.php?file='+$('#dir').val()+'/'+name+'">'+name+'</a></td>';
+ html+='<td class="filesize">'+size+'</td>';
+ html+='<td class="date">'+lastModified+'</td>';
+ html+='<td class="fileaction"><a href="" title="+" class="dropArrow"></a></td>';
+ html+='</tr>';
+ FileList.insertElement(name,'file',$(html));
+ },
+ addDir:function(name,size,lastModified){
+ var html='<tr data-file="'+name+'" data-type="dir">';
+ html+='<td class="selection"><input type="checkbox" /></td>';
+ html+='<td class="filename"><a style="background-image:url(img/folder.png)" href="index.php?dir='+$('#dir').val()+'/'+name+'">'+name+'</a></td>';
+ html+='<td class="filesize">'+size+'</td>';
+ html+='<td class="date">'+lastModified+'</td>';
+ html+='<td class="fileaction"><a href="" title="+" class="dropArrow"></a></td>';
+ html+='</tr>';
+
+ FileList.insertElement(name,'dir',$(html));
+ },
+ refresh:function(data) {
+ result = jQuery.parseJSON(data.responseText);
+ if(typeof(result.data.breadcrumb) != 'undefined'){
+ updateBreadcrumb(result.data.breadcrumb);
+ }
+ FileList.update(result.data.files);
+ resetFileActionPanel();
+ },
+ remove:function(name){
+ $('tr[data-file="'+name+'"]').remove();
+ },
+ insertElement:function(name,type,element){
+ //find the correct spot to insert the file or folder
+ var fileElements=$('tr[data-file][data-type="'+type+'"]');
+ var pos;
+ if(name.localeCompare($(fileElements[0]).attr('data-file'))<0){
+ pos=0;
+ }else if(name.localeCompare($(fileElements[fileElements.length-1]).attr('data-file'))>0){
+ pos=fileElements.length-1;
+ }else{
+ for(var pos=1;pos<fileElements.length-1;pos++){
+ if(name.localeCompare($(fileElements[pos]).attr('data-file'))>0 && name.localeCompare($(fileElements[pos+1]).attr('data-file'))<0){
+ break;
+ }
+ }
+ }
+ $(fileElements[pos]).after(element);
+ }
+} \ No newline at end of file