aboutsummaryrefslogtreecommitdiffstats
path: root/settings/js/log.js
blob: 2e20aba3aa4f8773147088f8379d7a4952c9bee3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/**
 * Copyright (c) 2012, Robin Appelman <icewind1991@gmail.com>
 * Copyright (c) 2013, Morris Jobke <morris.jobke@gmail.com>
 * This file is licensed under the Affero General Public License version 3 or later.
 * See the COPYING-README file.
 */

OC.Log={
	reload:function(count){
		if(!count){
			count=OC.Log.loaded;
		}
		OC.Log.loaded=0;
		$('#log tbody').empty();
		OC.Log.getMore(count);
	},
	levels:['Debug','Info','Warning','Error','Fatal'],
	loaded:3,//are initially loaded
	getMore:function(count){
		if(!count){
			count=10;
		}
		$.get(OC.filePath('settings','ajax','getlog.php'),{offset:OC.Log.loaded,count:count},function(result){
			if(result.status=='success'){
				OC.Log.addEntries(result.data);
				$('html, body').animate({scrollTop: $(document).height()}, 800);
				if(!result.remain){
					$('#moreLog').css('display', 'none');
				}
				$('#lessLog').css('display', '');
			}
		});
	},
	showLess:function(count){
		count = count || 10;
		$('#moreLog').css('display', '');
		while(OC.Log.loaded > 3 && count){
			$('#log tr').last().remove();
			OC.Log.loaded -= 1;
			count--;
		}
		if(OC.Log.loaded <= 3)
			$('#lessLog').css('display', 'none');
	},
	addEntries:function(entries){
		for(var i=0;i<entries.length;i++){
			var entry=entries[i];
			var row=$('<tr/>');
			var levelTd=$('<td/>');
			levelTd.text(OC.Log.levels[entry.level]);
			row.append(levelTd);

			var appTd=$('<td/>');
			appTd.text(entry.app);
			row.append(appTd);

			var messageTd=$('<td/>');
			messageTd.text(entry.message);
			row.append(messageTd);

			var timeTd=$('<td/>');
			timeTd.text(formatDate(entry.time*1000));
			row.append(timeTd);
			$('#log').append(row);
		}
		OC.Log.loaded += entries.length;
	}
}

$(document).ready(function(){
	$('#moreLog').click(function(){
		OC.Log.getMore();
	})
	$('#lessLog').click(function(){
		OC.Log.showLess();
	})
});