From 2fe859189f1b4daf39fa559c31945ce3fec4fb74 Mon Sep 17 00:00:00 2001
From: Blou <philippe.blouin@inlibro.com>
Date: Thu, 3 Mar 2016 10:06:39 -0500
Subject: [PATCH] Bug 11317 - Rename config to 'accessdir' and fix qa

Also translate date with datetime format preference and move to Tools.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
---
 debian/templates/koha-conf-site.xml.in             |  5 ++-
 etc/koha-conf.xml                                  |  3 ++
 .../prog/en/modules/reports/report_files.tt        | 21 ++++++-----
 .../prog/en/modules/tools/tools-home.tt            |  4 +++
 reports/report_files.pl                            | 42 +++++++++++++---------
 5 files changed, 46 insertions(+), 29 deletions(-)

diff --git a/debian/templates/koha-conf-site.xml.in b/debian/templates/koha-conf-site.xml.in
index 2add4aa..fb80a36 100644
--- a/debian/templates/koha-conf-site.xml.in
+++ b/debian/templates/koha-conf-site.xml.in
@@ -299,7 +299,10 @@ __END_SRU_PUBLICSERVER__
  <!-- Secret passphrase used by Mojolicious for signed cookies -->
  <api_secret_passphrase>__API_SECRET__</api_secret_passphrase>
 
- <!-- true type font mapping accoding to type from $font_types in C4/Creators/Lib.pm -->
+ <!-- Accessible directory from the staff client, uncomment the following line and define a valid path to let the intranet user access it-->
+ <!-- <accessdir></accessdir> -->
+
+ <!-- true type font mapping according to type from $font_types in C4/Creators/Lib.pm -->
  <ttf>
     <font type="TR" >/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf</font>
     <font type="TB" >/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf</font>
diff --git a/etc/koha-conf.xml b/etc/koha-conf.xml
index 4ccee3a..5e98ce7 100644
--- a/etc/koha-conf.xml
+++ b/etc/koha-conf.xml
@@ -130,6 +130,9 @@ __PAZPAR2_TOGGLE_XML_POST__
  <!-- Secret passphrase used by Mojolicious for signed cookies -->
  <api_secret_passphrase>CHANGEME</api_secret_passphrase>
 
+ <!-- Accessible directory from the staff client, uncomment the following line and define a valid path to let the intranet user access it-->
+ <!-- <accessdir></accessdir> -->
+
  <!-- true type font mapping accoding to type from $font_types in C4/Creators/Lib.pm -->
  <ttf>
     <font type="TR" >__FONT_DIR__/DejaVuSerif.ttf</font>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/report_files.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reports/report_files.tt
index 3ee409e..06de9d1 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/report_files.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reports/report_files.tt
@@ -2,12 +2,11 @@
 <title>Report/log files</title>
 [% INCLUDE 'doc-head-close.inc' %]
 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
-<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.dataTables.min.js"></script>
+[% INCLUDE 'datatables.inc' %]
 [% INCLUDE 'datatables-strings.inc' %]
-<script type="text/javascript" src="[% themelang %]/js/datatables.js"></script>
 <script type="text/JavaScript" language="JavaScript">
-	//<![CDATA[
-		$(document).ready(function() {
+    //<![CDATA[
+        $(document).ready(function() {
             $("#files").dataTable($.extend(true, {}, dataTablesDefaults, {
                 "sDom": 't',
                 "aoColumnDefs": [
@@ -15,8 +14,8 @@
                 ],
                 "bPaginate": false
             }));
-	});
-	//]]>
+    });
+    //]]>
 </script>
 </head>
 <body>
@@ -27,13 +26,13 @@
 
 <div id="doc3" class="yui-t2">
    <div id="bd">
-	<div id="yui-main">
-	<div class="yui-b">
+    <div id="yui-main">
+    <div class="yui-b">
 
-	<h1>Report/log files</h1>
+    <h1>Report/log files</h1>
 
