Fixes to google chart and other minor items

This commit is contained in:
Deon George 2011-10-13 17:53:43 +11:00
parent dce2daddc4
commit f2fed0c54f
7 changed files with 51 additions and 21 deletions

View File

@ -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'),

View File

@ -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(

View File

@ -1,9 +1,9 @@
<?php defined('SYSPATH') or die('No direct access allowed.');
/**
* OSB User Main home page controller
* lnApp User Main home page controller
*
* @package OSB
* @package lnApp
* @subpackage Page/Admin
* @category Controllers
* @author Deon George

View File

@ -1,9 +1,9 @@
<?php defined('SYSPATH') or die('No direct access allowed.');
/**
* OSB User Main home page controller
* lnApp User Main home page controller
*
* @package OSB
* @package lnApp
* @subpackage Page/User
* @category Controllers
* @author Deon George

View File

@ -14,6 +14,12 @@ class Controller_Welcome extends Controller_TemplateDefault {
protected $auth_required = FALSE;
public function action_index() {
if (! Kohana::config('config.appname'))
Request::current()->redirect('guide/app');
if (! Auth::instance()->logged_in())
Request::current()->redirect('login');
Block::add(array(
'title'=>'Welcome to lnApp (public)!',
'subtitle'=>'Using lnApp',

View File

@ -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

View File

@ -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('<img src="%s?%s" alt="%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();
}