Bug 29609: Centralized code to build the link to a biblio detail page
[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 biblio_a_href -%]
73     [%- IF Koha.Preference('IntranetBiblioDefaultView') == 'marc' && Koha.Preference('viewMARC') -%]
74         [%- SET this_biblio_href = "/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=" -%]
75     [%- ELSIF Koha.Preference('IntranetBiblioDefaultView') == 'labeled_marc' && Koha.Preference('viewLabeledMARC') -%]
76         [%- SET this_biblio_href = "/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=" -%]
77     [%- ELSIF Koha.Preference('IntranetBiblioDefaultView') == 'isbd' && Koha.Preference('viewISBD') -%]
78         [%- SET this_biblio_href = "/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=" -%]
79     [%- ELSE -%]
80         [%- SET this_biblio_href = "/cgi-bin/koha/catalogue/detail.pl?biblionumber=" -%]
81     [%- END -%]
82     [%- this_biblio_href | url %][% biblionumber | url -%]
83 [%- END %]
84
85 [% BLOCK subfields_for_item %]
86     <ol>
87         [% FOREACH subfield IN subfields %]
88             [% IF subfield.kohafield == 'items.more_subfields_xml' %]
89                 [% SET kohafield = 'items.more_subfields_xml_' _ subfield.subfield %]
90             [% ELSE %]
91                 [% SET kohafield = subfield.kohafield %]
92             [% END %]
93
94             <li>
95                 <div class="subfield_line" style="[% subfield.visibility | html %]" id="subfield[% subfield.tag | html %][% subfield.subfield | html %][% subfield.random | html %]">
96                     [% IF ( subfield.mandatory ) %]
97                         <label class="required">[% subfield.subfield | html %] - [% subfield.marc_lib | $raw %]</label>
98                     [% ELSE %]
99                        <label>[% subfield.subfield | html %] - [% subfield.marc_lib | $raw %]</label>
100                     [% END %]
101
102                     [% SET mv = subfield.marc_value %]
103                     [% IF ( mv.type == 'hidden' ) %]
104                         <input type="hidden" id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]">
105                     [% ELSIF ( mv.type == 'select' ) %]
106                         [% IF ( mv.readonly || subfield.IS_RETURN_CLAIM ) %]
107                             <select name="[% kohafield | html %]" id="[%- mv.id | html -%]" class="input_marceditor" readonly="readonly" disabled="disabled" data-width="50%">
108                         [% ELSE %]
109                             <select name="[% kohafield | html %]" id="[%- mv.id | html -%]" class="input_marceditor select2" data-category="[% mv.category | html %]" data-width="50%">
110                         [% END %]
111
112                         [% FOREACH aval IN mv.values %]
113                             [% IF aval == mv.default %]
114                                 <option value="[%- aval | html -%]" selected="selected">[%- mv.labels.$aval | html -%]</option>
115                             [% ELSE %]
116                                 [% IF subfield.IS_LOST_AV && Koha.Preference("ClaimReturnedLostValue") && aval == Koha.Preference("ClaimReturnedLostValue") %]
117                                     <option disabled="disabled" value="[%- aval | html -%]" title="Return claims must be processed from the patron details page">[%- mv.labels.$aval | html -%]</option>
118                                 [%  ELSE %]
119                                     <option value="[%- aval | html -%]">[%- mv.labels.$aval | html -%]</option>
120                                 [% END %]
121                             [% END %]
122                         [% END %]
123                         </select>
124                     [% ELSIF ( mv.type == 'text_auth' ) %]
125                         [% IF mv.readonly %]
126                             <input type="text" id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" readonly="readonly" />
127                         [% ELSE %]
128                             <input type="text" id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" />
129                             [% SET dopop = "Dopop('/cgi-bin/koha/authorities/auth_finder.pl?authtypecode=\"${mv.authtypecode}\"&index=${mv.id}','${mv.id}')" %]
130                             <a href="#" class="buttonDot"  onclick="[%- dopop | html -%]; return false;" title="Tag editor">...</a>
131                         [% END %]
132                     [% ELSIF ( mv.type == 'text_plugin' ) %]
133                         [% IF mv.readonly %]
134                             <input type="text" id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" readonly="readonly" />
135                         [% ELSE %]
136                             <input type="text" id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" />
137                             [% IF ( mv.nopopup ) %]
138                                 <a href="#" id="buttonDot_[%- mv.id | html -%]" class="[%- mv.class | html -%]" title="No popup">...</a>
139                             [% ELSE  %]
140                                 <a href="#" id="buttonDot_[%- mv.id | html -%]" class="[%- mv.class | html -%]" title="Tag editor">...</a>
141                             [% END %]
142                             [% 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 %]
143                                 [%- mv.javascript | $raw -%]
144                             [% END %]
145                         [% END %]
146                     [% ELSIF ( mv.type == 'text' ) %]
147                         [% IF mv.readonly %]
148                             <input type="text" id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" readonly="readonly" />
149                         [% ELSE %]
150                             <input type="text" id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" />
151                         [% END %]
152                     [% ELSIF ( mv.type == 'textarea' ) %]
153                         [% IF mv.readonly %]
154                             <textarea id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" rows="5" cols="64" readonly="readonly" >[% mv.value | html %]</textarea>
155                         [% ELSE %]
156                             <textarea id="[%- mv.id | html -%]" name="[% kohafield | html %]" class="input_marceditor" rows="5" cols="64" >[% mv.value | html %]</textarea>
157                         [% END %]
158                     [% END %]
159
160                     [% IF subfield.kohafield == 'items.more_subfields_xml' %]
161                         <input type="hidden" name="items.more_subfields_xml" value="[% subfield.subfield | html %]" />
162                     [% END %]
163                     <input type="hidden" name="tag"       value="[% subfield.tag | html %]" />
164                     <input type="hidden" name="kohafield" value="[% subfield.kohafield | html %]" /> [%# We should not need that but all item forms are not rewritten yet %]
165                     <input type="hidden" name="subfield"  value="[% subfield.subfield | html %]" />
166                     <input type="hidden" name="mandatory" value="[% subfield.mandatory | html %]" />
167                     <input type="hidden" name="important" value="[% subfield.important | html %]" />
168
169                     [% IF add_regex %]
170                         <span name="regex_fields" style="display: none;">
171                             s/<input type="text" name="[% kohafield | html %]_regex_search" class="regex_search" placeholder="regex pattern" />/
172                             <input type="text" name="[% kohafield | html %]_regex_replace" class="regex_replace" placeholder="regex replacement" />/
173                             <input type="text" name="[% kohafield | html %]_regex_modifiers" class="regex_modifiers" placeholder="ig" size="3" />
174                         </span>
175                     [% END %]
176
177                     [% IF add_delete_checkbox %]
178                         [% UNLESS ( subfield.mandatory ) %]
179                             <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 %]" />
180                         [% ELSE %]
181                             <span class="required">Required</span>
182                         [% END %]
183                     [% ELSE %]
184                         [% IF ( subfield.mandatory ) %] <span class="required">Required</span>
185                         [% ELSIF ( subfield.important ) %] <span class="important">Important</span>
186                         [% END %]
187                     [% END %]
188
189                     [% IF add_regex %]
190                         [% IF (mv.type == 'text' || mv.type == 'text2' || mv.type == 'textarea' ) %]
191                             <a href="#" name="[% kohafield | html %]_field_regex" class="field_regex" id="[% subfield.id | html %]" >RegEx</a>
192                         [% END %]
193                     [% END %]
194
195                     [% IF ( subfield.repeatable ) %]
196                         <a href="#" class="buttonPlus" onclick="CloneItemSubfield(this.parentNode.parentNode); return false;">
197                             <img src="[% interface | html %]/[% theme | html %]/img/clone-subfield.png" alt="Clone" title="Clone this subfield" />
198                         </a>
199                     [% END %]
200
201                     <span class="hint" id="hint[% subfield.tag | html %][% subfield.subfield | html %][% subfield.random | html %]"></span>
202
203                 </div>
204             </li>
205         [% END %]
206     </ol>
207 [% END %]
208
209 [% BLOCK items_table_batchmod %]
210
211     [% IF display_columns_selection %][%# Needs js/pages/batchMod.js %]
212         [% IF checkboxes_edit OR checkboxes_delete %]
213             <div id="toolbar">
214                 <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>
215             </div>
216         [% END %]
217
218         <div id="cataloguing_additem_itemlist">
219
220             <p id="selections">
221                 <strong>Show/hide columns:</strong>
222                 <span class="selected">
223                     <input type="checkbox" checked="checked" id="showall" />
224                     <label for="showall">Show all columns</label>
225                 </span>
226                 <span>
227                     <input type="checkbox" id="hideall" />
228                     <label for="hideall">Hide all columns</label>
229                 </span>
230
231                 [% FOREACH header IN item_header_loop %]
232                     <span class="selected">
233                         <input id="checkheader[% loop.count | html %]" type="checkbox" checked="checked" />
234                         <label for="checkheader[% loop.count | html %]">[% header.header_value | html %]</label>
235                     </span>
236                 [% END %]
237             </p> <!-- /#selections -->
238         </div>
239     [% END %]
240     [% SET date_fields = [ 'dateaccessioned', 'onloan', 'datelastseen', 'datelastborrowed', 'replacementpricedate' ] %]
241     <table id="itemst">
242         <thead>
243             <tr>
244                 [% IF checkboxes_edit OR checkboxes_delete %]
245                     <th></th>
246                 [% END %]
247                 <th class="anti-the">Title</th>
248                 <th class="holds_count" title="Item holds / Total holds">Holds</th>
249                 [% FOREACH item_header IN headers %]
250                     [% IF item_header.column_name %]
251                         <th data-colname="[% item_header.column_name | html %]">
252                     [% ELSE %]
253                         <th>
254                     [% END %]
255                         [% item_header.header_value | html %]
256                     </th>
257                 [% END %]
258             </tr>
259         </thead>
260         <tbody>
261             [% FOREACH item IN items %]
262                 [% SET can_be_edited = ! ( Koha.Preference('IndependentBranches') && ! logged_in_user.is_superlibrarian && item.homebranch != Branches.GetLoggedInBranchname() ) %]
263
264                 <tr>
265                     [% IF checkboxes_edit %]
266                         [% UNLESS can_be_edited%]
267                             <td class="error">Cannot edit</td>
268                         [% ELSE %]
269                             <td>
270                                 <input type="checkbox" name="itemnumber" value="[% item.itemnumber | html %]" id="row[% item.itemnumber | html %]" checked="checked" data-is-onloan="[% item.is_checked_out | html %]" />
271                             </td>
272                         [% END %]
273                     [% ELSIF checkboxes_delete %]
274                         [% UNLESS can_be_edited %]
275                             <td class="error">Cannot delete</td>
276                         [% ELSE %]
277                             [% IF item.safe_to_delete %]
278                                 <td><input type="checkbox" name="itemnumber" value="[% item.itemnumber | html %]" id="row[% item.itemnumber | html %]" checked="checked" /></td>
279                             [% ELSE %]
280                                 [% SET messages = item.safe_to_delete.messages %]
281                                 [% FOR m IN messages %]
282                                     [% SWITCH m.message %]
283                                     [% CASE "book_on_loan" %][% SET cannot_delete_reason = t("Item is checked out") %]
284                                     [% CASE "not_same_branch" %][% SET cannot_delete_reason = t("Item does not belong to your library") %]
285                                     [% CASE "book_reserved" %][% SET cannot_delete_reason = t("Item has a waiting hold") %]
286                                     [% CASE "linked_analytics" %][% SET cannot_delete_reason = t("Item has linked analytics") %]
287                                     [% CASE "last_item_for_hold" %][% SET cannot_delete_reason = t("Last item for bibliographic record with biblio-level hold on it") %]
288                                     [% CASE %][% SET cannot_delete_reason = t("Unknown reason") _ '(' _ m.message _ ')' %]
289                                     [% END %]
290                                 [% END %]
291
292                                 <td><input type="checkbox" name="itemnumber" value="[% item.itemnumber | html %]" id="row[% item.itemnumber | html %]" disabled="disabled" title="[% cannot_delete_reason | html %]"/></td>
293                             [% END %]
294
295                         [% END %]
296                     [% END %]
297                     <td>
298                         <label for="row[% item.itemnumber | html %]">
299                             <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% item.biblionumber | uri %]">
300                                 [% item.biblio.title | html %]
301                             </a>
302                             [% IF ( item.biblio.author ) %], by [% item.biblio.author | html %][% END %]
303                         </label>
304                     </td>
305                     <td class="holds_count">
306                         [% IF item.holds %]
307                             [% IF item.item_holds %]
308                                 <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 -%]" >
309                             [% ELSE %]
310                                 <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 -%]" >
311                             [% END %]
312                         [% ELSE %]
313                             [% IF item.holds %]
314                                 <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% item.biblionumber | uri %]" title="Holds on this record: [% item.holds | html -%]" >
315                             [% ELSE %]
316                                 <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% item.biblionumber | uri %]" title="No holds on this record" >
317                             [% END %]
318                         [% END # /IF item.holds %]
319                         [% IF item.holds %]
320                             [% item.item_holds | html %]/[% item.holds | html %]
321                         [% ELSE %]
322                             [% item.holds | html %]
323                         [% END %]
324                         </a>
325                     </td>
326                     [% FOREACH header IN headers %]
327                         [% SET attribute = header.attribute %]
328                         [% IF header.attribute AND date_fields.grep('^' _ attribute _ '$').size %]
329                             <td data-order="[% item.$attribute | html %]">[% item.$attribute | $KohaDates %]</td>
330                         [% ELSE %]
331                             <td>[% item.$attribute | html %]</td>
332                         [% END %]
333                     [% END %]
334
335                 </tr>
336             [% END # /FOREACH items %]
337         </tbody>
338     </table> <!-- /#itemst -->
339
340 [% END %]