/[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 871 by dpavlin, Wed Dec 17 17:59:59 2008 UTC revision 920 by dpavlin, Mon Jan 5 20:22:37 2009 UTC
# Line 6  with 'Frey::Web'; Line 6  with 'Frey::Web';
6  #with 'Frey::Storage';  #with 'Frey::Storage';
7  with 'Frey::jQuery';  with 'Frey::jQuery';
8  with 'Frey::File'; # FIXME inline on demand?  with 'Frey::File'; # FIXME inline on demand?
9    with 'Frey::Web::IFrame';
10    
11  use DateTimeX::Easy;  use DateTimeX::Easy;
12    
# Line 20  has sar_command => ( Line 21  has sar_command => (
21          default => 'ssh www.rot13.org sar -n 1',          default => 'ssh www.rot13.org sar -n 1',
22  );  );
23    
24    with 'Frey::Sponge'; # has sponge
25    
26  sub as_markup {  sub as_markup {
27          my ($self) = @_;          my ($self) = @_;
28    
# Line 30  sub as_markup { Line 33  sub as_markup {
33                  <script language="javascript" type="text/javascript" src="/$path/jquery.flot.js"></script>                  <script language="javascript" type="text/javascript" src="/$path/jquery.flot.js"></script>
34          |);          |);
35    
36          $self->add_css("$path/layout.css");          my $sponge = $self->sponge;
   
         my $sponge = Frey::Shell::sar->new( sar_command => $self->sar_command )->as_sponge;  
         #warn $self->dump( $sponge );  
37    
38          my $by_col;          my $by_col;
39          my $unit_by_col;          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 $time = eval {
43                            DateTimeX::Easy->new( $row->[0] )->epoch * 1000; # ms
44                    };
45                    die "FATAL: sponge first column ", $self->dump( $row->[0] ), " isn't valid time because of: $@" if $@;
46                  foreach my $col ( 1 .. $#$row ) {                  foreach my $col ( 1 .. $#$row ) {
47                          my $v = $row->[$col];                          my $v = $row->[$col];
48                          $unit_by_col->{$col} = $1 if $v =~ s{([M%])$}{};                          $unit_by_col->{$col} = $1 if $v =~ s{([M%])$}{};
49                          push @{ $by_col->{$col} }, [ $x, $v ];                          push @{ $by_col->{$col} }, [ $time, $v ];
50                  }                  }
51          }          }
52    
# Line 58  sub as_markup { Line 61  sub as_markup {
61                  $dataset->{ $name }->{data} = $by_col->{$nr};                  $dataset->{ $name }->{data} = $by_col->{$nr};
62          }          }
63    
64          my $data_js = 'var datasets = ' . to_json( $dataset ) . ";\n";          my $placeholder = qq|<div class="frey-error">no data found</div>|;
65            my $data_js = '';
66            if ( $dataset ) {
67                    $data_js = 'var datasets = ' . to_json( $dataset ) . ";\n";
68                    $placeholder = qq|
69                            <div id="placeholder" style="width:600px;height:300px;"></div>
70                            <div id="selection">no selection</div>
71                    |
72                    . $self->iframe_html
73                    ;
74            }
75    
76          warn "# $data_js" if $self->debug;          warn "# $data_js" if $self->debug;
77    
78          my $sar = $self->sar_command;          my $sar = $self->sar_command;
79          my $c = $sar;          my $c = $sar;
80          $c =~ s{(-n\s*\d+).*}{$1};          $c =~ s{sar\s(-n\s*\d+)?(.*?)$}{sar $1};
81    
82          my $form = qq|          my $form = qq|
83                  <form method="post">                  <form method="post">
# Line 73  sub as_markup { Line 86  sub as_markup {
86    
87          my $flags = `atsar help 2>&1`;          my $flags = `atsar help 2>&1`;
88          $flags =~ s{^.+flags:\s+}{}s;          $flags =~ s{^.+flags:\s+}{}s;
89            $flags =~ s{^\s*-[AS].+$}{}gm; # remove -A and -S flags which doesn't make sense
90            $flags =~ s{^\s+}{}s;
91    
92          foreach my $line ( split(/\s*\n\s*/, $flags ) ) {          foreach my $line ( split(/\s*\n\s*/, $flags ) ) {
93                  my ( $flag, $desc ) = split(/\s+/, $line, 2 );                  my ( $flag, $desc ) = split(/\s+/, $line, 2 );
94                  warn "# $flag | $desc";                  warn "# $flag | $desc" if $self->debug;
95                  my $v = "$c $flag";                  my $v = "$c $flag";
96                  my $checked = '';                  my $checked = '';
97                  $checked = " checked" if $v eq $self->sar_command;                  $checked = " checked" if $self->sar_command =~ m{$flag};
98                  $form .= qq|<input type="radio" name="sar_command" value="$v"$checked>$desc<br>\n|;                  $form .= qq|<input type="radio" name="sar_command" value="$v"$checked>$desc<br>\n|;
99          }          }
100    
# Line 91  sub as_markup { Line 106  sub as_markup {
106                  #choices, form { float: left; }                  #choices, form { float: left; }
107          |);          |);
108    
109            return
110          qq|          qq|
         <div id="placeholder" style="width:600px;height:300px;"></div>  
111    
112                  <br><tt>$sar</tt>                  <code>$sar</code>
113    
114                    $placeholder
115    
116                  $form                  $form
117    
118                  <div id="choices"><b>Show</b></div>                  <div id="choices"><b>Show</b></div>
119    
120          | . q|          | . q|

Legend:
Removed from v.871  
changed lines
  Added in v.920

  ViewVC Help
Powered by ViewVC 1.1.26