+[% USE raw %]
+[% USE Asset %]
+[% SET footerjs = 1 %]
[% PROCESS 'authorities-search-results.inc' %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha › Tools › Batch record modification</title>
[% INCLUDE 'doc-head-close.inc' %]
-[% INCLUDE 'greybox.inc' %]
-<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
-[% INCLUDE 'datatables.inc' %]
-<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
-<script type="text/javascript" src="[% themelang %]/js/background-job-progressbar.js"></script>
-<script type="text/javascript">
-//<![CDATA[
-$(document).ready(function() {
- $("#selectall").click(function(e){
- e.preventDefault();
- $(".records").checkCheckboxes();
- });
- $("#clearall").click(function(e){
- e.preventDefault();
- $(".records").unCheckCheckboxes();
- });
- $("#selectall").click();
-
- $("table#biblios").dataTable($.extend(true, {}, dataTablesDefaults, {
- "aoColumnDefs": [
- { "aTargets": [ 0, 3 ], "bSortable": false, "bSearchable": false },
- { "aTargets": [ 1 ], "sType": "num-html" }
- ],
- "sDom": 't',
- "aaSorting": [],
- "bPaginate": false
- }));
-
- $("table#authorities").dataTable($.extend(true, {}, dataTablesDefaults, {
- "aoColumnDefs": [
- { "aTargets": [ 0, 3 ], "bSortable": false, "bSearchable": false },
- { "aTargets": [ 1 ], "sType": "num-html" }
- ],
- "sDom": 't',
- "aaSorting": [],
- "bPaginate": false
- }));
-
- $("#mainformsubmit").click(function(){
- if ( $("#marc_modification_template_id").val() > 0 ) {
- return submitBackgroundJob(document.getElementById("process"));
- }
- alert(_("Please select a modification template."));
- return false;
- });
-
- $("#marc_modification_template_id").change(function(){
- var url = "/cgi-bin/koha/svc/records/preview?"
- var mmtid = $(this).val();
- $("a.preview").each(function(){
- $(this).attr("href", url + "record_type=" + $(this).attr("data-record_type") + "&record_id=" + $(this).attr("data-record_id") + "&mmtid=" + mmtid);
- });
- });
-
- $("a.preview").click(function(){
- // Equivalent to rel="gb_page_center[600,500]"
- return GB_showCenter(_("Preview MARC"), this.href , 600, 500);
- });
-
-});
-//]]>
-</script>
+[% Asset.css("css/datatables.css") | $raw %]
</head>
+
<body id="tools_batch_record_modification" class="tools">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'cat-search.inc' %]
<a href="/cgi-bin/koha/tools/batch_record_modification.pl">Batch record modification</a>
</div>
-<div id="doc3" class="yui-t2">
-<div id="bd">
-<div id="yui-main">
-<div class="yui-b">
+<div class="main container-fluid">
+ <div class="row">
+ <div class="col-sm-10 col-sm-push-2">
+ <main>
+
<h1>Batch record modification</h1>
- [% FOREACH message IN messages %]
- [% IF message.type == 'success' %]
- <div class="dialog message">
- [% ELSIF message.type == 'warning' %]
- <div class="dialog alert">
- [% ELSIF message.type == 'error' %]
- <div class="dialog error" style="margin:auto;">
- [% END %]
- <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblio.biblionumber %]">[% biblio.title %]</a></td>
- [% IF message.code == 'no_action_defined_for_the_template' %]
- The selected template (id=[% message.mmtid%]) does not exist or no action is defined.
- [% ELSIF message.code == 'biblio_not_exists' %]
- The biblionumber [% message.biblionumber %] does not exist in the database.
- [% ELSIF message.code == 'authority_not_exists' %]
- The authority id [% message.authid %] does not exist in the database.
- [% ELSIF message.code == 'biblio_not_modified' %]
- The biblio <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% message.biblionumber %]">[% message.biblionumber %]</a> has not been modified. An error occurred on modifying it.
- [% ELSIF message.code == 'authority_not_modified' %]
- The authority <a href="/cgi-bin/koha/authorities/detail.pl?authid=[% message.authid %]">[% message.authid %]</a> has not been modified. An error occurred on modifying it.
- [% ELSIF message.code == 'biblio_modified' %]
- The biblio <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% message.biblionumber %]">[% message.biblionumber %]</a> has successfully been modified.
- [% ELSIF message.code == 'authority_modified' %]
- The authority <a href="/cgi-bin/koha/authorities/detail.pl?authid=[% message.authid %]">[% message.authid %]</a> has successfully been modified.
- [% END %]
- [% IF message.error %]
- (The error was: [% message.error%], see the Koha logfile for more information).
+
+ [% IF ( messages ) %]
+ <div class="dialog message">
+
+ [% FOREACH message IN messages %]
+ [% IF message.type == 'success' %]
+ <div><i class="fa fa-check success"></i>
+ [% ELSIF message.type == 'warning' %]
+ <div><i class="fa fa-warning warn"></i>
+ [% ELSIF message.type == 'error' %]
+ <div><i class="fa fa-exclamation error"></i>
+ [% END %]
+ [% IF message.code == 'no_action_defined_for_the_template' %]
+ The selected template (id=[% message.mmtid | html %]) does not exist or no action is defined.
+ [% ELSIF message.code == 'biblio_not_exists' %]
+ Bibliographic record [% message.biblionumber | html %] does not exist in the database.
+ [% ELSIF message.code == 'authority_not_exists' %]
+ Authority record [% message.authid | html %] does not exist in the database.
+ [% ELSIF message.code == 'biblio_not_modified' %]
+ Bibliographic record <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% message.biblionumber | uri %]">[% message.biblionumber | html %]</a> has not been modified. An error occurred on modifying it.
+ [% ELSIF message.code == 'authority_not_modified' %]
+ Authority record <a href="/cgi-bin/koha/authorities/detail.pl?authid=[% message.authid | uri %]">[% message.authid | html %]</a> has not been modified. An error occurred on modifying it.
+ [% ELSIF message.code == 'biblio_modified' %]
+ Bibliographic record <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% message.biblionumber | uri %]">[% message.biblionumber | html %]</a> has successfully been modified.
+ [% ELSIF message.code == 'authority_modified' %]
+ Bibliographic record <a href="/cgi-bin/koha/authorities/detail.pl?authid=[% message.authid | uri %]">[% message.authid | html %]</a> has successfully been modified.
+ [% END %]
+ [% IF message.error %]
+ (The error was: [% message.error | html %]. See the Koha logfile for more information).
+ [% END %]
+ </div>
+ [% END %]
+
+ </div>
[% END %]
- </div>
- [% END %]
+
[% IF view == 'form' %]
<form method="post" enctype="multipart/form-data" action="/cgi-bin/koha/tools/batch_record_modification.pl">
<fieldset class="rows">
<li><label for="authority_type">Authorities: </label><input type="radio" name="recordtype" value="authority" id="authority_type" /></li>
</ol>
</fieldset>
- <fieldset class="rows">
- <legend>Use a file</legend>
- <ol>
- <li><label for="uploadfile">File: </label> <input type="file" id="uploadfile" name="uploadfile" /></li>
- </ol>
- </fieldset>
- <fieldset class="rows">
- <legend>Or enter a list of record numbers</legend>
- <ol>
- <li>
- <label for="recordnumber_list">Record number list (one per line): </label>
- <textarea rows="10" cols="30" id="recordnumber_list" name="recordnumber_list"></textarea>
- </li>
- </ol>
- </fieldset>
+
+ <br><br>
+
+ <div id="batch_mod_form" class="toptabs">
+ <ul>
+ <li><a href="#uploadfile">Upload a file</a></li>
+ [% IF lists.count %]<li id="show_list_option"><a href="#shelves">Select a list of records</a></li>[% END %]
+ <li><a href="#enterlist">Enter a list of record numbers</a></li>
+ </ul>
+
+ <div id="uploadfile">
+ <fieldset class="rows">
+ <legend>Use a file</legend>
+ <ol>
+ <li><label for="uploadfile">File: </label> <input type="file" id="uploadfile" name="uploadfile" /></li>
+ </ol>
+ </fieldset>
+
+ </div>
+
+ <div id="shelves">
+ <fieldset class="rows">
+ <legend>Or select a list of records</legend>
+ <ol>
+ <li>
+ <label for="shelf_number">Use records from the following list: </label>
+ <select name="shelf_number" id="shelf_number">
+ <option value="">Select a list</option>
+ [% FOREACH list IN lists %]
+ <option value="[% list.shelfnumber %]">[% list.shelfname %]</option>
+ [% END %]
+ </option>
+ </select>
+ </li>
+ </ol>
+ </fieldset>
+
+ </div>
+
+ <div id="enterlist">
+ <fieldset class="rows">
+ <legend>Or enter a list of record numbers</legend>
+ <ol>
+ <li>
+ <label for="recordnumber_list">List of biblionumbers or authority ids (one per line): </label>
+ <textarea rows="10" cols="30" id="recordnumber_list" name="recordnumber_list"></textarea>
+ </li>
+ </ol>
+ </fieldset>
+
+ </div>
+
+ </div>
+
<fieldset class="rows">
<legend>Use MARC Modification Template:</legend>
<ol>
<select name="marc_modification_template_id" id="marc_modification_template_id" required="required">
<option value="">Select a template</option>
[% FOREACH mmt IN MarcModificationTemplatesLoop %]
- <option value="[% mmt.template_id %]">[% mmt.name %]</option>
+ <option value="[% mmt.template_id | html %]">[% mmt.name | html %]</option>
[% END %]
</select>
</li>
<option value="">Select a template</option>
[% FOREACH mmt IN MarcModificationTemplatesLoop %]
[% IF mmt.selected %]
- <option value="[% mmt.template_id %]" selected="selected">[% mmt.name %]</option>
+ <option value="[% mmt.template_id | html %]" selected="selected">[% mmt.name | html %]</option>
[% ELSE %]
- <option value="[% mmt.template_id %]">[% mmt.name %]</option>
+ <option value="[% mmt.template_id | html %]">[% mmt.name | html %]</option>
[% END %]
[% END %]
</select>
+ <div id="marcPreview" class="modal" tabindex="-1" role="dialog" aria-labelledby="marcPreviewLabel" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
+ <h3 id="marcPreviewLabel">MARC preview</h3>
+ </div>
+ <div class="modal-body">
+ <div id="loading"> <img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" alt="" /> Loading </div>
+ </div>
+ <div class="modal-footer">
+ <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
+ </div>
+ </div>
+ </div>
+ </div>
[% IF recordtype == 'biblio' %]
<div id="toolbar">
- <a id="selectall" href="#">Select All</a>
- | <a id="clearall" href="#">Clear All</a>
+ <a id="selectall" href="#"><i class="fa fa-check"></i> Select all</a>
+ | <a id="clearall" href="#"><i class="fa fa-remove"></i> Clear all</a>
</div>
<table id="biblios" class="records">
<thead>
<tr>
- <th></th>
+ <th> </th>
<th>Biblionumber</th>
<th>Title</th>
- <th>Preview</th>
+ <th> </th>
</tr>
</thead>
<tbody>
[% FOR biblio IN records %]
<tr>
- <td><input type="checkbox" name="record_id" value="[% biblio.biblionumber %]" data-items="[% biblio.itemnumbers.size %]" data-issues="[% biblio.issues_count %]" data-reserves="[% biblio.reserves.size %]" /></td>
- <td>[% biblio.biblionumber %]</td>
- <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblio.biblionumber %]">[% biblio.title %]</a></td>
- <td><a href="/cgi-bin/koha/svc/records/preview?record_type=biblio&record_id=[% biblio.biblionumber %]&mmtid=[% mmtid %]" class="preview" data-record_type="biblio" data-record_id="[% biblio.biblionumber %]" data-mmtid="[% mmtid %]" title="Preview MARC" >Preview MARC</a>
+ <td><input type="checkbox" name="record_id" value="[% biblio.biblionumber | html %]" /></td>
+ <td>[% biblio.biblionumber | html %]</td>
+ <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblio.biblionumber | uri %]">[% biblio.title | html %]</a></td>
+ <td class="actions">
+ <a href="/cgi-bin/koha/svc/records/preview?record_type=biblio&record_id=[% biblio.biblionumber | uri %]&mmtid=[% mmtid | uri %]" class="previewMARC btn btn-default btn-xs" data-record_type="biblio" data-record_id="[% biblio.biblionumber | html %]" data-mmtid="[% mmtid | html %]" title="Preview MARC"><i class="fa fa-eye"></i> Show MARC</a>
+ </td>
</tr>
[% END %]
</tbody>
</table>
- <div class="note">Reminder: this action will modify all selected biblios!</div>
+ <div class="note"><i class="fa fa-exclamation"></i> Reminder: this action will modify all selected biblios!</div>
[% ELSE %]
<div id="toolbar">
- <a id="selectall" href="#">Select All</a>
- | <a id="clearall" href="#">Clear All</a>
+ <a id="selectall" href="#"><i class="fa fa-check"></i> Select all</a>
+ | <a id="clearall" href="#"><i class="fa fa-remove"></i> Clear all</a>
</div>
<table id="authorities" class="records">
<thead>
<th></th>
<th>Authid</th>
<th>Summary</th>
- <th>Preview</th>
+ <th> </th>
</tr>
</thead>
<tbody>
[% FOR authority IN records %]
<tr>
- <td><input type="checkbox" name="record_id" value="[% authority.authid %]" data-usage="[% authority.count_usage %]" /></td>
- <td><a href="/cgi-bin/koha/authorities/detail.pl?authid=[% authority.authid %]">[% authority.authid %]</a></td>
+ <td><input type="checkbox" name="record_id" value="[% authority.authid | html %]" data-usage="[% authority.count_usage | html %]" /></td>
+ <td><a href="/cgi-bin/koha/authorities/detail.pl?authid=[% authority.authid | uri %]">[% authority.authid | html %]</a></td>
<td>[% PROCESS authresult summary=authority.summary %]</td>
- <td><a href="/cgi-bin/koha/svc/records/preview?record_type=authority&record_id=[% authority.authid %]&mmtid=[% mmtid %]" class="preview" data-record_type="authority" data-record_id="[% authority.authid %]" data-mmtid="[% mmtid %]" title="Preview MARC" rel="gb_page_center[600,500]">Preview MARC</a>
+ <td class="actions"><a href="/cgi-bin/koha/svc/records/preview?record_type=authority&record_id=[% authority.authid | uri %]&mmtid=[% mmtid | uri %]" data-record_type="authority" data-record_id="[% authority.authid | html %]" data-mmtid="[% mmtid | html %]" class="previewMARC btn btn-default btn-xs"><i class='fa fa-eye'></i> Show MARC</a>
</tr>
[% END %]
</tbody>
</table>
- <div class="note">Reminder: this action will modify all selected authorities!</div>
+ <div class="note"><i class="fa fa-exclamation"></i> Reminder: this action will modify all selected authorities!</div>
[% END %]
<fieldset class="action">
<input type="hidden" name="op" value="modify" />
- <input type="hidden" name="recordtype" value="[% recordtype %]" />
+ <input type="hidden" name="recordtype" value="[% recordtype | html %]" />
<input type="button" id="mainformsubmit" value="Modify selected records" class="button" />
<input type="hidden" name="runinbackground" id="runinbackground" value="" />
<input type="hidden" name="completedJobID" id="completedJobID" value="" />
<a class="cancel" href="/cgi-bin/koha/tools/batch_record_modification.pl">Cancel</a>
</fieldset>
<div id="jobpanel">
- <div id="jobstatus">Job progress: <div id="jobprogress"></div> <span id="jobprogresspercent">0</span>%</div>
+ <div id="jobstatus" class="progress_panel">Job progress: <div id="jobprogress"></div> <span id="jobprogresspercent">0</span>%</div>
<div id="jobfailed"></div>
</div>
</form>
[% ELSE %]
- There is no record ids defined.
+ <div class="dialog message">
+ No records were modified. <a href="/cgi-bin/koha/tools/batch_record_modification.pl" title="New batch record modification">New batch record modification</a>
+ </div>
[% END %]
[% ELSIF view == 'report' %]
[% IF report.total_records == report.total_success %]
- All records have successfully been modified!
+ <div class="dialog message">
+ All records have successfully been modified! <a href="/cgi-bin/koha/tools/batch_record_modification.pl" title="New batch record modification">New batch record modification</a>
+ </div>
[% ELSE %]
- [% report.total_success %] / [% report.total_records %] records have successfully been modified.
- Some errors occurred.
+ <div class="dialog message">
+ [% report.total_success | html %] / [% report.total_records | html %] records have successfully been modified. Some errors occurred. <a href="/cgi-bin/koha/tools/batch_record_modification.pl" title="New batch record modification">New batch record modification</a>
+ </div>
[% END %]
- <p><a href="/cgi-bin/koha/tools/batch_record_modification.pl" title="New batch record modification">New batch record modification</a></p>
[% ELSIF view == 'errors' %]
[% FOR error IN errors %]
[% IF error == 'no_template_defined' %]
- No MARC modification template is defined. You have <a href="/cgi-bin/koha/tools/marc_modification_templates.pl">to create</a> at least one template for using this tool.
+ <div class="dialog alert">
+ No MARC modification template is defined. You have <a href="/cgi-bin/koha/tools/marc_modification_templates.pl">to create</a> at least one template for using this tool.
+ </div>
[% END %]
[% END %]
[% ELSE %]
- No action defined for the template.
+ <div class="dialog alert">
+ No action defined for the template.
+ </div>
[% END %]
-</div>
-</div>
-<div class="yui-b">
- [% INCLUDE 'tools-menu.inc' %]
-</div>
-</div>
+ </main>
+ </div> <!-- /.col-sm-10.col-sm-push-2 -->
+
+ <div class="col-sm-2 col-sm-pull-10">
+ <aside>
+ [% INCLUDE 'tools-menu.inc' %]
+ </aside>
+ </div> <!-- /.col-sm-2.col-sm-pull-10 -->
+ </div> <!-- /.row -->
+
+[% MACRO jsinclude BLOCK %]
+ [% Asset.js("js/tools-menu.js") | $raw %]
+ [% INCLUDE 'datatables.inc' %]
+ [% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") | $raw %]
+ [% Asset.js("js/background-job-progressbar.js") | $raw %]
+ <script>
+ $(document).ready(function() {
+
+ $("#batch_mod_form").tabs();
+
+ $("input[type='radio']").click(function(){
+ if ($(this).attr('id') == 'authority_type') {
+ $("#show_list_option").hide();
+ } else if ($(this).attr('id') == 'biblio_type') {
+ $("#show_list_option").show();
+ }
+ });
+ $("#selectall").click(function(e){
+ e.preventDefault();
+ $(".records").checkCheckboxes();
+ });
+ $("#clearall").click(function(e){
+ e.preventDefault();
+ $(".records").unCheckCheckboxes();
+ });
+ $("#selectall").click();
+
+ $("table#biblios").dataTable($.extend(true, {}, dataTablesDefaults, {
+ "aoColumnDefs": [
+ { "aTargets": [ 0, 3 ], "bSortable": false, "bSearchable": false },
+ { "aTargets": [ 1 ], "sType": "num-html" }
+ ],
+ "sDom": 't',
+ "aaSorting": [],
+ "bPaginate": false
+ }));
+
+ $("table#authorities").dataTable($.extend(true, {}, dataTablesDefaults, {
+ "aoColumnDefs": [
+ { "aTargets": [ 0, 3 ], "bSortable": false, "bSearchable": false },
+ { "aTargets": [ 1 ], "sType": "num-html" }
+ ],
+ "sDom": 't',
+ "aaSorting": [],
+ "bPaginate": false
+ }));
+
+ $("#mainformsubmit").click(function(){
+ if ($("input[type=checkbox][name='record_id']:checked").length == 0 ) {
+ alert(_("Please select at least one record to process"));
+ return false;
+ }
+ if ( $("#marc_modification_template_id").val() <= 0 ) {
+ alert(_("Please select a modification template."));
+ return false;
+ }
+ return submitBackgroundJob(document.getElementById("process"));
+ });
+
+ $("#marc_modification_template_id").change(function(){
+ var url = "/cgi-bin/koha/svc/records/preview?"
+ var mmtid = $(this).val();
+ $("a.previewMARC").each(function(){
+ $(this).attr("href", url + "record_type=" + $(this).attr("data-record_type") + "&record_id=" + $(this).attr("data-record_id") + "&mmtid=" + mmtid);
+ });
+ });
+
+ $("body").on("click",".previewMARC", function(e){
+ e.preventDefault();
+ var ltitle = $(this).text();
+ var page = $(this).attr("href");
+ $("#marcPreviewLabel").text(ltitle);
+ $("#marcPreview .modal-body").load(page + " div");
+ $('#marcPreview').modal({show:true});
+ });
+ $("#marcPreview").on("hidden.bs.modal", function(){
+ $("#marcPreviewLabel").html("");
+ $("#marcPreview .modal-body").html("<div id=\"loading\"><img src=\"[% interface | html %]/[% theme | html %]/img/spinner-small.gif\" alt=\"\" /> "+_("Loading")+"</div>");
+ });
+
+ });
+ </script>
+[% END %]
+
[% INCLUDE 'intranet-bottom.inc' %]