5b35435d35
This patch adds the possibility to print patron cards from patron lists. To test: - Go to Home > Tools > Patron card creator - Prepare a patron card and create some cards using the batch functionality - Apply patch - Prepare a patron list e.g. from patron search - Go to Home > Tools > Patron card creator > Manage batches - Below the list of batches you have a dropdown to select a patron list - Select your list and hit "Export from patron list" - Select template and layout as you would do with batches - Hit "Export" - Download PDF Modified patch to work with Bug 14676 changes. Functionality unchanged. Signed-off-by: Nick Clemens <nick@quecheelibrary.org> Signed-off-by: Liz <wizzyrea@gmail.com> (Amended to make it apply on current master) Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
255 lines
12 KiB
Text
255 lines
12 KiB
Text
[% BLOCK translate_card_element %]
|
|
[%- SWITCH element -%]
|
|
[%- CASE 'layout' -%]layout
|
|
[%- CASE 'Layouts' -%]Layouts
|
|
[%- CASE 'template' -%]template
|
|
[%- CASE 'Templates' -%]Templates
|
|
[%- CASE 'profile' -%]profile
|
|
[%- CASE 'Profiles' -%]Profiles
|
|
[%- CASE 'batch' -%]batch
|
|
[%- CASE 'Batches' -%]Batches
|
|
[%- CASE 'Actions' -%]Actions
|
|
[%- END -%]
|
|
[% END %]
|
|
[% BLOCK translate_card_elements %]
|
|
[%- SWITCH element -%]
|
|
[%- CASE 'layout' -%]layouts
|
|
[%- CASE 'template' -%]templates
|
|
[%- CASE 'profile' -%]profiles
|
|
[%- CASE 'batch' -%]batches
|
|
[%- END -%]
|
|
[% END %]
|
|
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Tools › Patron card creator › [% PROCESS translate_card_element element=card_element_title %]</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
[% INCLUDE 'greybox.inc' %]
|
|
<script type="text/javascript">
|
|
//<![CDATA[
|
|
var MSG_CONFIRM_DELETE = _("Are you sure you want to delete this?");
|
|
function DeleteConfirm() {
|
|
var element_ids = selected_layouts("delete");
|
|
|
|
var msg;
|
|
if (element_ids.length > 1) {
|
|
msg = _("Are you sure you want to delete %s %s?").format(element_ids.length, "[% PROCESS translate_card_elements element=card_element %]");
|
|
} else if (element_ids.length == 1) {
|
|
msg = _("Are you sure you want to delete %s %s?").format("[% PROCESS translate_card_element element=card_element %]", element_ids[0]);
|
|
}
|
|
|
|
if (msg && confirm(msg)) {
|
|
var elements = "";
|
|
for (var i = 0; i < element_ids.length; i++) {
|
|
if (element_ids[i] > -1) {
|
|
elements += element_ids[i] + ","
|
|
}
|
|
else {
|
|
return; // no layout selected
|
|
}
|
|
}
|
|
|
|
window.location = "/cgi-bin/koha/patroncards/manage.pl?op=delete&card_element=[% card_element %]&element_id=" + elements;
|
|
}
|
|
else {
|
|
return; // abort delete
|
|
}
|
|
|
|
};
|
|
|
|
function Edit() {
|
|
var element_id = selected_layouts("edit");
|
|
if (element_id>-1) {
|
|
window.location = "/cgi-bin/koha/patroncards/edit-[% card_element %].pl?op=edit&element_id=" + element_id;
|
|
}
|
|
else {
|
|
return; // no layout selected
|
|
};
|
|
};
|
|
function Xport() {
|
|
batches= new Array;
|
|
if(document.layouts.action.length > 0) {
|
|
for (var i=0; i < document.layouts.action.length; i++) {
|
|
if (document.layouts.action[i].checked) {
|
|
batches.push("batch_id=" + document.layouts.action[i].value);
|
|
}
|
|
}
|
|
if (batches.length < 1) {
|
|
alert(_("Please select at least one batch to export."));
|
|
return; // no batch selected
|
|
}
|
|
getstr = batches.join("&");
|
|
}
|
|
else if (document.layouts.action.checked) {
|
|
getstr = "batch_id="+document.layouts.action.value;
|
|
}
|
|
else {
|
|
alert(_("Please select at least one batch to export."));
|
|
return; // no batch selected
|
|
}
|
|
return GB_showCenter(_("Export patron cards"), "/cgi-bin/koha/patroncards/print.pl?" + getstr, 400, 800);
|
|
};
|
|
|
|
function XportPatronlist() {
|
|
if ( patron_list_id.value.length < 1 ) {
|
|
alert(_("Please select a patron list."));
|
|
return; // no patron list selected
|
|
}
|
|
getstr = 'patronlist_id='+patron_list_id.value;
|
|
return GB_showCenter(_("Export patron cards from list"), "/cgi-bin/koha/patroncards/print.pl?" + getstr, 700, 800);
|
|
};
|
|
|
|
function selected_layout(op) {
|
|
if (document.layouts.action.length) {
|
|
var selected = new Array();
|
|
for (i=0;i<document.layouts.action.length;i++){
|
|
if (document.layouts.action[i].checked){
|
|
selected.push(i);
|
|
}
|
|
};
|
|
if (selected.length == 1 || (op == "delete" && selected.length >= 1)) {
|
|
if (op == "delete") {
|
|
var selectedDelete = new Array;
|
|
for (i = 0; i < selected.length; i++) {
|
|
selectedDelete.push(document.layouts.action[selected[i]].value);
|
|
}
|
|
return(selectedDelete);
|
|
} else {
|
|
// op == 'edit' returns only the object and not list
|
|
return(document.layouts.action[selected[0]].value);
|
|
}
|
|
}
|
|
else if (selected.length < 1) {
|
|
if (op == "edit") {
|
|
alert(_("Please select one %s to %s.").format("[% PROCESS translate_card_element element=card_element %]", op));
|
|
} else {
|
|
alert(_("Please select at least one %s to %s.").format("[% PROCESS translate_card_element element=card_element %]", op));
|
|
}
|
|
return (-1);
|
|
}
|
|
else {
|
|
alert(_("Please select only one %s to %s.").format("[% PROCESS translate_card_element element=card_element %]", op));
|
|
return (-1);
|
|
}
|
|
}
|
|
else {
|
|
if (document.layouts.action.checked){
|
|
return([document.layouts.action.value]);
|
|
}
|
|
};
|
|
alert(_("Please select a %s.").format("[% PROCESS translate_card_element element=card_element %]"));
|
|
return (-1);
|
|
};
|
|
|
|
$(document).ready(function() {
|
|
$("#edit").click(function(){
|
|
Edit();
|
|
return false;
|
|
});
|
|
$("#delete").click(function(){
|
|
DeleteConfirm();
|
|
return false;
|
|
});
|
|
$("#print").click(function(){
|
|
Xport();
|
|
return false;
|
|
});
|
|
$("#printlist").click(function(){
|
|
XportPatronlist();
|
|
return false;
|
|
});
|
|
});
|
|
//]]>
|
|
</script>
|
|
</head>
|
|
<body id="pcard_manage" class="tools pcard">
|
|
[% 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/patroncards/home.pl">Patron card creator</a> ›
|
|
[% PROCESS translate_card_element element=card_element_title %]
|
|
</div>
|
|
<div id="doc3" class="yui-t2">
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
[% INCLUDE 'patroncards-toolbar.inc' %]
|
|
[% INCLUDE 'patroncards-errors.inc' %]
|
|
<div class="yui-gc">
|
|
<div class="yui-u first" id="manage-patroncards-layouts">
|
|
<div class="hint">Current library: [% LoginBranchname %]</div>
|
|
[% IF ( table_loop ) %]
|
|
<form name="layouts" action="/cgi-bin/koha/manage.pl?card_element=[% card_element %]">
|
|
<h2>Currently available [% PROCESS translate_card_element element=card_element_title FILTER lower %]</h2>
|
|
<table>
|
|
[% FOREACH table_loo IN table_loop %]
|
|
[% IF ( table_loo.header_fields ) %]
|
|
<tr>
|
|
[% FOREACH header_field IN table_loo.header_fields %]
|
|
[% SWITCH header_field.field_label -%]
|
|
[% CASE "Select" -%]
|
|
[% IF ( print ) %]<th>Select</th>[% END %]
|
|
[% CASE %]
|
|
<th>[% header_field.field_label %]</th>
|
|
[% END -%]
|
|
[% END %]
|
|
</tr>
|
|
[% ELSE %]
|
|
<tr>
|
|
[% FOREACH text_field IN table_loo.text_fields %]
|
|
[% IF ( text_field.select_field ) %]
|
|
<td>
|
|
<a class="btn btn-mini" href="/cgi-bin/koha/patroncards/edit-[% card_element %].pl?op=edit&element_id=[% text_field.field_value %]"><icon class="fa fa-edit"></icon> Edit</a>
|
|
[% IF ( print ) %]<a class="btn btn-mini" href="#" onclick="GB_showCenter('Export single batch','/cgi-bin/koha/patroncards/print.pl?batch_id=[% text_field.field_value |url %]', 400, 800)"><icon class="fa fa-share-square-o"></icon> Export</a>[% END %]
|
|
<a class="btn btn-mini" onclick="return confirm(MSG_CONFIRM_DELETE);" href="/cgi-bin/koha/patroncards/manage.pl?op=delete&card_element=[% card_element %]&element_id=[% text_field.field_value %]"><icon class="fa fa-trash"></icon> Delete</a>
|
|
</td>
|
|
[% IF ( print ) %]<td align="center"><input type="checkbox" name="action" value="[% text_field.field_value %]" /></td>[% END %]
|
|
[% ELSIF ( text_field.field_value ) %]
|
|
<td>[% text_field.field_value %]</td>
|
|
[% ELSE %]
|
|
<td> </td>
|
|
[% END %]
|
|
[% END %]
|
|
</tr>
|
|
[% END %]
|
|
[% END %]
|
|
</table>
|
|
<fieldset class="action">
|
|
[% IF ( print ) %]<input class="btn btn-sm" type="button" id="print" value="Export selected batches" />[% END %]
|
|
</fieldset>
|
|
[% IF patron_lists %]
|
|
<fieldset class="rows">
|
|
<legend>Or use a patron list</legend>
|
|
<ol>
|
|
<li>
|
|
<label for="patron_list_id">Patron list: </label>
|
|
<select id="patron_list_id" name="patron_list_id">
|
|
<option value=""></option>
|
|
[% FOREACH pl IN patron_lists %]
|
|
<option value="[% pl.patron_list_id %]">[% pl.name %]</option>
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
</ol>
|
|
</fieldset>
|
|
<fieldset class="action">
|
|
<input type="button" id="printlist" value="Export from patron list" />
|
|
</fieldset>
|
|
[% END %]
|
|
</form>
|
|
|
|
[% ELSE %]
|
|
<div class="dialog message">
|
|
<h4>There are no [% PROCESS translate_card_element element=card_element_title %] currently available.</h4>
|
|
<p>Use the toolbar above to create a new [% PROCESS translate_card_element element=card_element %].</p></div>
|
|
[% END %]
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="yui-b">
|
|
[% INCLUDE 'tools-menu.inc' %]
|
|
</div>
|
|
</div>
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|