sub index {
my $self = shift;
- my $columns = $self->session('columns') || $self->redirect_to('/data/columns');
+ my $columns = $self->session('columns') || return $self->redirect_to('/data/columns');
+ my $path = $self->session('path') || return $self->redirect_to('/data/load');
+ my $with = $self->param('with') || 'points';
+
+ my $hide_columns;
+ if ( $self->param('gnuplot_hide') ) {
+ $hide_columns->{$_}++ foreach $self->param('gnuplot_hide');
+ warn "## hide_columns ", dump $hide_columns;
+ }
- my $name = unac_string( join('.', 'items', @$columns) );
- $name =~ s/\W+/_/g;
+# my $name = join('.', 'items', map { my $n = unac_string($_); $n =~ s/\W+/_/g; $n } @$columns );
+ my $name = MojoFacets::Data::__export_path_name( $path, 'items', @$columns );
warn "# name $name\n";
- my $url = '/export/' . $self->session('path') . '/' . $name;
- my $dir = $self->app->home->rel_dir('public');
+ my $url = "/export/$path/$name";
+ my $dir = $self->app->home->rel_file('public');
if ( -e "$dir/$url" ) {
+ my $timefmt = $self->param('timefmt');
+
+ my $spaces = $timefmt;
+ $spaces =~ s/\S//g;
+ $spaces = length( $spaces );
+
my @plot;
foreach ( 1 .. $#$columns ) {
- my $n = $_ + 1;
- push @plot, qq|"$dir/$url" using 1:$n title "$columns->[$_]" with points|;
+ my $title = $columns->[$_];
+ my $n = $_ + 1 + $spaces;
+ push @plot, qq|"$dir/$url" using 1:$n title "$title" with $with| unless $hide_columns->{ $title };
}
my $g = qq|
|;
- if ( my $timefmt = $self->param('timefmt') ) {
+ if ( $timefmt ) {
$g .= qq|
set xdata time
print $gnuplot $g;
close $gnuplot;
- $self->redirect_to( "$url.png" );
- #$self->render_text( "$url.png" );
+ if ( -e "$dir/$url.png" ) {
+ warn "redirect $url.png";
+ return $self->redirect_to( "$url.png" );
+ } else {
+ $self->render_text( "no $dir/$url.png" );
+ }
} else {
$self->render_text("no graph for $url");
}