Main Koha release repository
https://koha-community.org
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
370 lines
22 KiB
370 lines
22 KiB
[% 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' %]
|
|
[% Asset.css("css/humanmsg.css") | $raw %]
|
|
</head>
|
|
|
|
<body id="tools_batch_record_modification" class="tools">
|
|
[% INCLUDE 'header.inc' %]
|
|
[% INCLUDE 'cat-search.inc' %]
|
|
|
|
<div id="breadcrumbs">
|
|
<a href="/cgi-bin/koha/mainpage.pl">Home</a> ›
|
|
<a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> ›
|
|
<a href="/cgi-bin/koha/tools/batch_record_modification.pl">Batch record modification</a>
|
|
</div>
|
|
|
|
<div class="main container-fluid">
|
|
<div class="row">
|
|
<div class="col-sm-10 col-sm-push-2">
|
|
<main>
|
|
|
|
<h1>Batch record modification</h1>
|
|
|
|
[% 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 == 'cannot_enqueue_job' %]
|
|
Cannot enqueue this job.
|
|
[% END %]
|
|
[% IF message.error %]
|
|
(The error was: [% message.error | html %]. See the Koha logfile for more information).
|
|
[% END %]
|
|
</div>
|
|
[% END %]
|
|
|
|
</div> <!-- /.dialog.message -->
|
|
[% END %]
|
|
|
|
[% IF view == 'form' %]
|
|
<form method="post" enctype="multipart/form-data" action="/cgi-bin/koha/tools/batch_record_modification.pl" id="record_ids_selection">
|
|
<fieldset class="rows">
|
|
<legend>Record type</legend>
|
|
<ol>
|
|
<li><label for="biblio_type">Biblios: </label><input type="radio" name="recordtype" value="biblio" id="biblio_type" checked="checked" /></li>
|
|
<li><label for="authority_type">Authorities: </label><input type="radio" name="recordtype" value="authority" id="authority_type" /></li>
|
|
</ol>
|
|
</fieldset>
|
|
|
|
<br><br>
|
|
|
|
<div id="batch_mod_form" class="toptabs" style="clear:both">
|
|
<ul>
|
|
<li><a href="#uploadfile_tab">Upload a file</a></li>
|
|
[% IF lists.count %]<li id="show_list_option"><a href="#shelves_tab">Select a list of records</a></li>[% END %]
|
|
<li><a href="#enterlist_tab">Enter a list of record numbers</a></li>
|
|
</ul>
|
|
|
|
<div id="uploadfile_tab">
|
|
<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>
|
|
|
|
[% IF lists.count %]
|
|
<div id="shelves_tab">
|
|
<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 | html %]">[% list.shelfname | html %]</option>
|
|
[% END %]
|
|
</option>
|
|
</select>
|
|
</li>
|
|
</ol>
|
|
</fieldset>
|
|
|
|
</div>
|
|
[% END %]
|
|
|
|
<div id="enterlist_tab">
|
|
<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> <!-- /#batch_mod_form -->
|
|
|
|
<fieldset class="rows">
|
|
<legend>Use MARC Modification Template:</legend>
|
|
<ol>
|
|
<li>
|
|
<label for="marc_modification_template_id" class="required">Modify record using the following template: </label>
|
|
<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 | html %]">[% mmt.name | html %]</option>
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
</ol>
|
|
</fieldset>
|
|
<fieldset class="action">
|
|
<input type="hidden" name="op" value="list" />
|
|
<input type="submit" value="Continue" class="button" />
|
|
<a class="cancel" href="/cgi-bin/koha/tools/tools-home.pl">Cancel</a>
|
|
</fieldset>
|
|
</form> <!-- /#record_ids_selection -->
|
|
[% ELSIF view == 'list' %]
|
|
[% IF records %]
|
|
<form action="/cgi-bin/koha/tools/batch_record_modification.pl" method="post">
|
|
<label for="marc_modification_template_id" class="required">Modify record using the following template: </label>
|
|
<select name="marc_modification_template_id" id="marc_modification_template_id" required="required">
|
|
<option value="">Select a template</option>
|
|
[% FOREACH mmt IN MarcModificationTemplatesLoop %]
|
|
[% IF mmt.selected %]
|
|
<option value="[% mmt.template_id | html %]" selected="selected">[% mmt.name | html %]</option>
|
|
[% ELSE %]
|
|
<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="#"><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>Biblionumber</th>
|
|
<th>Title</th>
|
|
<th> </th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
[% FOR biblio IN records %]
|
|
<tr>
|
|
<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> <!-- /#biblios -->
|
|
<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="#"><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>
|
|
<tr>
|
|
<th></th>
|
|
<th>Authid</th>
|
|
<th>Summary</th>
|
|
<th> </th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
[% FOR authority IN records %]
|
|
<tr>
|
|
<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 authid=authority.authid %]</td>
|
|
<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> <!-- /#authorities -->
|
|
<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 | html %]" />
|
|
<input type="submit" id="mainformsubmit" value="Modify selected records" class="button" />
|
|
</fieldset>
|
|
</form> <!-- /#process -->
|
|
[% ELSE %]
|
|
<div class="dialog message">
|
|
No records were modified. [% IF recordtype != 'biblio' %]<a href="/cgi-bin/koha/tools/batch_record_modification.pl" title="New batch record modification">New batch record modification</a>[% END %]
|
|
</div>
|
|
[% END %]
|
|
[% ELSIF view == 'errors' %]
|
|
[% FOR error IN errors %]
|
|
[% IF error == 'no_template_defined' %]
|
|
<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 %]
|
|
[% ELSIF view == 'enqueued' %]
|
|
<div class="dialog message">
|
|
<p>The job has been enqueued! It will be processed as soon as possible.</p>
|
|
<p><a href="/cgi-bin/koha/admin/background_jobs.pl?op=view&id=[% job_id | uri %]" title="View detail of the enqueued job">View detail of the enqueued job</a>
|
|
| <a href="/cgi-bin/koha/tools/batch_record_modification.pl" title="New batch record modification">New batch record modification</a></p>
|
|
</div>
|
|
[% ELSE %]
|
|
<div class="dialog alert">
|
|
No action defined for the template.
|
|
</div>
|
|
[% END %]
|
|
</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/humanmsg.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 input[type='checkbox']").each(function(){
|
|
$(this).prop("checked", true);
|
|
});
|
|
});
|
|
|
|
$("#clearall").click(function(e){
|
|
e.preventDefault();
|
|
$(".records input[type='checkbox']").each(function(){
|
|
$(this).prop("checked", false);
|
|
});
|
|
});
|
|
|
|
$("#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 true;
|
|
});
|
|
|
|
$("#record_ids_selection").on("submit", function(e) {
|
|
var tab = $(this).find('.ui-tabs-active:first a').attr('href');
|
|
if (tab == '#uploadfile_tab') {
|
|
$("#shelf_number").empty('');
|
|
$("#recordnumber_list").val('');
|
|
} else if (tab == '#shelves_tab') {
|
|
$("#uploadfile").val('')
|
|
$("#recordnumber_list").val('');
|
|
} else { // enterlist
|
|
$("#uploadfile").val('')
|
|
$("#shelf_number").empty('');
|
|
}
|
|
});
|
|
|
|
$("#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' %]
|
|
|