+[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
[% BLOCK ServerType %]
[% INCLUDE 'doc-head-close.inc' %]
[% IF op == 'list' %]
- <link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
- [% INCLUDE 'datatables.inc' %]
+ <link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
[% END %]
-
-<script type="text/javascript">
-//<![CDATA[
-[% IF ( add_form ) %]
- $(document).ready(function(){
- // Update selects for syntax, encoding and recordtype
- [% IF server %]
- $("#syntax").val('[% server.syntax %]');
- $("#encoding").val('[% server.encoding %]');
- $("#recordtype").val('[% server.recordtype %]');
- [% END %]
- // Disable recordtype (and default to bib) for non-Z3950 servers until auth is supported
- [% UNLESS (server.servertype||type) == 'zed' %]
- $("#recordtype").prop('disabled',true);
- [% END %]
- $( "#serverentry" ).validate({
- rules: {
- servername: { required: true },
- host: { required: true },
- port: {
- required: true,
- number: true
- },
- db: { required: true },
- rank: { number: true },
- timeout: { number: true }
- }
- });
- $("#serverentry").submit(function( event ) {
- // copy show_sru_fields to hidden counterpart
- $('#sru_fields').val( $('#show_sru_fields').val() );
- // enable recordtype to include field in post
- $('#recordtype').prop('disabled',false);
- });
- });
- function ModMapping () {
- var map= $('#show_sru_fields').val();
- window.open('/cgi-bin/koha/admin/sru_modmapping.pl?mapping='+map,'popup','width=800,height=400,resizable=no,toolbar=false,scrollbars=no,top');
- }
-[% ELSE %]
- $(document).ready(function() {
- $("#serverst").dataTable($.extend(true, {}, dataTablesDefaults, {
- "aoColumnDefs": [
- { "aTargets": [2,3,4,7,8,9,10,11], "bSortable": false, "bSearchable": false },
- ],
- "sPaginationType": "four_button"
- }));
- });
- function ConfirmDelete(name,id) {
- if( confirm( _("Choose OK if you really want to delete server ")+
- name+'.')) {
- window.location="[% script_name %]?op=delete_confirmed&id="+id;
- }
- return false;
- }
-[% END %]
-//]]>
-</script>
-
</head>
+
<body id="admin_z3950servers" class="admin">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'z3950-admin-search.inc' %]
<input type="hidden" name="id" value="[% server.id %]" />
[% ELSE %]
<h1>New [% PROCESS ServerType %] server</h1>
- [% END %]
+ [% END %]
<fieldset class="rows">
<ol>
- <li><label for="name">Server name: </label><input type="text" name="servername" id="servername" size="65" maxlength="100" onblur="toUC(this)" value="[% server.servername | html %]"/></li>
+ <li><label for="name" class="required">Server name: </label>
+ <input type="text" name="servername" id="servername" size="65" maxlength="100" value="[% server.servername | html %]" required="required" /> <span class="required">Required</span>
+ </li>
<li><label for="host" class="required">Hostname: </label> <input type="text" name="host" id="host" size="30" value="[% server.host %]" required="required" /> <span class="required">Required</span>
+ [% IF (server.servertype||type) == 'sru' %]
+ <div class="hint">Includes the domain part, but the path part of the URL should go into Database.</div>
+ [% END %]
</li>
<li><label for="port" class="required">Port: </label> <input type="text" name="port" id="port" size="5" value="[% server.port %]" required="required" /> <span class="required">Required</span>
</li>
</li>
<li><label for="password">Password: </label> <input type="text" name="password" id="password" value="[% server.password %]" />
</li>
- <li><label for="checked">Checked (searched by default): </label>
+ <li><label for="checked">Preselected (searched by default): </label>
[% IF ( server.checked ) %]
<input type="checkbox" name="checked" id="checked" value="1" checked="checked" />
[% ELSE %]
<li>
<label for="sru_options">Additional SRU options: </label>
<input type="text" name="sru_options" id="sru_options" size="50" value="[% server.sru_options %]"/>
- <span>( Separate options by commas. Example: sru=get,sru_version=1.1. See also http://www.indexdata.com/yaz/doc/zoom.html.)</span>
+ <div class="hint">Separate options by commas. Example: sru=get,sru_version=1.1. See also http://www.indexdata.com/yaz/doc/zoom.html.</div>
</li>
<li>
<label for="sru_fields">SRU Search fields mapping: </label>
<input type="hidden" name="sru_fields" id="sru_fields" value="[% server.sru_fields %]" />
- <input type="text" name="show_sru_fields" id="show_sru_fields" size="100" value="[% server.sru_fields %]" disabled/> <input type="button" value="Modify" onclick="ModMapping()" />
+ <input type="text" name="show_sru_fields" id="show_sru_fields" size="100" value="[% server.sru_fields %]" disabled="disabled" /> <input type="button" id="modify_sru_fields" value="Modify" />
</li>
[% END %]
<li>
<label for="add_xslt">XSLT File(s) for transforming results: </label>
<input type="text" name="add_xslt" id="add_xslt" size="100" value="[% server.add_xslt %]"/>
- <span>( Separate files by commas.)</span>
+ <div class="hint">Separate multiple filenames by commas.</span>
</li>
</ol>
[% IF op == 'list' %]
<div id="toolbar" class="btn-toolbar">
- <a id="newserver" class="btn btn-small" href="/cgi-bin/koha/admin/z3950servers.pl?op=add&type=zed"><i class="icon-plus"></i> New Z39.50 server</a>
- <a id="newserver" class="btn btn-small" href="/cgi-bin/koha/admin/z3950servers.pl?op=add&type=sru"><i class="icon-plus"></i> New SRU server</a>
+ <a id="newserver" class="btn btn-default btn-sm" href="/cgi-bin/koha/admin/z3950servers.pl?op=add&type=zed"><i class="fa fa-plus"></i> New Z39.50 server</a>
+ <a id="newserver" class="btn btn-default btn-sm" href="/cgi-bin/koha/admin/z3950servers.pl?op=add&type=sru"><i class="fa fa-plus"></i> New SRU server</a>
</div>
<h3>Z39.50/SRU servers administration</h3>
[% IF id %]
You searched for record [% id %]
[% ELSIF searchfield %]
- You searched for [% searchfield %]
+ You searched for [% searchfield |html %]
[% END %]
<table id="serverst">
- <thead><tr><th>Target</th><th>Hostname/Port</th><th>Database</th><th>Userid</th><th>Password</th><th>Checked</th><th>Rank</th><th>Syntax</th><th>Encoding</th><th>Timeout</th><th>Record type</th><th>Options</th>
+ <thead><tr><th>Target</th><th>Hostname/Port</th><th>Database</th><th>Userid</th><th>Password</th><th>Preselected</th><th>Rank</th><th>Syntax</th><th>Encoding</th><th>Timeout</th><th>Record type</th><th></th>
</tr></thead>
<tbody>
[% FOREACH loo IN loop %]
- [% UNLESS ( loop.odd ) %]
- <tr class="highlight">
- [% ELSE %]
- <tr>
- [% END %]
- <td><a href="[% loo.script_name %]?op=edit&id=[% loo.id %]">[% loo.servername %]</a></td><td>[% loo.host %]:[% loo.port %]</td><td>[% loo.db %]</td><td>[% loo.userid %]</td><td>[% IF loo.password %]########[% END %]</td><td>[% IF ( loo.checked ) %]Yes[% ELSE %]No[% END %]</td><td>[% loo.rank %]</td>
+ <tr>
+ <td><a href="/cgi-bin/koha/admin/z3950servers.pl?op=edit&id=[% loo.id %]">[% loo.servername %]</a></td><td>[% loo.host %]:[% loo.port %]</td><td>[% loo.db %]</td><td>[% loo.userid %]</td><td>[% IF loo.password %]########[% END %]</td><td>[% IF ( loo.checked ) %]Yes[% ELSE %]No[% END %]</td><td>[% loo.rank %]</td>
<td>[% loo.syntax %]</td><td>[% loo.encoding %]</td><td>[% loo.timeout %]</td>
<td>[% IF ( loo.recordtype == 'biblio' ) %]
<span>Bibliographic</span>
<span>Authority</span>
[% END %]
</td>
- <td><a href="[% loo.script_name %]?op=edit&id=[% loo.id %]">Edit</a> <a href="[% loo.script_name %]?op=add&id=[% loo.id %]">Copy</a> <a href="javascript:void(0);" onclick="ConfirmDelete('[% loo.servername | replace("['\"]","") %]','[% loo.id %]');">Delete</a></td>
+ <td>
+ <div class="dropdown">
+ <a class="btn btn-default btn-xs dropdown-toggle" id="reportactions[% savedreport.id %]" role="button" data-toggle="dropdown" href="#">
+ Actions <b class="caret"></b>
+ </a>
+ <ul class="dropdown-menu pull-right" role="menu" aria-labelledby="reportactions[% savedreport.id %]">
+ <li><a href="/cgi-bin/koha/admin/z3950servers.pl?op=edit&id=[% loo.id %]"><i class="fa fa-pencil"></i> Edit</a></li>
+ <li><a href="/cgi-bin/koha/admin/z3950servers.pl?op=add&id=[% loo.id %]"><i class="fa fa-copy"></i> Copy</a></li>
+ <li><a href="/cgi-bin/koha/admin/z3950servers.pl?op=delete_confirmed&id=[% loo.id %]" class="delete" data-servername="[% loo.servername %]"><i class="fa fa-trash"></i> Delete</a></li>
+ </ul>
+ </div>
+ </td>
</tr>
[% END %]
</tbody>
[% INCLUDE 'admin-menu.inc' %]
</div>
</div>
+
+[% MACRO jsinclude BLOCK %]
+ <script type="text/javascript" src="[% interface %]/[% theme %]/js/admin-menu.js"></script>
+ [% IF op == 'list' %]
+ [% INCLUDE 'datatables.inc' %]
+ [% END %]
+
+ <script type="text/javascript">
+ [% IF ( add_form ) %]
+ $(document).ready(function(){
+ // Update selects for syntax, encoding and recordtype
+ [% IF server %]
+ $("#syntax").val('[% server.syntax %]');
+ $("#encoding").val('[% server.encoding %]');
+ $("#recordtype").val('[% server.recordtype %]');
+ [% END %]
+ // Disable recordtype (and default to bib) for non-Z3950 servers until auth is supported
+ [% UNLESS (server.servertype||type) == 'zed' %]
+ $("#recordtype").prop('disabled',true);
+ [% END %]
+ $( "#serverentry" ).validate({
+ rules: {
+ servername: { required: true },
+ host: { required: true },
+ port: {
+ required: true,
+ number: true
+ },
+ db: { required: true },
+ rank: { number: true },
+ timeout: { number: true }
+ }
+ });
+ $("#serverentry").submit(function( event ) {
+ // first test if show_sru_fields exists
+ if( $('#show_sru_fields').length && $('#show_sru_fields').val()=='' && !confirm( _("No SRU search field mappings have been defined. This means that all field searches will go through the whole record. Continue?"))) {
+ return false;
+ }
+ // copy show_sru_fields to hidden counterpart
+ $('#sru_fields').val( $('#show_sru_fields').val() );
+ // enable recordtype to include field in post
+ $('#recordtype').prop('disabled',false);
+ });
+ $("#servername").on("blur",function(){
+ toUC(this);
+ });
+ $("#modify_sru_fields").on("click",function(){
+ ModMapping();
+ });
+ });
+ function ModMapping () {
+ var map= $('#show_sru_fields').val();
+ window.open('/cgi-bin/koha/admin/sru_modmapping.pl?mapping='+map,'popup','width=800,height=400,resizable=yes,toolbar=false,scrollbars=yes,top');
+ }
+ [% ELSE %]
+ $(document).ready(function() {
+ $("#serverst").dataTable($.extend(true, {}, dataTablesDefaults, {
+ "aoColumnDefs": [
+ { "aTargets": [2,3,4,7,8,9,10,11], "bSortable": false, "bSearchable": false },
+ ],
+ "sPaginationType": "four_button"
+ }));
+ $(".delete").on("click",function(e){
+ var servername = $(this).data("servername");
+ if( confirm( _("Are you sure you want to delete server %s?").format(servername) ) ) {
+ return true;
+ } else {
+ e.preventDefault();
+ }
+ });
+ });
+ [% END %]
+ </script>
+[% END %]
[% INCLUDE 'intranet-bottom.inc' %]