From d99d4d4543011fd3b0716942adc40ce70fee96cb Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Fri, 12 Oct 2018 15:46:43 +0000 Subject: [PATCH] Bug 20689: (follow-up) Make it possible to add capital letter subfields to item search fields This patch adds some custom validation to the MARC tag and subfield fields so that they are limited to alphanumeric characters. Both templates (the main view and the edit view) have been modified so that item_search_fields.js can be included in both. To test, apply the patch and test the form by entering a variety of different character combinations. The "MARC field" and "MARC subfield" inputs should only accept alphanumeric entries. Test both "new" and "edit" operations. Test other operations like delete and cancel. Signed-off-by: Mark Tompsett --- .../en/includes/admin-items-search-field-form.inc | 8 ++--- .../prog/en/modules/admin/items_search_field.tt | 3 +- .../prog/en/modules/admin/items_search_fields.tt | 4 +-- .../intranet-tmpl/prog/js/item_search_fields.js | 37 ++++++++++++++++++++-- 4 files changed, 43 insertions(+), 9 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-items-search-field-form.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-items-search-field-form.inc index 7232766..b95e263 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-items-search-field-form.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-items-search-field-form.inc @@ -23,18 +23,18 @@
  • [% IF field && field.tagfield == tagfield %] - + [% ELSE %] - + [% END %] Required
  • [% IF field && field.tagsubfield == tagsubfield %] - + [% ELSE %] - + [% END %]
  • diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/items_search_field.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/items_search_field.tt index 3cf8791..779fe18 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/items_search_field.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/items_search_field.tt @@ -23,7 +23,7 @@

    Item search field: [% field.label | html %]

    -
    +
    Edit field [% INCLUDE 'admin-items-search-field-form.inc' field=field %] @@ -49,6 +49,7 @@ [% MACRO jsinclude BLOCK %] [% Asset.js("js/admin-menu.js") | $raw %] + [% Asset.js("js/item_search_fields.js") | $raw %] [% END %] [% INCLUDE 'intranet-bottom.inc' %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/items_search_fields.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/items_search_fields.tt index bc3abf2..bd30170 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/items_search_fields.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/items_search_fields.tt @@ -91,7 +91,7 @@ [% END %] - +
    Add a new field [% INCLUDE 'admin-items-search-field-form.inc' field=undef %] @@ -99,7 +99,7 @@
    - Cancel + Cancel
    diff --git a/koha-tmpl/intranet-tmpl/prog/js/item_search_fields.js b/koha-tmpl/intranet-tmpl/prog/js/item_search_fields.js index 32418b5..2901d7d 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/item_search_fields.js +++ b/koha-tmpl/intranet-tmpl/prog/js/item_search_fields.js @@ -1,3 +1,9 @@ +/* global _ MSG_ITEM_SEARCH_DELETE_CONFIRM */ + +jQuery.validator.addMethod("marcfield", function(value, element) { + return this.optional(element) || /^[0-9a-zA-Z]+$/.test(value); +}, _("Please enter letters or numbers") ); + $(document).ready(function(){ $("#add_field_form").hide(); $("#new_search_field").on("click",function(e){ @@ -6,7 +12,7 @@ $(document).ready(function(){ $(".dialog").hide(); $("#search_fields_list,#toolbar").hide(); }); - $(".cancel").on("click",function(e){ + $(".hide_form").on("click",function(e){ e.preventDefault(); $("#add_field_form").hide(); $(".dialog").show(); @@ -21,4 +27,31 @@ $(document).ready(function(){ return false; } }); -}); \ No newline at end of file + + $("#add_field_form").validate({ + rules: { + label: "required", + tagfield: { + required: true, + marcfield: true + }, + tagsubfield: { + marcfield: true + } + } + }); + + $("#edit_search_fields").validate({ + rules: { + label: "required", + tagfield: { + required: true, + marcfield: true + }, + tagsubfield: { + marcfield: true + } + } + }); + +}); -- 2.1.4