Bug 15184: Prepare the ground - Move funds and sort fields autoupdate
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Fri, 27 Jul 2018 18:47:06 +0000 (15:47 -0300)
committerNick Clemens <nick@bywatersolutions.com>
Thu, 8 Nov 2018 15:52:56 +0000 (15:52 +0000)
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>
Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/addorderiso2709.tt
koha-tmpl/intranet-tmpl/prog/js/funds_sorts.js [new file with mode: 0644]

index 756698b..f3e2822 100644 (file)
 [% INCLUDE 'datatables.inc' %]
     [% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") | $raw %]
     [% Asset.js("js/acq.js") | $raw %]
+    [% Asset.js("js/funds_sorts.js") | $raw %]
     <script type="text/JavaScript">
         $(document).ready(function() {
             $("#files").dataTable($.extend(true, {}, dataTablesDefaults, {
                 "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 (file)
index 0000000..6659e3e
--- /dev/null
@@ -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();
+
+});