/[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 876 by dpavlin, Thu Dec 18 13:03:22 2008 UTC revision 1133 by dpavlin, Tue Jun 30 15:10:55 2009 UTC
# Line 2  package Frey::jQuery::flot; Line 2  package Frey::jQuery::flot;
2  use Moose;  use Moose;
3    
4  extends 'Frey';  extends 'Frey';
5  with 'Frey::Web';  with 'Frey::Web', 'Frey::jQuery', 'Frey::File', 'Frey::Web::IFrame';
 #with 'Frey::Storage';  
 with 'Frey::jQuery';  
 with 'Frey::File'; # FIXME inline on demand?  
6    
7  use DateTimeX::Easy;  use DateTimeX::Easy;
8    
9  use lib 'lib';  use lib 'lib';
 use Frey::Shell::sar;  
10  use JSON;  use JSON;
11    
12  has sar_command => (  has 'sponge' => (
13          is => 'rw',          is => 'rw',
14          isa => 'Str',          isa => 'Sponge',
15          required => 1,          required => 1,
         default => 'ssh www.rot13.org sar -n 1',  
16  );  );
17    
18  sub as_markup {  sub as_markup {
# Line 30  sub as_markup { Line 25  sub as_markup {
25                  <script language="javascript" type="text/javascript" src="/$path/jquery.flot.js"></script>                  <script language="javascript" type="text/javascript" src="/$path/jquery.flot.js"></script>
26          |);          |);
27    
28          my $sponge = Frey::Shell::sar->new( sar_command => $self->sar_command )->as_sponge;          my $sponge = $self->sponge;
         #warn $self->dump( $sponge );  
29    
30          my $by_col;          my $by_col;
31          my $unit_by_col;          my $unit_by_col;
32    
33          foreach my $row ( @{ $sponge->{rows} } ) {          foreach my $row ( @{ $sponge->{rows} } ) {
34                  my $x = DateTimeX::Easy->new( $row->[0] )->epoch * 1000; # ms                  my $time = eval {
35                            DateTimeX::Easy->new( $row->[0] )->epoch * 1000; # ms
36                    };
37                    die "FATAL: sponge first column ", $self->dump( $row->[0] ), " isn't valid time because of: $@" if $@;
38                  foreach my $col ( 1 .. $#$row ) {                  foreach my $col ( 1 .. $#$row ) {
39                          my $v = $row->[$col];                          my $v = $row->[$col];
40                          $unit_by_col->{$col} = $1 if $v =~ s{([M%])$}{};                          $unit_by_col->{$col} = $1 if $v =~ s{([M%])$}{};
41                          push @{ $by_col->{$col} }, [ $x, $v ];                          push @{ $by_col->{$col} }, [ $time, $v ];
42                  }                  }
43          }          }
44    
# Line 60  sub as_markup { Line 57  sub as_markup {
57          my $data_js = '';          my $data_js = '';
58          if ( $dataset ) {          if ( $dataset ) {
59                  $data_js = 'var datasets = ' . to_json( $dataset ) . ";\n";                  $data_js = 'var datasets = ' . to_json( $dataset ) . ";\n";
60                  $placeholder = qq|<div id="placeholder" style="width:600px;height:300px;"></div>|;                  $placeholder = qq|
61                            <div id="placeholder" style="width:600px;height:300px;"></div>
62                            <div id="selection">no selection</div>
63                    |
64                    . $self->iframe_html
65                    ;
66          }          }
67    
68          warn "# $data_js" if $self->debug;          warn "# $data_js" if $self->debug;
69    
70          my $sar = $self->sar_command;          my $form = '<!-- no sar_command in sponge -->';
71          my $c = $sar;          my $sar_command = $sponge->{sar_command} || warn "no sar_command in spunge";
72          $c =~ s{(-n\s*\d+).*}{$1};          if ( my $c = $sar_command ) {
73                    $c =~ s{sar\s(-n\s*\d+)?(.*?)$}{sar $1};
74          my $form = qq|  
75                  <form method="post">                  $form = qq|
76                  <b>From</b> <input type="submit" value="refresh"><br>                          <form method="post">
77          |;                          <b>From</b> <input type="submit" value="refresh"><br>
78                    |;
79    
80                    my $flags = `atsar help 2>&1`;
81                    $flags =~ s{^.+flags:\s+}{}s;
82                    $flags =~ s{^\s*-[AS].+$}{}gm; # remove -A and -S flags which doesn't make sense
83                    $flags =~ s{^\s+}{}s;
84    
85                    foreach my $line ( split(/\s*\n\s*/, $flags ) ) {
86                            my ( $flag, $desc ) = split(/\s+/, $line, 2 );
87                            warn "# $flag | $desc" if $self->debug;
88                            my $v = "$c $flag";
89                            my $checked = '';
90                            $checked = " checked" if $sar_command =~ m{$flag};
91                            $form .= qq|<input type="radio" name="sar_command" value="$v"$checked>$desc<br>\n|;
92                    }
93    
94          my $flags = `atsar help 2>&1`;                  $form .= qq|
95          $flags =~ s{^.+flags:\s+}{}s;                          </form>
96          $flags =~ s{^\s*-[AS].+$}{}gm; # remove -A and -S flags which doesn't make sense                  |;
97          $flags =~ s{^\s+}{}s;  
98                    $self->add_css(q|
99          foreach my $line ( split(/\s*\n\s*/, $flags ) ) {                          #choices, form { float: left; }
100                  my ( $flag, $desc ) = split(/\s+/, $line, 2 );                  |);
                 warn "# $flag | $desc";  
                 my $v = "$c $flag";  
                 my $checked = '';  
                 $checked = " checked" if $v eq $self->sar_command;  
                 $form .= qq|<input type="radio" name="sar_command" value="$v"$checked>$desc<br>\n|;  
101          }          }
102    
         $form .= qq|  
                 </form>  
         |;  
   
         $self->add_css(q|  
                 #choices, form { float: left; }  
         |);  
   
103          return          return
104          qq|          qq|
105    
106                  <code>$sar</code>                  <code>$sar_command</code>
107    
108                  $placeholder                  $placeholder
109    
# Line 128  sub as_markup { Line 132  sub as_markup {
132          |;          |;
133  }  }
134    
135    __PACKAGE__->meta->make_immutable;
136    no Moose;
137    
138  1;  1;

Legend:
Removed from v.876  
changed lines
  Added in v.1133

  ViewVC Help
Powered by ViewVC 1.1.26