Koha/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/edit-batch.tt
Owen Leonard 672277197d Bug 16386 - Replace the use of "onclick" from patron card creator templates
This patch removes the use of "onclick" from several patron card creator
templates. Events are defined instead in JavaScript.

Also changed:

- Patron search pop-up window is now slightly larger because I found it
  never quite large enough to prevent horizontal scrolling.
- Replaced "Borrower" with "Patron" in a couple of places.
- "Add" link in patron search pop-up is now styled as a Bootstrap
  button.
- Removed Bootstrap styles from some submit buttons.
- Some Font Awesome icons were made using the invalid element
  <icon></icon> instead of <i></i>. These are corrected.
- Fixed some other HTML validation errors.

To test, apply the patch and go to Tools -> Patron card creator.

- Choose New -> Card batch.
  - Click "Add patrons" and perform a search for patrons in the pop-up
    window.
  - Click the "Add" button. The corresponding borrowernumber should be
    added to the textarea in the parent window, and a message should
    appear at the top of the pop-up window confirming that the patron
    has been added. (Note: This patch fixes a version of Bug 13041 which
    prevented the "add" button from working on patrons whose name
    include an apostrophe).
  - In the parent page, in the list of patrons you added to the batch,
    confirm that clicking the "Delete" link triggers a confirmation
    dialog. Test both confirming and canceling.
  - Confirm that clicking the "Export" button next to an individual
    patron triggers a modal window.
    - In the export window, confirm that the "Cancel" link works to
      close the modal.
    - Click the "Export" button again and then the "Export" button in
      the modal.
      - Test that the "Done" button works to close the modal.
- Choose Manage -> Card batches.
  - Test the "Delete" and "Export" buttons as described above.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
All works, no errors.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
2016-05-06 04:22:45 +00:00

280 lines
15 KiB
Text

