merge log into admin

This commit is contained in:
Robin Appelman 2012-04-16 12:21:12 +02:00
parent 70d0103a67
commit 5720bd296d
7 changed files with 60 additions and 57 deletions

View File

@ -303,8 +303,6 @@ class OC_App{
$settings[] = array( "id" => "core_users", "order" => 2, "href" => OC_Helper::linkTo( "settings", "users.php" ), "name" => $l->t("Users"), "icon" => OC_Helper::imagePath( "settings", "users.svg" ));
// admin apps menu
$settings[] = array( "id" => "core_apps", "order" => 3, "href" => OC_Helper::linkTo( "settings", "apps.php" ).'?installed', "name" => $l->t("Apps"), "icon" => OC_Helper::imagePath( "settings", "apps.svg" ));
// admin log menu
$settings[] = array( "id" => "core_log", "order" => 4, "href" => OC_Helper::linkTo( "settings", "log.php" ), "name" => $l->t("Log"), "icon" => OC_Helper::imagePath( "settings", "log.svg" ));
$settings[]=array( "id" => "admin", "order" => 1000, "href" => OC_Helper::linkTo( "settings", "admin.php" ), "name" => $l->t("Admin"), "icon" => OC_Helper::imagePath( "settings", "admin.svg" ));
}

View File

