X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=tools%2Fviewlog.pl;h=e7d8e02f5ea92296790b7f5bb861d5fab2f51e45;hb=37f3807442ce1136a57e6fec76648994ada7a5cb;hp=c4c5d99d5a01dce919e67deb5625a5a995f3acd8;hpb=83b8cfb1ad9c6adb265559c71ef5b04ff4773209;p=koha.git diff --git a/tools/viewlog.pl b/tools/viewlog.pl index c4c5d99d5a..e7d8e02f5e 100755 --- a/tools/viewlog.pl +++ b/tools/viewlog.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl - -# Copyright 2000-2002 Katipo Communications +# Copyright 2010 BibLibre +# Copyright 2011 MJ Ray and software.coop # # This file is part of Koha. # @@ -14,11 +14,12 @@ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. use strict; +#use warnings; FIXME - Bug 2505 use C4::Auth; use CGI; use C4::Context; @@ -28,34 +29,31 @@ use C4::Output; use C4::Log; use C4::Items; use C4::Branch; -use Data::Dumper; - -use vars qw($debug); +use C4::Debug; +# use Data::Dumper; +use C4::Search; # enabled_staff_search_views -BEGIN { - $debug = $ENV{DEBUG} || 0; -} +use vars qw($debug $cgi_debug); =head1 viewlog.pl -plugin that shows a stats on borrowers +plugin that shows stats =cut my $input = new CGI; -$debug or $debug = $input->param('debug') || 0; +$debug or $debug = $cgi_debug; my $do_it = $input->param('do_it'); -my $module = $input->param("module"); +my @modules = $input->param("modules"); my $user = $input->param("user"); -my $action = $input->param("action"); +my @action = $input->param("action"); my $object = $input->param("object"); my $info = $input->param("info"); my $datefrom = $input->param("from"); my $dateto = $input->param("to"); my $basename = $input->param("basename"); -my $mime = $input->param("MIME"); -my $del = $input->param("sep"); +#my $del = $input->param("sep"); my $output = $input->param("output") || "screen"; my $src = $input->param("src"); # this param allows us to be told where we were called from -fbcit @@ -73,22 +71,26 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( if ($src eq 'circ') { # if we were called from circulation, use the circulation menu and get data to populate it -fbcit use C4::Members; my $borrowernumber = $object; - my $data = GetMember($borrowernumber,'borrowernumber'); + my $data = GetMember('borrowernumber'=>$borrowernumber); my ($picture, $dberror) = GetPatronImage($data->{'cardnumber'}); $template->param( picture => 1 ) if $picture; + $template->param( menu => 1, title => $data->{'title'}, initials => $data->{'initials'}, surname => $data->{'surname'}, + othernames => $data->{'othernames'}, borrowernumber => $borrowernumber, firstname => $data->{'firstname'}, cardnumber => $data->{'cardnumber'}, categorycode => $data->{'categorycode'}, + category_type => $data->{'category_type'}, categoryname => $data->{'description'}, address => $data->{'address'}, address2 => $data->{'address2'}, city => $data->{'city'}, - zipcode => $data->{'zipcode'}, + state => $data->{'state'}, + zipcode => $data->{'zipcode'}, phone => $data->{'phone'}, phonepro => $data->{'phonepro'}, email => $data->{'email'}, @@ -101,19 +103,27 @@ $template->param( DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), dateformat => C4::Dates->new()->format(), debug => $debug, + C4::Search::enabled_staff_search_views, ); if ($do_it) { - my $results = GetLogs($datefrom,$dateto,$user,$module,$action,$object,$info); - my $total = scalar @$results; - warn "Total records retrieved = $total"; - foreach my $result (@$results){ - if ($result->{'info'} eq 'item'){ + my @data; + my ($results,$modules,$action); + if ($action[0] ne '') { $action = \@action; } # match All means no limit + if ($modules[0] ne '') { $modules = \@modules; } # match All means no limit + $results = GetLogs($datefrom,$dateto,$user,$modules,$action,$object,$info); + @data=@$results; + my $total = scalar @data; + foreach my $result (@data){ + if ($result->{'info'} eq 'item'||$result->{module} eq "CIRCULATION"){ # get item information so we can create a working link - my $item=GetItem($result->{'object'}); + my $itemnumber=$result->{'object'}; + $itemnumber=$result->{'info'} if ($result->{module} eq "CIRCULATION"); + my $item=GetItem($itemnumber); $result->{'biblionumber'}=$item->{'biblionumber'}; $result->{'biblioitemnumber'}=$item->{'biblionumber'}; + $result->{'barcode'}=$item->{'barcode'}; } } @@ -122,59 +132,47 @@ if ($do_it) { $template->param ( logview => 1, total => $total, - $module => 1, - looprow => $results, + looprow => \@data, do_it => 1, datefrom => $datefrom, dateto => $dateto, user => $user, - module => $module, object => $object, - action => $action, + action => \@action, info => $info, src => $src, ); + #module => 'fix this', #this seems unused in actual code + foreach my $module (@modules) { + $template->param($module => 1); + } + output_html_with_http_headers $input, $cookie, $template->output; } else { # Printing to a csv file print $input->header( - -type => 'application/vnd.sun.xml.calc', + -type => 'text/csv', -attachment => "$basename.csv", -filename => "$basename.csv" ); my $sep = C4::Context->preference("delimiter"); - foreach my $line (@$results) { - ($module eq "catalogue") or next; - foreach (qw(timestamp firstname surname action info title author)) { - print $line->{$_} . $sep; - } - } + foreach my $line (@data) { + #next unless $modules[0] eq "catalogue"; + foreach (qw(timestamp firstname surname action info title author)) { + print $line->{$_} . $sep; + } + } } exit; } else { - my @values; - my %labels; - my %select; - my @mime = ( C4::Context->preference("MIME") ); - my $CGIextChoice = CGI::scrolling_list( - -name => 'MIME', - -id => 'MIME', - -values => \@mime, - -size => 1, - -multiple => 0 - ); - my @dels = ( C4::Context->preference("delimiter") ); - my $CGIsepChoice = CGI::scrolling_list( - -name => 'sep', - -id => 'sep', - -values => \@dels, - -size => 1, - -multiple => 0 - ); - $template->param( - total => 0, - CGIextChoice => $CGIextChoice, - CGIsepChoice => $CGIsepChoice, - ); - output_html_with_http_headers $input, $cookie, $template->output; + #my @values; + #my %labels; + #my %select; + #initialize some paramaters that might not be used in the template - it seems to evaluate EXPR even if a false TMPL_IF + $template->param( + total => 0, + module => "", + info => "" + ); + output_html_with_http_headers $input, $cookie, $template->output; }