Koha/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/manage.tt
Owen Leonard 454619be40 Bug 21438: Update two-column templates with Bootstrap grid: Patron card creator
This patch modifies the patron card creator templates to use the
Bootstrap grid instead of YUI.

To test, apply the patch and view the following pages, confirming that
they look correct at various browser widths:

 - Tools -> patron card creator
   - Manage -> Card batches
     - Edit card batch
   - Manage -> Layouts
     - Edit layout
   - Manage -> Images
   - Manage -> Card templates
     - Edit template
   - Manage -> Printer profiles
     - Edit profile

Signed-off-by: Claire Gravely <claire.gravely@bsz-bw.de>

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
2019-01-25 20:35:51 +00:00

281 lines
13 KiB
Text

[% USE CGI %]
[% SET footerjs = 1 %]
[% 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 &rsaquo; Tools &rsaquo; Patron card creator &rsaquo; [% PROCESS translate_card_element element=card_element_title %]</title>
[% INCLUDE 'doc-head-close.inc' %]
</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> &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;
[% PROCESS translate_card_element element=card_element_title %]
</div>
<div class="main container-fluid">
<div class="row">
<div class="col-sm-10 col-sm-push-2">
<main>
[% INCLUDE 'patroncards-toolbar.inc' %]
[% INCLUDE 'patroncards-errors.inc' %]
<div id="manage-patroncards-layouts">
<div class="hint">Current library: [% LoginBranchname | html %]</div>
[% IF ( table_loop ) %]
<form name="layouts" action="/cgi-bin/koha/manage.pl?card_element=[% card_element | html %]">
<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 'Layout ID' -%]<th>Layout ID</th>
[%- CASE 'Layout' -%]<th>Layout</th>
[%- CASE 'Action' -%]<th>Action</th>
[%- CASE 'Actions' -%]<th>Actions</th>
[%- CASE 'Select' -%][% IF ( print ) %]<th>Select</th>[% END %]
[%- CASE 'Template ID' -%]<th>Template ID</th>
[%- CASE 'Template Name' -%]<th>Template name</th>
[%- CASE 'Description' -%]<th>Description</th>
[%- CASE 'Profile ID' -%]<th>Profile ID</th>
[%- CASE 'Printer Name' -%]<th>Printer name</th>
[%- CASE 'Paper Bin' -%]<th>Paper bin</th>
[%- CASE 'Batch ID' -%]<th>Batch ID</th>
[%- CASE 'Patron Count' -%]<th>Patron count</th>
[%- CASE -%]<th>[% header_field.field_label | html %]</th>
[% END -%]
[% END %]
</tr>
[% ELSE %]
<tr>
[% FOREACH text_field IN table_loo.text_fields %]
[% IF ( text_field.select_field ) %]
<td>
<a class="btn btn-default btn-xs" href="/cgi-bin/koha/patroncards/edit-[% card_element | html %].pl?op=edit&element_id=[% text_field.field_value | html %]"><i class="fa fa-edit"></i> Edit</a>
[% IF ( print ) %]<a class="btn btn-default btn-xs export" data-batch-id="[% text_field.field_value |url %]" href="/cgi-bin/koha/patroncards/print.pl?batch_id=[% text_field.field_value |url %]"><i class="fa fa-share-square-o"></i> Export</a>[% END %]
<a class="btn btn-default btn-xs delete" href="/cgi-bin/koha/patroncards/manage.pl?op=delete&card_element=[% card_element | html %]&element_id=[% text_field.field_value | html %]"><i class="fa fa-trash"></i> Delete</a>
</td>
[% IF ( print ) %]<td><input type="checkbox" name="action" value="[% text_field.field_value | html %]" /></td>[% END %]
[% ELSIF ( text_field.field_value ) %]
<td>[% text_field.field_value | html %]</td>
[% ELSE %]
<td>&nbsp;</td>
[% END %]
[% END %]
</tr>
[% END %]
[% END %]
</table>
<fieldset class="action">
[% IF ( print ) %]<input 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 | html %]">[% pl.name | html %]</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>
</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 %]
[% INCLUDE 'greybox.inc' %]
<script>
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 | html %]&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 | html %].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;
});
$(".delete").on("click", function(){
return confirmDelete( _("Are you sure you want to delete this?") );
});
$(".export").on("click", function(e){
e.preventDefault();
var batch_id = $(this).data("batch-id");
GB_showCenter( _("Export single batch"),'/cgi-bin/koha/patroncards/print.pl?batch_id='+batch_id, 400, 800);
});
});
</script>
[% END %]
[% INCLUDE 'intranet-bottom.inc' %]