/[Frey]/trunk/lib/Frey/jQuery/flot.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Frey/jQuery/flot.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 870 by dpavlin, Wed Dec 17 14:23:35 2008 UTC revision 873 by dpavlin, Wed Dec 17 18:15:17 2008 UTC
# Line 36  sub as_markup { Line 36  sub as_markup {
36          #warn $self->dump( $sponge );          #warn $self->dump( $sponge );
37    
38          my $by_col;          my $by_col;
39            my $unit_by_col;
40    
41          foreach my $row ( @{ $sponge->{rows} } ) {          foreach my $row ( @{ $sponge->{rows} } ) {
42                  my $x = DateTimeX::Easy->new( $row->[0] )->epoch * 1000; # ms                  my $x = DateTimeX::Easy->new( $row->[0] )->epoch * 1000; # ms
43                  foreach my $col ( 2 .. 8 ) {                  foreach my $col ( 1 .. $#$row ) {
44                          push @{ $by_col->{$col} }, [ $x, $row->[$col] ];                          my $v = $row->[$col];
45                            $unit_by_col->{$col} = $1 if $v =~ s{([M%])$}{};
46                            push @{ $by_col->{$col} }, [ $x, $v ];
47                  }                  }
48          }          }
49    
# Line 48  sub as_markup { Line 51  sub as_markup {
51          my @names;          my @names;
52          foreach my $nr ( keys %$by_col ) {          foreach my $nr ( keys %$by_col ) {
53                  my $name = $sponge->{NAME}->[$nr];                  my $name = $sponge->{NAME}->[$nr];
54                  $dataset->{ $name }->{label} ||= $name;                  $dataset->{ $name }->{label}
55                            ||= $name
56                              . ( $unit_by_col->{$nr} ? ' [' . $unit_by_col->{$nr} . ']' : '' )
57                              ;
58                  $dataset->{ $name }->{data} = $by_col->{$nr};                  $dataset->{ $name }->{data} = $by_col->{$nr};
59          }          }
60    
61          my $data_js = 'var datasets = ' . to_json( $dataset ) . ';';          my $placeholder = qq|<div class="frey-error">no data found</div>|;
62            my $data_js = '';
63            if ( $dataset ) {
64                    $data_js = 'var datasets = ' . to_json( $dataset ) . ";\n";
65                    $placeholder = qq|<div id="placeholder" style="width:600px;height:300px;"></div>|;
66            }
67    
68          warn "# $data_js" if $self->debug;          warn "# $data_js" if $self->debug;
69    
70          my $c = $self->sar_command;          my $sar = $self->sar_command;
71            my $c = $sar;
72          $c =~ s{(-n\s*\d+).*}{$1};          $c =~ s{(-n\s*\d+).*}{$1};
73    
74          my $form = qq|          my $form = qq|
75                  <form method="post">                  <form method="post">
76                  <select name="sar_command">                  <b>From</b> <input type="submit" value="refresh"><br>
77          |;          |;
78    
79          my $flags = `atsar help 2>&1`;          my $flags = `atsar help 2>&1`;
80          $flags =~ s{^.+flags:\s+}{}s;          $flags =~ s{^.+flags:\s+}{}s;
81            $flags =~ s{^\s*-[AS].+$}{}gm; # remove -A and -S flags which doesn't make sense
82            $flags =~ s{^\s+}{}s;
83    
84          foreach my $line ( split(/\s*\n\s*/, $flags ) ) {          foreach my $line ( split(/\s*\n\s*/, $flags ) ) {
85                  my ( $flag, $desc ) = split(/\s+/, $line );                  my ( $flag, $desc ) = split(/\s+/, $line, 2 );
86                  warn "# $flag | $desc";                  warn "# $flag | $desc";
87                  my $v = "$c $flag";                  my $v = "$c $flag";
88                  my $selected = '';                  my $checked = '';
89                  $selected = " selected" if $v eq $self->sar_command;                  $checked = " checked" if $v eq $self->sar_command;
90                  $form .= qq|<option value="$v"$selected>$desc</option>|;                  $form .= qq|<input type="radio" name="sar_command" value="$v"$checked>$desc<br>\n|;
91          }          }
92    
93          $form .= qq|          $form .= qq|
                 </select>  
                 <input type="submit" value="reload">  
94                  </form>                  </form>
95          |;          |;
96    
97          $self->add_css(q|          $self->add_css(q|
98                  #choices { float: right }                  #choices, form { float: left; }
99          |);          |);
100    
101            return
102          qq|          qq|
103    
104                  <div id="choices">Show $form</div>                  $placeholder
105    
106                    <br><tt>$sar</tt>
107    
108                    $form
109    
110          <div id="placeholder" style="width:600px;height:300px;"></div>                  <div id="choices"><b>Show</b></div>
111    
112          | . q|          | . q|
113                  <script id="source" language="javascript" type="text/javascript">                  <script id="source" language="javascript" type="text/javascript">

Legend:
Removed from v.870  
changed lines
  Added in v.873

  ViewVC Help
Powered by ViewVC 1.1.26