aboutsummaryrefslogtreecommitdiffstats
path: root/settings/js/log.js
blob: 81117f9e8272de09a5eb3ee4cca7b9159355005c (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
/**
 * 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){
		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);
				if(!result.remain){
					$('#moreLog').hide();
				}
				$('#lessLog').show();
			}
		});
	},
	showLess:function(count){
		count = count || 10;
		//calculate remaining items - at least 3
		OC.Log.loaded = Math.max(3,OC.Log.loaded-count);
		$('#moreLog').show();
		// remove all non-remaining items
		$('#log tr').slice(OC.Log.loaded).remove();
		if(OC.Log.loaded <= 3)
			$('#lessLog').hide();
	},
	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();
	})
});