From 9a62b22850747b6069a31281063ceda2d8a12434 Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Date: Fri, 27 Jul 2018 15:47:06 -0300
Subject: [PATCH] Bug 15184: Prepare the ground - Move funds and sort fields
 autoupdate

We are going to reuse the same logic: when a fund is selected the
statistic values are automatically updated.
Let move it to make it reusable more easily and isolate the code.

Sponsored-by: BULAC - http://www.bulac.fr/

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
---
 .../prog/en/modules/acqui/addorderiso2709.tt       | 65 +--------------------
 koha-tmpl/intranet-tmpl/prog/js/funds_sorts.js     | 67 ++++++++++++++++++++++
 2 files changed, 68 insertions(+), 64 deletions(-)
 create mode 100644 koha-tmpl/intranet-tmpl/prog/js/funds_sorts.js

diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/addorderiso2709.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/addorderiso2709.tt
index 3f5d736..fd553b0 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/addorderiso2709.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/addorderiso2709.tt
@@ -428,6 +428,7 @@
 [% INCLUDE 'datatables.inc' %]
     [% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") %]
     [% Asset.js("js/acq.js") %]
+    [% Asset.js("js/funds_sorts.js") %]
     <script type="text/JavaScript">
         $(document).ready(function() {
             $("#files").dataTable($.extend(true, {}, dataTablesDefaults, {
@@ -440,70 +441,6 @@
                 "aaSorting": []
             } ) );
 
-            // keep copy of the inactive budgets
-            disabledBudgetsCopy = $("select[name='all_budget_id']").html();
-            $("select[name='all_budget_id'] .b_inactive").remove();
-            $("select[name='budget_id'] .b_inactive").remove();
-
-            $("#showallbudgets").click(function() {
-                if ($(this).is(":checked")) {
-                    $("select[name='budget_id']").html(disabledBudgetsCopy)
-                }
-                else {
-                    $("select[name='budget_id'] .b_inactive").remove();
-                }
-            });
-
-            $("#all_showallbudgets").click(function() {
-                if ($(this).is(":checked")) {
-                    $("select[name='all_budget_id']").html(disabledBudgetsCopy);
-                }
-                else {
-                    $("select[name='all_budget_id'] .b_inactive").remove();
-                }
-            });
-
-            $("select[name='budget_id']").change(function(){
-                var sort1_authcat = $(this).find("option:selected").attr('data-sort1-authcat');
-                var sort2_authcat = $(this).find("option:selected").attr('data-sort2-authcat');
-                var destination_sort1 = $(this).parents('fieldset').find('li.sort1').find('input[name="sort1"]');
-                var sort1 = $(destination_sort1).val() || "";
-                if ( destination_sort1.length < 1 ) {
-                    destination_sort1 = $(this).parents('fieldset').find('li.sort1 > select[name="sort1"]');
-                }
-                var destination_sort2 = $(this).parents('fieldset').find('li.sort2').find('input[name="sort2"]');
-                var sort2 = $(destination_sort2).val() || "";
-                if ( destination_sort2.length < 1 ) {
-                    destination_sort2 = $(this).parents('fieldset').find('li.sort2').find('select[name="sort2"]');
-                }
-                getAuthValueDropbox( 'sort1', sort1_authcat, destination_sort1, sort1 );
-
-                getAuthValueDropbox( 'sort2', sort2_authcat, destination_sort2, sort2 );
-            } );
-
-            $("select[name='budget_id']").change();
-
-            $("select[name='all_budget_id']").change(function(){
-                var sort1_authcat = $(this).find("option:selected").attr('data-sort1-authcat');
-                var sort2_authcat = $(this).find("option:selected").attr('data-sort2-authcat');
-                var destination_sort1 = $(this).parent().siblings('li').find('input[name="all_sort1"]');
-                if ( destination_sort1.length < 1 ) {
-                    destination_sort1 = $(this).parent().siblings('li').find('select[name="all_sort1"]');
-                }
-                var destination_sort2 = $(this).parent().siblings('li').find('input[name="all_sort2"]');
-                if ( destination_sort2.length < 1 ) {
-                    destination_sort2 = $(this).parent().siblings('li').find('select[name="all_sort2"]');
-                }
-                getAuthValueDropbox( 'sort1', sort1_authcat, destination_sort1 );
-                getAuthValueDropbox( 'sort2', sort2_authcat, destination_sort2 );
-                $(this).parent().siblings('li').find('select[name="sort1"]').attr('name', 'all_sort1');
-                $(this).parent().siblings('li').find('input[name="sort1"]').attr('name', 'all_sort1');
-                $(this).parent().siblings('li').find('select[name="sort2"]').attr('name', 'all_sort2');
-                $(this).parent().siblings('li').find('input[name="sort2"]').attr('name', 'all_sort2');
-            } );
-
-            $("select[name='all_budget_id']").change();
-
             $("#records_to_import fieldset.rows div").hide();
             $('input:checkbox[name="import_record_id"]').change(function(){
                 var container = $(this).parents("fieldset");
diff --git a/koha-tmpl/intranet-tmpl/prog/js/funds_sorts.js b/koha-tmpl/intranet-tmpl/prog/js/funds_sorts.js
new file mode 100644
index 0000000..6659e3e
--- /dev/null
+++ b/koha-tmpl/intranet-tmpl/prog/js/funds_sorts.js
@@ -0,0 +1,67 @@
+/* getAuthValueDropbox from js/acq.js is needed */
+$(document).ready(function() {
+    // keep copy of the inactive budgets
+    disabledBudgetsCopy = $("select[name='all_budget_id']").html();
+    $("select[name='all_budget_id'] .b_inactive").remove();
+    $("select[name='budget_id'] .b_inactive").remove();
+
+    $("#showallbudgets").click(function() {
+        if ($(this).is(":checked")) {
+            $("select[name='budget_id']").html(disabledBudgetsCopy)
+        }
+        else {
+            $("select[name='budget_id'] .b_inactive").remove();
+        }
+    });
+
+    $("#all_showallbudgets").click(function() {
+        if ($(this).is(":checked")) {
+            $("select[name='all_budget_id']").html(disabledBudgetsCopy);
+        }
+        else {
+            $("select[name='all_budget_id'] .b_inactive").remove();
+        }
+    });
+
+    $("select[name='budget_id']").change(function(){
+        var sort1_authcat = $(this).find("option:selected").attr('data-sort1-authcat');
+        var sort2_authcat = $(this).find("option:selected").attr('data-sort2-authcat');
+        var destination_sort1 = $(this).parents('fieldset').find('li.sort1').find('input[name="sort1"]');
+        var sort1 = $(destination_sort1).val() || "";
+        if ( destination_sort1.length < 1 ) {
+            destination_sort1 = $(this).parents('fieldset').find('li.sort1 > select[name="sort1"]');
+        }
+        var destination_sort2 = $(this).parents('fieldset').find('li.sort2').find('input[name="sort2"]');
+        var sort2 = $(destination_sort2).val() || "";
+        if ( destination_sort2.length < 1 ) {
+            destination_sort2 = $(this).parents('fieldset').find('li.sort2').find('select[name="sort2"]');
+        }
+        getAuthValueDropbox( 'sort1', sort1_authcat, destination_sort1, sort1 );
+
+        getAuthValueDropbox( 'sort2', sort2_authcat, destination_sort2, sort2 );
+    } );
+
+    $("select[name='budget_id']").change();
+
+    $("select[name='all_budget_id']").change(function(){
+        var sort1_authcat = $(this).find("option:selected").attr('data-sort1-authcat');
+        var sort2_authcat = $(this).find("option:selected").attr('data-sort2-authcat');
+        var destination_sort1 = $(this).parent().siblings('li').find('input[name="all_sort1"]');
+        if ( destination_sort1.length < 1 ) {
+            destination_sort1 = $(this).parent().siblings('li').find('select[name="all_sort1"]');
+        }
+        var destination_sort2 = $(this).parent().siblings('li').find('input[name="all_sort2"]');
+        if ( destination_sort2.length < 1 ) {
+            destination_sort2 = $(this).parent().siblings('li').find('select[name="all_sort2"]');
+        }
+        getAuthValueDropbox( 'sort1', sort1_authcat, destination_sort1 );
+        getAuthValueDropbox( 'sort2', sort2_authcat, destination_sort2 );
+        $(this).parent().siblings('li').find('select[name="sort1"]').attr('name', 'all_sort1');
+        $(this).parent().siblings('li').find('input[name="sort1"]').attr('name', 'all_sort1');
+        $(this).parent().siblings('li').find('select[name="sort2"]').attr('name', 'all_sort2');
+        $(this).parent().siblings('li').find('input[name="sort2"]').attr('name', 'all_sort2');
+    } );
+
+    $("select[name='all_budget_id']").change();
+
+});
-- 
2.1.4