1/** 2 * jQuery-stuff to handle filelist and versionlist on detailpage 3 * 4 * @license GPL 3 (http://www.gnu.org/licenses/gpl.html) 5 * @author Martin Schulte <lebowski[at]corvus[dot]uberspace[dot]de>, 2013 6 */ 7var filelist = { 8 start: function(){ 9 var fileid; 10 var $container = jQuery('.filelistOC'); 11 $container.each(function(){ 12 $current = jQuery(this); 13 fileid = parseInt($current.attr("class").replace('filelistOC fileid','')); 14 $row = $current.find('.load').parent(); 15 filelist.subfolder('',$row,'level0',fileid); 16 }); 17 }, 18 19 folderContent: function(data, $place, level){ 20 var $response=jQuery(data); 21 $folder = $response.find('.mf_folder'); 22 $folder.removeAttr('href'); 23 $folder.css('cursor','pointer'); 24 $place.replaceWith($response); 25 $folder.each(function(){filelist.folderEvent(jQuery(this),level);}); 26 27 }, 28 29 subfolder: function(dir, $row, level,fileid){ 30 jQuery.ajax({ 31 type: 'POST', 32 url: DOKU_BASE + '/lib/plugins/owncloud/ajax/filelist.php', 33 data: {dir: dir, fileid: fileid, level: level}, 34 success: function(data) {filelist.folderContent(data, $row, level);}, 35 async:false 36 }); 37 }, 38 39 folderEvent: function(folder,level){ 40 folder.bind('click', function() { 41 var $row = folder.parent().parent(); 42 nextLevel = 'level'+(parseInt(level.replace('level',''))+1); 43 if($row.hasClass('expanded')){ 44 $row.nextAll('.'+nextLevel).remove(); 45 $row.removeClass('expanded').addClass('collapsed'); 46 }else{ 47 var dir = folder.attr('title'); 48 $row.after('<tr><td colspan="5" class="load"></td></tr>'); 49 filelist.subfolder(dir,$row.next(),nextLevel); 50 $row.removeClass('collapsed').addClass('expanded'); 51 } 52 }); 53 } 54}; 55 56var filehistory = { 57 start: function(file){ 58 var $container = jQuery('.historyOC'); 59 $container.each(function(){ 60 $current = jQuery(this); 61 $row = $current.find('.load').parent(); 62 jQuery.ajax({ 63 type: 'POST', 64 url: DOKU_BASE + '/lib/plugins/owncloud/ajax/history.php', 65 data: {file: file}, 66 success: function(ret) {if(ret != file){filehistory.putContent(ret, $row);}else{}}, 67 async:false 68 }); 69 }); 70 }, 71 72 putContent: function(data, $place){ 73 //var $response=jQuery(data); 74 $place.replaceWith(data); 75 }, 76 77 78}; 79 80var Usedmedia = { 81 start: function(){ 82 var $ol = jQuery('#usedmedia'); 83 var $items = $ol.children(); 84 jQuery.each($items,function(){ 85 $li = jQuery(this); 86 //$li.append('<div class="load3"></div>'); 87 Usedmedia.addInfo($li); 88 }); 89 var $link = jQuery('#usemediadetail'); 90 $link.off('click'); 91 $link.click(Usedmedia.collapse); 92 }, 93 addInfo: function(li){ 94 //li.append("<ul><li>"+li.attr('fileid')+"</li><li>Mein Text</li></ul>"); 95 if(!li.hasClass('expand')){ 96 jQuery.ajax({ 97 type: 'POST', 98 url: DOKU_BASE + '/lib/plugins/owncloud/ajax/usedMedia.php', 99 data: {fileid: li.attr('fileid')}, 100 success: function(data) { 101 //li.find('.load3').remove(); 102 li.append(data); 103 li.addClass('expand') 104 }, 105 async:true 106 }); 107 } 108 }, 109 collapse: function(){ 110 var $ol = jQuery('#usedmedia'); 111 var $items = $ol.children(); 112 jQuery.each($items,function(){ 113 jQuery(this).find('.filedesc').remove(); 114 jQuery(this).removeClass('expand'); 115 }); 116 var $link = jQuery('#usemediadetail'); 117 $link.off('click'); 118 $link.click(Usedmedia.start); 119 } 120}; 121 122 123 124 125 126 127 128jQuery(document).ready(function() { 129 var $link = jQuery('#usemediadetail'); 130 $link.off('click'); 131 $link.click(Usedmedia.start); 132 if(window.filelistOnThisSide){ 133 filelist.start(); 134 } 135}); 136