Bug 29788: Make Koha::Item->safe_to_delete use Koha::Result::Boolean
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / includes / html_helpers.inc
1 [% BLOCK options_for_libraries %]
2     [% FOREACH l IN libraries %]
3         [% IF l.selected %]
4             <option value="[% prefix | html %][% l.branchcode | html %]" selected="selected">[% l.branchname | html %]</option>
5         [% ELSE %]
6             <option value="[% prefix | html %][% l.branchcode | html %]">[% l.branchname | html %]</option>
7         [% END%]
8     [% END %]
9 [% END %]
10
11 [% BLOCK options_for_desks %]
12     <option id="nodesk" value="">---</option>
13     [% FOREACH d IN desks %]
14         [% IF d.branchcode == branch %]
15           [% IF selected == d.desk_id %]
16             <option class="[% d.branchcode | html %]" value="[% d.desk_id | html %]" selected="selected">[% d.desk_name | html %]</option>
17           [% ELSE %]
18             <option class="[% d.branchcode | html %]" value="[% d.desk_id | html %]" >[% d.desk_name | html %]</option>
19           [% END %]
20         [% ELSE %]
21             <option class="[% d.branchcode | html %]" value="[% d.desk_id | html %]" disabled hidden>[% d.desk_name | html %]</option>
22         [% END %]
23     [% END %]
24 [% END %]
25
26 [% BLOCK options_for_registers %]
27     [% FOREACH r IN registers %]
28         [% IF r.branch == Branches.GetLoggedInBranchcode %]
29             [% IF r.selected %]
30                 <option class="[%- r.branch | html -%][%- IF r.branch_default -%] default[%- END -%]" value="[% r.id | html %]" selected="selected">[% r.name | html %]</option>
31             [% ELSE %]
32                 <option class="[%- r.branch | html -%][%- IF r.branch_default -%] default[%- END -%]" value="[% r.id | html %]">[% r.name | html %]</option>
33             [% END%]
34         [% ELSE %]
35             <option class="[%- r.branch | html -%][%- IF r.branch_default -%] default[%- END -%]" value="[% r.id | html %]" disabled style="display: none">[% r.name | html %]</option>
36         [% END %]
37     [% END %]
38 [% END %]
39
40 [% BLOCK options_for_authorised_value_categories %]
41     [% FOREACH avc IN authorised_value_categories %]
42         [% IF avc.selected %]
43             <option value="[% avc.category | html %]" selected="selected">[% avc.category | html %]</option>
44         [% ELSE %]
45             <option value="[% avc.category | html %]">[% avc.category | html %]</option>
46         [% END %]
47     [% END %]
48 [% END %]
49
50 [% BLOCK options_for_authorised_values %]
51     [% FOREACH av IN authorised_values %]
52         [% IF av.authorised_value == selected_av %]
53             <option value="[% av.authorised_value | html %]" selected="selected">[% av.lib | html %]</option>
54         [% ELSE %]
55             <option value="[% av.authorised_value | html %]">[% av.lib | html %]</option>
56         [% END %]
57     [% END %]
58 [% END %]
59
60 [% BLOCK options_for_item_types %]
61     [% FOREACH itemtype IN itemtypes %]
62         [% IF itemtype.itemtype == selected_itemtype %]
63             <option value="[% itemtype.itemtype | html %]" selected="selected">
64         [% ELSE %]
65             <option value="[% itemtype.itemtype | html %]">
66         [% END %]
67             [% itemtype.translated_description | html %]
68         </option>
69     [% END %]
70 [% END %]
71
72 [% BLOCK subfields_for_item %]
73     <ol>
74         [% FOREACH subfield IN subfields %]
75             [% IF subfield.kohafield == 'items.more_subfields_xml' %]
76                 [% SET kohafield = 'items.more_subfields_xml_' _ subfield.subfield %]
77             [% ELSE %]
78                 [% SET kohafield = subfield.kohafield %]
79             [% END %]
80
81             <li>
82                 <div class="subfield_line" style="[% subfield.visibility | html %]" id="subfield[% subfield.tag | html %][% subfield.subfield | html %][% subfield.random | html %]">
83                     [% IF ( subfield.mandatory ) %]
84                         <label class="required">[% subfield.subfield | html %] - [% subfield.marc_lib | $raw %]</label>
85                     [% ELSE %]
86                        <label>[% subfield.subfield | html %] - [% subfield.marc_lib | $raw %]</label>
87                     [% END %]
88
89                     [% SET mv = subfield.marc_value %]
90                     [% IF ( mv.type == 'hidden' ) %]
91                         <input type="hidden" id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]">
92                     [% ELSIF ( mv.type == 'select' ) %]
93                         [% IF ( mv.readonly || subfield.IS_RETURN_CLAIM ) %]
94                             <select name="[% kohafield | html %]" id="[%- mv.id | html -%]" class="input_marceditor" readonly="readonly" disabled="disabled" data-width="50%">
95                         [% ELSE %]
96                             <select name="[% kohafield | html %]" id="[%- mv.id | html -%]" class="input_marceditor select2" data-category="[% mv.category | html %]" data-width="50%">
97                         [% END %]
98
99                         [% FOREACH aval IN mv.values %]
100                             [% IF aval == mv.default %]
101                                 <option value="[%- aval | html -%]" selected="selected">[%- mv.labels.$aval | html -%]</option>
102                             [% ELSE %]
103                                 [% IF subfield.IS_LOST_AV && Koha.Preference("ClaimReturnedLostValue") && aval == Koha.Preference("ClaimReturnedLostValue") %]
104                                     <option disabled="disabled" value="[%- aval | html -%]" title="Return claims must be processed from the patron details page">[%- mv.labels.$aval | html -%]</option>
105                                 [%  ELSE %]
106                                     <option value="[%- aval | html -%]">[%- mv.labels.$aval | html -%]</option>
107                                 [% END %]
108                             [% END %]
109                         [% END %]
110                         </select>
111                     [% ELSIF ( mv.type == 'text_auth' ) %]
112                         [% IF mv.readonly %]
113                             <input type="text" id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" readonly="readonly" />
114                         [% ELSE %]
115                             <input type="text" id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" />
116                             [% SET dopop = "Dopop('/cgi-bin/koha/authorities/auth_finder.pl?authtypecode=\"${mv.authtypecode}\"&index=${mv.id}','${mv.id}')" %]
117                             <a href="#" class="buttonDot"  onclick="[%- dopop | html -%]; return false;" title="Tag editor">...</a>
118                         [% END %]
119                     [% ELSIF ( mv.type == 'text_plugin' ) %]
120                         [% IF mv.readonly %]
121                             <input type="text" id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" readonly="readonly" />
122                         [% ELSE %]
123                             <input type="text" id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" />
124                             [% IF ( mv.nopopup ) %]
125                                 <a href="#" id="buttonDot_[%- mv.id | html -%]" class="[%- mv.class | html -%]" title="No popup">...</a>
126                             [% ELSE  %]
127                                 <a href="#" id="buttonDot_[%- mv.id | html -%]" class="[%- mv.class | html -%]" title="Tag editor">...</a>
128                             [% END %]
129                             [% UNLESS no_plugin %][%# FIXME - from batchMod-edit, jQuery is included at the end of the template and cataloguing plugins are not working in this situation %]
130                                 [%- mv.javascript | $raw -%]
131                             [% END %]
132                         [% END %]
133                     [% ELSIF ( mv.type == 'text' ) %]
134                         [% IF mv.readonly %]
135                             <input type="text" id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" readonly="readonly" />
136                         [% ELSE %]
137                             <input type="text" id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" />
138                         [% END %]
139                     [% ELSIF ( mv.type == 'textarea' ) %]
140                         [% IF mv.readonly %]
141                             <textarea id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" rows="5" cols="64" readonly="readonly" >[% mv.value | html %]</textarea>
142                         [% ELSE %]
143                             <textarea id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" rows="5" cols="64" >[% mv.value | html %]</textarea>
144                         [% END %]
145                     [% END %]
146
147                     [% IF subfield.kohafield == 'items.more_subfields_xml' %]
148                         <input type="hidden" name="items.more_subfields_xml" value="[% subfield.subfield | html %]" />
149                     [% END %]
150                     <input type="hidden" name="tag"       value="[% subfield.tag | html %]" />
151                     <input type="hidden" name="kohafield" value="[% subfield.kohafield | html %]" /> [%# We should not need that but all item forms are not rewritten yet %]
152                     <input type="hidden" name="subfield"  value="[% subfield.subfield | html %]" />
153                     <input type="hidden" name="mandatory" value="[% subfield.mandatory | html %]" />
154                     <input type="hidden" name="important" value="[% subfield.important | html %]" />
155
156                     [% IF add_regex %]
157                         <span name="regex_fields" style="display: none;">
158                             s/<input type="text" name="[% kohafield | html %]_regex_search" class="regex_search" placeholder="regex pattern" />/
159                             <input type="text" name="[% kohafield | html %]_regex_replace" class="regex_replace" placeholder="regex replacement" />/
160                             <input type="text" name="[% kohafield | html %]_regex_modifiers" class="regex_modifiers" placeholder="ig" size="3" />
161                         </span>
162                     [% END %]
163
164                     [% IF add_delete_checkbox %]
165                         [% UNLESS ( subfield.mandatory ) %]
166                             <input type="checkbox" id="row[% subfield.tag | html %][% subfield.subfield | html %][% subfield.random | html %]" title="Check to delete subfield [% subfield.subfield | html %]" name="disable_input" value="[% kohafield | html %]" />
167                         [% ELSE %]
168                             <span class="required">Required</span>
169                         [% END %]
170                     [% ELSE %]
171                         [% IF ( subfield.mandatory ) %] <span class="required">Required</span>
172                         [% ELSIF ( subfield.important ) %] <span class="important">Important</span>
173                         [% END %]
174                     [% END %]
175
176                     [% IF add_regex %]
177                         [% IF (mv.type == 'text' || mv.type == 'text2' || mv.type == 'textarea' ) %]
178                             <a href="#" name="[% kohafield | html %]_field_regex" class="field_regex" id="[% subfield.id | html %]" >RegEx</a>
179                         [% END %]
180                     [% END %]
181
182                     [% IF ( subfield.repeatable ) %]
183                         <a href="#" class="buttonPlus" onclick="CloneItemSubfield(this.parentNode.parentNode); return false;">
184                             <img src="[% interface | html %]/[% theme | html %]/img/clone-subfield.png" alt="Clone" title="Clone this subfield" />
185                         </a>
186                     [% END %]
187
188                     <span class="hint" id="hint[% subfield.tag | html %][% subfield.subfield | html %][% subfield.random | html %]"></span>
189
190                 </div>
191             </li>
192         [% END %]
193     </ol>
194 [% END %]
195
196 [% BLOCK items_table_batchmod %]
197
198     [% IF display_columns_selection %][%# Needs js/pages/batchMod.js %]
199         [% IF checkboxes_edit OR checkboxes_delete %]
200             <div id="toolbar">
201                 <a id="selectallbutton" href="#"><i class="fa fa-check"></i> Select all</a> | <a id="clearallbutton" href="#"><i class="fa fa-remove"></i> Clear all</a> | <a id="clearonloanbutton" href="#">Clear on loan</a>
202             </div>
203         [% END %]
204
205         <div id="cataloguing_additem_itemlist">
206
207             <p id="selections">
208                 <strong>Show/hide columns:</strong>
209                 <span class="selected">
210                     <input type="checkbox" checked="checked" id="showall" />
211                     <label for="showall">Show all columns</label>
212                 </span>
213                 <span>
214                     <input type="checkbox" id="hideall" />
215                     <label for="hideall">Hide all columns</label>
216                 </span>
217
218                 [% FOREACH header IN item_header_loop %]
219                     <span class="selected">
220                         <input id="checkheader[% loop.count | html %]" type="checkbox" checked="checked" />
221                         <label for="checkheader[% loop.count | html %]">[% header.header_value | html %]</label>
222                     </span>
223                 [% END %]
224             </p> <!-- /#selections -->
225         </div>
226     [% END %]
227     [% SET date_fields = [ 'dateaccessioned', 'onloan', 'datelastseen', 'datelastborrowed', 'replacementpricedate' ] %]
228     <table id="itemst">
229         <thead>
230             <tr>
231                 [% IF checkboxes_edit OR checkboxes_delete %]
232                     <th></th>
233                 [% END %]
234                 <th class="anti-the">Title</th>
235                 <th class="holds_count" title="Item holds / Total holds">Holds</th>
236                 [% FOREACH item_header IN headers %]
237                     [% IF item_header.column_name %]
238                         <th data-colname="[% item_header.column_name | html %]">
239                     [% ELSE %]
240                         <th>
241                     [% END %]
242                         [% item_header.header_value | html %]
243                     </th>
244                 [% END %]
245             </tr>
246         </thead>
247         <tbody>
248             [% FOREACH item IN items %]
249                 [% SET can_be_edited = ! ( Koha.Preference('IndependentBranches') && ! logged_in_user && item.homebranch != Branches.GetLoggedInBranchcode() ) %]
250
251                 <tr>
252                     [% IF checkboxes_edit %]
253                         [% UNLESS can_be_edited%]
254                             <td class="error">Cannot edit</td>
255                         [% ELSE %]
256                             <td>
257                                 <input type="checkbox" name="itemnumber" value="[% item.itemnumber | html %]" id="row[% item.itemnumber | html %]" checked="checked" data-is-onloan="[% item.is_checked_out | html %]" />
258                             </td>
259                         [% END %]
260                     [% ELSIF checkboxes_delete %]
261                         [% UNLESS can_be_edited %]
262                             <td class="error">Cannot delete</td>
263                         [% ELSE %]
264                             [% IF item.safe_to_delete == 1 %]
265                                 <td><input type="checkbox" name="itemnumber" value="[% item.itemnumber | html %]" id="row[% item.itemnumber | html %]" checked="checked" /></td>
266                             [% ELSE %]
267                                 [% SET messages = item.safe_to_delete.messages %]
268                                 [% FOR m IN messages %]
269                                     [% SWITCH m %]
270                                     [% CASE "book_on_loan" %][% SET cannot_delete_reason = t("Item is checked out") %]
271                                     [% CASE "not_same_branch" %][% SET cannot_delete_reason = t("Item does not belong to your library") %]
272                                     [% CASE "book_reserved" %][% SET cannot_delete_reason = t("Item has a waiting hold") %]
273                                     [% CASE "linked_analytics" %][% SET cannot_delete_reason = t("Item has linked analytics") %]
274                                     [% CASE "last_item_for_hold" %][% SET cannot_delete_reason = t("Last item for bibliographic record with biblio-level hold on it") %]
275                                     [% CASE %][% SET cannot_delete_reason = t("Unknown reason") _ '(' _ item.safe_to_delete _ ')' %]
276                                     [% END %]
277                                 [% END %]
278
279                                 <td><input type="checkbox" name="itemnumber" value="[% item.itemnumber | html %]" id="row[% item.itemnumber | html %]" disabled="disabled" title="[% cannot_delete_reason | html %]"/></td>
280                             [% END %]
281
282                         [% END %]
283                     [% END %]
284                     <td>
285                         <label for="row[% item.itemnumber | html %]">
286                             <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% item.biblionumber | uri %]">
287                                 [% item.biblio.title | html %]
288                             </a>
289                             [% IF ( item.biblio.author ) %], by [% item.biblio.author | html %][% END %]
290                         </label>
291                     </td>
292                     <td class="holds_count">
293                         [% IF item.holds %]
294                             [% IF item.item_holds %]
295                                 <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% item.biblionumber | uri %]" title="Holds on this item: [% item.item_holds | html %] / Total holds on this record: [% item.holds | html -%]" >
296                             [% ELSE %]
297                                 <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% item.biblionumber | uri %]" title="No holds on this item / Total holds on this record: [% item.holds | html -%]" >
298                             [% END %]
299                         [% ELSE %]
300                             [% IF item.holds %]
301                                 <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% item.biblionumber | uri %]" title="Holds on this record: [% item.holds | html -%]" >
302                             [% ELSE %]
303                                 <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% item.biblionumber | uri %]" title="No holds on this record" >
304                             [% END %]
305                         [% END # /IF item.holds %]
306                         [% IF item.holds %]
307                             [% item.item_holds | html %]/[% item.holds | html %]
308                         [% ELSE %]
309                             [% item.holds | html %]
310                         [% END %]
311                         </a>
312                     </td>
313                     [% FOREACH header IN headers %]
314                         [% SET attribute = header.attribute %]
315                         [% IF header.attribute AND date_fields.grep('^' _ attribute _ '$').size %]
316                             <td data-order="[% item.$attribute | html %]">[% item.$attribute | $KohaDates %]</td>
317                         [% ELSE %]
318                             <td>[% item.$attribute | html %]</td>
319                         [% END %]
320                     [% END %]
321
322                 </tr>
323             [% END # /FOREACH items %]
324         </tbody>
325     </table> <!-- /#itemst -->
326
327 [% END %]