Modified log reporting to allow multiple modules to be selected.
authorDavid Goldfein <d.goldfein@lacrosse.lib.wi.us>
Fri, 24 Apr 2009 18:21:24 +0000 (13:21 -0500)
committerHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Wed, 16 Sep 2009 21:18:48 +0000 (23:18 +0200)
Reworked ViewLog.pl and the template.  Eliminated html errors, cleaned up
the template, change mime type to text/csv and other minor changes.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Henri-Damien LAURENT <henridamien.laurent@biblibre.com>
C4/Log.pm
koha-tmpl/intranet-tmpl/prog/en/modules/tools/viewlog.tmpl
tools/viewlog.pl

index 8fb4488..9f4430c 100644 (file)
--- a/C4/Log.pm
+++ b/C4/Log.pm
@@ -182,7 +182,7 @@ sub displaylog {
 
 =item GetLogs
 
-$logs = GetLogs($datefrom,$dateto,$user,$module,$action,$object,$info);
+$logs = GetLogs($datefrom,$dateto,$user,\@modules,$action,$object,$info);
 
 Return: 
 C<$logs> is a ref to a hash which containts all columns from action_logs
@@ -193,7 +193,7 @@ sub GetLogs {
     my $datefrom = shift;
     my $dateto   = shift;
     my $user     = shift;
-    my $module   = shift;
+    my $modules   = shift;
     my $action   = shift;
     my $object   = shift;
     my $info     = shift;
@@ -207,16 +207,38 @@ sub GetLogs {
         FROM   action_logs
         WHERE 1
     ";
-    $query .= " AND DATE_FORMAT(timestamp, '%Y-%m-%d') >= \"".$iso_datefrom."\" " if $iso_datefrom;
+
+    my @parameters;
+    $query .= " AND DATE_FORMAT(timestamp, '%Y-%m-%d') >= \"".$iso_datefrom."\" " if $iso_datefrom;   #fix me - mysql specific
     $query .= " AND DATE_FORMAT(timestamp, '%Y-%m-%d') <= \"".$iso_dateto."\" " if $iso_dateto;
-    $query .= " AND user LIKE \"%".$user."%\" "     if $user;
-    $query .= " AND module LIKE \"%".$module."%\" " if $module;
-    $query .= " AND action LIKE \"%".$action."%\" " if $action;
-    $query .= " AND object LIKE \"%".$object."%\" " if $object;
-    $query .= " AND info LIKE \"%".$info."%\" "     if $info;
+    if($user) {
+       $query .= " AND user LIKE ? ";
+       push(@parameters,"%".$user."%");
+    }
+    if(scalar @$modules > 1 or @$modules[0] ne "") {
+           $query .= " AND (1 = 2";  #always false but used to build the query
+           foreach my $module (@$modules) {
+               next if $module eq "";
+               $query .= " or module = ?";
+               push(@parameters,$module);
+           }
+           $query .= ")";
+    }
+    if($action) {
+       $query .= " AND action LIKE ? ";
+       push(@parameters,"%".$action."%");
+    }
+    if($object) {
+       $query .= " AND object LIKE ? ";
+       push(@parameters,"%".$object."%");
+    }
+    if($info) {
+       $query .= " AND info LIKE ? ";
+       push(@parameters,"%".$info."%");
+    }
    
     my $sth = $dbh->prepare($query);
-    $sth->execute;
+    $sth->execute(@parameters);
     
     my @logs;
     while( my $row = $sth->fetchrow_hashref ) {
index 84f0f49..d461b08 100644 (file)
@@ -1,5 +1,12 @@
 <!-- TMPL_INCLUDE NAME="doc-head-open.inc" -->
-<title>Koha &rsaquo; Tools &rsaquo; <!-- TMPL_IF NAME="do_it" -->Logs &rsaquo; Results<!-- TMPL_ELSE -->Logs<!-- /TMPL_IF --></title>
+<title>
+       Koha &rsaquo; Tools &rsaquo;
+       <!-- TMPL_IF NAME="do_it" -->
+               Logs &rsaquo; Results
+       <!-- TMPL_ELSE -->
+               Logs
+       <!-- /TMPL_IF -->
+</title>
 <!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
 <!-- TMPL_INCLUDE NAME="calendar.inc" -->
 </head>
 <!-- TMPL_INCLUDE NAME="header.inc" -->
 <!-- TMPL_INCLUDE NAME="cat-search.inc" -->
 
-<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> &rsaquo; <!-- TMPL_IF NAME="do_it" --><a href="/cgi-bin/koha/tools/viewlog.pl">Logs</a> &rsaquo; Results<!-- TMPL_ELSE -->Logs<!-- /TMPL_IF --></div>
+<div id="breadcrumbs">
+       <a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> &rsaquo;
+       <!-- TMPL_IF NAME="do_it" -->
+               <a href="/cgi-bin/koha/tools/viewlog.pl">Logs</a> &rsaquo; Results
+       <!-- TMPL_ELSE -->
+               Logs
+       <!-- /TMPL_IF -->
+</div>
 
 <div id="doc3" class="yui-t2">
-   
-   <div id="bd">
-       <div id="yui-main">
-       <div class="yui-b">
-
-<h1>Browse system logs</h1>
-
-<form method="post" action="/cgi-bin/koha/tools/viewlog.pl">
-
-           <!-- TMPL_IF NAME="do_it" --><input type="hidden" name="do_it" value="<!--TMPL_VAR NAME="do_it" -->" /><!-- /TMPL_IF -->
-<!--   These are selects below.
-               <input type="hidden" name="module" value="<!--TMPL_VAR NAME="module" -->" />
-           <input type="hidden" name="action" value="<!--TMPL_VAR NAME="action" -->" />
-           <input type="hidden" name="object" value="<!--TMPL_VAR NAME="object" -->" />
--->        <input type="hidden" name="src" value="<!--TMPL_VAR NAME="src" -->" />
-<fieldset class="rows">
-<ol>
-           <li>
-              <label for="user">Librarian:</label> <input type="text" name="user" id="user" value="<!-- TMPL_VAR NAME="user"-->" />
-           </li>
-           <li>
-               <label for="module">Module:</label>
-               <select name="module" id="module">
-                           <option value="" selected="selected">All</option>
-                           <option value ="CATALOGUING">Catalog</option>
-                               <option value ="MEMBERS">Members</option>
-                               <option value ="ACQUISITION">Acquisitions</option>
-                               <option value ="SERIAL">Serial</option>
-                               <option value="CIRCULATION">Circulation</option>
-                               <option value="LETTER">Letter</option>
-                               <option value="FINES">Fines</option>
-                               <option value="SYSTEMPREFERENCE">System Prefs</option>
-                       </select>
-           </li>
-           <li>
-               <label for="action">Action:</label>
-               <select name="action" id="action">
-                       <option value ="">All</option>
-                               <option value ="add">Add</option>
-                               <option value ="del">Delete</option>
-                               <option value ="mod">Modify</option>
-                               <option value="issue">Issue</option>
-                               <option value="return">Return</option>
-                       </select>
-           </li>
-           <li>
-               <label for="object">Object</label>
-               <input type="text" id="object" name="object" value="<!-- TMPL_VAR NAME="object"-->" />
-           </li>
-           <li>
-               <label for="info">Info:</label>
-               <input type="text" name="info" value="<!-- TMPL_VAR NAME="info"-->" />
-           </li>
-        <li>
-        <label for="from"> Display from</label> <input type="text" size="10" id="from" name="from" value="<!-- TMPL_VAR NAME="datefrom"-->" />
-               <img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" border="0" alt="Show Calendar" id="openCalendarFrom" style="cursor: pointer;" />
-               <label for="to">to</label> <input size="10" id="to" name="to" type="text" value="<!-- TMPL_VAR NAME="dateto"-->" />
-               <img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" id="openCalendarTo" alt="Show Calendar" style="cursor: pointer;" border="0" />
-                       <script type="text/javascript">
-//<![CDATA[
-                               // function submit_check (from_id,to_id) {
-                               //      var dateFrom = Date_from_syspref(document.getElementById(from_id).value);
-                               //      var dateTo   = Date_from_syspref(document.getElementById(  to_id).value);
-                               //      var today = new Date();
-                               //      if (dateFrom < dateTo) { 
-                               //              alert("The starting date cannot be after the ending date.");
-                               //              document.getElementById(to_id).select();
-                               //              return false;
-                               //      }
-                               //      if (dateFrom > today) { 
-                               //              alert("The starting date cannot be in the future.");
-                           //          document.getElementById(from_id).select();
-                               //              return false;
-                               //      }
-                               // }
-
-                               // return true if the date is blocked.
-                               function disable_from(date) {var limit = get_Calendar_limit(date,'to'  ); return (limit && limit < date);}
-                               function disable_to  (date) {var limit = get_Calendar_limit(date,'from'); return (limit && limit > date);}
-
-                               Calendar.setup({
-                                       inputField : "from",
-                                       ifFormat : "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
-                                       button : "openCalendarFrom",
-                                       disableFunc : disable_from,
-                                       dateStatusFunc : disable_from
-                               });
-                               Calendar.setup({
-                                       inputField : "to",
-                                       ifFormat : "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
-                                       button : "openCalendarTo",
-                                       disableFunc : disable_to,
-                                       dateStatusFunc : disable_to
-                               });
-//]]>
-                   </script>
-               </li>
-               </ol>
-               </fieldset>
-       <fieldset class="rows">
-               <legend>Output</legend>
-               <ol>
-        <li><label for="screen" >To screen in the browser:</label> <input id="screen" type="radio" checked="checked" name="output" value="screen" />
-        </li>
-               <li><label for="file">To a file:</label>
-               <input id="file" type="radio" name="output" value="file" />
-                <label class="inline" for="basename">Named:</label>
-               <input type="text" name="basename" id="basename" value="Export" />
-               <label for="MIME" class="inline">Into an application:</label>
-               <!-- TMPL_VAR NAME="CGIextChoice" -->
-               <!-- TMPL_VAR NAME="CGIsepChoice" -->
-           <input type="hidden" name="report_name" value="<!--TMPL_VAR NAME="report_name" -->" />
-           </li>
-               </ol>
-</fieldset>
-<fieldset class="action"><input type="submit" value="Submit" />
-            <input type="hidden" name="do_it" value="1" /></fieldset>
-    
-    <!-- TMPL_IF NAME="do_it" -->
-        <!-- TMPL_IF NAME="total" -->
-            <h4><!-- TMPL_VAR NAME="total" --> lines found.</h4>
-        <!-- TMPL_ELSE -->
-            <div class="dialog alert">No log found
-                       <!-- TMPL_IF EXPR="module eq 'CATALOGUING'" -->for <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="object" -->">Bibliographic Record <!-- TMPL_VAR NAME="object" --></a><!-- /TMPL_IF --><!-- TMPL_IF EXPR="module eq 'MEMBERS'" -->for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="object" -->"><!-- TMPL_VAR NAME="firstname" --> <!-- TMPL_VAR NAME="surname" --> (<!-- TMPL_VAR NAME="cardnumber" -->)</a><!-- /TMPL_IF -->
-                       .</div>
-        <!-- /TMPL_IF -->
-    <!-- /TMPL_IF -->    
-       
-    <!-- TMPL_IF NAME="do_it" -->
-        <!-- TMPL_IF NAME="total" -->
-    <table>
-    <tr>
-        <th>Date</th>
-        <th>Librarian</th>
-       <th>Module</th>
-       <th>Action</th>
-               <th>Object</th>
-               <th>Info</th>
-       </tr>
-       
-           <!-- TMPL_LOOP NAME="looprow" -->
-                                       <tr>
-                                               <td><!-- TMPL_VAR NAME="timestamp" --></td>
-                                               <td>
-                                                   <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="user" -->" title="display detail for this librarian.">
-                                                       <!-- TMPL_VAR NAME="user" -->
-                                                   </a>
-                                               </td>
-                                               <td><!-- TMPL_VAR NAME="module" --></td>
-                                               <td><!-- TMPL_VAR NAME="action" --></td>
-                                               <td>
-                                                   <!-- TMPL_IF NAME="MEMBERS"-->
-                                                       <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="object" -->" title="Display member details.">
-                                                           member <!-- TMPL_VAR NAME="object" -->
-                                                       </a>
-                                                   <!-- TMPL_ELSE -->
-                                                   <!-- TMPL_IF NAME="CIRCULATION" -->
-                                                       <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="object" -->" title="Display member details.">
-                                                           <!-- TMPL_IF NAME="object"-->member <!-- TMPL_VAR NAME="object" --><!-- /TMPL_IF -->
-                                                       </a>
-                                                   <!-- TMPL_ELSE -->
-                                                   <!-- TMPL_IF NAME="CATALOGUING" -->
-                                                       <!-- TMPL_IF EXPR="info eq 'item'" -->
-                                                       <a href="/cgi-bin/koha/catalogue/moredetail.pl?item=<!-- TMPL_VAR NAME="object" -->&biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&bi=<!-- TMPL_VAR NAME="biblioitemnumber" -->#item<!-- TMPL_VAR NAME="object" -->">Item <!-- TMPL_VAR NAME="object" --></a>
-                                                       <!-- TMPL_ELSE -->
-                                                       <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="object" -->" title="Display detail for this biblio">biblio <!-- TMPL_VAR NAME="object" --></a>
-                                                       <!-- /TMPL_IF -->
-                                                   <!-- TMPL_ELSE-->
-                                                   <!-- TMPL_IF NAME="SERIAL"-->
-                                                       <a href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=<!-- TMPL_VAR NAME="object" -->">
-                                                           <!-- TMPL_VAR NAME="object" -->
-                                                       </a>
-                                                   <!-- TMPL_ELSE -->
-                                                   <!-- TMPL_VAR NAME="object" -->
-                                               <!-- /TMPL_IF -->
-                                               <!-- /TMPL_IF -->
-                                               <!-- /TMPL_IF -->
-                                               <!-- /TMPL_IF -->
-                                               </td>
-                                               <td>
-                                                   <!-- TMPL_IF NAME="CIRCULATION" -->
-                                                        <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="info" -->" title="Display detail for this biblio">biblio <!-- TMPL_VAR NAME="info" escape="html" --></a>
-                                               <!-- TMPL_ELSE -->
-                                                   <!-- TMPL_VAR NAME="info" escape="html"-->
-                                               <!-- /TMPL_IF -->
-                                               </td>
-                                       </tr>
-               <!-- /TMPL_LOOP -->
-    </table>
-<!-- /TMPL_IF -->
-<!-- /TMPL_IF -->
-       </form>
-</div>
-</div>
-<div class="yui-b noprint">
-<!-- TMPL_IF NAME="menu" -->
-    <!-- TMPL_INCLUDE NAME="circ-menu.inc" -->
-<!-- TMPL_ELSE -->
-       
-    <!-- TMPL_IF EXPR="module eq 'CATALOGUING'" --><!-- TMPL_INCLUDE NAME="biblio-view-menu.inc" --><!-- TMPL_ELSE --><!-- TMPL_INCLUDE NAME="tools-menu.inc" --><!-- /TMPL_IF -->
-<!-- /TMPL_IF -->
-</div>
+       <div id="bd">
+               <div id="yui-main">
+                       <div class="yui-b">
+                               <h1>Browse system logs</h1>
+                               <form method="post" action="/cgi-bin/koha/tools/viewlog.pl">
+                                       <!-- TMPL_IF NAME="do_it" -->
+                                               <input type="hidden" name="do_it" value="<!--TMPL_VAR NAME="do_it" -->" />
+                                       <!-- /TMPL_IF -->
+                                       <input type="hidden" name="src" value="<!--TMPL_VAR NAME="src" -->" />
+                                       <fieldset class="rows">
+                                               <ol>
+                                                       <li>
+                                                               <label for="user">Librarian:</label>
+                                                               <input type="text" name="user" id="user" value="<!-- TMPL_VAR NAME="user"-->" />
+                                                       </li>
+                                                       <li>
+                                                               <label for="module">Module:</label>
+                                                               <select name="modules" id="modules" multiple="multiple">
+                                                                       <option value="" selected="selected">All</option>
+                                                                       <option value ="CATALOGUING">Catalog</option>
+                                                                       <option value ="MEMBERS">Members</option>
+                                                                       <option value ="ACQUISITION">Acquisitions</option>
+                                                                       <option value ="SERIAL">Serial</option>
+                                                                       <option value="CIRCULATION">Circulation</option>
+                                                                       <option value="LETTER">Letter</option>
+                                                                       <option value="FINES">Fines</option>
+                                                                       <option value="SYSTEMPREFERENCE">System Prefs</option>
+                                                               </select>
+                                                       </li>
+                                                       <li>
+                                                               <label for="action">Action:</label>
+                                                               <select name="action" id="action">
+                                                                       <option value ="">All</option>
+                                                                       <option value ="add">Add</option>
+                                                                       <option value ="del">Delete</option>
+                                                                       <option value ="mod">Modify</option>
+                                                                       <option value="issue">Issue</option>
+                                                                       <option value="return">Return</option>
+                                                               </select>
+                                                       </li>
+                                                       <li>
+                                                               <label for="object">Object</label>
+                                                               <input type="text" id="object" name="object" value="<!-- TMPL_VAR NAME="object"-->" />
+                                                       </li>
+                                                       <li>
+                                                               <label for="info">Info:</label>
+                                                               <input type="text" name="info" value="<!-- TMPL_VAR NAME="info"-->" />
+                                                       </li>
+                                                       <li>
+                                                               <label for="from"> Display from</label> <input type="text" size="10" id="from" name="from" value="<!-- TMPL_VAR NAME="datefrom"-->" />
+                                                               <img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" border="0" alt="Show Calendar" id="openCalendarFrom" style="cursor: pointer;" />
+                                                               <label for="to">to</label> <input size="10" id="to" name="to" type="text" value="<!-- TMPL_VAR NAME="dateto"-->" />
+                                                               <img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" id="openCalendarTo" alt="Show Calendar" style="cursor: pointer;" border="0" />
+                                                                       <script type="text/javascript">
+                                                                       //<![CDATA[
+                                                                       // function submit_check (from_id,to_id) {
+                                                                       //      var dateFrom = Date_from_syspref(document.getElementById(from_id).value);
+                                                                       //      var dateTo   = Date_from_syspref(document.getElementById(  to_id).value);
+                                                                       //      var today = new Date();
+                                                                       //      if (dateFrom < dateTo) { 
+                                                                       //              alert("The starting date cannot be after the ending date.");
+                                                                       //              document.getElementById(to_id).select();
+                                                                       //              return false;
+                                                                       //      }
+                                                                       //      if (dateFrom > today) { 
+                                                                       //              alert("The starting date cannot be in the future.");
+                                                                       //              document.getElementById(from_id).select();
+                                                                       //              return false;
+                                                                       //      }
+                                                                       // }
+                                                                       
+                                                                       // return true if the date is blocked.
+                                                                       function disable_from(date) {var limit = get_Calendar_limit(date,'to'  ); return (limit && limit < date);}
+                                                                       function disable_to  (date) {var limit = get_Calendar_limit(date,'from'); return (limit && limit > date);}
+                                                                       
+                                                                       Calendar.setup({
+                                                                       inputField : "from",
+                                                                       ifFormat : "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
+                                                                       button : "openCalendarFrom",
+                                                                       disableFunc : disable_from,
+                                                                       dateStatusFunc : disable_from
+                                                                       });
+                                                                       Calendar.setup({
+                                                                       inputField : "to",
+                                                                       ifFormat : "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
+                                                                       button : "openCalendarTo",
+                                                                       disableFunc : disable_to,
+                                                                       dateStatusFunc : disable_to
+                                                                       });
+                                                                       //]]>
+                                                                       </script>
+                                                       </li>
+                                               </ol>
+                                       </fieldset>
+                                       <fieldset class="rows">
+                                               <legend>Output</legend>
+                                               <ol>
+                                                       <li>
+                                                               <label for="screen" >To screen in the browser:</label> <input id="screen" type="radio" checked="checked" name="output" value="screen" />
+                                                       </li>
+                                                       <li>
+                                                               <label for="file">To a file:</label>
+                                                               <input id="file" type="radio" name="output" value="file" />
+                                                               <label class="inline" for="basename">Named:</label>
+                                                               <input type="text" name="basename" id="basename" value="Export" />
+                                                               <!--
+                                                                       <label for="MIME" class="inline">Into an application:</label>
+                                                                       <!-- TMPL_VAR NAME="CGIextChoice" -->
+                                                                       <!-- TMPL_VAR NAME="CGIsepChoice" -->
+                                                               -->
+                                                               <input type="hidden" name="report_name" value="<!--TMPL_VAR NAME="report_name" -->" />
+                                                       </li>
+                                               </ol>
+                                       </fieldset>
+                                       <fieldset class="action">
+                                               <input type="submit" value="Submit" />
+                                               <input type="hidden" name="do_it" value="1" />
+                                       </fieldset>
+                                       <!-- TMPL_IF NAME="do_it" -->
+                                               <!-- TMPL_IF NAME="total" -->
+                                                       <h4><!-- TMPL_VAR NAME="total" --> lines found.</h4>
+                                                       <table>
+                                                               <tr>
+                                                                       <th>Date</th>
+                                                                       <th>Librarian</th>
+                                                                       <th>Module</th>
+                                                                       <th>Action</th>
+                                                                       <th>Object</th>
+                                                                       <th>Info</th>
+                                                               </tr>
+                                                               <!-- TMPL_LOOP NAME="looprow" -->
+                                                                       <tr>
+                                                                               <td><!-- TMPL_VAR NAME="timestamp" --></td>
+                                                                               <td>
+                                                                                       <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="user" -->" title="display detail for this librarian."> <!-- TMPL_VAR NAME="user" --> </a>
+                                                                               </td>
+                                                                               <td><!-- TMPL_VAR NAME="module" --></td>
+                                                                               <td><!-- TMPL_VAR NAME="action" --></td>
+                                                                               <td>
+                                                                                       <!-- TMPL_IF EXPR="module eq 'MEMBERS'"-->
+                                                                                               <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="object" -->" title="Display member details."> member <!-- TMPL_VAR NAME="object" --> </a>
+                                                                                       <!-- TMPL_ELSE -->
+                                                                                               <!-- TMPL_IF EXPR="module eq 'CIRCULATION'" -->
+                                                                                                       <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="object" -->" title="Display member details.">
+                                                                                                               <!-- TMPL_IF NAME="object" -->
+                                                                                                                       member <!-- TMPL_VAR NAME="object" -->
+                                                                                                               <!-- /TMPL_IF -->
+                                                                                                       </a>
+                                                                                               <!-- TMPL_ELSE -->
+                                                                                                       <!-- TMPL_IF EXPR="module eq 'CATALOGUING'" -->
+                                                                                                               <!-- TMPL_IF EXPR="info eq 'item'" -->
+                                                                                                                       <a href="/cgi-bin/koha/catalogue/moredetail.pl?item=<!-- TMPL_VAR NAME="object" -->&biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&bi=<!-- TMPL_VAR NAME="biblioitemnumber" -->#item<!-- TMPL_VAR NAME="object" -->">Item <!-- TMPL_VAR NAME="object" --></a>
+                                                                                                               <!-- TMPL_ELSE -->
+                                                                                                                       <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="object" -->" title="Display detail for this biblio">biblio <!-- TMPL_VAR NAME="object" --></a>
+                                                                                                               <!-- /TMPL_IF -->
+                                                                                                       <!-- TMPL_ELSE-->
+                                                                                                               <!-- TMPL_IF EXPR="module eq 'SERIAL'" -->
+                                                                                                                       <a href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=<!-- TMPL_VAR NAME="object" -->"> <!-- TMPL_VAR NAME="object" --> </a>
+                                                                                                               <!-- TMPL_ELSE -->
+                                                                                                                       <!-- TMPL_VAR NAME="object" -->
+                                                                                                               <!-- /TMPL_IF -->
+                                                                                                       <!-- /TMPL_IF -->
+                                                                                               <!-- /TMPL_IF -->
+                                                                                       <!-- /TMPL_IF -->
+                                                                               </td>
+                                                                               <td>
+                                                                                       <!-- TMPL_IF NAME="CIRCULATION" -->
+                                                                                               <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="info" -->" title="Display detail for this biblio">biblio <!-- TMPL_VAR NAME="info" escape="html" --></a>
+                                                                                       <!-- TMPL_ELSE -->
+                                                                                               <!-- TMPL_VAR NAME="info" escape="html"-->
+                                                                                       <!-- /TMPL_IF -->
+                                                                               </td>
+                                                                       </tr>
+                                                               <!-- /TMPL_LOOP -->
+                                                       </table>
+                                               <!-- TMPL_ELSE -->
+                                                       <div class="dialog alert">
+                                                               No log found
+                                                               <!-- TMPL_IF NAME="CATALOGUING" -->
+                                                                       for <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="object" -->">Bibliographic Record <!-- TMPL_VAR NAME="object" --></a>
+                                                               <!-- /TMPL_IF -->
+                                                               <!-- TMPL_IF NAME="MEMBERS" -->
+                                                                       for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="object" -->"><!-- TMPL_VAR NAME="firstname" --> <!-- TMPL_VAR NAME="surname" --> (<!-- TMPL_VAR NAME="cardnumber" -->)</a>
+                                                               <!-- /TMPL_IF -->
+                                                               .
+                                                       </div>
+                                               <!-- /TMPL_IF -->
+                                       <!-- /TMPL_IF -->
+                               </form>
+                       </div>
+               </div>
+               <div class="yui-b noprint">
+                       <!-- TMPL_IF NAME="menu" -->
+                               <!-- TMPL_INCLUDE NAME="circ-menu.inc" -->
+                       <!-- TMPL_ELSE -->
+                               <!-- TMPL_IF NAME="CATALOGUING" -->
+                                       <!-- TMPL_INCLUDE NAME="biblio-view-menu.inc" -->
+                               <!-- TMPL_ELSE -->
+                                       <!-- TMPL_INCLUDE NAME="tools-menu.inc" -->
+                               <!-- /TMPL_IF -->
+                       <!-- /TMPL_IF -->
+               </div>
+       </div>
 </div>
 <!-- TMPL_INCLUDE NAME="intranet-bottom.inc" -->
index 3c65b6a..e3bdc73 100755 (executable)
@@ -43,7 +43,7 @@ my $input    = new CGI;
 
 $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 $object   = $input->param("object");
@@ -52,7 +52,7 @@ 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
 
@@ -99,10 +99,32 @@ $template->param(
                      dateformat => C4::Dates->new()->format(),
                                       debug => $debug,
 );
-
+#
+#### This code was never really used - maybe some day some will fix it ###
+#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(
+#        CGIextChoice => $CGIextChoice,
+#        CGIsepChoice => $CGIsepChoice,
+#);
+#
 if ($do_it) {
 
-    my $results = GetLogs($datefrom,$dateto,$user,$module,$action,$object,$info);
+    my $results = GetLogs($datefrom,$dateto,$user,\@modules,$action,$object,$info);
     my $total = scalar @$results;
     foreach my $result (@$results){
        if ($result->{'info'} eq 'item'){
@@ -118,59 +140,47 @@ if ($do_it) {
         $template->param (
                        logview => 1,
             total    => $total,
-            $module  => 1,
             looprow  => $results,
             do_it    => 1,
             datefrom => $datefrom,
             dateto   => $dateto,
             user     => $user,
-            module   => $module,
             object   => $object,
             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;
-                       }       
-               }
+            #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;
 }