Lines 1-191
Link Here
|
1 |
[% INCLUDE 'doc-head-open.inc' %] |
1 |
[% INCLUDE 'doc-head-open.inc' %] |
2 |
<title>Koha › Administration › |
2 |
<title>Koha › Administration › Printer editor</title> |
3 |
[% IF ( add_form ) %][% IF ( searchfield ) %] Printers › Modify printer '[% searchfield %]'[% ELSE %] Printers › New printer[% END %][% END %] |
|
|
4 |
[% IF ( add_validate ) %] Printers › Printer added[% END %] |
5 |
[% IF ( delete_confirm ) %] Printers › Confirm deletion of printer '[% searchfield %]'[% END %] |
6 |
[% IF ( delete_confirmed ) %] Printers › Printer deleted[% END %] |
7 |
[% IF ( else ) %]Printers[% END %]</title> |
8 |
[% INCLUDE 'doc-head-close.inc' %] |
3 |
[% INCLUDE 'doc-head-close.inc' %] |
9 |
[% IF ( add_form ) %]<script type="text/javascript"> |
4 |
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" /> |
|
|
5 |
[% INCLUDE 'datatables.inc' %] |
6 |
<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/dataTables.fnReloadAjax.js"></script> |
7 |
<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.jeditable.mini.js"></script> |
8 |
<script type="text/javascript"> |
10 |
//<![CDATA[ |
9 |
//<![CDATA[ |
11 |
// |
10 |
var MSG_ID_HELP = _("Click on the printer's id to select or deselect the printer. Multiple printers may be selected."); |
12 |
function isNotNull(f,noalert) { |
11 |
|
13 |
if (f.value.length ==0) { |
12 |
var oTable; /* oTable needs to be global */ |
14 |
return false; |
13 |
var sEmptyTable = _("No printers available. Please use the \"Add printer\" button to add a printer."); /* override the default message in datatables-strings.inc */ |
15 |
} |
14 |
$(document).ready(function() { |
16 |
return true; |
15 |
oTable = $("#printers_editor").dataTable({ |
|
|
16 |
"bAutoWidth" : false, |
17 |
"bProcessing" : true, |
18 |
"bPaginate" : true, |
19 |
"sPaginationType" : "full_numbers", |
20 |
"sDom": '<"top pager"iflp>rt<"bottom pager"flp><"clear">', |
21 |
"sAjaxSource" : "/cgi-bin/koha/svc/printer", |
22 |
"aoColumns" : [ |
23 |
{ "sWidth": "5%" }, |
24 |
{ "sWidth": "40%" }, |
25 |
{ "sWidth": "55%" }, |
26 |
{ "bVisible": false }, |
27 |
], |
28 |
"oLanguage" : { |
29 |
"oPaginate": { |
30 |
"sFirst": MSG_DT_FIRST, |
31 |
"sLast": MSG_DT_LAST, |
32 |
"sNext": MSG_DT_NEXT, |
33 |
"sPrevious": MSG_DT_PREVIOUS, |
34 |
}, |
35 |
"sEmptyTable": MSG_DT_EMPTY_TABLE, |
36 |
"sInfo": MSG_DT_INFO, |
37 |
"sInfoEmpty": MSG_DT_INFO_EMPTY, |
38 |
"sInfoFiltered": MSG_DT_INFO_FILTERED, |
39 |
"sLengthMenu": MSG_DT_LENGTH_MENU, |
40 |
"sLoadingRecords": MSG_DT_LOADING_RECORDS, |
41 |
"sProcessing": MSG_DT_PROCESSING, |
42 |
"sSearch": MSG_DT_SEARCH, |
43 |
"sZeroRecords": MSG_DT_ZERO_RECORDS, |
44 |
}, |
45 |
"fnPreDrawCallback": function(oSettings) { |
46 |
return true; |
47 |
}, |
48 |
"fnRowCallback": function( nRow, aData, iDisplayIndex ) { |
49 |
var noEditFields = []; |
50 |
var printerID = $('td', nRow)[0].innerHTML; |
51 |
$(nRow).attr("id", printerID); /* set row ids to printer id */ |
52 |
$('td:eq(0)', nRow).click(function() {$(this.parentNode).toggleClass('selected',this.clicked);}); /* add row selectors */ |
53 |
$('td:eq(0)', nRow).attr("title", _("Click ID to select/deselect printer")); |
54 |
$('td', nRow).attr("id",printerID); |
55 |
if ( printerID == "NA") { |
56 |
$('td', nRow)[0].setAttribute("id","no_edit"); |
57 |
$('td', nRow)[1].setAttribute("id","no_edit"); |
58 |
$('td', nRow)[2].setAttribute("id","no_edit"); |
59 |
} |
60 |
else { |
61 |
$('td', nRow)[0].setAttribute("id","no_edit"); |
62 |
} |
63 |
return nRow; |
64 |
}, |
65 |
"fnDrawCallback": function(oSettings) { |
66 |
/* Apply the jEditable handlers to the table on all fields w/o the no_edit id */ |
67 |
$('#printers_editor tbody td[id!="no_edit"]').editable( "/cgi-bin/koha/svc/printer", { |
68 |
"submitdata" : function ( value, settings ) { |
69 |
return { |
70 |
"column": oTable.fnGetPosition( this )[2], |
71 |
"action": "edit", |
72 |
}; |
73 |
}, |
74 |
"height" : "14px", |
75 |
"placeholder" : "", |
76 |
}); |
77 |
}, |
78 |
}); |
79 |
$("#add_printer").click(function(){ |
80 |
fnClickAddRow(); |
81 |
return false; |
82 |
}); |
83 |
$("#delete_printer").click(function(){ |
84 |
fnClickDeleteRow(); |
85 |
return false; |
86 |
}); |
87 |
}); |
88 |
|
89 |
function fnClickAddPrinter(e, node) { |
90 |
if (e.keyCode == 13) { |
91 |
|
92 |
var printerName = $('#printerName').val(); |
93 |
var printerQueue = $('#printerQueue').val() |
94 |
var printerType = $('#printerType').val() |
95 |
|
96 |
/* If passed a printer source, add the printer to the db */ |
97 |
if (printerName) { |
98 |
$.ajax({ |
99 |
url: "/cgi-bin/koha/svc/printer", |
100 |
type: "POST", |
101 |
data: { |
102 |
"name" : printerName, |
103 |
"queue" : printerQueue, |
104 |
"type" : printerType, |
105 |
"action" : "add", |
106 |
}, |
107 |
success: function(data){ |
108 |
var newPrinter = data[0]; |
109 |
var aRow = oTable.api().row( node ).data( newPrinter ).draw('page'); |
110 |
oTable.api().page( 'last' ).draw('page'); |
111 |
oTable.api().ajax.reload(); |
112 |
$('.add_printer_button').attr('onclick', 'fnClickAddRow()'); // re-enable add button |
113 |
} |
114 |
}); |
115 |
} |
116 |
else { |
117 |
alert(_("Please supply a printer name.")); |
118 |
} |
119 |
} |
120 |
else if (e.keyCode == 27) { |
121 |
if (confirm(_("Are you sure you want to cancel adding this printer?"))) { |
122 |
oTable.api().row(node).remove(); |
123 |
} |
124 |
else { |
125 |
return; |
126 |
} |
17 |
} |
127 |
} |
18 |
// |
128 |
} |
19 |
function isNum(v,maybenull) { |
129 |
|
20 |
var n = new Number(v.value); |
130 |
function fnClickAddRow() { |
21 |
if (isNaN(n)) { |
131 |
$('.add_printer_button').removeAttr('onclick'); // disable add button once it has been clicked |
22 |
return false; |
132 |
var aRow = oTable.api().row.add( |
23 |
} |
133 |
[ |
24 |
if (maybenull==0 && v.value=="") { |
134 |
'NA', |
25 |
return false; |
135 |
'<input id="printerName" type="text" style="height:14px; width:95%" onkeydown="fnClickAddPrinter(event,this.parentNode.parentNode)"/>', |
|
|
136 |
'<input id="printerQueue" type="text" style="height:14px; width:95%" onkeydown="fnClickAddPrinter(event,this.parentNode.parentNode)"/>', |
137 |
'<input id="printerType" type="text" style="height:14px; width:95%" onkeydown="fnClickAddPrinter(event,this.parentNode.parentNode)"/>', |
138 |
], |
139 |
false |
140 |
); |
141 |
oTable.api().page( 'last' ).draw('page'); |
142 |
$('#printerName').focus(); |
143 |
} |
144 |
|
145 |
function fnClickDeleteRow() { |
146 |
var idsToDelete = oTable.$('.selected').map(function() { |
147 |
return this.id; |
148 |
}).get().join(', '); |
149 |
if (!idsToDelete) { |
150 |
alert(_("No printers selected!")); |
26 |
} |
151 |
} |
27 |
return true; |
152 |
else if (confirm(_("Are you sure you wish to delete printer(s) ") + idsToDelete + "?")) { |
|
|
153 |
oTable.$('.selected').each(function(){ |
154 |
var printerID = $(this).attr('id'); |
155 |
$.ajax({ |
156 |
url: "/cgi-bin/koha/svc/printer", |
157 |
type: "POST", |
158 |
data: { |
159 |
"id" : printerID, |
160 |
"action" : "delete", |
161 |
}, |
162 |
/* Delete the row from the datatable */ |
163 |
success: function(){ |
164 |
oTable.api().row(this).remove(); |
165 |
oTable.api().ajax.reload(); |
166 |
} |
167 |
}); |
168 |
}); |
28 |
} |
169 |
} |
29 |
// |
170 |
else { |
30 |
function Check(f) { |
171 |
return; |
31 |
var ok=1; |
|
|
32 |
var _alertString=""; |
33 |
var alertString2; |
34 |
if (f.printername.value.length==0) { |
35 |
_alertString += "- printer name missing\n"; |
36 |
} |
37 |
if (f.printqueue.value.length==0) { |
38 |
_alertString += "- Queue missing\n"; |
39 |
} |
40 |
if (_alertString.length==0) { |
41 |
document.Aform.submit(); |
42 |
} else { |
43 |
alertString2 = "Form not submitted because of the following problem(s)\n"; |
44 |
alertString2 += "------------------------------------------------------------------------------------\n\n"; |
45 |
alertString2 += _alertString; |
46 |
alert(alertString2); |
47 |
} |
48 |
} |
172 |
} |
49 |
//]]> |
173 |
} |
|
|
174 |
//]]> |
50 |
</script> |
175 |
</script> |
51 |
[% END %] |
|
|
52 |
</head> |
176 |
</head> |
53 |
<body id="admin_printers" class="admin"> |
177 |
<body id="tools_printers" class="tools"> |
54 |
[% INCLUDE 'header.inc' %] |
178 |
[% INCLUDE 'header.inc' %] |
55 |
[% INCLUDE 'printers-admin-search.inc' %] |
179 |
[% INCLUDE 'cat-search.inc' %] |
56 |
|
180 |
|
57 |
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> › [% IF ( add_form ) %][% IF ( searchfield ) %] <a href="/cgi-bin/koha/admin/printers.pl">Printers</a> › Modify printer '[% searchfield %]'[% ELSE %] <a href="/cgi-bin/koha/admin/printers.pl">Printers</a> › New printer[% END %][% END %] |
181 |
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> › Printers</div> |
58 |
[% IF ( add_validate ) %] <a href="/cgi-bin/koha/admin/printers.pl">Printers</a> › Printer added[% END %] |
|
|
59 |
[% IF ( delete_confirm ) %] <a href="/cgi-bin/koha/admin/printers.pl">Printers</a> › Confirm deletion of printer '[% searchfield %]'[% END %] |
60 |
[% IF ( delete_confirmed ) %] <a href="/cgi-bin/koha/admin/printers.pl">Printers</a> › Printer deleted[% END %] |
61 |
[% IF ( else ) %]Printers[% END %]</div> |
62 |
|
182 |
|
63 |
<div id="doc3" class="yui-t2"> |
183 |
<div id="doc3" class="yui-t2"> |
64 |
|
184 |
<div id="bd"> |
65 |
<div id="bd"> |
185 |
<div id="yui-main"> |
66 |
<div id="yui-main"> |
186 |
<div class="yui-b"> |
67 |
<div class="yui-b"> |
187 |
[% INCLUDE 'printers-toolbar.inc' %] |
68 |
|
188 |
<h2>Printers</h2> |
69 |
[% IF ( add_form ) %] |
189 |
<table id="printers_editor"> |
70 |
|
190 |
<thead> |
71 |
[% IF ( searchfield ) %] |
191 |
<tr> |
72 |
<h1>Modify printer</h1> |
192 |
<th><span style="cursor: help" onclick="event.stopPropagation();alert(MSG_ID_HELP);">ID</span></th> |
73 |
[% ELSE %] |
193 |
<th>Name</th> |
74 |
<h1>New printer</h1> |
194 |
<th>Server:Port</th> |
75 |
[% END %] |
195 |
<th>Type</th> |
76 |
<form action="[% script_name %]" name="Aform" method="post"> |
196 |
</tr> |
77 |
<input type="hidden" name="op" value="add_validate" /> |
197 |
</thead> |
78 |
[% IF ( searchfield ) %] |
198 |
</table> |
79 |
<input type="hidden" name="add" value="0" /> |
199 |
</div> |
80 |
[% ELSE %] |
200 |
</div> |
81 |
<input type="hidden" name="add" value="1" /> |
201 |
<div class="yui-b noprint"> |
82 |
[% END %] |
202 |
</div> |
83 |
<fieldset class="rows"> |
|
|
84 |
<ol> [% IF ( searchfield ) %] |
85 |
<li> |
86 |
<span class="label">Printer name: </span> |
87 |
<input type="hidden" name="printername" id="" value="[% searchfield %]" />[% searchfield %] |
88 |
</li> |
89 |
[% ELSE %] |
90 |
<li> |
91 |
<label for="printername">Printer name: </label> |
92 |
<input type="text" name="printername" id="printername" size="50" maxlength="50" /> |
93 |
</li> |
94 |
[% END %] |
95 |
<li> |
96 |
<label for="printqueue">Queue: </label> |
97 |
<input type="text" name="printqueue" id="printqueue" size="50" maxlength="50" value="[% printqueue %]" /> |
98 |
</li> |
99 |
<li> |
100 |
<label for="printtype">Type: </label> |
101 |
<input type="text" name="printtype" id="printtype" size="50" maxlength="50" value="[% printtype %]" /> |
102 |
</li></ol> |
103 |
</fieldset> |
104 |
<fieldset class="action"><input type="submit" value="Submit" onclick="Check(this.form);" /> <a class="cancel" href="/cgi-bin/koha/admin/printers.pl">Cancel</a></fieldset> |
105 |
</form> |
106 |
|
107 |
[% END %] |
108 |
|
109 |
[% IF ( add_validate ) %] |
110 |
<h3>Printer added</h3> |
111 |
<form action="[% script_name %]" method="post"> |
112 |
<fieldset class="action"> <input type="submit" value="OK" /></fieldset> |
113 |
</form> |
114 |
[% END %] |
115 |
|
116 |
[% IF ( delete_confirm ) %] |
117 |
<h3>Confirm deletion of printer <em>[% searchfield %]</em></h3> |
118 |
<ul> |
119 |
<li> |
120 |
<strong>Printer: </strong> |
121 |
[% searchfield %] |
122 |
</li> |
123 |
<li> |
124 |
<strong>Queue: </strong> |
125 |
[% printqueue %] |
126 |
</li> |
127 |
<li> |
128 |
<strong>Type: </strong> |
129 |
[% printtype %] |
130 |
</li> |
131 |
</ul> |
132 |
<form action="[% script_name %]" method="post"> |
133 |
<input type="hidden" name="op" value="delete_confirmed" /> |
134 |
<input type="hidden" name="searchfield" value="[% searchfield %]" /> |
135 |
<input type="submit" value="Delete this printer" /> |
136 |
</form> <form action="[% script_name %]" method="post"> |
137 |
<input type="submit" value="Do not Delete" /> |
138 |
</form> |
139 |
[% END %] |
140 |
|
141 |
[% IF ( delete_confirmed ) %] |
142 |
<h3>Printer deleted</h3> |
143 |
<form action="[% script_name %]" method="post"> |
144 |
<fieldset class="action"><input type="submit" value="OK" /></fieldset> |
145 |
</form> |
146 |
[% END %] |
147 |
|
148 |
[% IF ( else ) %] |
149 |
|
150 |
<div id="toolbar" class="btn-toolbar"> |
151 |
<a class="btn btn-small" id="newprinter" href="/cgi-bin/koha/admin/printers.pl?op=add_form"><i class="fa fa-plus"></i> New printer</a> |
152 |
</div> |
153 |
|
154 |
<h2>Printers</h2> |
155 |
[% IF ( searchfield ) %] |
156 |
You searched for [% searchfield %]</span> |
157 |
[% END %] |
158 |
|
159 |
[% IF ( loop ) %]<table> |
160 |
<tr> |
161 |
<th>Name</th> |
162 |
<th>Queue</th> |
163 |
<th>Type</th> |
164 |
<th> </th> |
165 |
</tr> |
166 |
[% FOREACH loo IN loop %] |
167 |
<tr> |
168 |
<td>[% loo.printername %]</td> |
169 |
<td>[% loo.printqueue %]</td> |
170 |
<td>[% loo.printtype %]</td> |
171 |
<td><a href="[% loo.script_name %]?op=add_form&searchfield=[% loo.printername %]">Edit</a> <a href="[% loo.script_name %]?op=delete_confirm&searchfield=[% loo.printername %]">Delete</a></td> |
172 |
</tr> |
173 |
[% END %] |
174 |
</table>[% ELSE %]<div class="notice">No printers defined.</div>[% END %] |
175 |
|
176 |
[% IF ( offsetgtzero ) %] |
177 |
<a href="[% script_name %]?offset=[% prevpage %]"><< Previous</a> |
178 |
[% END %] |
179 |
|
180 |
[% IF ( ltcount ) %] |
181 |
<a href="[% script_name %]?offset=[% nextpage %]">Next >></a> |
182 |
[% END %] |
183 |
[% END %] |
184 |
|
185 |
</div> |
186 |
</div> |
187 |
<div class="yui-b"> |
188 |
[% INCLUDE 'admin-menu.inc' %] |
189 |
</div> |
190 |
</div> |
203 |
</div> |
191 |
[% INCLUDE 'intranet-bottom.inc' %] |
204 |
[% INCLUDE 'intranet-bottom.inc' %] |