2 [% PROCESS 'i18n.inc' %]
4 [% INCLUDE 'doc-head-open.inc' %]
5 <title>[% FILTER collapse %]
7 [% t("Edit patron card layout") | html %] ([% layout_id | html %])
9 [% t("New patron card layout") | html %]
11 [% t("Layout") | html %] ›
12 [% t("Patron card creator") | html %] ›
13 [% t("Tools") | html %] ›
14 [% t("Koha") | html %]
16 [% INCLUDE 'doc-head-close.inc' %]
19 <body id="pcard_edit-layout" class="tools pcard">
20 [% WRAPPER 'header.inc' %]
21 [% INCLUDE 'cat-search.inc' %]
24 [% WRAPPER 'sub-header.inc' %]
25 [% WRAPPER breadcrumbs %]
26 [% WRAPPER breadcrumb_item %]
27 <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a>
29 [% WRAPPER breadcrumb_item %]
30 <a href="/cgi-bin/koha/patroncards/home.pl">Patron card creator</a>
32 [% WRAPPER breadcrumb_item %]
33 <a href="/cgi-bin/koha/patroncards/manage.pl?card_element=layout">Layouts</a>
35 [% WRAPPER breadcrumb_item bc_active= 1 %]
36 [% IF ( layout_id ) %]
37 <span>Edit ([% layout_id | html %])</span>
39 <span>New patron card layout</span>
42 [% END #/ WRAPPER breadcrumbs %]
43 [% END #/ WRAPPER sub-header.inc %]
45 <div class="main container-fluid">
47 <div class="col-sm-10 col-sm-push-2">
50 [% INCLUDE 'patroncards-toolbar.inc' %]
53 [% IF ( layout_id ) %]
54 <span>Edit patron card layout [% layout_id | html %]</span>
56 <span>New patron card layout</span>
60 <!-- NOTE: The order of the elements on this form is crictical to correct processing. You've been warned... -->
61 <form name="input" action="/cgi-bin/koha/patroncards/edit-layout.pl" method="get">
63 <div class="col-sm-6">
64 <fieldset class="rows">
65 <legend>Patron card text layout</legend>
69 <legend>General settings</legend>
72 <label for="layout_name">Layout name: </label>
73 <input type="text" name="layout_name" id="layout_name" size="20" value="[% layout_name | html %]" />
76 <label for="units">Units: </label>
77 <select id="units" name="units">
78 [% FOREACH unit IN units %]
79 [% IF ( unit.selected ) %]
80 <option value="[% unit.type | html %]" selected="selected">
82 <option value="[% unit.type | html %]">
84 [% unit.desc | html %]
90 <label for="page_side">Page side: </label>
91 [% IF ( page_side ) %]
92 <input type="radio" name="page_side" id="page_side" value="F" />Front
93 <input type="radio" name="page_side" id="page_side" value="B" checked="checked" />Back
95 <input type="radio" name="page_side" id="page_side" value="F" checked="checked" />Front
96 <input type="radio" name="page_side" id="page_side" value="B" />Back
100 <label for="guide_box">Guide box:</label>
101 [% IF ( guide_box ) %]
102 <input type="radio" name="guide_box" id="guide_box" value="1" checked="checked" />On
103 <input type="radio" name="guide_box" id="guide_box" value="0" />Off
105 <input type="radio" name="guide_box" id="guide_box" value="1" />On
106 <input type="radio" name="guide_box" id="guide_box" value="0" checked="checked" />Off
110 <label for="guide_grid">Guide grid:</label>
111 [% IF ( guide_grid ) %]
112 <input type="radio" name="guide_grid" id="guide_grid" value="1" checked="checked" />On
113 <input type="radio" name="guide_grid" id="guide_grid" value="0" />Off
115 <input type="radio" name="guide_grid" id="guide_grid" value="1" />On
116 <input type="radio" name="guide_grid" id="guide_grid" value="0" checked="checked" />Off
124 <legend>Text fields</legend>
129 <legend><input type="checkbox" name="field_1_enable" id="field_1_enable" value="1" checked="checked" /> Field 1</legend>
131 <legend><input type="checkbox" name="field_1_enable" id="field_1_enable" value="1" /> Field 1</legend>
133 <div id="field_1_select" style="display: none;">
136 <label for="field_1_text">Text: </label>
137 <input type="text" name="field_1_text" id="field_1_text" size="60" value="[% field_1_text | html %]" />
140 <label for="field_1_font">Font: </label>
141 <select name="field_1_font" id="field_1_font">
142 [% FOREACH field_1_fon IN field_1_font %]
143 [% IF ( field_1_fon.selected ) %]
144 <option value="[% field_1_fon.type | html %]" selected="selected">[% field_1_fon.name | html %]</option>
146 <option value="[% field_1_fon.type | html %]">[% field_1_fon.name | html %]</option>
152 <label for="field_1_font_size">Font size: </label>
153 <input type="text" name="field_1_font_size" id="field_1_font_size" size="2" value="[% field_1_font_size | html %]" />
154 <span class="font_unit"> pt</span>
157 <label for="field_1_text_alignment">Text alignment: </label>
158 <select name="field_1_text_alignment" id="field_1_text_alignment">
159 [% FOREACH field_1_text_alignmen IN field_1_text_alignment %]
160 [% IF ( field_1_text_alignmen.selected ) %]
161 <option value="[% field_1_text_alignmen.type | html %]" selected="selected">[% field_1_text_alignmen.name | html %]</option>
163 <option value="[% field_1_text_alignmen.type | html %]">[% field_1_text_alignmen.name | html %]</option>
169 <label for="field_1_llx">Lower left X coordinate: </label>
170 <input type="text" name="field_1_llx" id="field_1_llx" size="2" value="[% field_1_llx | html %]" />
173 <label for="field_1_lly">Lower left Y coordinate: </label>
174 <input type="text" name="field_1_lly" id="field_1_lly" size="2" value="[% field_1_lly | html %]" />
183 <legend><input type="checkbox" name="field_2_enable" id="field_2_enable" value="1" checked="checked"/> Field 2</legend>
185 <legend><input type="checkbox" name="field_2_enable" id="field_2_enable" value="1" /> Field 2</legend>
187 <div id="field_2_select" style="display: none;">
190 <label for="field_2_text">Text: </label>
191 <input type="text" name="field_2_text" id="field_2_text" size="60" value="[% field_2_text | html %]" />
194 <label for="field_2_font">Font: </label>
195 <select name="field_2_font" id="field_2_font">
196 [% FOREACH field_2_fon IN field_2_font %]
197 [% IF ( field_2_fon.selected ) %]
198 <option value="[% field_2_fon.type | html %]" selected="selected">[% field_2_fon.name | html %]</option>
200 <option value="[% field_2_fon.type | html %]">[% field_2_fon.name | html %]</option>
206 <label for="field_2_font_size">Font size: </label>
207 <input type="text" name="field_2_font_size" id="field_2_font_size" size="2" value="[% field_2_font_size | html %]" />
208 <span class="font_unit"> pt</span>
211 <label for="field_2_text_alignment">Text alignment: </label>
212 <select name="field_2_text_alignment" id="field_2_text_alignment">
213 [% FOREACH field_2_text_alignmen IN field_2_text_alignment %]
214 [% IF ( field_2_text_alignmen.selected ) %]
215 <option value="[% field_2_text_alignmen.type | html %]" selected="selected">[% field_2_text_alignmen.name | html %]</option>
217 <option value="[% field_2_text_alignmen.type | html %]">[% field_2_text_alignmen.name | html %]</option>
223 <label for="field_2_llx">Lower left X coordinate: </label>
224 <input type="text" name="field_2_llx" id="field_2_llx" size="2" value="[% field_2_llx | html %]" />
227 <label for="field_2_lly">Lower left Y coordinate: </label>
228 <input type="text" name="field_2_lly" id="field_2_lly" size="2" value="[% field_2_lly | html %]" />
237 <legend><input type="checkbox" name="field_3_enable" id="field_3_enable" value="1" checked="checked"/> Field 3</legend>
239 <legend><input type="checkbox" name="field_3_enable" id="field_3_enable" value="0" /> Field 3</legend>
241 <div id="field_3_select" style="display: none;">
244 <label for="field_3_text">Text: </label>
245 <input type="text" name="field_3_text" id="field_3_text" size="60" value="[% field_3_text | html %]" />
248 <label for="field_3_font">Font: </label>
249 <select name="field_3_font" id="field_3_font">
250 [% FOREACH field_3_fon IN field_3_font %]
251 [% IF ( field_3_fon.selected ) %]
252 <option value="[% field_3_fon.type | html %]" selected="selected">[% field_3_fon.name | html %]</option>
254 <option value="[% field_3_fon.type | html %]">[% field_3_fon.name | html %]</option>
260 <label for="field_3_font_size">Font size: </label>
261 <input type="text" name="field_3_font_size" id="field_3_font_size" size="2" value="[% field_3_font_size | html %]" />
262 <span class="font_unit"> pt</span>
265 <label for="field_3_text_alignment">Text alignment: </label>
266 <select name="field_3_text_alignment" id="field_3_text_alignment">
267 [% FOREACH field_3_text_alignmen IN field_3_text_alignment %]
268 [% IF ( field_3_text_alignmen.selected ) %]
269 <option value="[% field_3_text_alignmen.type | html %]" selected="selected">[% field_3_text_alignmen.name | html %]</option>
271 <option value="[% field_3_text_alignmen.type | html %]">[% field_3_text_alignmen.name | html %]</option>
277 <label for="field_3_llx">Lower left X coordinate: </label>
278 <input type="text" name="field_3_llx" id="field_3_llx" size="2" value="[% field_3_llx | html %]" />
281 <label for="field_3_lly">Lower left Y coordinate: </label>
282 <input type="text" name="field_3_lly" id="field_3_lly" size="2" value="[% field_3_lly | html %]" />
294 <div class="col-sm-6">
295 <fieldset class="rows">
296 <legend>Patron card graphic layout</legend>
301 <label for="guidebox">Draw guide boxes: </label>
302 [% IF ( guidebox ) %]
303 <input type="checkbox" name="guidebox" id="guidebox" value="1" checked="checked" />
305 <input type="checkbox" name="guidebox" id="guidebox" value="1" />
312 <legend>Barcode</legend>
315 <label for="barcode_print">Print card number as barcode: </label>
316 [% IF ( barcode_print ) %]
317 <input type="checkbox" name="barcode_print" id="barcode_print" value="1" checked="checked" />
319 <input type="checkbox" name="barcode_print" id="barcode_print" value="1" />
323 <div id="barcode_param" style="display: none;">
326 <label for="barcode_llx">Lower left X coordinate: </label>
327 <input type="text" name="barcode_llx" id="barcode_llx" size="2" value="[% barcode_llx | html %]" />
330 <label for="barcode_lly">Lower left Y coordinate: </label>
331 <input type="text" name="barcode_lly" id="barcode_lly" size="2" value="[% barcode_lly | html %]" />
334 <label for="barcode_height_scale">Scale height (relative to card): </label>
335 <input type="text" name="barcode_height_scale" id="barcode_height_scale" size="2" value="[% barcode_height_scale | html %]" />
338 <label for="barcode_width_scale">Scale width (relative to card): </label>
339 <input type="text" name="barcode_width_scale" id="barcode_width_scale" size="2" value="[% barcode_width_scale | html %]" />
342 <label for="barcode_type">Barcode type: </label>
343 <select name="barcode_type" id="barcode_type">
344 [% FOREACH barcode_typ IN barcode_type %]
345 [% IF ( barcode_typ.selected ) %]
346 <option value="[% barcode_typ.type | html %]" selected="selected">[% barcode_typ.name | html %]</option>
348 <option value="[% barcode_typ.type | html %]">[% barcode_typ.name | html %]</option>
354 <label for="barcode_text_print">Print card number as text under barcode: </label>
355 [% IF ( barcode_text_print ) %]
356 <input type="checkbox" name="barcode_text_print" id="barcode_text_print" value="1" checked="checked" />
358 <input type="checkbox" name="barcode_text_print" id="barcode_text_print" value="1" />
367 <legend>Images</legend>
371 <legend>Image 1</legend>
374 <label for="image_1_image_source">Image source: </label>
375 <select name="image_1_image_source" id="image_1_image_source">
376 [% FOREACH image_1_image_sourc IN image_1_image_source %]
377 [% IF ( image_1_image_sourc.selected ) %]
378 <option value="[% image_1_image_sourc.type | html %]" selected="selected">[% image_1_image_sourc.name | html %]</option>
380 <option value="[% image_1_image_sourc.type | html %]">[% image_1_image_sourc.name | html %]</option>
386 <div id="image_1_image_name" style="display: none;">
389 <label for="image_1_image_name">Image: </label>
390 <select name="image_1_image_name" id="image_1_image_name">
391 [% FOREACH image_1_image_nam IN image_1_image_name %]
392 [% IF ( image_1_image_nam.selected ) %]
393 <option value="[% image_1_image_nam.type | html %]" selected="selected">[% image_1_image_nam.name | html %]</option>
395 <option value="[% image_1_image_nam.type | html %]">[% image_1_image_nam.name | html %]</option>
402 <div id="image_1_image_metrics" style="display: none;">
405 <label for="image_1_Dx">Display height: </label>
406 <input type="text" name="image_1_Dx" id="image_1_Dx" size="2" value="[% image_1_Dx | html %]" />
409 <label for="image_1_Tx">Lower left X coordinate: </label>
410 <input type="text" name="image_1_Tx" id="image_1_Tx" size="2" value="[% image_1_Tx | html %]" />
413 <label for="image_1_Ty">Lower left Y coordinate: </label>
414 <input type="text" name="image_1_Ty" id="image_1_Ty" size="2" value="[% image_1_Ty | html %]" />
418 <!-- These pdf image parameters are currently unused, but implemented and need to default to zero -->
419 <input type="hidden" name="image_1_Ox" value="0" /><!-- Ox,Oy should be set to 0 unless you want special effects see http://www.adobe.com/devnet/pdf/pdf_reference.html ISO 32000-1 -->
420 <input type="hidden" name="image_1_Oy" value="0" />
421 <input type="hidden" name="image_1_Sx" value="0" /><!-- Sx,Sy allow scaling of the image -->
422 <input type="hidden" name="image_1_Sy" value="0" />
427 <legend>Image 2</legend>
430 <label for="image_2_image_source">Image source: </label>
431 <select name="image_2_image_source" id="image_2_image_source">
432 [% FOREACH image_2_image_sourc IN image_2_image_source %]
433 [% IF ( image_2_image_sourc.selected ) %]
434 <option value="[% image_2_image_sourc.type | html %]" selected="selected">[% image_2_image_sourc.name | html %]</option>
436 <option value="[% image_2_image_sourc.type | html %]">[% image_2_image_sourc.name | html %]</option>
442 <div id="image_2_image_name" style="display: none;">
445 <label for="image_2_image_name">Image: </label>
446 <select name="image_2_image_name" id="image_2_image_name">
447 [% FOREACH image_2_image_nam IN image_2_image_name %]
448 [% IF ( image_2_image_nam.selected ) %]
449 <option value="[% image_2_image_nam.type | html %]" selected="selected">[% image_2_image_nam.name | html %]</option>
451 <option value="[% image_2_image_nam.type | html %]">[% image_2_image_nam.name | html %]</option>
458 <div id="image_2_image_metrics" style="display: none;">
461 <label for="image_2_Dx">Display height: </label>
462 <input type="text" name="image_2_Dx" id="image_2_Dx" size="2" value="[% image_2_Dx | html %]" />
465 <label for="image_2_Tx">Lower left X coordinate: </label>
466 <input type="text" name="image_2_Tx" id="image_2_Tx" size="2" value="[% image_2_Tx | html %]" />
469 <label for="image_2_Ty">Lower left Y coordinate: </label>
470 <input type="text" name="image_2_Ty" id="image_2_Ty" size="2" value="[% image_2_Ty | html %]" />
474 <!-- These pdf image parameters are currently unused, but implemented and need to default to zero -->
475 <input type="hidden" name="image_2_Ox" value="0" /><!-- Ox,Oy should be set to 0 unless you want special effects see http://www.adobe.com/devnet/pdf/pdf_reference.html ISO 32000-1 -->
476 <input type="hidden" name="image_2_Oy" value="0" /><!-- Sx,Sy allow scaling of the image -->
477 <input type="hidden" name="image_2_Sx" value="0" />
478 <input type="hidden" name="image_2_Sy" value="0" />
488 <fieldset class="action">
489 <input class="btn btn-primary" type="submit" value="Save" />
490 <a class="cancel" href="/cgi-bin/koha/patroncards/manage.pl?card_element=layout">Cancel</a>
491 <input type="hidden" name="op" value="save" />
492 <input type="hidden" name="layout_id" value="[% layout_id | html %]" />
497 </div> <!-- /.col-sm-10.col-sm-push-2 -->
499 <div class="col-sm-2 col-sm-pull-10">
501 [% INCLUDE 'tools-menu.inc' %]
503 </div> <!-- /.col-sm-2.col-sm-pull-10 -->
504 </div> <!-- /.row -->
506 [% MACRO jsinclude BLOCK %]
508 $(document).ready(function() {
509 var selectedUnit = $("#units option:selected").val();
510 var unitfields = $("#font_size,#field_1_llx,#field_1_lly,#field_2_llx,#field_2_lly,#field_3_llx,#field_3_lly,#barcode_Tx,#barcode_Ty,#image_1_Dx,#image_1_Tx,#image_1_Ty,#image_2_Dx,#image_2_Tx,#image_2_Ty");
511 $(unitfields).after("<span class=\"unit\">"+getUnit(selectedUnit)+"</span>");
512 $("#units").change(function(){
513 $(".unit").html(getUnit($(this).val()));
515 Go($("#image_1_image_source").val(), 'image_1_image_name');
516 Go($("#image_1_image_source").val(), 'image_1_image_metrics');
517 $("#image_1_image_source").change(function(){
518 $(".image_1_image_source").html(Go($(this).val(), 'image_1_image_name'));
519 $(".image_1_image_source").html(Go($(this).val(), 'image_1_image_metrics'));
521 Go($("#image_2_image_source").val(), 'image_2_image_name');
522 Go($("#image_2_image_source").val(), 'image_2_image_metrics');
523 $("#image_2_image_source").change(function(){
524 $(".image_2_image_source").html(Go($(this).val(), 'image_2_image_name'));
525 $(".image_2_image_source").html(Go($(this).val(), 'image_2_image_metrics'));
527 var selectFieldNames = ["field_1","field_2","field_3"];
528 for (var i=0; i < selectFieldNames.length; i++) {
529 Go($("#"+selectFieldNames[i]+"_enable").prop("checked"), selectFieldNames[i]+"_select");
531 $("#field_1_enable").change(function(){
532 $(".field_1_enable").html(Go($(this).prop("checked"), 'field_1_select'));
534 $("#field_2_enable").change(function(){
535 $(".field_2_enable").html(Go($(this).prop("checked"), 'field_2_select'));
537 $("#field_3_enable").change(function(){
538 $(".field_3_enable").html(Go($(this).prop("checked"), 'field_3_select'));
540 $("#barcode_print").load(barcode_text('barcode_param'));
541 $("#barcode_print").change(function(){
542 barcode_text('barcode_param');
544 function barcode_text(division) {
545 var eBarcode = document.getElementById(division);
546 if( $("input[name=barcode_print]:checked").prop("checked") ) {
547 eBarcode.style.display = 'block';
549 eBarcode.style.display = 'none';
550 $('input[name=barcode_text_print]').prop('checked', false);
553 function getUnit(unit){
575 function Go(oSelect, oElement){
576 var element = document.getElementById(oElement);
578 case /^.*_name/.test(oElement):
579 if ((oSelect == 'patronimages') || (oSelect == 'none')) {
580 element.style.display = 'none';
582 element.style.display = 'block';
585 case /^.*_metrics/.test(oElement):
586 if ((oSelect == 'none') || (oSelect == '')) {
587 element.style.display = 'none';
589 element.style.display = 'block';
592 case /^.*_select/.test(oElement):
594 element.style.display = 'none';
596 element.style.display = 'block';
608 [% INCLUDE 'intranet-bottom.inc' %]