diff options
-rwxr-xr-x | lib/app.php | 2 | ||||
-rw-r--r-- | lib/log/owncloud.php | 12 | ||||
-rw-r--r-- | lib/util.php | 34 | ||||
-rw-r--r-- | settings/admin.php | 9 | ||||
-rw-r--r-- | settings/js/log.js | 7 | ||||
-rw-r--r-- | settings/templates/admin.php | 23 | ||||
-rw-r--r-- | settings/templates/log.php | 30 |
7 files changed, 60 insertions, 57 deletions
diff --git a/lib/app.php b/lib/app.php index bd432109b23..9f7d23872f3 100755 --- a/lib/app.php +++ b/lib/app.php @@ -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" )); } diff --git a/lib/log/owncloud.php b/lib/log/owncloud.php index 0ed30510134..881c67d2664 100644 --- a/lib/log/owncloud.php +++ b/lib/log/owncloud.php @@ -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; } diff --git a/lib/util.php b/lib/util.php index 2ea392ec31d..02ac2e505fa 100644 --- a/lib/util.php +++ b/lib/util.php @@ -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. diff --git a/settings/admin.php b/settings/admin.php index 9ee79002b5e..a997bad4e3c 100644 --- a/settings/admin.php +++ b/settings/admin.php @@ -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); diff --git a/settings/js/log.js b/settings/js/log.js index ae83f0a6283..bccf2c88269 100644 --- a/settings/js/log.js +++ b/settings/js/log.js @@ -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++){ diff --git a/settings/templates/admin.php b/settings/templates/admin.php index e3fd60fefce..38c6042c82a 100644 --- a/settings/templates/admin.php +++ b/settings/templates/admin.php @@ -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> diff --git a/settings/templates/log.php b/settings/templates/log.php deleted file mode 100644 index da5defc320e..00000000000 --- a/settings/templates/log.php +++ /dev/null @@ -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> |