From 1ac2b6e93ca453bf0a5f33ab214acfef125620f9 Mon Sep 17 00:00:00 2001 From: Owen Leonard <oleonard@myacpl.org> 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. 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. --- .../en/includes/admin-items-search-field-form.inc | 8 ++++---- .../prog/en/modules/admin/items_search_field.tt | 22 +++++++++++++++++++++- 2 files changed, 25 insertions(+), 5 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 52bcb7c..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 @@ <li> <label class="required" for="tagfield">MARC field: </label> [% IF field && field.tagfield == tagfield %] - <input type="text" id="tagfield" name="tagfield" maxlength="3" size="3" class="required" required="required" value="[% tagfield | html %] /> + <input type="text" id="tagfield" name="tagfield" maxlength="3" size="3" class="required" pattern="[a-zA-Z0-9]+" required="required" value="[% tagfield | html %]" /> [% ELSE %] - <input type="text" id="tagfield" name="tagfield" maxlenght="3" size="3" class="required" required="required" /> + <input type="text" id="tagfield" name="tagfield" maxlenght="3" size="3" class="required" pattern="[a-zA-Z0-9]+" required="required" /> [% END %] <span class="required">Required</span> </li> <li> <label for="tagsubfield">MARC subfield: </label> [% IF field && field.tagsubfield == tagsubfield %] - <input type="text" id="tagsubfield" name="tagsubfield" maxlength="1" size="1" value="[% tagsubfield | html %]" /> + <input type="text" id="tagsubfield" name="tagsubfield" pattern="[a-zA-Z0-9]+" maxlength="1" size="1" value="[% tagsubfield | html %]" /> [% ELSE %] - <input type="text" id="tagsubfield" name="tagsubfield" maxlength="1" size="1" /> + <input type="text" id="tagsubfield" name="tagsubfield" pattern="[a-zA-Z0-9]+" maxlength="1" size="1" /> [% END %] </li> <li> 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..e73b629 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 @@ <h1>Item search field: [% field.label | html %]</h1> - <form action="/cgi-bin/koha/admin/items_search_field.pl" method="POST" class="validated"> + <form action="/cgi-bin/koha/admin/items_search_field.pl" method="POST" id="edit_search_fields"> <fieldset class="rows"> <legend>Edit field</legend> [% INCLUDE 'admin-items-search-field-form.inc' field=field %] @@ -49,6 +49,26 @@ [% MACRO jsinclude BLOCK %] [% Asset.js("js/admin-menu.js") | $raw %] + <script> + 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(){ + $("#edit_search_fields").validate({ + rules: { + label: "required", + tagfield: { + required: true, + marcfield: true + }, + tagsubfield: { + marcfield: true + } + } + }); + }); + </script> [% END %] [% INCLUDE 'intranet-bottom.inc' %] -- 2.1.4