-[% IF ( error_no_publiclogdir ) %]
-    <div class="dialog alert"><strong>Error : </strong>Report/log files could not be found because the "publiclogdir" option was not set in "koha-conf.xml". Contact your system administrator to add this option.</div>
+[% IF ( error_no_dir ) %]
+    <div class="dialog alert"><strong>Error : </strong>Report/log files could not be found because the "accessdir" option was not set in "koha-conf.xml". Contact your system administrator to add this option.</div>
 [% ELSE %]
     [% IF ( files_loop ) %]
         <table id="files">
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/tools-home.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/tools-home.tt
index 4c8cca9..60a4e85 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/tools-home.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/tools-home.tt
@@ -113,6 +113,10 @@
     <dt><a href="/cgi-bin/koha/tools/upload.pl">Upload</a></dt>
     <dd>Upload any type of file, manage uploads</dd>
     [% END %]
+
+    <dt><a href="/cgi-bin/koha/reports/report_files.pl">Report/log files </a></dt>
+    <dd>Report/log files</dd>
+
 </dl>
 </div>
 
diff --git a/reports/report_files.pl b/reports/report_files.pl
index 3976ecb..dc319e5 100755
--- a/reports/report_files.pl
+++ b/reports/report_files.pl
@@ -3,14 +3,14 @@
 # Frédérick Capovilla, 2011 - Libéo
 #
 # Show a list of all the files in the directory specified by the option
-# "publiclogdir" in koha-conf.xml so they can be downloaded by users with the
+# "accessdir" in koha-conf.xml so they can be downloaded by users with the
 # "reports" permission.
 #
 # This file is part of Koha.
 #
 # Koha is free software; you can redistribute it and/or modify it under the
 # terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
+# Foundation; either version 3 of the License, or (at your option) any later
 # version.
 #
 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -33,32 +33,39 @@ use Digest::MD5 qw(md5_hex);
 
 my $input      = new CGI;
 my $file_id = $input->param("id");
-my $directory = C4::Context->config('publiclogdir');
+my $directory = C4::Context->config('accessdir');
 
 my ($template, $borrowernumber, $cookie)
-	= get_template_and_user({template_name => "reports/report_files.tt",
-				query => $input,
-				type => "intranet",
-				authnotrequired => 0,
-				flagsrequired => {reports => '*'},
-				});
+    = get_template_and_user({template_name => "reports/report_files.tt",
+                query => $input,
+                type => "intranet",
+                authnotrequired => 0,
+                flagsrequired => {reports => '*'},
+                });
 
 unless($directory) {
-    $template->param(error_no_publiclogdir => 1);
+    $template->param(error_no_dir => 1);
 }
 else {
     #Get the files list
     my @files_list;
-	opendir(DIR, $directory);
+    opendir(DIR, $directory);
 
     foreach my $filename (readdir(DIR)) {
-	my $id = md5_hex($filename);
+    my $id = md5_hex($filename);
         my $full_path = "$directory/$filename";
         next if ($filename =~ /^\./ or -d $full_path);
 
         my $st = stat($full_path);
+        my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime($st->mtime);
+        my $dt=DateTime->new(year      => $year + 1900,
+                              month    => $mon + 1,
+                              day      => $mday,
+                              hour     => $hour,
+                              minute   => $min,
+                        );
         push(@files_list, {name => $filename,
-                           date => scalar localtime($st->mtime),
+                           date =>Koha::DateUtils::output_pref($dt),
                            size => $st->size,
                            id   => $id});
     }
@@ -75,14 +82,15 @@ else {
                              -Content_length => -s "$directory/$filename",
                              -attachment => "$filename");
 
-        open FILE, "<:utf8", "$directory/$filename";
-        binmode FILE;
+        my $fh;
+        open $fh, "<:encoding(UTF-8)", "$directory/$filename";
+        binmode $fh;
 
         my $buf;
-        while(read(FILE, $buf, 65536)) {
+        while(read($fh, $buf, 65536)) {
             print $buf;
         }
-        close FILE;
+        close $fh;
 
         exit(1);
     }
-- 
2.1.0