nextcloud/settings/js/log.js

79 lines
1.8 KiB
JavaScript

/**
* 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/>');
if(isNaN(entry.time)){
timeTd.text(entry.time);
} else {
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();
})
});