From ca8cddbd2d5d89ed4c1bdf9498bb4eb68f2fac13 Mon Sep 17 00:00:00 2001 From: Othmar Gsenger Date: Fri, 14 Jan 2011 22:19:17 +0000 Subject: added ajax & navigation --- groups.pl | 96 ++++++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 61 insertions(+), 35 deletions(-) (limited to 'groups.pl') diff --git a/groups.pl b/groups.pl index f810659..cf5a029 100755 --- a/groups.pl +++ b/groups.pl @@ -1,45 +1,71 @@ #!/usr/bin/perl + use strict; use CGI qw(:standard); use CGI::Carp 'fatalsToBrowser'; use local::nzbget; use local::db; -print header; -print start_html('nzbget groups'); - -my $cli = new local::nzbget; -print < -LALALA -; -print hr(); -print CGI::start_table(); -my $status = $cli->send_request('status') or die "Can't connect to nubget"; -#print Tr(td['download speed', 'cur', int($status->{DownloadRate}->value/(1024*1024)).'MB/s','average',int($status->{AverageDownloadRate}->value/(1024*1024)).'MB/s']); -print Tr(td['download speed', int($status->{DownloadRate}->value/(1024*1024)).'MB/s']); -print CGI::end_table(); -print hr(); - -my $row = $cli->send_request('listgroups') or die "Can't connect to nubget"; -print CGI::start_table(); -foreach my $value ( @$row) + +use CGI::Ajax; + +my $cgi = new CGI; +my $pjx = new CGI::Ajax( 'get_download_speed' => \&get_download_speed, + 'get_download_table' => \&get_download_table + ); +print $pjx->build_html( $cgi, \&Show_HTML); + +sub get_download_speed { - my ($download) = local::db::download->retrieve($value->{NZBNicename}->value) or die ' Error in groups'; - my $remaining=$value->{RemainingSizeMB}->value; - my $total=$value->{FileSizeMB}->value; - my $percent = int(100-100*$remaining/$total); - $download->size($total); - $download->update(); - print Tr(td([$download->category->name,$download->name,$download->owner->name,$percent.'%'])); - #foreach my $key (keys %$value) - #{ - # print Tr(td([$key,$value->{$key}->value])); - #} + my $cli = new local::nzbget; + my $status = $cli->send_request('status') or die "Can't connect to nubget"; + return int($status->{DownloadRate}->value/(1024*1024)).'MB/s'; } -; -print CGI::end_table(); -print end_html; +sub get_download_table +{ + my $html; + my $cli = new local::nzbget; + my $row = $cli->send_request('listgroups') or die "Can't connect to nubget"; + foreach my $value ( @$row) + { + my ($download) = local::db::download->retrieve($value->{NZBNicename}->value) or die ' Error in groups'; + my $remaining=$value->{RemainingSizeMB}->value; + my $total=$value->{FileSizeMB}->value; + my $percent = int(100-100*$remaining/$total); + $download->size($total); + $download->update(); + $html.= Tr(td([$download->category->name,$download->name,$download->owner->name,$percent.'%'])); + #foreach my $key (keys %$value) + #{ + # $html.= Tr(td([$key,$value->{$key}->value])); + #} + } + return $html; +} +sub Show_HTML +{ + use local::menu; + my $menu= new local::menu(%ENV); + my $html= $menu->start_html('nzbget status'); + + $html.= < +LALALA + ; + $html.= hr(); + $html.= CGI::start_table(); + $html.= Tr(td['download speed', div({id=>'speed'},get_download_speed())]); + $html.= CGI::end_table(); + $html.= hr(); + + $html.= CGI::start_table(id=>'dltable'); + $html.= get_download_table(); + $html.= CGI::end_table(); + + $html.= $menu->end_html(); + return $html +} -- cgit v1.2.3