ed7543287b
Having to write [% KOHA_VERSION %] for each url is bad because: - It's easily forgettable when adding new <script> or <link> - It prevents grep'ing for the full filename - It violates the DRY principle - If at some point we want to change the "force js and css reload" mechanism, it will be tedious This patch: - adds a Template::Toolkit plugin that generates <script> and <link> tags for JS and CSS files, and inserts automatically the Koha version in the filename - use the new plugin to remove all occurences of [% KOHA_VERSION %] - remove the code that was adding KOHA_VERSION as a template variable Test plan: 1. Apply patch 2. Go to several different pages in Koha (opac and intranet) while checking your browser's dev tools (there should be no 404 for JS and CSS files, and the Koha version should appear in filenames) and the server logs (there should be no "File not found") 3. `git grep KOHA_VERSION` should return nothing 4. prove t/db_dependent/Koha/Template/Plugin/Asset.t Signed-off-by: Josef Moravec <josef.moravec@gmail.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
274 lines
13 KiB
Text
274 lines
13 KiB
Text
[% USE Asset %]
|
|
[% SET footerjs = 1 %]
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
|
|
[% BLOCK ServerType %]
|
|
[% IF (server.servertype||type) == 'sru' %]
|
|
SRU
|
|
[% ELSIF (server.servertype||type) == 'zed' %]
|
|
Z39.50
|
|
[% END %]
|
|
[% END %]
|
|
|
|
<title>Koha › Administration › Z39.50/SRU servers
|
|
[% IF op == 'edit' %] › Modify [% PROCESS ServerType %] server [% server.servername %][% END %]
|
|
[% IF op == 'add' %] › New [% PROCESS ServerType %] server[% END %]
|
|
</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
|
|
[% IF op == 'list' %]
|
|
[% Asset.css("css/datatables.css") %]
|
|
[% END %]
|
|
</head>
|
|
|
|
<body id="admin_z3950servers" class="admin">
|
|
[% INCLUDE 'header.inc' %]
|
|
[% INCLUDE 'z3950-admin-search.inc' %]
|
|
|
|
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> ›
|
|
<a href="/cgi-bin/koha/admin/z3950servers.pl">Z39.50/SRU servers</a>
|
|
[% IF op == 'edit' %]› Modify [% PROCESS ServerType %] server [% server.servername %][% END %]
|
|
[% IF op == 'add' %]› New [% PROCESS ServerType %] server[% END %]
|
|
</div>
|
|
|
|
<div id="doc3" class="yui-t2">
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
|
|
[% IF msg_deleted %]
|
|
<div class="dialog alert">Z39.50/SRU server deleted ([% msg_add %])</div>
|
|
[% ELSIF msg_updated %]
|
|
<div class="dialog message">Z39.50/SRU server updated ([% msg_add %])</div>
|
|
[% ELSIF msg_added %]
|
|
<div class="dialog message">Z39.50/SRU server added ([% msg_add %])</div>
|
|
[% ELSIF msg_notfound %]
|
|
<div class="dialog alert">Error: Server with id [% msg_add %] not found</div>
|
|
[% END %]
|
|
|
|
[% IF ( add_form ) %]
|
|
<form action="[% script_name %]" name="Aform" method="post" id="serverentry">
|
|
<input type="hidden" name="op" value="add_validated" />
|
|
<input type="hidden" name="servertype" value="[% server.servertype||type||'zed' %]"/>
|
|
[% IF op == 'edit' %]
|
|
<h1>Modify [% PROCESS ServerType %] server</h1>
|
|
<input type="hidden" name="id" value="[% server.id %]" />
|
|
[% ELSE %]
|
|
<h1>New [% PROCESS ServerType %] server</h1>
|
|
[% END %]
|
|
<fieldset class="rows">
|
|
<ol>
|
|
<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><label for="db" class="required">Database: </label> <input type="text" name="db" id="db" value="[% server.db %]" required="required" /> <span class="required">Required</span>
|
|
</li>
|
|
<li><label for="userid">Userid: </label> <input type="text" name="userid" id="userid" value="[% server.userid %]" />
|
|
</li>
|
|
<li><label for="password">Password: </label> <input type="text" name="password" id="password" value="[% server.password %]" />
|
|
</li>
|
|
<li><label for="checked">Preselected (searched by default): </label>
|
|
[% IF ( server.checked ) %]
|
|
<input type="checkbox" name="checked" id="checked" value="1" checked="checked" />
|
|
[% ELSE %]
|
|
<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="[% server.rank %]" />
|
|
</li>
|
|
|
|
<li><label for="syntax">Syntax (z3950 can send<br /> records in various format. Choose one): </label>
|
|
<select name="syntax" id="syntax">
|
|
<option value="UNIMARC">UNIMARC</option>
|
|
<option value="INTERMARC">INTERMARC</option>
|
|
<option value="CCF">CCF</option>
|
|
<option value="USMARC">MARC21/USMARC</option>
|
|
<option value="UKMARC">UKMARC</option>
|
|
<option value="NORMARC">NORMARC</option>
|
|
<option value="LIBRISMARC">LIBRISMARC</option>
|
|
<option value="DANMARC">DANMARC</option>
|
|
<option value="FINMARC">FINMARC</option>
|
|
<option value="CANMARC">CANMARC</option>
|
|
<option value="SBN">SBN</option>
|
|
<option value="PICAMARC">PICAMARC</option>
|
|
<option value="AUSMARC">AUSMARC</option>
|
|
<option value="IBERMARC">IBERMARC</option>
|
|
<option value="CATMARC">CATMARC</option>
|
|
<option value="MALMARC">MALMARC</option>
|
|
</select>
|
|
</li>
|
|
|
|
<li><label for="encoding">Encoding (z3950 can send<br /> records in various encodings. Choose one): </label>
|
|
<select name="encoding" id="encoding">
|
|
[% FOREACH enc IN [ 'utf8' 'EUC-KR' 'ISO_5426' 'ISO_6937' 'ISO_8859-1' 'MARC-8' ] %]
|
|
<option value="[% enc %]">[% enc %]</option>
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
|
|
<li><label for="timeout">Timeout (0 its like not set): </label>
|
|
<input type="text" name="timeout" id="timeout" size="4" value="[% server.timeout %]" /> seconds
|
|
</li>
|
|
<li><label for="recordtype">Record type: </label>
|
|
<select name="recordtype" id="recordtype">
|
|
<option value="biblio">Bibliographic</option>
|
|
<option value="authority">Authority</option>
|
|
</select>
|
|
</li>
|
|
[% IF (server.servertype||type) == 'sru' %]
|
|
<li>
|
|
<label for="sru_options">Additional SRU options: </label>
|
|
<input type="text" name="sru_options" id="sru_options" size="50" value="[% server.sru_options %]"/>
|
|
<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="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 %]"/>
|
|
<div class="hint">Separate multiple filenames by commas.</span>
|
|
</li>
|
|
|
|
</ol>
|
|
</fieldset>
|
|
|
|
<fieldset class="action"><input type="submit" value="Save" /> <a class="cancel" href="/cgi-bin/koha/admin/z3950servers.pl">Cancel</a></fieldset>
|
|
</form>
|
|
[% END %]
|
|
|
|
[% IF op == 'list' %]
|
|
<div id="toolbar" class="btn-toolbar">
|
|
<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 |html %]
|
|
[% END %]
|
|
<table id="serverst">
|
|
<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 %]
|
|
<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>
|
|
[% ELSIF ( loo.recordtype == 'authority' ) %]
|
|
<span>Authority</span>
|
|
[% END %]
|
|
</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>
|
|
</table>
|
|
[% END %]
|
|
|
|
</div>
|
|
</div>
|
|
<div class="yui-b">
|
|
[% INCLUDE 'admin-menu.inc' %]
|
|
</div>
|
|
</div>
|
|
|
|
[% MACRO jsinclude BLOCK %]
|
|
[% Asset.js("js/admin-menu.js") %]
|
|
[% 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' %]
|