From f2fed0c54f91d8aef34e89502ea573fb4c9197ab Mon Sep 17 00:00:00 2001 From: Deon George Date: Thu, 13 Oct 2011 17:53:43 +1100 Subject: [PATCH] Fixes to google chart and other minor items --- .../classes/controller/admin/account.php | 2 +- .../classes/controller/lnapp/login.php | 4 +- .../controller/templatedefault/admin.php | 4 +- .../controller/templatedefault/user.php | 4 +- application/classes/controller/welcome.php | 6 +++ application/classes/country.php | 2 +- modules/gchart/classes/googlechart.php | 50 ++++++++++++++----- 7 files changed, 51 insertions(+), 21 deletions(-) diff --git a/application/classes/controller/admin/account.php b/application/classes/controller/admin/account.php index 56fd98d0..6ffabc47 100644 --- a/application/classes/controller/admin/account.php +++ b/application/classes/controller/admin/account.php @@ -25,7 +25,7 @@ class Controller_Admin_Account extends Controller_TemplateDefault_Admin { ORM::factory('account_log')->order_by('id','DESC')->find_all(), 25, array( - 'id'=>array('label'=>'ID','url'=>'admin/account/view/'), + 'id'=>array('label'=>'ID'), 'date_orig'=>array('label'=>'Date'), 'account->name()'=>array('label'=>'Account'), 'ip'=>array('label'=>'IP Address'), diff --git a/application/classes/controller/lnapp/login.php b/application/classes/controller/lnapp/login.php index aa87f1cf..a2d95c76 100644 --- a/application/classes/controller/lnapp/login.php +++ b/application/classes/controller/lnapp/login.php @@ -18,7 +18,7 @@ class Controller_lnApp_Login extends Controller_TemplateDefault { // If user already signed-in if (Auth::instance()->logged_in()!= 0) { // Redirect to the user account - Request::current()->redirect('user/welcome'); + Request::current()->redirect('user/welcome/index'); } // If there is a post and $_POST is not empty @@ -35,7 +35,7 @@ class Controller_lnApp_Login extends Controller_TemplateDefault { Request::current()->redirect($redir); } else - Request::current()->redirect('user/welcome'); + Request::current()->redirect('user/welcome/index'); } else { SystemMessage::add(array( diff --git a/application/classes/controller/templatedefault/admin.php b/application/classes/controller/templatedefault/admin.php index 80f0ce8a..d74984e3 100644 --- a/application/classes/controller/templatedefault/admin.php +++ b/application/classes/controller/templatedefault/admin.php @@ -1,9 +1,9 @@ redirect('guide/app'); + + if (! Auth::instance()->logged_in()) + Request::current()->redirect('login'); + Block::add(array( 'title'=>'Welcome to lnApp (public)!', 'subtitle'=>'Using lnApp', diff --git a/application/classes/country.php b/application/classes/country.php index 89dea1c2..8c44c210 100644 --- a/application/classes/country.php +++ b/application/classes/country.php @@ -4,7 +4,7 @@ * This class provides Country routines * * @package OSB - * @subpackage Cart + * @subpackage Country * @category Helpers * @author Deon George * @copyright (c) 2010 Deon George diff --git a/modules/gchart/classes/googlechart.php b/modules/gchart/classes/googlechart.php index abf60531..95676b12 100644 --- a/modules/gchart/classes/googlechart.php +++ b/modules/gchart/classes/googlechart.php @@ -115,7 +115,7 @@ class GoogleChart implements Iterator,Countable { return $this->render(); } catch (Exception $e) { - echo Kohana::debug($e); + echo Debug::vars($e); } } @@ -138,13 +138,10 @@ class GoogleChart implements Iterator,Countable { if (! in_array($data['axis'],array('x','r'))) throw new Kohana_Exception('Unknown data type :type',array(':type'=>$data['axis'])); - $m = 0; if (is_array($data['data'])) { foreach ($data['data'] as $title => $values) { $this->numseries++; - $m += max($values); - $this->chartdata['legend'][$this->numseries] = $title; $this->chartdata['axis'][$data['axis']][] = $this->numseries; @@ -155,9 +152,6 @@ class GoogleChart implements Iterator,Countable { throw new Kohana_Exception('Series data needs to be an array'); } - if (! isset($this->chartdata['max'][$data['axis']]) OR ($m > $this->chartdata['max'][$data['axis']])) - $this->chartdata['max'][$data['axis']] = $m*1.1; // @todo This inflation should be configurable. - } else { throw new Kohana_Exception('Series data needs to be an array'); } @@ -228,12 +222,13 @@ class GoogleChart implements Iterator,Countable { $sd = $max = array(); foreach ($this->plotdata as $label => $seriesdata) - foreach ($seriesdata as $type => $data) + foreach ($seriesdata as $type => $data) { foreach ($data as $key => $value) { $sd[$key][$label] = $value; $max[$key] = $this->chartdata['max'][$type]; $invs[$type][$key] = TRUE; } + } foreach ($sd as $k => $v) array_push($sreturn,$this->encode($v,$max[$k])); @@ -262,9 +257,9 @@ class GoogleChart implements Iterator,Countable { // Render $output .= sprintf('%s',$this->url,http_build_query($this->build()),_('Traffic Summary')); -// $output .= Kohana::debug($this->build()); -// $output .= Kohana::debug($this->chartdata); -// $output .= Kohana::debug($this->plotdata); +// $output .= Debug::vars($this->build()); +// $output .= Debug::vars($this->chartdata); +// $output .= Debug::vars($this->plotdata); // Toggle the display of the chart. // @todo This JS should be placed elsewhere for HTML validation @@ -326,11 +321,39 @@ class GoogleChart implements Iterator,Countable { return $output; } + /** + * Some pre-render processing + */ + private function process() { + $max = array(); + + // Work out our maximum number for each series. + foreach ($this->plotdata as $label => $seriesdata) { + + foreach ($seriesdata as $type => $data) { + $c = 0; + foreach ($data as $value) + $c += $value; + + // Scale up our max, so we get some extra space at the top of our chart. + // @todo This should be configurable. + $c *= 1.1; + + if (! isset($this->chartdata['max'][$type])) + $this->chartdata['max'][$type] = $c; + else + $this->chartdata['max'][$type] = ($c > $this->chartdata['max'][$type]) ? $c : $this->chartdata['max'][$type]; + } + } + } + /** * Build the chart */ private function build() { - if ($this->plotdata) + if ($this->plotdata) { + $this->process(); + return array( 'chf'=>'bg,s,FFFFFF00', 'cht'=>$this->chart_type, @@ -347,7 +370,8 @@ class GoogleChart implements Iterator,Countable { 'chxl'=>$this->series_x_labels(), 'chxr'=>$this->series_scale(), ); - else + + } else return array(); }