[Koha-patches] [PATCH] Bug 11795 - Use validation plugin when creating new Z39.50 server
Owen Leonard
oleonard at myacpl.org
Wed Feb 19 19:10:22 CET 2014
The page for adding a new Z39.50 server includes some custom form
validation JavaScript which can be removed in favor of HTML5 validation
attributes and Koha's built-in validation plugin. This patch does so.
To test, apply the patch and go to Administration -> Z39.50 client
targets -> New Z39.50 server. Try submitting the form with any of the
following error conditions:
- Missing Z39.50 server name
- Missing hostname
- Missing port
- Non-numeric port
- Missing database
- Non-numeric rank
- Non-numeric timeout
These errors should trigger a validation warning.
Submission of the form with valid data should work correctly. Editing
an existing Z39.50 server should also work correctly.
---
.../prog/en/modules/admin/z3950servers.tt | 74 +++++++-------------
1 file changed, 25 insertions(+), 49 deletions(-)
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/z3950servers.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/z3950servers.tt
index a1dc45f..5685b70 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/z3950servers.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/z3950servers.tt
@@ -13,46 +13,22 @@
[% IF ( add_form ) %]
<script type="text/javascript">
//<![CDATA[
- //
- function isNotNull(f,noalert) {
- if (f.value.length ==0) {
- return false;
- }
- return true;
- }
- //
- function isNum(v,maybenull) {
- var n = new Number(v.value);
- if (isNaN(n)) {
- return false;
- }
- if (maybenull==0 && v.value=='') {
- return false;
- }
- return true;
- }
- //
- function Check(f) {
- var ok=1;
- var _alertString="";
- var alertString2;
- if (f.searchfield.value.length==0) {_alertString += "- target name missing\n";
- }
- if (f.host.value.length==0) {_alertString += "- host missing\n";
- }
- if (f.port.value.length==0) {_alertString += "- port missing\n";
- }
- if (f.db.value.length==0) {_alertString += "- database missing\n";
- }
- if (isNaN(f.port.value)) {_alertString += "- port must be a number\n";
- }
- if (isNaN(f.rank.value)) {_alertString += "- rank must be a number\n";
- }
- if (_alertString.length==0) {document.Aform.submit();
- } else {alertString2 = "Form not submitted because of the following problem(s)\n";alertString2 += "------------------------------------------------------------------------------------\n\n";alertString2 += _alertString;alert(alertString2);
- }
- }
- //]]>
+ $(document).ready(function(){
+ $( "#serverentry" ).validate({
+ rules: {
+ searchfield: { required: true },
+ host: { required: true },
+ port: {
+ required: true,
+ number: true
+ },
+ db: { required: true },
+ rank: { number: true },
+ timeout: { number: true }
+ }
+ });
+ });
+//]]>
</script>
[% END %]
[% IF ( else ) %]
@@ -93,7 +69,7 @@
[% IF ( add_form ) %]
- <form action="[% script_name %]" name="Aform" method="post">
+ <form action="[% script_name %]" name="Aform" method="post" id="serverentry">
<input type="hidden" name="op" value="add_validate" />
[% IF ( searchfield ) %]
<h1>Modify Z39.50 server</h1>
@@ -104,14 +80,14 @@
<ol>[% IF ( searchfield ) %]
<li><span class="label">Z39.50 server: </span> <input type="hidden" name="searchfield" value="[% searchfield %]" />[% searchfield %]</li>
[% ELSE %]
- <li><label for="searchfield">Z39.50 server: </label> <input type="text" name="searchfield" id="searchfield" size="65" maxlength="100" onblur="toUC(this)" /></li>
+ <li><label for="searchfield" class="required">Z39.50 server: </label> <input type="text" name="searchfield" id="searchfield" size="65" maxlength="100" onblur="toUC(this)" required="required" /> <span class="required">Required</span></li>
[% END %]
- <li><label for="host">Hostname: </label> <input type="text" name="host" id="host" size="30" value="[% host %]" />
+ <li><label for="host" class="required">Hostname: </label> <input type="text" name="host" id="host" size="30" value="[% host %]" required="required" /> <span class="required">Required</span>
</li>
- <li><label for="port">Port: </label> <input type="text" name="port" id="port" size="5" value="[% port %]" onblur="isNum(this)" />
+ <li><label for="port" class="required">Port: </label> <input type="text" name="port" id="port" size="5" value="[% port %]" required="required" /> <span class="required">Required</span>
</li>
- <li><label for="db">Database: </label> <input type="text" name="db" id="db" value="[% db %]" />
+ <li><label for="db" class="required">Database: </label> <input type="text" name="db" id="db" value="[% db %]" required="required" /> <span class="required">Required</span>
</li>
<li><label for="userid">Userid: </label> <input type="text" name="userid" id="userid" value="[% userid %]" />
</li>
@@ -124,7 +100,7 @@
<input type="checkbox" name="checked" id="checked" value="1" />
[% END %]
</li>
- <li><label for="rank">Rank (display order): </label> <input type="text" name="rank" id="rank" size="4" value="[% rank %]" onblur="isNum(this)" />
+ <li><label for="rank">Rank (display order): </label> <input type="text" name="rank" id="rank" size="4" value="[% rank %]" />
</li>
<li><label for="syntax">Syntax (z3950 can send<br /> records in various format. Choose one): </label>
<select name="syntax">
@@ -223,7 +199,7 @@
</select>
</li>
<li><label for="timeout">Timeout (0 its like not set): </label>
- <input type="text" name="timeout" id="timeout" size="4" value="[% timeout %]" onblur="isNum(this)" /> seconds
+ <input type="text" name="timeout" id="timeout" size="4" value="[% timeout %]" /> seconds
</li>
<li><label for="recordtype">Record type: </label>
<select name="recordtype" id="recordtype">
@@ -241,8 +217,8 @@
</li>
</ol>
</fieldset>
-
- <fieldset class="action"><input type="button" value="Save" onclick="Check(this.form)" /> <a class="cancel" href="/cgi-bin/koha/admin/z3950servers.pl">Cancel</a></fieldset>
+
+ <fieldset class="action"><input type="submit" value="Save" /> <a class="cancel" href="/cgi-bin/koha/admin/z3950servers.pl">Cancel</a></fieldset>
</form>
[% END %]
--
1.7.9.5
More information about the Koha-patches
mailing list