@ -44,7 +44,7 @@ class OC_Log_Owncloud {
* @param int level
*/
public static function write($app, $message, $level) {
$minLevel=OC_Config::getValue( "loglevel", 2 );
$minLevel=min(OC_Config::getValue( "loglevel", OC_Log::WARN ),OC_Log::ERROR);
if($level>=$minLevel){
$entry=array('app'=>$app, 'message'=>$message, 'level'=>$level,'time'=>time());
$fh=fopen(self::$logFile, 'a');
@ -61,6 +61,7 @@ class OC_Log_Owncloud {
*/
public static function getEntries($limit=50, $offset=0){
self::init();
$minLevel=OC_Config::getValue( "loglevel", OC_Log::WARN );
$entries=array();
if(!file_exists(self::$logFile)) {
return array();
@ -71,8 +72,13 @@ class OC_Log_Owncloud {
}
$end=max(count($contents)-$offset-1, 0);
$start=max($end-$limit,0);
for($i=$end;$i>$start;$i--) {
$entries[]=json_decode($contents[$i]);
$i=$end;
while(count($entries)<$limit){
$entry=json_decode($contents[$i]);
if($entry->level>=$minLevel){
$entries[]=$entry;
}
$i--;
}
return $entries;
}

View File

@ -129,23 +129,23 @@ class OC_Util {
self::$headers[]=array('tag'=>$tag,'attributes'=>$attributes,'text'=>$text);
}
/**
* formats a timestamp in the "right" way
*
* @param int timestamp $timestamp
* @param bool dateOnly option to ommit time from the result
*/
public static function formatDate( $timestamp,$dateOnly=false){
if(isset($_SESSION['timezone'])){//adjust to clients timezone if we know it
$systemTimeZone = intval(date('O'));
$systemTimeZone=(round($systemTimeZone/100,0)*60)+($systemTimeZone%100);
$clientTimeZone=$_SESSION['timezone']*60;
$offset=$clientTimeZone-$systemTimeZone;
$timestamp=$timestamp+$offset*60;
}
$timeformat=$dateOnly?'F j, Y':'F j, Y, H:i';
return date($timeformat,$timestamp);
}
/**
* formats a timestamp in the "right" way
*
* @param int timestamp $timestamp
* @param bool dateOnly option to ommit time from the result
*/
public static function formatDate( $timestamp,$dateOnly=false){
if(isset($_SESSION['timezone'])){//adjust to clients timezone if we know it
$systemTimeZone = intval(date('O'));
$systemTimeZone=(round($systemTimeZone/100,0)*60)+($systemTimeZone%100);
$clientTimeZone=$_SESSION['timezone']*60;
$offset=$clientTimeZone-$systemTimeZone;
$timestamp=$timestamp+$offset*60;
}
$timeformat=$dateOnly?'F j, Y':'F j, Y, H:i';
return date($timeformat,$timestamp);
}
/**
* Shows a pagenavi widget where you can jump to different pages.

View File

@ -10,11 +10,20 @@ OC_Util::checkAdminUser();
OC_Util::addStyle( "settings", "settings" );
OC_Util::addScript( "settings", "admin" );
OC_Util::addScript( "settings", "log" );
OC_App::setActiveNavigationEntry( "admin" );
$tmpl = new OC_Template( 'settings', 'admin', 'user');
$forms=OC_App::getForms('admin');
$entries=OC_Log_Owncloud::getEntries(3);
function compareEntries($a,$b){
return $b->time - $a->time;
}
usort($entries, 'compareEntries');
$tmpl->assign('loglevel',OC_Config::getValue( "loglevel", 2 ));
$tmpl->assign('entries',$entries);
$tmpl->assign('forms',array());
foreach($forms as $form){
$tmpl->append('forms',$form);

View File

@ -6,14 +6,15 @@
OC.Log={
levels:['Debug','Info','Warning','Error','Fatal'],
loaded:50,//are initially loaded
loaded:3,//are initially loaded
getMore:function(){
$.get(OC.filePath('settings','ajax','getlog.php'),{offset:OC.Log.loaded},function(result){
$.get(OC.filePath('settings','ajax','getlog.php'),{offset:OC.Log.loaded,count:10},function(result){
if(result.status=='success'){
OC.Log.addEntries(result.data);
$('html, body').animate({scrollTop: $(document).height()}, 800);
}
});
OC.Log.loaded+=50;
OC.Log.loaded+=10;
},
addEntries:function(entries){
for(var i=0;i<entries.length;i++){

View File

@ -10,8 +10,8 @@ $levels=array('Debug','Info','Warning','Error','Fatal');
echo $form;
};?>
<fieldset class="personalblock">
<legend><strong><?php echo $l->t('Log level');?></strong></legend>
<select name='loglevel' id='loglevel'>
<legend><strong><?php echo $l->t('Log');?></strong></legend>
Log level: <select name='loglevel' id='loglevel'>
<option value='<?php echo $_['loglevel']?>'><?php echo $levels[$_['loglevel']]?></option>
<?php for($i=0;$i<5;$i++):
if($i!=$_['loglevel']):?>
@ -19,4 +19,23 @@ $levels=array('Debug','Info','Warning','Error','Fatal');
<?php endif;
endfor;?>
</select>
<table id='log'>
<?php foreach($_['entries'] as $entry):?>
<tr>
<td>
<?php echo $levels[$entry->level];?>
</td>
<td>
<?php echo $entry->app;?>
</td>
<td>
<?php echo $entry->message;?>
</td>
<td>
<?php echo OC_Util::formatDate($entry->time);?>
</td>
</tr>
<?php endforeach;?>
</table>
<input id='moreLog' type='button' value='<?php echo $l->t('More');?>...'></input>
</fieldset>

View File

@ -1,30 +0,0 @@
<?php /**
* Copyright (c) 2011, Robin Appelman <icewind1991@gmail.com>
* This file is licensed under the Affero General Public License version 3 or later.
* See the COPYING-README file.
*/
$levels=array('Debug','Info','Warning','Error','Fatal');
?>
<div id="controls">
</div>
<table id='log'>
<?php foreach($_['entries'] as $entry):?>
<tr>
<td>
<?php echo $levels[$entry->level];?>
</td>
<td>
<?php echo $entry->app;?>
</td>
<td>
<?php echo $entry->message;?>
</td>
<td>
<?php echo $l->l('datetime',$entry->time);?>
</td>
</tr>
<?php endforeach;?>
</table>
<input id='moreLog' type='button' value='<?php echo $l->t('More');?>...'></input>