[Jifty-commit] r6022 - in jifty/trunk: lib/Jifty/Plugin/Chart/Renderer
Jifty commits
jifty-commit at lists.jifty.org
Tue Nov 18 16:17:28 EST 2008
Author: sartak
Date: Tue Nov 18 16:17:28 2008
New Revision: 6022
Modified:
jifty/trunk/ (props changed)
jifty/trunk/lib/Jifty/Plugin/Chart/Renderer/GoogleViz.pm
Log:
r75720 at onn: sartak | 2008-11-18 16:17:24 -0500
Encode values with the context of a column; DateTime encoding
Modified: jifty/trunk/lib/Jifty/Plugin/Chart/Renderer/GoogleViz.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Plugin/Chart/Renderer/GoogleViz.pm (original)
+++ jifty/trunk/lib/Jifty/Plugin/Chart/Renderer/GoogleViz.pm Tue Nov 18 16:17:28 2008
@@ -140,13 +140,18 @@
my %args = @_;
my @data = @{ $args{data} };
+ my %cols = %{ $args{columns} };
Jifty->web->out('data.addRows(' . scalar(@data) . ");\n");
my $row = 0;
for my $datapoint (@data) {
for my $column (keys %$datapoint) {
- my $value = $datapoint->{$column};
+ my $value = $self->encode_value(
+ value => $datapoint->{$column},
+ column => $cols{$column},
+ );
+
my $encoded = objToJson($value);
Jifty->web->out("data.setValue($row, '$column', $encoded);\n");
@@ -156,5 +161,45 @@
}
}
+=head2 encode_value
+
+=cut
+
+sub encode_value {
+ my $self = shift;
+ my %args = @_;
+
+ my $value = $args{value};
+ my $column = $args{column};
+
+ if ($column->{type} eq 'date') {
+ if (!ref($value)) {
+ $value = Jifty::DateTime->new_from_string($value);
+ }
+
+ if (ref($value)) {
+ if ($value->isa('Jifty::DateTime') && $value->is_date) {
+ return sprintf 'new Date(%d, %d, %d)',
+ $value->year,
+ $value->month,
+ $value->day;
+ }
+ elsif ($value->isa('DateTime')) {
+ return sprintf 'new Date(%d, %d, %d, %d, %d, %d)',
+ $value->year,
+ $value->month,
+ $value->day,
+ $value->hour,
+ $value->minute,
+ $value->second;
+ }
+ }
+
+ die "Can't handle the date '$value'";
+ }
+
+ return objToJson($value);
+}
+
1;
More information about the Jifty-commit
mailing list