From 952b9e4f08a7a8b0f8f0d17b902a7c9650373f9c Mon Sep 17 00:00:00 2001 From: Chris Nighswonger Date: Mon, 3 May 2010 19:27:29 -0400 Subject: [PATCH 3/5] [3/5] Enhancement Bug 4444: Centralize Code Handling Perl Dependencies Content-Type: text/plain; charset="utf-8" Porting about.pl over to use C4::Installer::PerlModules --- about.pl | 148 +++++-------------- koha-tmpl/intranet-tmpl/prog/en/modules/about.tmpl | 33 ++++- 2 files changed, 66 insertions(+), 115 deletions(-) diff --git a/about.pl b/about.pl index 04a9675..be5e0ab 100755 --- a/about.pl +++ b/about.pl @@ -17,14 +17,17 @@ use strict; use warnings; -use C4::Output; # contains gettemplate -use C4::Auth; -use C4::Context; + use CGI; use LWP::Simple; use XML::Simple; use Config; +use C4::Output; # contains gettemplate +use C4::Auth; +use C4::Context; +use C4::Installer; + my $query = new CGI; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { @@ -60,118 +63,45 @@ $template->param( apacheVersion => $apacheVersion, zebraVersion => $zebraVersion, ); -my @component_names = - qw/ -Algorithm::CheckDigits -Biblio::EndnoteStyle -CGI -CGI::Carp -CGI::Session -CGI::Session::Serialize::yaml -Class::Factory::Util -Class::Accessor -Compress::Zlib -DBD::mysql -DBD::SQLite2 -DBI -Data::Dumper -Data::ICal -Date::Calc -Date::ICal -Date::Manip -Digest::MD5 -Digest::SHA -Email::Date -File::Temp -GD -GD::Barcode::UPCE -Getopt::Long -Getopt::Std -Graphics::Magick -HTML::Template::Pro -HTTP::Cookies -HTTP::OAI -HTTP::Request::Common -HTML::Scrubber -IPC::Cmd -JSON -LWP::Simple -LWP::UserAgent -Lingua::Stem -Lingua::Stem::Snowball -List::Util -List::MoreUtils -Locale::Currency::Format -Locale::Language -MARC::Crosswalk::DublinCore -MARC::Charset -MARC::File::XML -MARC::Record -MIME::Base64 -MIME::Lite -MIME::QuotedPrint -Mail::Sendmail -Net::LDAP -Net::LDAP::Filter -Net::Z3950::ZOOM -Number::Format -PDF::API2 -PDF::API2::Page -PDF::API2::Util -PDF::API2::Simple -PDF::Table -PDF::Reuse -PDF::Reuse::Barcode -POE -POSIX -Schedule::At -SMS::Send -Term::ANSIColor -Test -Test::Harness -Test::More -Text::CSV -Text::CSV_XS -Text::CSV::Encoded -Text::Iconv -Text::Wrap -Time::HiRes -Time::localtime -Unicode::Normalize -XML::Dumper -XML::LibXML -XML::LibXSLT -XML::SAX::ParserFactory -XML::SAX::Writer -XML::Simple -XML::RSS -YAML::Syck - /; my @components = (); -my $counter=0; -foreach my $component ( sort @component_names ) { - my $version; - if ( eval "require $component" ) { - $version = $component->VERSION; - if ( $version eq '' ) { - $version = 'unknown'; - } +my $perl_modules = C4::Installer::PerlModules->new; +$perl_modules->version_info; + +my @pm_types = qw(missing_pm upgrade_pm current_pm); + +foreach my $pm_type(@pm_types) { + my $modules = $perl_modules->get_attr($pm_type); + foreach (@$modules) { + my ($module, $stats) = each %$_; + push( + @components, + { + name => $module, + version => $stats->{'cur_ver'}, + missing => ($pm_type eq 'missing_pm' ? 1 : 0), + upgrade => ($pm_type eq 'upgrade_pm' ? 1 : 0), + current => ($pm_type eq 'current_pm' ? 1 : 0), + require => $stats->{'required'}, + } + ); } - else { - $version = 'module is missing'; +} + +@components = sort {$a->{'name'} cmp $b->{'name'}} @components; + +my $counter=0; +my $row = []; +my $table = []; +foreach (@components) { + push (@$row, $_); + unless (++$counter % 4) { + push (@$table, {row => $row}); + $row = []; } - push( - @components, - { - name => $component, - version => $version, - newrow => (++$counter % 4) ? 0 : 1, - } - ); } -$template->param( components => \@components ); +$template->param( table => $table ); output_html_with_http_headers $query, $cookie, $template->output; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/about.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/about.tmpl index 9b0b969..d494cf2 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/about.tmpl +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/about.tmpl @@ -50,15 +50,36 @@
- +
+ - - - - + + + + + + + -
Perl modules
+ + + + + + + + + + + + + + + + + + Not Installed
-- 1.7.0.4