From 23265158fcab25f8f5188cea6f07af46812d41cc Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Thu, 16 Jun 2016 09:28:01 -0400 Subject: [PATCH] Bug 16754: Use validation plugin in budgets, planning, and contracts This patch removes the custom javascript form validation from three templates: Budgets, budget planning, and contracts. Validation via the validation plugin is done instead. This patch also removes use of event attributes like onclick and onchange. Also changed: I added the "Required" text next to required fields as necessary. To test, apply the patch and go to Administration -> Budgets. - Test the budget creation process for adding, editing, and duplicating budgets. In all cases: - The start date and end date should be required - You should be warned if you enter an end date which falls before the start date. - The description should be required - The budget amount should be required to be a number To test the budget planning page: Note that much of the JS removed from this template was unused. It looked for inputs by the name 'est_total' which don't exist. - When viewing the table of funds for a budget, select a choice from the 'planning' toolbar menu. - Verify that after entering a numeric value in any cell, the 'remaning' value at the end of the row is correctly updated. - Verify that after entering non-numeric data an error is displayed. - Verify that clicking the 'auto-fill' button at the end of the row works to fill any empty or zero-value fields with the remaning funds available. To test the vendor contracts page: - Go to Acquisitions -> Vendor -> Contracts - Add or edit a contract - Confirm that name, start date, and end date are required. - Confirm that you are warned if you enter an end date which falls before the start date. Signed-off-by: Michal Denar Signed-off-by: Katrin Fischer Signed-off-by: Nick Clemens --- .../prog/en/includes/calendar.inc | 33 ++++++ .../prog/en/modules/admin/aqbudgetperiods.tt | 108 ++++++------------ .../prog/en/modules/admin/aqcontract.tt | 71 +++++------- .../prog/en/modules/admin/aqplan.tt | 52 +++------ 4 files changed, 108 insertions(+), 156 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc index 653221e4a9..1d06bca2d2 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc @@ -125,6 +125,39 @@ jQuery(function($){ $.datepicker.setDefaults($.datepicker.regional['']); }); +/* jQuery Validator plugin custom method + This allows you to check that a given date falls after another. + It is required that a message be defined. + + Syntax: + $("#form_id").validate({ + rules: { + input_name_of_later_date_field: { + is_date_after: "#input_id_of_earlier_date_field" + }, + }, + messages: { + input_name_of_later_date_field: { + is_date_after: _("Validation error to be shown, i.e. End date must come after start date") + } + } + }); +*/ + +jQuery.validator.addMethod("is_date_after", +function(value, element, params) { + var from = Date_from_syspref( $(params).val() ); + var to = Date_from_syspref(value); + return to > from; +}); + +jQuery.validator.addMethod("date_on_or_after", +function(value, element, params) { + var from = Date_from_syspref( $(params).val() ); + var to = Date_from_syspref(value); + return to >= from; +}); + $(document).ready(function(){ $.datepicker.setDefaults({ diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt index 22b6d2ea81..cf7d6b3a52 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt @@ -119,13 +119,13 @@
-[% UNLESS close_form OR closed%] +[% UNLESS close_form OR closed OR duplicate_form %] [% INCLUDE 'budgets-admin-toolbar.inc' %] [% END %] [% IF ( duplicate_form ) %]

Duplicate budget

-
+
@@ -135,18 +135,21 @@
  • -
    [% INCLUDE 'date-format.inc' %]
    + Required +
    [% INCLUDE 'date-format.inc' %]
  • -
    [% INCLUDE 'date-format.inc' %]
    + Required +
    [% INCLUDE 'date-format.inc' %]
  • + Required
  • @@ -175,7 +178,8 @@
  • - Cancel + + Cancel
    @@ -190,7 +194,7 @@ [% ELSE %]

    Add budget

    [% END %] -
    +
    @@ -201,13 +205,15 @@
  • -
    [% INCLUDE 'date-format.inc' %]
    + Required +
    [% INCLUDE 'date-format.inc' %]
  • -
    [% INCLUDE 'date-format.inc' %]
    + Required +
    [% INCLUDE 'date-format.inc' %]
  • @@ -216,6 +222,7 @@ + Required
  • @@ -245,8 +252,7 @@
    - - + [% IF ( budget_period_id ) %] Cancel [% ELSE %] @@ -504,70 +510,6 @@ [% END %] [% Asset.js("js/acq.js") | $raw %] [% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqcontract.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqcontract.tt index 8e596f21e8..b25ba7568f 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqcontract.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqcontract.tt @@ -59,7 +59,7 @@ [% END %] [% IF ( add_form ) %] - + @@ -76,24 +76,27 @@
  • [% END %] -
  •   +
  •   + Required
  •  
  • -
  •   +
  •   -
    [% INCLUDE 'date-format.inc' %]
    + Required +
    [% INCLUDE 'date-format.inc' %]
  • -
  •   +
  •   -
    [% INCLUDE 'date-format.inc' %]
    + Required +
    [% INCLUDE 'date-format.inc' %]
  • - Cancel + Cancel
    [% END %] @@ -184,43 +187,23 @@ [% INCLUDE 'calendar.inc' %] [% Asset.js("js/acq.js") | $raw %] [% END %] [% INCLUDE 'intranet-bottom.inc' %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqplan.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqplan.tt index 941854a21b..79c3dbac8c 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqplan.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqplan.tt @@ -5,7 +5,7 @@ [% INCLUDE 'doc-head-open.inc' %] Koha › Administration › Budgets › Funds › Planning for [% budget_period_description | html %] by [% authcat | html %] [% INCLUDE 'doc-head-close.inc' %] - + @@ -99,7 +99,7 @@ [% line.estimated_amount | html %]  [% ELSE %] - + [% END %] @@ -137,7 +137,7 @@ [% UNLESS ( budget_line.budget_lock ) %] - + [% ELSE %]
    not owned
    [% END %] @@ -151,7 +151,7 @@ [% IF ( budget_period_locked ) %] [% ELSE %] -
    +
    [% END %] @@ -276,41 +276,10 @@
    [% MACRO jsinclude BLOCK %] - [% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") | $raw %] [% Asset.js("js/acq.js") | $raw %] [% END %] [% INCLUDE 'intranet-bottom.inc' %] -- 2.39.5