|
|
@ -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; |
|
|
|