Bug 20109: (follow-up) Use double quote instead of simple-quote
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / admin / z3950servers.tt
index c43e6eb..fba1ffd 100644 (file)
@@ -1,68 +1,33 @@
+[% SET footerjs = 1 %]
 [% INCLUDE 'doc-head-open.inc' %]
-<title>Koha &rsaquo; Administration &rsaquo; Z39.50 servers
-[% IF op == 'edit' %] &rsaquo; Modify Z39.50 server [% server.name %][% END %]
-[% IF op ==  'add' %] &rsaquo; New Z39.50 server[% END %]
+
+[% BLOCK ServerType %]
+    [% IF (server.servertype||type) == 'sru' %]
+        SRU
+    [% ELSIF (server.servertype||type) == 'zed' %]
+        Z39.50
+    [% END %]
+[% END %]
+
+<title>Koha &rsaquo; Administration &rsaquo; Z39.50/SRU servers
+[% IF op == 'edit' %] &rsaquo; Modify [% PROCESS ServerType %] server [% server.servername %][% END %]
+[% IF op ==  'add' %] &rsaquo; New [% PROCESS ServerType %] server[% END %]
 </title>
 [% INCLUDE 'doc-head-close.inc' %]
 
 [% IF op == 'list' %]
-    <link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
-    [% INCLUDE 'datatables.inc' %]
-[% 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 %]
-        $( "#serverentry" ).validate({
-            rules: {
-                servername: { required: true },
-                host: { required: true },
-                port: {
-                    required: true,
-                    number: true
-                },
-                db: { required: true },
-                rank: { number: true },
-                timeout: { number: true }
-            }
-        });
-    });
-[% 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;
-    }
+    <link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
 [% END %]
-//]]>
-</script>
-
 </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> &rsaquo; <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> &rsaquo;
-<a href="/cgi-bin/koha/admin/z3950servers.pl">Z39.50 servers</a>
-[% IF op == 'edit' %]&rsaquo; Modify Z39.50 server [% server.name %][% END %]
-[% IF op ==  'add' %]&rsaquo; New Z39.50 server[% END %]
+<a href="/cgi-bin/koha/admin/z3950servers.pl">Z39.50/SRU servers</a>
+[% IF op == 'edit' %]&rsaquo; Modify [% PROCESS ServerType %] server [% server.servername %][% END %]
+[% IF op ==  'add' %]&rsaquo; New [% PROCESS ServerType %] server[% END %]
 </div>
 
 <div id="doc3" class="yui-t2">
 <div class="yui-b">
 
 [% IF msg_deleted %]
-    <div class="dialog alert">Z39.50 server deleted ([% msg_add %])</div>
+    <div class="dialog alert">Z39.50/SRU server deleted ([% msg_add %])</div>
 [% ELSIF msg_updated %]
-    <div class="dialog message">Z39.50 server updated ([% msg_add %])</div>
+    <div class="dialog message">Z39.50/SRU server updated ([% msg_add %])</div>
 [% ELSIF msg_added %]
-    <div class="dialog message">Z39.50 server added ([% msg_add %])</div>
+    <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 Z39.50 server</h1>
+            <h1>Modify [% PROCESS ServerType %] server</h1>
             <input type="hidden" name="id" value="[% server.id %]" />
         [% ELSE %]
-            <h1>New Z39.50 server</h1>
-        [% END %]                
+            <h1>New [% PROCESS ServerType %] server</h1>
+        [% END %]
         <fieldset class="rows">
         <ol>
-        <li><label for="name" class="required">Z39.50 server: </label><input type="text" name="servername" id="servername" size="65" maxlength="100" onblur="toUC(this)" value="[% server.name | html %]" required="required"/> <span class="required">Required</span></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 %]
             <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>
 
 
 [% 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"><i class="icon-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=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 servers administration</h3>
+    <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&amp;id=[% loo.id %]">[% loo.name %]</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>[% loo.recordtype %]</td>
-            <td><a href="[% loo.script_name %]?op=edit&amp;id=[% loo.id %]">Edit</a> <a href="[% loo.script_name %]?op=add&amp;id=[% loo.id %]">Copy</a> <a href="javascript:void(0);" onclick="ConfirmDelete('[% loo.name | replace("['\"]","") %]','[% loo.id %]');">Delete</a></td>
+            <tr>
+            <td><a href="/cgi-bin/koha/admin/z3950servers.pl?op=edit&amp;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&amp;id=[% loo.id %]"><i class="fa fa-pencil"></i> Edit</a></li>
+                        <li><a href="/cgi-bin/koha/admin/z3950servers.pl?op=add&amp;id=[% loo.id %]"><i class="fa fa-copy"></i> Copy</a></li>
+                        <li><a href="/cgi-bin/koha/admin/z3950servers.pl?op=delete_confirmed&amp;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' %]