From 736fcd1cb62413f6b2de3e3190da4edbe67e09a3 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 (cherry picked from commit 23265158fcab25f8f5188cea6f07af46812d41cc) Signed-off-by: Martin Renvoize --- .../prog/en/includes/calendar.inc | 33 +++++ .../prog/en/modules/admin/aqbudgetperiods.tt | 114 ++++++------------ .../prog/en/modules/admin/aqcontract.tt | 75 +++++------- .../prog/en/modules/admin/aqplan.tt | 54 +++------ 4 files changed, 114 insertions(+), 162 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc index f13a1fa4a5..123ca8739e 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 ea68e0db1d..70a9835863 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt @@ -118,13 +118,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

-
+
@@ -134,18 +134,21 @@
  • -
    [% INCLUDE 'date-format.inc' %]
    + Required +
    [% INCLUDE 'date-format.inc' %]
  • -
    [% INCLUDE 'date-format.inc' %]
    + Required +
    [% INCLUDE 'date-format.inc' %]
  • - + + Required
  • @@ -174,7 +177,8 @@
  • - Cancel + + Cancel
    @@ -189,7 +193,7 @@ [% ELSE %]

    Add budget

    [% END %] -
    +
    @@ -200,13 +204,15 @@
  • -
    [% INCLUDE 'date-format.inc' %]
    + Required +
    [% INCLUDE 'date-format.inc' %]
  • -
    [% INCLUDE 'date-format.inc' %]
    + Required +
    [% INCLUDE 'date-format.inc' %]
  • @@ -214,7 +220,8 @@ + size="48" maxlength="80" value="[% budget_period_description | html %]" /> + Required
  • @@ -244,8 +251,7 @@
    - - + [% IF ( budget_period_id ) %] Cancel [% ELSE %] @@ -499,71 +505,7 @@ [% Asset.js("lib/jquery/plugins/treetable/jquery.treetable.js") %] [% END %] [% Asset.js("js/acq.js") %] - [% 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 4b0ab5f55c..dcb2a4f720 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 %] @@ -178,44 +181,24 @@ [% MACRO jsinclude BLOCK %] [% INCLUDE 'calendar.inc' %] [% Asset.js("js/acq.js") %] - [% 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 324e08946c..357f650946 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqplan.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqplan.tt @@ -4,7 +4,7 @@ [% INCLUDE 'doc-head-open.inc' %] Koha › Administration › Budgets › Funds › Planning for [% budget_period_description %] by [% authcat %] [% INCLUDE 'doc-head-close.inc' %] - + @@ -98,7 +98,7 @@ [% line.estimated_amount %]  [% ELSE %] - + [% END %] @@ -136,7 +136,7 @@ [% UNLESS ( budget_line.budget_lock ) %] - + [% ELSE %]
    not owned
    [% END %] @@ -150,7 +150,7 @@ [% IF ( budget_period_locked ) %] [% ELSE %] -
    +
    [% END %] @@ -270,41 +270,10 @@
    [% MACRO jsinclude BLOCK %] - [% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") %] [% Asset.js("js/acq.js") %] - [% END %] [% INCLUDE 'intranet-bottom.inc' %] -- 2.39.5