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