Bug 8117: Divide budget periods into two tabs
authorJonathan Druart <jonathan.druart@biblibre.com>
Fri, 20 Jul 2012 14:21:17 +0000 (16:21 +0200)
committerPaul Poulain <paul.poulain@biblibre.com>
Wed, 19 Sep 2012 14:17:16 +0000 (16:17 +0200)
Budget periods are now divided into two tabs : active and inactive
budget periods.

The original author of this patch is Julian Maurice

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Signed-off-by: Michael Davis <m.r.davis@cranfield.ac.uk>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
admin/aqbudgetperiods.pl
koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt

index 64b333a..9e2f394 100755 (executable)
@@ -72,7 +72,8 @@ my $budget_period_hashref= $input->Vars;
 #my $sort1_authcat = $input->param('sort1_authcat');
 #my $sort2_authcat = $input->param('sort2_authcat');
 
-my $pagesize    = 20;
+my $activepagesize = 20;
+my $inactivepagesize = 20;
 $searchfield =~ s/\,//g;
 
 my ($template, $borrowernumber, $cookie, $staff_flags ) = get_template_and_user(
@@ -116,11 +117,9 @@ if ( $op eq 'add_form' ) {
     ## add or modify a budget period (preparation)
     ## get information about the budget period that must be modified
 
-
     if ($budget_period_id) {    # MOD
                my $budgetperiod_hash=GetBudgetPeriod($budget_period_id);
         # get dropboxes
-               FormatData($budgetperiod_hash);
 
         my $editnum = new Number::Format(
             'int_curr_symbol'   => '',
@@ -159,7 +158,6 @@ elsif ( $op eq 'delete_confirm' ) {
     my $total = 0;
     my $data = GetBudgetPeriod( $budget_period_id);
 
-       FormatData($data);
        $$data{'budget_period_total'}=$num->format_price(  $data->{'budget_period_total'});
     $template->param(
                %$data
@@ -245,27 +243,55 @@ elsif ( $op eq 'duplicate_budget' ){
 # DEFAULT - DISPLAY AQPERIODS TABLE
 # -------------------------------------------------------------------
 # display the list of budget periods
-    my $results = GetBudgetPeriods();
-       $template->param( period_button_only => 1 ) unless (@$results) ;
-    my $page = $input->param('page') || 1;
-    my $first = ( $page - 1 ) * $pagesize;
-    # if we are on the last page, the number of the last word to display
-    # must not exceed the length of the results array
-    my $last = min( $first + $pagesize - 1, scalar @{$results} - 1, );
-    my $toggle = 0;
-    my @period_loop;
-    foreach my $result ( @{$results}[ $first .. $last ] ) {
-        my $budgetperiod = $result;
-               FormatData($budgetperiod);
-        $budgetperiod->{'budget_period_total'}     = $num->format_price( $budgetperiod->{'budget_period_total'} );
-        $budgetperiod->{budget_active} = 1;
-        push( @period_loop, $budgetperiod );
-    }
 
-    $template->param(
-        period_loop           => \@period_loop,
-               pagination_bar            => pagination_bar("aqbudgetperiods.pl",getnbpages(scalar(@$results),$pagesize),$page),
-    );
+my $activepage = $input->param('apage') || 1;
+my $inactivepage = $input->param('ipage') || 1;
+# Get active budget periods
+my $results = GetBudgetPeriods(
+    {budget_period_active => 1},
+    [{budget_period_description => 0}]
+);
+my $first = ( $activepage - 1 ) * $activepagesize;
+my $last = min( $first + $activepagesize - 1, scalar @{$results} - 1, );
+my @period_active_loop;
+
+foreach my $result ( @{$results}[ $first .. $last ] ) {
+    my $budgetperiod = $result;
+    $budgetperiod->{'budget_period_total'}     = $num->format_price( $budgetperiod->{'budget_period_total'} );
+    $budgetperiod->{budget_active} = 1;
+    push( @period_active_loop, $budgetperiod );
+}
+my $url = "aqbudgetperiods.pl";
+$url .=  "?ipage=$inactivepage" if($inactivepage != 1);
+my $active_pagination_bar = pagination_bar ($url, getnbpages( scalar(@$results), $activepagesize), $activepage, "apage");
+
+# Get inactive budget periods
+$results = GetBudgetPeriods(
+    {budget_period_active => 0},
+    [{budget_period_enddate => 1}]
+);
+my $first = ( $inactivepage - 1 ) * $inactivepagesize;
+my $last = min( $first + $inactivepagesize - 1, scalar @{$results} - 1, );
+my @period_inactive_loop;
+foreach my $result ( @{$results}[ $first .. $last ] ) {
+    my $budgetperiod = $result;
+    $budgetperiod->{'budget_period_total'} = $num->format_price( $budgetperiod->{'budget_period_total'} );
+    $budgetperiod->{budget_active} = 1;
+    push( @period_inactive_loop, $budgetperiod );
+}
+$url = "aqbudgetperiods.pl?tab=2";
+$url .= "&apage=$activepage" if($activepage != 1);
+my $inactive_pagination_bar = pagination_bar ($url, getnbpages( scalar(@$results), $inactivepagesize), $inactivepage, "ipage");
+
+my $tab = $input->param('tab') ? $input->param('tab') - 1 : 0;
+$template->param(
+    period_active_loop      => \@period_active_loop,
+    period_inactive_loop    => \@period_inactive_loop,
+    active_pagination_bar   => $active_pagination_bar,
+    inactive_pagination_bar => $inactive_pagination_bar,
+    tab                     => $tab,
+    dateformat              => C4::Context->preference('dateformat'),
+);
 
 $template->param($op=>1);
 output_html_with_http_headers $input, $cookie, $template->output;
index deb5442..9135f29 100644 (file)
@@ -1,8 +1,12 @@
+[% USE KohaDates %]
 [% INCLUDE 'doc-head-open.inc' %]
+<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
 [% INCLUDE 'doc-head-close.inc' %]
 [% INCLUDE 'calendar.inc' %]
+<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.dataTables.min.js"></script>
+[% INCLUDE 'datatables-strings.inc' %]
+<script type="text/javascript" src="[% themelang %]/js/datatables.js"></script>
 <script type="text/javascript" src="[% themelang %]/js/acq.js"></script>
-<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
 <script type="text/javascript">
 // #################################################################################
 // Javascript
                     alert(alertString2);
             }
     }
-       $(document).ready(function() {
-                $("#periodsh").tablesorter({
-                   widgets : ['zebra'],
-                   sortList: [[0,0]],
-                   headers:  {6:{sorter:false}}
-            });
-       });
+
+
+
+    [% IF ( dateformat == 'metric' ) %]
+        dt_add_type_uk_date();
+    [% END %]
+    $(document).ready(function() {
+        var tabs = $('#budgetsTabs').tabs();
+        [% IF ( tab ) %]
+            tabs.tabs('select', [% tab %]);
+        [% END %]
+        $("table").dataTable($.extend(true, {}, dataTablesDefaults, {
+            "aoColumnDefs": [
+                {
+                    [% IF ( dateformat == 'metric' ) %]
+                        "aTargets": [ 1, 2 ], "sType": "uk_date",
+                    [% END %]
+                    "bSortable": false, 'aTargets':['_all'],
+                },
+            ],
+            "sPaginationType": "four_button",
+            "bAutoWidth": false,
+            "bPaginate": false,
+            "bInfo": false,
+            "bFilter": false,
+        } ) );
+    });
 </script>
 
 <title>
 
     <li>
     <label class="required" for="from">Start date</label>
-    <input type="text" size="10" id="from" name="budget_period_startdate" value="[% budget_period_startdate %]" class="datepickerfrom" />
+    <input type="text" size="10" id="from" name="budget_period_startdate" value="[% budget_period_startdate | $KohaDates %]" class="datepickerfrom" />
                                <div class="hint">[% INCLUDE 'date-format.inc' %]</div>
     </li>
     <li>
 
     <label class="required" for="to">End date</label>
-    <input type="text" size="10" id="to" name="budget_period_enddate" value="[% budget_period_enddate %]" class="datepickerto" />
+    <input type="text" size="10" id="to" name="budget_period_enddate" value="[% budget_period_enddate | $KohaDates %]" class="datepickerto" />
                                <div class="hint">[% INCLUDE 'date-format.inc' %]</div>
     </li>
 
     <ol>
     <li>
     <label class="required" for="from">Start date</label>
-    <input type="text" size="10" id="from" name="budget_period_startdate" value="[% budget_period_startdate %]" class="datepickerfrom" />
+    <input type="text" size="10" id="from" name="budget_period_startdate" value="[% budget_period_startdate | $KohaDates %]" class="datepickerfrom" />
                                <div class="hint">[% INCLUDE 'date-format.inc' %]</div>
     </li>
     <li>
 
     <label class="required" for="to">End date</label>
-    <input type="text" size="10" id="to" name="budget_period_enddate" value="[% budget_period_enddate %]" class="datepickerto" />
+    <input type="text" size="10" id="to" name="budget_period_enddate" value="[% budget_period_enddate | $KohaDates %]" class="datepickerto" />
                                <div class="hint">[% INCLUDE 'date-format.inc' %]</div>
     </li>
 
 [% END %]
 <!--  DEFAULT  display budget periods list -->
 [% IF ( else ) %]
-    <h2>Budgets administration</h2>
-
-    [% INCLUDE 'budgets-active-currency.inc' %]
-
-    <table id="periodsh">
-    <thead>
-           <tr>
-            <th>Budget name</th>
-            <th>Start date</th>
-            <th>End date</th>
-               <th>Active</th>
-               <th>Locked</th>
-               <th>Total</th>
-               <th>Actions</th>
-           </tr>
-       </thead>
-       <tbody>
-           [% FOREACH period_loo IN period_loop %]
-               [% IF ( loop.odd ) %]
-                   <tr>
-               [% ELSE %]
-                   <tr class="highlight">
-               [% END %]
-               <td><a href="/cgi-bin/koha/admin/aqbudgets.pl?budget_period_id=[% period_loo.budget_period_id %]" title="View funds for [% period_loo.budget_period_description %]">[% period_loo.budget_period_description %]</a></td>
-               <td>[% period_loo.budget_period_startdate %]</td>
-               <td>[% period_loo.budget_period_enddate %]</td>
-               <td>[% IF ( period_loo.budget_period_active ) %]<span style="color:green;">Active</span>&nbsp;[% ELSE %][% END %] </td>
-               <td> [% IF ( period_loo.budget_period_locked ) %]<span style="color:green;">Locked</span>&nbsp;[% ELSE %][% END %] </td>
-               <td align='right'>[% period_loo.budget_period_total %]</td>
-               <td>
-                   <a href="[% period_loo.script_name %]?op=add_form&amp;budget_period_id=[% period_loo.budget_period_id |html %]">Edit</a>
-                   <a href="[% period_loo.script_name %]?op=delete_confirm&amp;budget_period_id=[% period_loo.budget_period_id %]">Delete</a>
-            <a href="/cgi-bin/koha/admin/aqbudgets.pl?op=add_form&amp;budget_period_id=[% period_loo.budget_period_id %]">Add fund</a>
-               </td>
-               </tr>
-           [% END %]
-           [% UNLESS ( period_loop ) %]
-       <tr><td colspan="7">No budget</td></tr>
-       [% END %]
-    </tbody>
-    </table>
-    <div class="pages">[% pagination_bar %]</div>
+  <h2>Budgets administration</h2>
+
+  [% INCLUDE 'budgets-active-currency.inc' %]
+
+  <div id="budgetsTabs" class="toptabs">
+    <ul>
+        <li><a href="#active">Active Budgets</a></li>
+        <li><a href="#inactive">Inactive Budgets</a></li>
+    </ul>
+
+    <div id="active">
+      <h3>Active Budgets</h3>
+      [% IF ( period_active_loop ) %]
+        <table id="activeperiodst">
+          <thead>
+            <tr>
+              <th>Budget name</th>
+              <th>Start date</th>
+              <th>End date</th>
+              <th>Locked</th>
+              <th>Total</th>
+              <th>Actions</th>
+            </tr>
+          </thead>
+          <tbody>
+              [% FOREACH period_active IN period_active_loop %]
+                <tr>
+                <td><a href="/cgi-bin/koha/admin/aqbudgets.pl?budget_period_id=[% period_active.budget_period_id %]" title="View funds for [% period_active.budget_period_description %]">[% period_active.budget_period_description %]</a></td>
+                <td>[% period_active.budget_period_startdate | $KohaDates %]</td>
+                <td>[% period_active.budget_period_enddate | $KohaDates %]</td>
+                <td>
+                  [% IF ( period_active.budget_period_locked ) %]
+                    <span style="color:green;">Locked</span>&nbsp;
+                  [% END %]
+                </td>
+                <td align='right'>[% period_active.budget_period_total %]</td>
+                <td>
+                  <a href="[% script_name %]?op=add_form&amp;budget_period_id=[% period_active.budget_period_id |html %]">Edit</a>
+                  <a href="[% script_name %]?op=delete_confirm&amp;budget_period_id=[% period_active.budget_period_id %]">Delete</a>
+                  <a href="/cgi-bin/koha/admin/aqbudgets.pl?op=add_form&amp;budget_period_id=[% period_active.budget_period_id %]">Add Fund</a>
+                </td>
+                </tr>
+              [% END %]
+          </tbody>
+        </table>
+      [% ELSE %]
+        No active budgets
+      [% END %]
+      <div class="paginationBar">[% active_pagination_bar %]</div>
+    </div>
+    <div id="inactive">
+      <h3>Inactive Budgets</h3>
+      [% IF ( period_inactive_loop ) %]
+        <table id="inactiveperiodst">
+          <thead>
+              <tr>
+                  <th>Budget name</th>
+                  <th>Start date</th>
+                  <th>End date</th>
+                  <th>Locked</th>
+                  <th>Total</th>
+                  <th>Actions</th>
+              </tr>
+          </thead>
+          <tbody>
+              [% FOREACH period_loo IN period_inactive_loop %]
+                  [% IF ( loop.odd ) %]
+                      <tr>
+                  [% ELSE %]
+                      <tr class="highlight">
+                  [% END %]
+                  <td><a href="/cgi-bin/koha/admin/aqbudgets.pl?budget_period_id=[% period_loo.budget_period_id %]" title="View funds for [% period_loo.budget_period_description %]">[% period_loo.budget_period_description %]</a></td>
+                  <td>[% period_loo.budget_period_startdate | $KohaDates %]</td>
+                  <td>[% period_loo.budget_period_enddate | $KohaDates %]</td>
+                  <td> [% IF ( period_loo.budget_period_locked ) %]<span style="color:green;">Locked</span>&nbsp;[% ELSE %][% END %] </td>
+                  <td align='right'>[% period_loo.budget_period_total %]</td>
+                  <td>
+                      <a href="[% period_loo.script_name %]?op=add_form&amp;budget_period_id=[% period_loo.budget_period_id |html %]">Edit</a>
+                      <a href="[% period_loo.script_name %]?op=delete_confirm&amp;budget_period_id=[% period_loo.budget_period_id %]">Delete</a>
+                  <a href="/cgi-bin/koha/admin/aqbudgets.pl?op=add_form&amp;budget_period_id=[% period_loo.budget_period_id %]">Add fund</a>
+                  </td>
+                  </tr>
+              [% END %]
+          </tbody>
+        </table>
+      [% ELSE %]
+        No inactive budgets
+      [% END %]
+      <div class="pages">[% inactive_pagination_bar %]</div>
+    </div>
+  </div>
 [% END %]