[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Tools &rsaquo; Patron card creator &rsaquo; Batches &rsaquo; [% IF batch_id %]Edit ([% batch_id %])[% ELSE %]New[% END %]</title>
[% INCLUDE 'doc-head-close.inc' %]
[% INCLUDE 'greybox.inc' %]
<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
[% INCLUDE 'datatables.inc' %]
<script type="text/javascript">
//<![CDATA[
function DeleteConfirm() {
var msg = _("Are you sure you want to delete batch %s?").format("[% batch_id %]");
var answer = confirm(msg);
if (answer) {
window.location = "/cgi-bin/koha/patroncards/manage.pl?op=delete&amp;card_element=batch&amp;element_id=[% batch_id %]";
}
else {
return; // abort delete
}
};
function Remove() {
items = new Array;
item_num = new Array;
if(document.items.action.length > 0) {
for (var i=0; i < document.items.action.length; i++) {
if (document.items.action[i].checked) {
items.push("label_id=" + document.items.action[i].value);
item_num.push(i+1);
}
}
getstr = items.join("&");
item_msg = item_num.join(", ");
var msg = _("Are you sure you want to remove card number(s): %s from this batch?").format(item_msg);
} else if (document.items.action.checked) {
alert(_("Deletion of patron from a batch with only one patron will delete the batch.") + "\n\n" + _("If this is what you want, select the 'Delete batch' option from the toolbar"));
return; // no deletion for single item batch
}
else {
alert(_("Please select at least one patron to delete."));
return; // no item selected
}
var answer = confirm(msg);
if (answer) {
window.location = "/cgi-bin/koha/patroncards/edit-batch.pl?op=remove&amp;batch_id=[% batch_id %]&amp;" + getstr;
}
else {
return; // abort delete
}
};
function Add() {
var bor_nums = document.getElementById("bor_num_list");
if (bor_nums.value == '') {
window.open("/cgi-bin/koha/patroncards/add_user_search.pl",
'PatronPopup',
'width=840,height=500,location=yes,toolbar=no,'
+ 'scrollbars=yes,resize=yes');
}
else {
document.forms["add_by_bor_num"].submit();
}
};
function add_user(borrowernumber) {
$("#bor_num_list").val($("#bor_num_list").val()+borrowernumber+"\r\n");
}
function DeDuplicate() {
window.location = "/cgi-bin/koha/patroncards/edit-batch.pl?op=de_duplicate&amp;batch_id=[% batch_id %]";
};
function Xport(mode) {
if (mode == 'label') {
patroncards= new Array;
if(document.items.action.length > 0) {
for (var i=0; i < document.items.action.length; i++) {
if (document.items.action[i].checked) {
patroncards.push("label_id=" + document.items.action[i].value);
}
}
if (patroncards.length < 1) {
alert(_("Please select at least one card to export."));
return; // no batch selected
}
getstr = patroncards.join("&");
}
else if (document.items.action.checked) {
getstr = document.items.action.value;
}
else {
alert(_("Please select at least one card to export."));
return; // no batch selected
}
return GB_showCenter(_("Export patron cards"), "/cgi-bin/koha/patroncards/print.pl?batch_id=[% batch_id %]&" + getstr, 400, 800);
}
else if (mode == 'batch') {
return GB_showCenter(_("Export patron cards"), "/cgi-bin/koha/patroncards/print.pl?batch_id=[% batch_id %]", 400, 800);
}
else {
// some pass-thru error trapping just in case...
}
};
function selected_layout() {
if (document.items.action.length) {
for (i=0;i<document.items.action.length;i++){
if (document.items.action[i].checked==true){
return(document.items.action[i].value);
}
};
}
else {
if (document.items.action.checked){
return(document.items.action.value);
}
};
alert(_("Please select at least one item."));
return (-1);
};
$(document).ready(function() {
$("#batcht").dataTable($.extend(true, {}, dataTablesDefaults, {
"aoColumnDefs": [
{ "aTargets": [ -2, -1 ], "bSortable": false, "bSearchable": false }
],
"aaSorting": [[ 0, "asc" ]],
"sPaginationType": "four_button",
"autoWidth": false
}));
$("#additems").click(function(){
Add();
return false;
});
$("#removeitems").click(function(){
Remove();
return false;
});
$("#deletebatch").click(function(){
DeleteConfirm();
return false;
});
$("#deduplicate").click(function(){
DeDuplicate();
return false;
});
$("#exportitems").click(function(){
Xport('label');
return false;
});
$("#exportbatch").click(function(){
Xport('batch');
return false;
});
$(".delete").on("click", function(){
return confirmDelete( _("Are you sure you want to delete this patron from the card batch?") );
});
$(".export").on("click", function(e){
e.preventDefault();
var label_id = $(this).data("label-id");
var batch_id = $(this).data("batch-id");
GB_showCenter( _("Export single card"),'/cgi-bin/koha/patroncards/print.pl?batch_id='+batch_id+'&label_id='+label_id, 400, 800);
});
});
//]]>
</script>
</head>
<body id="pcard_edit-batch" class="tools pcard">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'cat-search.inc' %]
<div id="breadcrumbs">
<a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo;
<a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> &rsaquo;
<a href="/cgi-bin/koha/patroncards/home.pl">Patron card creator</a> &rsaquo;
<a href="/cgi-bin/koha/patroncards/manage.pl?card_element=batch">Batches</a> &rsaquo;
[% IF batch_id %]
Edit ([% batch_id %])
[% ELSE %]
New
[% END %]
</div>
<div id="doc3" class="yui-t2">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<div class="yui-g">
[% INCLUDE 'patroncards-toolbar.inc' %]
<div class="yui-u first">
</div>
</div>
[% IF ( duplicate_message ) %]
<div class="dialog message">
<strong>Duplicate patrons removed from batch number [% batch_id %]: [% duplicate_count %]</strong>
</div>
[% END %]
[% INCLUDE 'patroncards-errors.inc' %]
<div id="manage-patroncard-batches">
<div class="hint">Current library: [% LoginBranchname %]</div>
<form name="add_by_bor_num" action="/cgi-bin/koha/patroncards/edit-batch.pl" method="post">
<div>
<fieldset class="rows" style="border-bottom: 0px; border: 0px;">
<ol><li>
<input type="hidden" name="op" value="add" />
<input type="hidden" name="batch_id" value="[% batch_id %]" />
<label for="bor_num_list">Add by borrowernumber(s):
<br /> <span class="hint">One borrowernumber per line.</span>
</label>
<textarea rows="5" id="bor_num_list" name="bor_num_list" tabindex="1" class="focus"></textarea>
</li></ol>
</fieldset>
</div>
</form>
<div id="batch-manage" class="action">
<a class="btn btn-small" id="additems" href="#"><i class="fa fa-plus"></i> Add patron(s)</a>[% IF ( table_loop ) %]
<a class="btn btn-small" id="removeitems" href="#"><i class="fa fa-trash"></i> Remove selected patrons</a>
<a class="btn btn-small" id="deletebatch" href="#"><i class="fa fa-minus-square"></i> Delete batch</a>
<a class="btn btn-small" id="deduplicate" href="#"><i class="fa fa-minus"></i> Remove duplicates</a>
<a class="btn btn-small" id="exportitems" href="#"><i class="fa fa-share-square-o"></i> Export selected card(s)</a>
<a class="btn btn-small" id="exportbatch" href="#"><i class="fa fa-share-square-o"></i> Export card batch</a>[% END %]
</div>
[% IF ( table_loop ) %]
<form name="items" class="checkboxed">
<h2>Patrons in batch number [% batch_id %]</h2>
<table id="batcht">
[% FOREACH table_loo IN table_loop %]
[% IF ( table_loo.header_fields ) %]
<thead>
<tr>
[% FOREACH header_field IN table_loo.header_fields %]
[% SWITCH header_field.field_label -%]
[% CASE "Summary" -%]
<th>Borrower name</th>
[% CASE "Borrower Number" %]
<th>Borrower number</th>
[% CASE "Actions " %]
<th>Actions</th>
[% CASE "Select" -%]
<th>Select</th>
[% CASE %]
<th>[% header_field.field_label %]</th>
[% END -%]
[% END %]
</tr>
</thead>
<tbody>
[% ELSE %]
<tr>
[% FOREACH text_field IN table_loo.text_fields %]
[% IF ( text_field.select_field ) %]
<td>
<a class="btn btn-mini delete" href="/cgi-bin/koha/patroncards/edit-batch.pl?op=remove&amp;batch_id=[% batch_id %]&amp;label_id=[% text_field.field_value %]"><i class="fa fa-trash"></i> Delete</a>
<a class="btn btn-mini export" href="#" data-batch-id="[% batch_id %]" data-label-id="[% text_field.field_value %]"><i class="fa fa-share-square-o"></i> Export</a>
</td>
<td><input type="checkbox" name="action" value="[% text_field.field_value %]" /></td>
[% ELSE %]
<td>[% text_field.field_value %]</td>
[% END %]
[% END %]
</tr>
[% END %]
[% END %]
</tbody>
</table>
</form>
[% ELSE %]
<fieldset class="rows" style="border-bottom: 0px; border: 0px;">
<ol><li>
<div class="dialog message">
<h4>There are no patrons in this batch yet</h4>
<p>Add patrons by borrowernumber using the text area above or leave empty to add via patron search.</p>
</div>
</li></ol>
</fieldset>
[% END %]
</div>
</div>
</div>
<div class="yui-b">
[% INCLUDE 'tools-menu.inc' %]
</div>
</div>
[% INCLUDE 'intranet-bottom.inc' %]