Lines 34-39
Link Here
|
34 |
[% t("Catalog") | html %] › |
34 |
[% t("Catalog") | html %] › |
35 |
[% t("Koha") | html %] |
35 |
[% t("Koha") | html %] |
36 |
[% END %]</title> |
36 |
[% END %]</title> |
|
|
37 |
|
37 |
[% Asset.css("lib/Chocolat/css/chocolat.css") | $raw %] |
38 |
[% Asset.css("lib/Chocolat/css/chocolat.css") | $raw %] |
38 |
[% INCLUDE 'doc-head-close.inc' %] |
39 |
[% INCLUDE 'doc-head-close.inc' %] |
39 |
</head> |
40 |
</head> |
Lines 51-1022
Link Here
|
51 |
|
52 |
|
52 |
<body id="catalog_detail" class="catalog"> |
53 |
<body id="catalog_detail" class="catalog"> |
53 |
|
54 |
|
54 |
[% WRAPPER 'header.inc' %] |
55 |
[% WRAPPER 'header.inc' %] |
55 |
[% INCLUDE 'cat-search.inc' %] |
56 |
[% INCLUDE 'cat-search.inc' %] |
56 |
[% END %] |
57 |
[% END %] |
57 |
|
|
|
58 |
[% WRAPPER 'sub-header.inc' %] |
59 |
[% WRAPPER breadcrumbs %] |
60 |
[% WRAPPER breadcrumb_item %] |
61 |
<a href="/cgi-bin/koha/catalogue/search.pl">Catalog</a> |
62 |
[% END %] |
63 |
|
58 |
|
64 |
[% IF ( unknownbiblionumber ) %] |
59 |
[% WRAPPER 'sub-header.inc' %] |
65 |
[% WRAPPER breadcrumb_item bc_active= 1 %] |
60 |
[% WRAPPER breadcrumbs %] |
66 |
<span>Unknown record</span> |
|
|
67 |
[% END %] |
68 |
[% ELSE %] |
69 |
[% WRAPPER breadcrumb_item %] |
61 |
[% WRAPPER breadcrumb_item %] |
70 |
[% INCLUDE 'biblio-title.inc' link = 1 %] |
62 |
<a href="/cgi-bin/koha/catalogue/search.pl">Catalog</a> |
71 |
[% END %] |
63 |
[% END %] |
72 |
[% WRAPPER breadcrumb_item bc_active= 1 %] |
|
|
73 |
<span>Details</span> |
74 |
[% END %] |
75 |
[% END %] |
76 |
[% END #/ WRAPPER breadcrumbs %] |
77 |
[% END #/ WRAPPER sub-header.inc %] |
78 |
|
79 |
<div class="main container-fluid"> |
80 |
<div class="row"> |
81 |
<div class="col-sm-10 col-sm-push-2"> |
82 |
<main> |
83 |
<div class="row"> |
84 |
[% INCLUDE 'messages.inc' %] |
85 |
|
86 |
[% IF ( unknownbiblionumber ) %] |
87 |
<div class="dialog message">The record you requested does not exist ([% biblionumber | html %]).</div> |
88 |
[% ELSE %] |
89 |
|
90 |
[% IntranetCoce = Koha.Preference('IntranetCoce') %] |
91 |
[% CoceProviders = Koha.Preference('CoceProviders') %] |
92 |
[% CoceHost = Koha.Preference('CoceHost') %] |
93 |
[% SyndeticsCovers = Koha.Preference('SyndeticsEnabled') && Koha.Preference('SyndeticsCoverImages') %] |
94 |
|
95 |
[% INCLUDE 'cat-toolbar.inc' %] |
96 |
[% IF ( ocoins ) %] |
97 |
<!-- COinS / OpenURL --> |
98 |
<span class="Z3988" title="[% ocoins | html %]"></span> |
99 |
[% END %] |
100 |
|
64 |
|
101 |
[% IF ( CoverImagePlugins || AmazonCoverImages || LocalCoverImages || IntranetCoce || ( SyndeticsCovers ) || (Koha.Preference('CustomCoverImages') && Koha.Preference('CustomCoverImagesURL')) ) %] |
65 |
[% IF ( unknownbiblionumber ) %] |
102 |
<div id="catalogue_detail_biblio" class="col-xs-9"> |
66 |
[% WRAPPER breadcrumb_item bc_active= 1 %] |
103 |
[% ELSE %] |
67 |
<span>Unknown record</span> |
104 |
<div id="catalogue_detail_biblio" class="col-xs-12"> |
68 |
[% END %] |
105 |
[% END %] |
69 |
[% ELSE %] |
106 |
[% IF decoding_error || analytics_error %] |
70 |
[% WRAPPER breadcrumb_item %] |
107 |
<div class="page-section bg-danger"> |
71 |
[% INCLUDE 'biblio-title.inc' link = 1 %] |
108 |
<h1>Errors found</h1> |
72 |
[% END %] |
109 |
[% IF decoding_error %] |
73 |
[% WRAPPER breadcrumb_item bc_active= 1 %] |
110 |
<h2>Encoding errors</h2> |
74 |
<span>Details</span> |
111 |
<p class="biberror">There is at least one encoding error with this bibliographic record, the view may be degraded.</p> |
75 |
[% END %] |
112 |
<pre class="error">[% decoding_error | html %]</pre> |
|
|
113 |
[% END %] |
114 |
[% IF analytics_error %] |
115 |
<h2>Analytics errors</h2> |
116 |
<p class="analytics_error">There was an error searching for analytic records, please see the logs for details.</p> |
117 |
[% END %] |
118 |
</div> |
119 |
[% END %] |
120 |
|
121 |
<div class="page-section"> |
122 |
|
123 |
[% XSLTBloc | $raw %] |
124 |
|
125 |
[% IF shelves.count %] |
126 |
<span class="results_summary"><span class="label">Lists that include this title: </span> |
127 |
[% FOREACH s IN shelves %] |
128 |
<a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=view&shelfnumber=[% s.shelfnumber | uri %]">[% s.shelfname | html %]</a> |
129 |
[% IF ( loop.last ) %][% ELSE %]|[% END %] |
130 |
[% END %] |
76 |
[% END %] |
131 |
</span> |
77 |
[% END #/ WRAPPER breadcrumbs %] |
132 |
[% END %] |
78 |
[% END #/ WRAPPER sub-header.inc %] |
133 |
[% IF ( TagsEnabled && TagsShowOnDetail && TagLoop ) %] |
79 |
|
134 |
<span class="results_summary"><span class="label">Tags:</span> |
80 |
<div class="main container-fluid"> |
135 |
[% FOREACH TagLoo IN TagLoop %] |
81 |
<div class="row"> |
136 |
[% IF ( CAN_user_tools_moderate_tags ) %] |
82 |
<div class="col-sm-10 col-sm-push-2"> |
137 |
<a href="/cgi-bin/koha/tags/list.pl?tag=[% TagLoo.term |uri %]">[% TagLoo.term | html %]</a> |
83 |
<main> |
|
|
84 |
<div class="row"> |
85 |
<div class="col"> |
86 |
[% INCLUDE 'messages.inc' %] |
87 |
|
88 |
[% IF ( unknownbiblionumber ) %] |
89 |
<div class="dialog message">The record you requested does not exist ([% biblionumber | html %]).</div> |
90 |
</div> <!-- /.col --> |
91 |
[% ELSE %] |
92 |
[% IntranetCoce = Koha.Preference('IntranetCoce') %] |
93 |
[% CoceProviders = Koha.Preference('CoceProviders') %] |
94 |
[% CoceHost = Koha.Preference('CoceHost') %] |
95 |
[% SyndeticsCovers = Koha.Preference('SyndeticsEnabled') && Koha.Preference('SyndeticsCoverImages') %] |
96 |
|
97 |
[% INCLUDE 'cat-toolbar.inc' %] |
98 |
[% IF ( ocoins ) %] |
99 |
<!-- COinS / OpenURL --> |
100 |
<span class="Z3988" title="[% ocoins | html %]"></span> |
101 |
[% END %] |
102 |
</div> <!-- /.col --> |
103 |
|
104 |
[% IF ( CoverImagePlugins || AmazonCoverImages || LocalCoverImages || IntranetCoce || ( SyndeticsCovers ) || (Koha.Preference('CustomCoverImages') && Koha.Preference('CustomCoverImagesURL')) ) %] |
105 |
<div id="catalogue_detail_biblio" class="col-xs-9"> |
138 |
[% ELSE %] |
106 |
[% ELSE %] |
139 |
[% TagLoo.term | html %] |
107 |
<div id="catalogue_detail_biblio" class="col-xs-12"> |
140 |
[% END %] |
108 |
[% END %] |
141 |
<span class="weight">([% TagLoo.weight_total | html %])</span>[% IF ( loop.last ) %][% ELSE %], [% END %] |
|
|
142 |
[% END %] |
143 |
</span> |
144 |
[% END %] |
145 |
<span id="catalogue_detail_marc_preview" class="results_summary"><span class="label">MARC preview:</span> <a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% biblionumber | uri %]&viewas=html" title="MARC" class="previewMARC">Show</a></span> |
146 |
<span id="catalogue_detail_framework" class="results_summary"> |
147 |
<span class="label">MARC framework:</span> |
148 |
<span class="frameworkcode">[% Frameworks.GetName(biblio.frameworkcode) | html %]</span> |
149 |
</span> |
150 |
[% IF !item_level_itypes || Koha.Preference("BiblioItemtypeInfo") %] |
151 |
<span class="results_summary itemtype"><span class="label">Itemtype:</span> |
152 |
[% IF ( !noItemTypeImages && imageurl ) %] |
153 |
<img src="[% imageurl | html %]" alt="" /> |
154 |
[% END %] |
155 |
[% IF ( description ) %] |
156 |
<span class="itypetext">[% description | html %]</span> |
157 |
[% ELSE %] |
158 |
<span class="itypetext">[% itemtype | html %]</span> |
159 |
[% END %] |
160 |
</span> |
161 |
[% END %] |
162 |
|
109 |
|
163 |
[% IF ( Koha.Preference('SearchEngine') == 'Elasticsearch' ) %] |
110 |
[% IF decoding_error || analytics_error %] |
164 |
<span id="catalogue_detail_elastic_record" class="results_summary"><span class="label">Elasticsearch record:</span> <a href="/cgi-bin/koha/catalogue/showelastic.pl?id=[% biblionumber | uri %]" title="Elasticsearch record" class="previewElastic">Show</a></span> |
111 |
<div class="page-section bg-danger"> |
165 |
[% END %] |
112 |
<h1>Errors found</h1> |
|
|
113 |
[% IF decoding_error %] |
114 |
<h2>Encoding errors</h2> |
115 |
<p class="biberror">There is at least one encoding error with this bibliographic record, the view may be degraded.</p> |
116 |
<pre class="error">[% decoding_error | html %]</pre> |
117 |
[% END %] |
118 |
[% IF analytics_error %] |
119 |
<h2>Analytics errors</h2> |
120 |
<p class="analytics_error">There was an error searching for analytic records, please see the logs for details.</p> |
121 |
[% END %] |
122 |
</div> |
123 |
[% END %] |
166 |
|
124 |
|
167 |
[% SET record_source = biblio.metadata.record_source %] |
125 |
<div class="page-section"> |
168 |
[% IF ( record_source ) %] |
|
|
169 |
<span id="catalogue_detail_record_source" class="results_summary"> |
170 |
<span class="label">Record source:</span> |
171 |
[% IF record_source.can_be_edited %] |
172 |
[% record_source.name | html %] |
173 |
[% ELSE %] |
174 |
[% record_source.name | html %] <i class="fa fa-lock"></i> |
175 |
[% END %] |
176 |
</span> |
177 |
[% END %] |
178 |
|
126 |
|
179 |
[% IF ( holdcount ) %] |
127 |
[% XSLTBloc | $raw %] |
180 |
<span class="results_summary"> |
|
|
181 |
<span class="label">Holds:</span> |
182 |
<span class="number_box"> |
183 |
[% IF CAN_user_reserveforothers_place_holds %] |
184 |
<a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% biblionumber | uri %]">[% holdcount | html %]</a> |
185 |
[% ELSE %] |
186 |
<span>[% holdcount | html %]</span> |
187 |
[% END %] |
188 |
</span> |
189 |
</span> |
190 |
[% END %] |
191 |
|
128 |
|
192 |
[% IF illrequests.count %] |
129 |
[% IF shelves.count %] |
193 |
<span class="results_summary"> |
130 |
<span class="results_summary"><span class="label">Lists that include this title: </span> |
194 |
<span class="label">ILL requests:</span> |
131 |
[% FOREACH s IN shelves %] |
195 |
[% IF CAN_user_ill %] |
132 |
<a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=view&shelfnumber=[% s.shelfnumber | uri %]">[% s.shelfname | html %]</a> |
196 |
[% FOREACH ill IN illrequests %] |
133 |
[% IF ( loop.last ) %][% ELSE %]|[% END %] |
197 |
<a href="/cgi-bin/koha/ill/ill-requests.pl?method=illview&illrequest_id=[% ill.illrequest_id | uri %]">Request [% ill.illrequest_id | html %]</a>[% IF ! loop.last %], [% END %] |
134 |
[% END %] |
198 |
[% END %] |
135 |
</span> |
199 |
[% ELSE %] |
136 |
[% END %] |
200 |
[% FOREACH ill IN illrequests %] |
|
|
201 |
<span>Request [% ill.illrequest_id | html %]</span>[% IF ! loop.last %], [% END %] |
202 |
[% END %] |
203 |
[% END %] |
204 |
</span> |
205 |
[% END %] |
206 |
|
137 |
|
207 |
[% IF ( article_requests_count = biblio.article_requests.filter_by_current.count ) %] |
138 |
[% IF ( TagsEnabled && TagsShowOnDetail && TagLoop ) %] |
208 |
<span class="results_summary"> |
139 |
<span class="results_summary"><span class="label">Tags:</span> |
209 |
<span class="label">Article requests:</span> |
140 |
[% FOREACH TagLoo IN TagLoop %] |
210 |
<span class="number_box"> |
141 |
[% IF ( CAN_user_tools_moderate_tags ) %] |
211 |
<a href="/cgi-bin/koha/circ/request-article.pl?biblionumber=[% biblionumber | uri %]">[% article_requests_count | html %]</a> |
142 |
<a href="/cgi-bin/koha/tags/list.pl?tag=[% TagLoo.term |uri %]">[% TagLoo.term | html %]</a> |
212 |
</span> |
143 |
[% ELSE %] |
213 |
</span> |
144 |
[% TagLoo.term | html %] |
214 |
[% END %] |
145 |
[% END %] |
|
|
146 |
<span class="weight">([% TagLoo.weight_total | html %])</span>[% IF ( loop.last ) %][% ELSE %], [% END %] |
147 |
[% END %] |
148 |
</span> |
149 |
[% END %] |
215 |
|
150 |
|
216 |
[% IF course_reserves %] |
151 |
<span id="catalogue_detail_marc_preview" class="results_summary"> |
217 |
<span class="results_summary"><span class="label">Courses that have reserved this title: </span> |
152 |
<span class="label">MARC preview:</span> |
218 |
[% FOREACH c IN course_reserves %] |
153 |
<a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% biblionumber | uri %]&viewas=html" title="MARC" class="previewMARC">Show</a> |
219 |
<a href="/cgi-bin/koha/course_reserves/course-details.pl?course_id=[% c.course_id | uri %]">[% c.course.course_name | html %]</a> |
154 |
</span> |
220 |
[% IF ( loop.last ) %][% ELSE %]|[% END %] |
155 |
<span id="catalogue_detail_framework" class="results_summary"> |
221 |
[% END %] |
156 |
<span class="label">MARC framework:</span> |
222 |
</span> |
157 |
<span class="frameworkcode">[% Frameworks.GetName(biblio.frameworkcode) | html %]</span> |
223 |
[% END %] |
158 |
</span> |
224 |
</div> [%# .page-section %] |
159 |
[% IF !item_level_itypes || Koha.Preference("BiblioItemtypeInfo") %] |
|
|
160 |
<span class="results_summary itemtype"> |
161 |
<span class="label">Itemtype:</span> |
162 |
[% IF ( !noItemTypeImages && imageurl ) %] |
163 |
<img src="[% imageurl | html %]" alt="" /> |
164 |
[% END %] |
165 |
[% IF ( description ) %] |
166 |
<span class="itypetext">[% description | html %]</span> |
167 |
[% ELSE %] |
168 |
<span class="itypetext">[% itemtype | html %]</span> |
169 |
[% END %] |
170 |
</span> |
171 |
[% END %] |
225 |
|
172 |
|
226 |
[% IF ( CoverImagePlugins || AmazonCoverImages || LocalCoverImages || IntranetCoce || ( SyndeticsCovers ) || (Koha.Preference('CustomCoverImages') && Koha.Preference('CustomCoverImagesURL')) ) %] |
173 |
[% IF ( Koha.Preference('SearchEngine') == 'Elasticsearch' ) %] |
227 |
</div> |
174 |
<span id="catalogue_detail_elastic_record" class="results_summary"> |
228 |
<div class="col-xs-3 bookcoverimg"> |
175 |
<span class="label">Elasticsearch record:</span> |
229 |
<div id="biblio-cover-slider" class="cover-slider" data-isbn="[% normalized_isbn | html %]"> |
176 |
<a href="/cgi-bin/koha/catalogue/showelastic.pl?id=[% biblionumber | uri %]" title="Elasticsearch record" class="previewElastic">Show</a> |
230 |
[% IF ( LocalCoverImages ) %] |
177 |
</span> |
231 |
[% IF localimages.count %] |
|
|
232 |
[% FOREACH image IN localimages %] |
233 |
<div class="cover-image local-coverimg"> |
234 |
<a href="/cgi-bin/koha/catalogue/image.pl?imagenumber=[% image.imagenumber | uri %]" title="Local cover image"> |
235 |
<img src="/cgi-bin/koha/catalogue/image.pl?thumbnail=1&imagenumber=[% image.imagenumber | uri %]" alt="Local cover image" data-link="/cgi-bin/koha/catalogue/imageviewer.pl?biblionumber=[% biblionumber | uri %]&imagenumber=[% image.imagenumber | uri %]" /> |
236 |
</a> |
237 |
<div class="hint">Local cover image</div> |
238 |
</div> |
239 |
[% END %] |
178 |
[% END %] |
240 |
[% END %] |
|
|
241 |
[% END %] |
242 |
|
243 |
[% IF ( AmazonCoverImages && normalized_isbn) %] |
244 |
<div class="cover-image" id="amazon-bookcoverimg"> |
245 |
<a href="https://images-na.ssl-images-amazon.com/images/P/[% normalized_isbn | uri %].01.LZZZZZZZ.jpg" title="Amazon cover image"> |
246 |
<img src="https://images-na.ssl-images-amazon.com/images/P/[% normalized_isbn | uri %].01.MZZZZZZZ.jpg" alt="Amazon cover image" data-link="http://www.amazon[% AmazonTld | uri %]/gp/reader/[% normalized_isbn | uri %][% AmazonAssocTag | uri %]#reader-link"/> |
247 |
</a> |
248 |
<div class="hint">Image from Amazon.com</div> |
249 |
</div> |
250 |
[% END %] |
251 |
|
179 |
|
252 |
[% IF ( IntranetCoce && CoceProviders && normalized_isbn ) %] |
180 |
[% SET record_source = biblio.metadata.record_source %] |
253 |
[% coce_id = normalized_ean || normalized_isbn %] |
181 |
[% IF ( record_source ) %] |
254 |
<div class="cover-image coce-coverimg"> |
182 |
<span id="catalogue_detail_record_source" class="results_summary"> |
255 |
[% IF ( coce_id ) %] |
183 |
<span class="label">Record source:</span> |
256 |
<a title="Image from Coce" class="[% coce_id | html %]" id="coce-thumbnail-preview"></a> |
184 |
[% IF record_source.can_be_edited %] |
257 |
[% ELSE %] |
185 |
[% record_source.name | html %] |
258 |
<span class="no-image">No cover image available</span> |
186 |
[% ELSE %] |
|
|
187 |
[% record_source.name | html %] <i class="fa fa-lock"></i> |
188 |
[% END %] |
189 |
</span> |
259 |
[% END %] |
190 |
[% END %] |
260 |
<div class="hint">Image from Coce</div> |
191 |
|
261 |
</div> |
192 |
[% IF ( holdcount ) %] |
262 |
[% END %] |
193 |
<span class="results_summary"> |
263 |
|
194 |
<span class="label">Holds:</span> |
264 |
[% IF ( SyndeticsCovers ) %] |
195 |
<span class="number_box"> |
265 |
[% IF ( content_identifier_exists ) %] |
196 |
[% IF CAN_user_reserveforothers_place_holds %] |
266 |
<div class="cover-image" id="syndetics-bookcoverimg"> |
197 |
<a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% biblionumber | uri %]">[% holdcount | html %]</a> |
267 |
<a href="https://secure.syndetics.com/index.aspx?isbn=[% normalized_isbn | url %]/LC.GIF&client=[% Koha.Preference('SyndeticsClientCode') | url %]&type=xw10&upc=[% normalized_upc | url %]&oclc=[% normalized_oclc | url %]" title="Syndetics cover image"> |
198 |
[% ELSE %] |
268 |
<img src="https://secure.syndetics.com/index.aspx?isbn=[% normalized_isbn | url %]/[% Koha.Preference('SyndeticsCoverImageSize') | url %].GIF&client=[% Koha.Preference('SyndeticsClientCode') | url %]&type=xw10&upc=[% normalized_upc | url %]&oclc=[% normalized_oclc | url %]" alt="" class="thumbnail" /> |
199 |
<span>[% holdcount | html %]</span> |
269 |
</a> |
200 |
[% END %] |
270 |
<div class="hint">Image from Syndetics</div> |
201 |
</span> |
271 |
</div> |
202 |
</span> |
272 |
[% ELSE %] |
|
|
273 |
<span class="no-image">No cover image available</span> |
274 |
[% END %] |
203 |
[% END %] |
275 |
[% END %] |
204 |
|
276 |
|
205 |
[% IF illrequests.count %] |
277 |
[% IF Koha.Preference('CustomCoverImages') && Koha.Preference('CustomCoverImagesURL') %] |
206 |
<span class="results_summary"> |
278 |
[% SET custom_cover_image_url = biblio.custom_cover_image_url %] |
207 |
<span class="label">ILL requests:</span> |
279 |
[% IF custom_cover_image_url %] |
208 |
[% IF CAN_user_ill %] |
280 |
<div class="cover-image" id="custom-coverimg"> |
209 |
[% FOREACH ill IN illrequests %] |
281 |
<a class="custom_cover_image" href="[% custom_cover_image_url | url %]" title="Custom cover image"> |
210 |
<a href="/cgi-bin/koha/ill/ill-requests.pl?method=illview&illrequest_id=[% ill.illrequest_id | uri %]">Request [% ill.illrequest_id | html %]</a>[% IF ! loop.last %], [% END %] |
282 |
<img id="custom-img" alt="Custom cover image" src="[% custom_cover_image_url | url %]" /> |
211 |
[% END %] |
283 |
</a> |
212 |
[% ELSE %] |
284 |
<div class="hint">Custom cover image</div> |
213 |
[% FOREACH ill IN illrequests %] |
|
|
214 |
<span>Request [% ill.illrequest_id | html %]</span>[% IF ! loop.last %], [% END %] |
215 |
[% END %] |
216 |
[% END %] |
217 |
</span> |
218 |
[% END %] |
219 |
|
220 |
[% IF ( article_requests_count = biblio.article_requests.filter_by_current.count ) %] |
221 |
<span class="results_summary"> |
222 |
<span class="label">Article requests:</span> |
223 |
<span class="number_box"> |
224 |
<a href="/cgi-bin/koha/circ/request-article.pl?biblionumber=[% biblionumber | uri %]">[% article_requests_count | html %]</a> |
225 |
</span> |
226 |
</span> |
227 |
[% END %] |
228 |
|
229 |
[% IF course_reserves %] |
230 |
<span class="results_summary"><span class="label">Courses that have reserved this title: </span> |
231 |
[% FOREACH c IN course_reserves %] |
232 |
<a href="/cgi-bin/koha/course_reserves/course-details.pl?course_id=[% c.course_id | uri %]">[% c.course.course_name | html %]</a> |
233 |
[% IF ( loop.last ) %][% ELSE %]|[% END %] |
234 |
[% END %] |
235 |
</span> |
236 |
[% END %] |
237 |
</div> [%# .page-section %] |
238 |
|
239 |
[% IF ( CoverImagePlugins || AmazonCoverImages || LocalCoverImages || IntranetCoce || ( SyndeticsCovers ) || (Koha.Preference('CustomCoverImages') && Koha.Preference('CustomCoverImagesURL')) ) %] |
285 |
</div> |
240 |
</div> |
286 |
[% END %] |
241 |
<div class="col-xs-3 bookcoverimg"> |
287 |
[% END %] |
242 |
<div id="biblio-cover-slider" class="cover-slider" data-isbn="[% normalized_isbn | html %]"> |
288 |
</div> <!-- /.cover-slider --> |
243 |
[% IF ( LocalCoverImages ) %] |
289 |
</div> <!-- /.bookcoverimg.col-xs-3 --> |
244 |
[% IF localimages.count %] |
290 |
[% ELSE %] |
245 |
[% FOREACH image IN localimages %] |
291 |
</div> <!-- /.col-xs-* --> |
246 |
<div class="cover-image local-coverimg"> |
292 |
[% END # /IF ( AmazonCoverImages, etc ) %] |
247 |
<a href="/cgi-bin/koha/catalogue/image.pl?imagenumber=[% image.imagenumber | uri %]" title="Local cover image"> |
293 |
</div> |
248 |
<img src="/cgi-bin/koha/catalogue/image.pl?thumbnail=1&imagenumber=[% image.imagenumber | uri %]" alt="Local cover image" data-link="/cgi-bin/koha/catalogue/imageviewer.pl?biblionumber=[% biblionumber | uri %]&imagenumber=[% image.imagenumber | uri %]" /> |
294 |
|
249 |
</a> |
295 |
<div id="bibliodetails" class="toptabs"> |
250 |
<div class="hint">Local cover image</div> |
296 |
|
251 |
</div> |
297 |
<ul class="nav nav-tabs" role="tablist"> |
252 |
[% END %] |
298 |
[% IF Koha.Preference('SeparateHoldings') %] |
253 |
[% END %] |
299 |
[% IF items_to_display_count - ( other_holdings_count || 0 ) %] |
254 |
[% END %] |
300 |
<li role="presentation"> |
255 |
|
301 |
[%# FIXME We could build the numbers from DataTable's info %] |
256 |
[% IF ( AmazonCoverImages && normalized_isbn) %] |
302 |
<a href="#holdings" aria-controls="holdings" role="tab" data-toggle="tab">[% Branches.GetLoggedInBranchname | html %] holdings ([% items_to_display_count - ( other_holdings_count || 0 ) - ( hidden_count || 0 ) || 0 | html %])</a> |
257 |
<div class="cover-image" id="amazon-bookcoverimg"> |
303 |
</li> |
258 |
<a href="https://images-na.ssl-images-amazon.com/images/P/[% normalized_isbn | uri %].01.LZZZZZZZ.jpg" title="Amazon cover image"> |
304 |
[% END %] |
259 |
<img src="https://images-na.ssl-images-amazon.com/images/P/[% normalized_isbn | uri %].01.MZZZZZZZ.jpg" alt="Amazon cover image" data-link="http://www.amazon[% AmazonTld | uri %]/gp/reader/[% normalized_isbn | uri %][% AmazonAssocTag | uri %]#reader-link"/> |
305 |
[% IF other_holdings_count %] |
260 |
</a> |
306 |
<li role="presentation"> |
261 |
<div class="hint">Image from Amazon.com</div> |
307 |
<a href="#otherholdings" aria-controls="otherholdings" role="tab" data-toggle="tab">Other holdings ([% other_holdings_count || 0 | html %])</a> |
262 |
</div> |
308 |
</li> |
263 |
[% END %] |
309 |
[% END %] |
264 |
|
310 |
[% ELSE %] |
265 |
[% IF ( IntranetCoce && CoceProviders && normalized_isbn ) %] |
311 |
<li role="presentation"> |
266 |
[% coce_id = normalized_ean || normalized_isbn %] |
312 |
<a href="#holdings" aria-controls="holdings" role="tab" data-toggle="tab">Holdings ([% items_to_display_count || 0 | html %])</a> |
267 |
<div class="cover-image coce-coverimg"> |
313 |
</li> |
268 |
[% IF ( coce_id ) %] |
314 |
[% END %] |
269 |
<a title="Image from Coce" class="[% coce_id | html %]" id="coce-thumbnail-preview"></a> |
315 |
[% IF Koha.Preference('EnableItemGroups') %] |
270 |
[% ELSE %] |
316 |
<li role="presentation"> |
271 |
<span class="no-image">No cover image available</span> |
317 |
<a href="#item_groups" aria-controls="item_groups" role="tab" data-toggle="tab">Item groups</a> |
272 |
[% END %] |
318 |
</li> |
273 |
<div class="hint">Image from Coce</div> |
319 |
[% END %] |
274 |
</div> |
320 |
[% IF ( MARCNOTES || notes ) %]<li role="presentation"><a href="#description" aria-controls="description" role="tab" data-toggle="tab">Descriptions ([% ( MARCNOTES.size || 1 ) | html %])</a></li>[% END %] |
275 |
[% END %] |
321 |
[% IF ComponentParts && ComponentParts.size %]<li id="components_tab" role="presentation"><a href="#components" aria-controls="components" role="tab" data-toggle="tab">Components ([% ComponentParts.size | html %])</a></li>[% END %] |
276 |
|
322 |
[% IF ( subscriptionsnumber ) %]<li role="presentation"><a href="#subscriptions" aria-controls="subscriptions" role="tab" data-toggle="tab">Subscriptions</a></li>[% END %] |
277 |
[% IF ( SyndeticsCovers ) %] |
323 |
[% IF Koha.Preference('AcquisitionDetails') %]<li role="presentation"><a href="#acq_details" aria-controls="acq_details" role="tab" data-toggle="tab">Acquisition details</a></li>[% END %] |
278 |
[% IF ( content_identifier_exists ) %] |
324 |
[% IF suggestions.count %]<li role="presentation"><a href="#suggestion_details" aria-controls="suggestion_details" role="tab" data-toggle="tab">Suggestion details</a></li>[% END %] |
279 |
<div class="cover-image" id="syndetics-bookcoverimg"> |
325 |
[% IF ( FRBRizeEditions ) %][% IF ( XISBNS ) %]<li role="presentation"><a href="#editions" aria-controls="editions" role="tab" data-toggle="tab">Editions</a></li>[% END %][% END %] |
280 |
<a href="https://secure.syndetics.com/index.aspx?isbn=[% normalized_isbn | url %]/LC.GIF&client=[% Koha.Preference('SyndeticsClientCode') | url %]&type=xw10&upc=[% normalized_upc | url %]&oclc=[% normalized_oclc | url %]" title="Syndetics cover image"> |
326 |
[% IF ( ( Koha.Preference('CatalogConcerns') || Koha.Preference('OpacCatalogConcerns') ) && CAN_user_editcatalogue_edit_catalogue ) %]<li role="presentation"><a href="#concerns" aria-controls="concerns" role="tab" data-toggle="tab">Concerns ([% biblio.tickets.count | html %])</a></li>[% END %] |
281 |
<img src="https://secure.syndetics.com/index.aspx?isbn=[% normalized_isbn | url %]/[% Koha.Preference('SyndeticsCoverImageSize') | url %].GIF&client=[% Koha.Preference('SyndeticsClientCode') | url %]&type=xw10&upc=[% normalized_upc | url %]&oclc=[% normalized_oclc | url %]" alt="" class="thumbnail" /> |
327 |
[% IF ( LocalCoverImages ) %] |
282 |
</a> |
328 |
<li role="presentation"> |
283 |
<div class="hint">Image from Syndetics</div> |
329 |
<a href="#images" aria-controls="images" role="tab" data-toggle="tab">Images ([% localimages.count || 0 | html %])</a> |
284 |
</div> |
330 |
</li> |
285 |
[% ELSE %] |
331 |
[% END %] |
286 |
<span class="no-image">No cover image available</span> |
332 |
[% IF HTML5MediaEnabled && HTML5MediaSets.size %] |
287 |
[% END %] |
333 |
<li id="media_tab" role="presentation"><a href="#html5media" aria-controls="html5media" role="tab" data-toggle="tab">Play media</a></li> |
288 |
[% END %] |
334 |
[% END %] |
289 |
|
335 |
[% IF ( Koha.Preference('NovelistSelectStaffEnabled') && Koha.Preference('NovelistSelectStaffProfile') && Koha.Preference('NovelistSelectStaffView') == 'tab' ) %] |
290 |
[% IF Koha.Preference('CustomCoverImages') && Koha.Preference('CustomCoverImagesURL') %] |
336 |
<li class="NovelistSelect" style="display:none;" role="presentation"><a href="#NovelistSelect" aria-controls="NovelistSelect" role="tab" data-toggle="tab">NoveList Select</a></li> |
291 |
[% SET custom_cover_image_url = biblio.custom_cover_image_url %] |
337 |
[% END %] |
292 |
[% IF custom_cover_image_url %] |
338 |
[% FOREACH plugins_intranet_catalog_biblio_tab IN plugins_intranet_catalog_biblio_tabs %] |
293 |
<div class="cover-image" id="custom-coverimg"> |
339 |
<li role="presentation"><a href="#[% plugins_intranet_catalog_biblio_tab.id | uri %]" aria-controls="[% plugins_intranet_catalog_biblio_tab.id | uri %]" role="tab" data-toggle="tab">[% plugins_intranet_catalog_biblio_tab.title | html %]</a></li> |
294 |
<a class="custom_cover_image" href="[% custom_cover_image_url | url %]" title="Custom cover image"> |
340 |
[% END %] |
295 |
<img id="custom-img" alt="Custom cover image" src="[% custom_cover_image_url | url %]" /> |
341 |
</ul> |
296 |
</a> |
342 |
|
297 |
<div class="hint">Custom cover image</div> |
343 |
<div class="tab-content"> |
298 |
</div> |
344 |
[% IF Koha.Preference('EnableItemGroups') %] |
299 |
[% END %] |
345 |
<div role="tabpanel" class="tab-pane" id="item_groups"> |
300 |
[% END %] |
346 |
[% IF CAN_user_editcatalogue_manage_item_groups %] |
301 |
</div> <!-- /.cover-slider --> |
347 |
<div class="item_groups_table_table_controls"> |
302 |
</div> <!-- /.bookcoverimg.col-xs-3 --> |
348 |
<a href="#" class="item-group-create btn btn-default btn-xs"><i class="fa fa-plus"></i> New item group</a> |
303 |
[% ELSE %] |
349 |
</div> |
304 |
</div> <!-- /.col-xs-* --> |
350 |
[% END %] |
305 |
[% END # /IF ( AmazonCoverImages, etc ) %] |
351 |
<table class="items-group-table" id="items-group-table"> |
306 |
</div> |
352 |
<thead> |
|
|
353 |
<tr> |
354 |
<th>Display order</th> |
355 |
<th>Description</th> |
356 |
<th class="NoSort"> </th> |
357 |
</tr> |
358 |
</thead> |
359 |
</table> |
360 |
</div> |
361 |
[% END %] |
362 |
|
307 |
|
|
|
308 |
<div id="bibliodetails" class="toptabs"> |
363 |
|
309 |
|
364 |
<div role="tabpanel" class="tab-pane" id="holdings"> |
310 |
<ul class="nav nav-tabs" role="tablist"> |
|
|
311 |
[% IF Koha.Preference('SeparateHoldings') %] |
312 |
[% IF items_to_display_count - ( other_holdings_count || 0 ) %] |
313 |
<li role="presentation"> |
314 |
[%# FIXME We could build the numbers from DataTable's info %] |
315 |
<a href="#holdings" aria-controls="holdings" role="tab" data-toggle="tab">[% Branches.GetLoggedInBranchname | html %] holdings ([% items_to_display_count - ( other_holdings_count || 0 ) - ( hidden_count || 0 ) || 0 | html %])</a> |
316 |
</li> |
317 |
[% END %] |
318 |
[% IF other_holdings_count %] |
319 |
<li role="presentation"> |
320 |
<a href="#otherholdings" aria-controls="otherholdings" role="tab" data-toggle="tab">Other holdings ([% other_holdings_count || 0 | html %])</a> |
321 |
</li> |
322 |
[% END %] |
323 |
[% ELSE %] |
324 |
<li role="presentation"> |
325 |
<a href="#holdings" aria-controls="holdings" role="tab" data-toggle="tab">Holdings ([% items_to_display_count || 0 | html %])</a> |
326 |
</li> |
327 |
[% END %] |
328 |
[% IF Koha.Preference('EnableItemGroups') %] |
329 |
<li role="presentation"> |
330 |
<a href="#item_groups" aria-controls="item_groups" role="tab" data-toggle="tab">Item groups</a> |
331 |
</li> |
332 |
[% END %] |
365 |
|
333 |
|
366 |
[% IF ( Koha.Preference('NovelistSelectStaffEnabled') && Koha.Preference('NovelistSelectStaffProfile') && Koha.Preference('NovelistSelectStaffView') == 'above' ) %] |
334 |
[% IF ( MARCNOTES || notes ) %] |
367 |
<span class="results_summary NovelistSelect" style="display:none;"> |
335 |
<li role="presentation"> |
368 |
<span class="label">Novelist Select: </span> |
336 |
<a href="#description" aria-controls="description" role="tab" data-toggle="tab">Descriptions ([% ( MARCNOTES.size || 1 ) | html %])</a> |
369 |
<div data-novelist-novelistselect=[% normalized_isbn | html %]></div> |
337 |
</li> |
370 |
</span> |
338 |
[% END %] |
371 |
[% END %] |
339 |
[% IF ComponentParts && ComponentParts.size %] |
|
|
340 |
<li id="components_tab" role="presentation"> |
341 |
<a href="#components" aria-controls="components" role="tab" data-toggle="tab">Components ([% ComponentParts.size | html %])</a> |
342 |
</li> |
343 |
[% END %] |
372 |
|
344 |
|
373 |
[% SET hidden_count = all_items_count - items_to_display_count %] |
345 |
[% IF ( subscriptionsnumber ) %] |
374 |
[% IF all_items_count %] |
346 |
<li role="presentation"> |
375 |
[% PROCESS items_table tab="holdings" %] |
347 |
<a href="#subscriptions" aria-controls="subscriptions" role="tab" data-toggle="tab">Subscriptions</a> |
|
|
348 |
</li> |
349 |
[% END %] |
376 |
|
350 |
|
377 |
[% IF hidden_count %] |
351 |
[% IF Koha.Preference('AcquisitionDetails') %] |
378 |
[%# FIXME We could deal with that in JS and prevent a full refresh %] |
352 |
<li role="presentation"> |
379 |
<p><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber | uri %]&showallitems=1">Show all items ([% hidden_count | html %] hidden)</a> |
353 |
<a href="#acq_details" aria-controls="acq_details" role="tab" data-toggle="tab">Acquisition details</a> |
380 |
[% END %] |
354 |
</li> |
381 |
[% ELSE %] |
355 |
[% END %] |
382 |
[% IF ( ALTERNATEHOLDINGS ) %] |
|
|
383 |
[% FOREACH ALTERNATEHOLDING IN ALTERNATEHOLDINGS %] |
384 |
<div id="alternateholdings"><span class="holdings_label">Holdings:</span> [% ALTERNATEHOLDING.holding | html %]</div> |
385 |
[% END %] |
386 |
[% ELSE %] |
387 |
<div id="noitems">No physical items for this record</div> |
388 |
[% END %] |
389 |
[% END %] |
390 |
|
356 |
|
391 |
[% IF ( Koha.Preference('NovelistSelectStaffEnabled') && Koha.Preference('NovelistSelectStaffProfile') && Koha.Preference('NovelistSelectStaffView') == 'below' ) %] |
357 |
[% IF suggestions.count %] |
392 |
<span class="results_summary NovelistSelect" style="display:none;"> |
358 |
<li role="presentation"> |
393 |
<span class="label">Novelist Select: </span> |
359 |
<a href="#suggestion_details" aria-controls="suggestion_details" role="tab" data-toggle="tab">Suggestion details</a> |
394 |
<div data-novelist-novelistselect=[% normalized_isbn | html %]></div> |
360 |
</li> |
395 |
</span> |
361 |
[% END %] |
396 |
[% END %] |
|
|
397 |
</div> |
398 |
|
362 |
|
399 |
[% IF Koha.Preference('SeparateHoldings') %] |
363 |
[% IF ( FRBRizeEditions ) %] |
400 |
<div role="tabpanel" class="tab-pane" id="otherholdings"> |
364 |
[% IF ( XISBNS ) %] |
401 |
[% PROCESS items_table tab="otherholdings" %] |
365 |
<li role="presentation"> |
402 |
</div> |
366 |
<a href="#editions" aria-controls="editions" role="tab" data-toggle="tab">Editions</a> |
403 |
[% END %] |
367 |
</li> |
|
|
368 |
[% END %] |
369 |
[% END %] |
404 |
|
370 |
|
405 |
[% IF ( MARCNOTES ) %] |
371 |
[% IF ( ( Koha.Preference('CatalogConcerns') || Koha.Preference('OpacCatalogConcerns') ) && CAN_user_editcatalogue_edit_catalogue ) %] |
|
|
372 |
<li role="presentation"> |
373 |
<a href="#concerns" aria-controls="concerns" role="tab" data-toggle="tab">Concerns ([% biblio.tickets.count | html %])</a> |
374 |
</li> |
375 |
[% END %] |
406 |
|
376 |
|
407 |
<div role="tabpanel" class="tab-pane" id="description"> |
377 |
[% IF ( LocalCoverImages ) %] |
408 |
<div class="content_set"> |
378 |
<li role="presentation"> |
|
|
379 |
<a href="#images" aria-controls="images" role="tab" data-toggle="tab">Images ([% localimages.count || 0 | html %])</a> |
380 |
</li> |
381 |
[% END %] |
409 |
|
382 |
|
410 |
[% FOREACH MARCNOTE IN MARCNOTES %] |
383 |
[% IF HTML5MediaEnabled && HTML5MediaSets.size %] |
411 |
<p class="marcnote marcnote-[% MARCNOTE.tag | html %]" id="marcnote-[% MARCNOTE.tag | html %]-[% loop.count | html %]"> |
384 |
<li id="media_tab" role="presentation"> |
412 |
[% IF MARCNOTE.marcnote.match('^https?://\S+$') %] |
385 |
<a href="#html5media" aria-controls="html5media" role="tab" data-toggle="tab">Play media</a> |
413 |
<a href="[% MARCNOTE.marcnote | url %]">[% MARCNOTE.marcnote | html %]</a> |
386 |
</li> |
414 |
[% ELSE %] |
387 |
[% END %] |
415 |
[% MARCNOTE.marcnote | html | html_line_break %] |
|
|
416 |
[% END %] |
417 |
</p> |
418 |
[% END %] |
419 |
</div> |
420 |
</div> |
421 |
|
388 |
|
422 |
[% END %] |
389 |
[% IF ( Koha.Preference('NovelistSelectStaffEnabled') && Koha.Preference('NovelistSelectStaffProfile') && Koha.Preference('NovelistSelectStaffView') == 'tab' ) %] |
|
|
390 |
<li class="NovelistSelect" style="display:none;" role="presentation"> |
391 |
<a href="#NovelistSelect" aria-controls="NovelistSelect" role="tab" data-toggle="tab">NoveList Select</a> |
392 |
</li> |
393 |
[% END %] |
423 |
|
394 |
|
424 |
[% IF ComponentParts && ComponentParts.size %] |
395 |
[% FOREACH plugins_intranet_catalog_biblio_tab IN plugins_intranet_catalog_biblio_tabs %] |
425 |
<div role="tabpanel" class="tab-pane" id="components"> |
396 |
<li role="presentation"> |
426 |
<div class="content_set"> |
397 |
<a href="#[% plugins_intranet_catalog_biblio_tab.id | uri %]" aria-controls="[% plugins_intranet_catalog_biblio_tab.id | uri %]" role="tab" data-toggle="tab">[% plugins_intranet_catalog_biblio_tab.title | html %]</a> |
427 |
<table> |
398 |
</li> |
428 |
[% FOR PART IN ComponentParts %] |
399 |
[% END %] |
429 |
<tr> |
400 |
</ul> |
430 |
<td> |
401 |
|
431 |
[% PART | $raw %] |
402 |
<div class="tab-content"> |
432 |
</td> |
403 |
[% IF Koha.Preference('EnableItemGroups') %] |
433 |
</tr> |
404 |
<div role="tabpanel" class="tab-pane" id="item_groups"> |
434 |
[% END %] |
405 |
[% IF CAN_user_editcatalogue_manage_item_groups %] |
435 |
</table> |
406 |
<div class="item_groups_table_table_controls"> |
436 |
[% IF ComponentParts.size == Koha.Preference('MaxComponentRecords')%] |
407 |
<a href="#" class="item-group-create btn btn-default btn-xs"><i class="fa fa-plus"></i> New item group</a> |
437 |
<p>Only [% ComponentParts.size | html %] results are shown: <a href="/cgi-bin/koha/catalogue/search.pl?q=[% ComponentPartsQuery | url %]"/>show all component parts</a></p> |
408 |
</div> |
438 |
[% END %] |
409 |
[% END %] |
439 |
</div> <!-- /.content_set --> |
410 |
<table class="items-group-table" id="items-group-table"> |
440 |
</div> <!-- /#components --> |
411 |
<thead> |
|
|
412 |
<tr> |
413 |
<th>Display order</th> |
414 |
<th>Description</th> |
415 |
<th class="NoSort"> </th> |
416 |
</tr> |
417 |
</thead> |
418 |
</table> |
419 |
</div> |
420 |
[% END %] |
441 |
|
421 |
|
442 |
[% END %] |
422 |
<div role="tabpanel" class="tab-pane" id="holdings"> |
|
|
423 |
[% IF ( Koha.Preference('NovelistSelectStaffEnabled') && Koha.Preference('NovelistSelectStaffProfile') && Koha.Preference('NovelistSelectStaffView') == 'above' ) %] |
424 |
<span class="results_summary NovelistSelect" style="display:none;"> |
425 |
<span class="label">Novelist Select: </span> |
426 |
<div data-novelist-novelistselect=[% normalized_isbn | html %]></div> |
427 |
</span> |
428 |
[% END %] |
443 |
|
429 |
|
444 |
[% IF ( subscriptionsnumber ) %] |
430 |
[% SET hidden_count = all_items_count - items_to_display_count %] |
445 |
<div role="tabpanel" class="tab-pane" id="subscriptions"> |
431 |
[% IF all_items_count %] |
446 |
<div id="catalogue_detail_subscriptions"> |
432 |
[% PROCESS items_table tab="holdings" %] |
447 |
<h2>This is a serial subscription</h2> |
433 |
|
448 |
<p> (There are [% subscriptionsnumber | html %] subscriptions associated with this title).</p> |
434 |
[% IF hidden_count %] |
449 |
[% FOREACH subscription IN subscriptions %] |
435 |
[%# FIXME We could deal with that in JS and prevent a full refresh %] |
450 |
[% IF subscription.branchcode %] |
436 |
<p><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber | uri %]&showallitems=1">Show all items ([% hidden_count | html %] hidden)</a></p> |
451 |
<h3>At library: [% Branches.GetName(subscription.branchcode) || subscription.branchcode | html %]</h3> |
437 |
[% END %] |
452 |
[% END %] |
438 |
[% ELSE %] |
453 |
[% IF ( subscription.closed ) %]<p>This subscription is closed.</p>[% END %] |
439 |
[% IF ( ALTERNATEHOLDINGS ) %] |
454 |
[% IF ( subscription.location ) %]<p class="subscription_location">Location: [% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.location', authorised_value => subscription.location ) | html %]</p>[% END %] |
440 |
[% FOREACH ALTERNATEHOLDING IN ALTERNATEHOLDINGS %] |
455 |
[% IF ( subscription.callnumber ) %]<p>Callnumber: [% subscription.callnumber | html %] </p>[% END %] |
441 |
<div id="alternateholdings"><span class="holdings_label">Holdings:</span> [% ALTERNATEHOLDING.holding | html %]</div> |
456 |
[% IF ( subscription.subscriptionnotes ) %]<p>[% subscription.subscriptionnotes | html | html_line_break %] </p>[% END %] |
442 |
[% END %] |
457 |
[% IF ( subscription.missinglist ) %]<p>Missing issues: [% subscription.missinglist | html %] </p>[% END %] |
443 |
[% ELSE %] |
458 |
[% IF ( subscription.librariannote ) %]<p>([% subscription.librariannote | html %])</p>[% END %] |
444 |
<div id="noitems">No physical items for this record</div> |
459 |
[% IF ( subscription.latestserials ) %] |
445 |
[% END %] |
460 |
<p> The [% subscription.staffdisplaycount | html %] latest issues related to this subscription:</p> |
446 |
[% END %] |
461 |
<table> |
|
|
462 |
<tr> |
463 |
<th>Issue #</th> |
464 |
<th>Date arrived</th> |
465 |
<th>Date published</th> |
466 |
<th>Date published (text)</th> |
467 |
<th>Status</th> |
468 |
<th>Note</th> |
469 |
</tr> |
470 |
[% FOREACH latestserial IN subscription.latestserials %] |
471 |
<tr> |
472 |
<td>[% latestserial.serialseq | html %]</td> |
473 |
<td data-order="[% latestserial.planneddate | html %]">[% latestserial.planneddate | $KohaDates %]</td> |
474 |
<td data-order="[% latestserial.publisheddate | html %]">[% latestserial.publisheddate | $KohaDates %]</td> |
475 |
<td>[% latestserial.publisheddatetext | html %]</td> |
476 |
<td> |
477 |
[% INCLUDE 'serial-status.inc' serial = latestserial %] |
478 |
</td> |
479 |
<td>[% latestserial.notes | html %]</td> |
480 |
</tr> |
481 |
[% END %] |
482 |
</table> |
483 |
[% END %] |
484 |
[% IF ( CAN_user_serials ) %] |
485 |
<p> |
486 |
<a class="btn btn-link" href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=[% subscription.subscriptionid | uri %]"><i class="fa fa-list" aria-hidden="true"></i> Subscription details</a> |
487 |
</p> |
488 |
[% END %] |
489 |
[% END %] |
490 |
</div> |
491 |
</div> |
492 |
[% END %] |
493 |
|
447 |
|
494 |
[% IF Koha.Preference('AcquisitionDetails') %] |
448 |
[% IF ( Koha.Preference('NovelistSelectStaffEnabled') && Koha.Preference('NovelistSelectStaffProfile') && Koha.Preference('NovelistSelectStaffView') == 'below' ) %] |
495 |
<div role="tabpanel" class="tab-pane" id="acq_details"> |
449 |
<span class="results_summary NovelistSelect" style="display:none;"> |
496 |
<p class="acqstatus_[% acq_status | html %]">This bibliographic record has acquisition status: [% PROCESS acq_status myvar=acq_status %] |
450 |
<span class="label">Novelist Select: </span> |
497 |
</p> |
451 |
<div data-novelist-novelistselect=[% normalized_isbn | html %]></div> |
498 |
[% IF orders.count %] |
452 |
</span> |
499 |
<table id="orders"> |
453 |
[% END %] |
500 |
<thead> |
454 |
</div> |
501 |
<tr> |
|
|
502 |
<th>Vendor</th> |
503 |
<th>Invoice</th> |
504 |
<th>Basket group</th> |
505 |
<th>Basket</th> |
506 |
<th>Order number</th> |
507 |
<th>Creation date</th> |
508 |
<th>Receive date</th> |
509 |
<th>Status</th> |
510 |
<th>Quantity</th> |
511 |
<th title="Estimated cost tax incl. while pending, actual cost tax incl. once received">Price</th> |
512 |
<th>Internal note</th> |
513 |
<th>Subscription</th> |
514 |
<th>Subscription call number</th> |
515 |
</tr> |
516 |
</thead> |
517 |
<tbody> |
518 |
[% FOR order IN orders %] |
519 |
[% SET basket = order.basket %] |
520 |
[% SET vendor = basket.bookseller %] |
521 |
<tr> |
522 |
<td> |
523 |
<a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% vendor.id | uri %]" title="Vendor detail page">[% vendor.name | html %]</a> |
524 |
</td> |
525 |
<td> |
526 |
[% IF order.invoiceid %] |
527 |
[% IF CAN_user_acquisition %] |
528 |
<div><a href="/cgi-bin/koha/acqui/invoice.pl?invoiceid=[% order.invoiceid | uri %]" |
529 |
title="Invoice detail page"> |
530 |
[% order.invoice.invoicenumber | html %]</a></div> |
531 |
[% ELSE %] |
532 |
<div>[% order.invoice.invoicenumber | html %]</div> |
533 |
[% END %] |
534 |
|
455 |
|
535 |
[% IF ( Koha.Preference('EDIFACT') && CAN_user_acquisition_edi_manage && order.invoice.message_id ) %] |
456 |
[% IF Koha.Preference('SeparateHoldings') %] |
536 |
<div><a href="/cgi-bin/koha/acqui/edimsg.pl?id=[% order.invoice.message_id | uri %]" title="EDI INVOICE message">EDI message</a></div> |
457 |
<div role="tabpanel" class="tab-pane" id="otherholdings"> |
537 |
[% END %] |
458 |
[% PROCESS items_table tab="otherholdings" %] |
538 |
[% END %] |
459 |
</div> |
539 |
</td> |
460 |
[% END %] |
540 |
<td> |
|
|
541 |
[% IF basket.basketgroupid %] |
542 |
[% SET basket_group = basket.basket_group %] |
543 |
[% IF CAN_user_acquisition_group_manage %] |
544 |
<a href="/cgi-bin/koha/acqui/basketgroup.pl?op=add&booksellerid=[% vendor.id | uri %]&basketgroupid=[% basket_group.id | uri %]">[% basket_group.name | html%] ([% basket_group.id | html %])</a> |
545 |
[% ELSE %] |
546 |
[% basket_group.name | html %] ([% basket_group.id | html %]) |
547 |
[% END %] |
548 |
[% END %] |
549 |
</td> |
550 |
<td>[% IF CAN_user_acquisition_order_manage %] |
551 |
<a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basket.basketno | uri %]">[% basket.basketname | html %] ([% basket.basketno | html %])</a> |
552 |
[% ELSE %] |
553 |
[% basket.basketname | html %] ([% basket.basketno | html %]) |
554 |
[% END %]</td> |
555 |
<td>[% order.ordernumber | html %]</td> |
556 |
<td data-order="[% basket.creationdate | uri %]">[% basket.creationdate | $KohaDates%]</td> |
557 |
<td data-order="[% order.datereceived | uri %]">[% order.datereceived | $KohaDates%]</td> |
558 |
<td> |
559 |
[% SWITCH order.orderstatus %] |
560 |
[% CASE 'new' %]<span>New</span> |
561 |
[% CASE 'ordered' %]<span>Ordered</span> |
562 |
[% CASE 'partial' %]<span>Partial</span> |
563 |
[% CASE 'complete' %]<span>Complete</span> |
564 |
[% CASE 'cancelled' %]<span>Cancelled</span> |
565 |
[% END %] |
566 |
</td> |
567 |
<td>[% order.quantity | html %]</td> |
568 |
<td>[% IF ( order.orderstatus == "complete" ) %][% order.unitprice_tax_included | $Price %][% ELSE %][% order.ecost_tax_included | $Price %][% END %] |
569 |
<td>[% order.order_internalnote | html %]</td> |
570 |
<td> |
571 |
[% IF order.subscriptionid %] |
572 |
<a href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=[% order.subscriptionid | uri %]">[% order.subscriptionid | html %]</a> |
573 |
[% END %] |
574 |
</td> |
575 |
<td> |
576 |
[% IF order.subscriptionid %] |
577 |
[% order.subscription.callnumber | html %] |
578 |
[% END %] |
579 |
</td> |
580 |
</tr> |
581 |
[% END %] |
582 |
</tbody> |
583 |
</table> |
584 |
[% ELSE %] |
585 |
<span class="noorder">There is no order for this bibliographic record.</span> |
586 |
[% END %] |
587 |
</div> |
588 |
[% END %] |
589 |
|
461 |
|
590 |
[% IF suggestions.count %] |
462 |
[% IF ( MARCNOTES ) %] |
591 |
<div role="tabpanel" class="tab-pane" id="suggestion_details"> |
463 |
<div role="tabpanel" class="tab-pane" id="description"> |
592 |
[% IF nb_archived_suggestions > 0 %] |
464 |
<div class="content_set"> |
593 |
<p>[% tnpx('pluralization', 'There is one archived suggestion.', 'There are {count} archived suggestions.', nb_archived_suggestions, { count = nb_archived_suggestions }) | $raw %] |
465 |
[% FOREACH MARCNOTE IN MARCNOTES %] |
594 |
[% END %] |
466 |
<p class="marcnote marcnote-[% MARCNOTE.tag | html %]" id="marcnote-[% MARCNOTE.tag | html %]-[% loop.count | html %]"> |
595 |
<table id="suggestions" class="sorted"> |
467 |
[% IF MARCNOTE.marcnote.match('^https?://\S+$') %] |
596 |
<thead> |
468 |
<a href="[% MARCNOTE.marcnote | url %]">[% MARCNOTE.marcnote | html %]</a> |
597 |
<tr> |
469 |
[% ELSE %] |
598 |
<th class="NoSort"> </th> |
470 |
[% MARCNOTE.marcnote | html | html_line_break %] |
599 |
<th class="anti-the">Suggestion</th> |
471 |
[% END %] |
600 |
<th>Suggested by - on</th> |
472 |
</p> |
601 |
<th>Managed by - on</th> |
473 |
[% END %] |
602 |
<th>Last modification by - on</th> |
474 |
</div> |
603 |
<th>Library</th> |
475 |
</div> |
604 |
<th>Fund</th> |
476 |
[% END %] |
605 |
<th>Status</th> |
|
|
606 |
</tr> |
607 |
</thead> |
608 |
<tbody> |
609 |
[% FOREACH suggestion IN suggestions %] |
610 |
<tr> |
611 |
<td>[% suggestion.suggestionid | html %]</td> |
612 |
<td> |
613 |
<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% suggestion.suggestionid | uri %]&op=show" title="suggestion" > |
614 |
[% suggestion.title | html %][% IF ( suggestion.author ) %], by [% suggestion.author | html %][% END %]</a> |
615 |
<br /> |
616 |
[% IF ( suggestion.copyrightdate ) %]© [% suggestion.copyrightdate | html %] [% END %] |
617 |
[% IF ( suggestion.volumedesc ) %]; Volume:<em>[% suggestion.volumedesc | html %]</em> [% END %] |
618 |
[% IF ( suggestion.isbn ) %]; ISBN:<em>[% suggestion.isbn | html %]</em> [% END %][% IF ( suggestion.publishercode ) %]; Published by [% suggestion.publishercode | html %] [% END %][% IF ( suggestion.publicationyear ) %] in <em>[% suggestion.publicationyear | html %]</em> [% END %][% IF ( suggestion.place ) %] in <em>[% suggestion.place | html %]</em> [% END %][% IF ( suggestion.collectiontitle ) %]; [% suggestion.collectiontitle | html %] [% END %][% IF ( suggestion.itemtype ) %]; [% AuthorisedValues.GetByCode( 'SUGGEST_FORMAT', suggestion.itemtype, 0 ) | html %] [% END %]<br />[% IF ( suggestion.note ) %]<div class="suggestion_note"><i class="fa fa-comment"></i> [% suggestion.note | html %]</div>[% END %] |
619 |
</td> |
620 |
<td> |
621 |
<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% suggestion.suggestedby | uri %]">[% INCLUDE 'patron-title.inc' patron => suggestion.suggester %]</a> |
622 |
[% IF suggestion.suggesteddate %] - [% suggestion.suggesteddate | $KohaDates %][% END %] |
623 |
</td> |
624 |
<td> |
625 |
<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% suggestion.managedby | uri %]">[% INCLUDE 'patron-title.inc' patron => suggestion.manager %]</a> |
626 |
[% IF suggestion.manageddate %] - [% suggestion.manageddate | $KohaDates %][% END %] |
627 |
</td> |
628 |
<td> |
629 |
<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% suggestion.lastmodificationby | uri %]">[% INCLUDE 'patron-title.inc' patron => suggestion.last_modifier %]</a> |
630 |
[% IF suggestion.lastmodificationdate %] - [% suggestion.lastmodificationdate | $KohaDates %][% END %] |
631 |
</td> |
632 |
<td> |
633 |
[% Branches.GetName( suggestion.branchcode ) | html %] |
634 |
</td> |
635 |
<td> |
636 |
[% suggestion.fund.budget_name | html %] |
637 |
</td> |
638 |
<td> |
639 |
[% IF suggestion.STATUS == 'ASKED' %]<span>Pending</span> |
640 |
[% ELSIF suggestion.STATUS == 'ACCEPTED' %]<span>Accepted</span> |
641 |
[% ELSIF suggestion.STATUS == 'ORDERED' %]<span>Ordered</span> |
642 |
[% ELSIF suggestion.STATUS == 'REJECTED' %]<span>Rejected</span> |
643 |
[% ELSIF suggestion.STATUS == 'CHECKED' %]<span>Checked</span> |
644 |
[% ELSIF suggestion.STATUS == 'AVAILABLE' %]<span>Available</span> |
645 |
[% ELSIF AuthorisedValues.GetByCode( 'SUGGEST_STATUS', suggestion.STATUS ) %] |
646 |
[% AuthorisedValues.GetByCode( 'SUGGEST_STATUS', suggestion.STATUS ) | html %] |
647 |
[% ELSE %]<span>Status unknown</span> |
648 |
[% END %] |
649 |
[% IF suggestion.reason %] |
650 |
<br />([% suggestion.reason | html %]) |
651 |
[% END %] |
652 |
</td> |
653 |
</tr> |
654 |
[% END %] |
655 |
</tbody> |
656 |
</table> |
657 |
</div> |
658 |
[% END %] |
659 |
|
477 |
|
660 |
[% IF ( FRBRizeEditions ) %][% IF ( XISBNS ) %] |
478 |
[% IF ComponentParts && ComponentParts.size %] |
661 |
<div role="tabpanel" class="tab-pane" id="editions"><h4>Editions</h4> |
479 |
<div role="tabpanel" class="tab-pane" id="components"> |
662 |
<table> |
480 |
<div class="content_set"> |
663 |
[% FOREACH XISBN IN XISBNS %]<tr>[% IF ( AmazonCoverImages ) %]<td><a href="http://www.amazon.com/gp/reader/[% XISBN.normalized_isbn | uri %][% AmazonAssocTag | uri %]#reader-link"><img src="https://images-na.ssl-images-amazon.com/images/P/[% XISBN.normalized_isbn | html %].01._AA75_PU_PU-5_.jpg" /></a></td>[% END %] |
481 |
<table> |
664 |
[% IF ( !item_level_itypes || Koha.Preference('BiblioItemtypeInfo') ) %]<td>[% IF ( noItemTypeImages ) %]<span class="itypetext">[% XISBN.description | html %]</span>[% ELSE %]<img src="[% XISBN.imageurl | html %]" alt="[% XISBN.description | html %]" title="[% XISBN.description | html %]">[% END %]</td>[% END %] |
482 |
[% FOR PART IN ComponentParts %] |
665 |
<td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% XISBN.biblionumber | uri %]">[% XISBN.title | html %]</a> <span>by</span> [% XISBN.author | html %] ©[% XISBN.copyrightdate | html %] |
483 |
<tr> |
666 |
[% IF ( XISBN.publishercode ) %] |
484 |
<td> |
667 |
[% XISBN.publishercode | html %] [% IF ( XISBN.place ) %]([% XISBN.place | html %])[% END %] [% IF ( XISBN.publicationyear ) %], [% XISBN.publicationyear | html %][% END %] [% IF ( XISBN.editionstatement ) %][% XISBN.editionstatement | html %][% END %] [% IF ( XISBN.editionresponsibility ) %][% XISBN.editionresponsibility | html %][% END %] |
485 |
[% PART | $raw %] |
668 |
[% END %] |
486 |
</td> |
669 |
[% IF ( XISBN.pages ) %] [% END %][% XISBN.pages | html %] [% IF ( XISBN.illus ) %][% XISBN.illus | html %][% END %] |
487 |
</tr> |
670 |
[% IF ( XISBN.size ) %], [% END %][% XISBN.size | html %] |
488 |
[% END %] |
671 |
</td> |
489 |
</table> |
|
|
490 |
[% IF ComponentParts.size == Koha.Preference('MaxComponentRecords')%] |
491 |
<p>Only [% ComponentParts.size | html %] results are shown: <a href="/cgi-bin/koha/catalogue/search.pl?q=[% ComponentPartsQuery | url %]"/>show all component parts</a></p> |
492 |
[% END %] |
493 |
</div> <!-- /.content_set --> |
494 |
</div> <!-- /#components --> |
495 |
[% END %] |
672 |
|
496 |
|
673 |
[% END %] |
497 |
[% IF ( subscriptionsnumber ) %] |
674 |
</table></div>[% END %] |
498 |
<div role="tabpanel" class="tab-pane" id="subscriptions"> |
675 |
[% END %] |
499 |
<div id="catalogue_detail_subscriptions"> |
|
|
500 |
<h2>This is a serial subscription</h2> |
501 |
<p> (There are [% subscriptionsnumber | html %] subscriptions associated with this title).</p> |
502 |
[% FOREACH subscription IN subscriptions %] |
503 |
[% IF subscription.branchcode %] |
504 |
<h3>At library: [% Branches.GetName(subscription.branchcode) || subscription.branchcode | html %]</h3> |
505 |
[% END %] |
506 |
[% IF ( subscription.closed ) %] |
507 |
<p>This subscription is closed.</p> |
508 |
[% END %] |
509 |
[% IF ( subscription.location ) %] |
510 |
<p class="subscription_location">Location: [% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.location', authorised_value => subscription.location ) | html %]</p> |
511 |
[% END %] |
512 |
[% IF ( subscription.callnumber ) %] |
513 |
<p>Callnumber: [% subscription.callnumber | html %] </p> |
514 |
[% END %] |
515 |
[% IF ( subscription.subscriptionnotes ) %] |
516 |
<p>[% subscription.subscriptionnotes | html | html_line_break %] </p> |
517 |
[% END %] |
518 |
[% IF ( subscription.missinglist ) %] |
519 |
<p>Missing issues: [% subscription.missinglist | html %] </p> |
520 |
[% END %] |
521 |
[% IF ( subscription.librariannote ) %] |
522 |
<p>([% subscription.librariannote | html %])</p> |
523 |
[% END %] |
524 |
[% IF ( subscription.latestserials ) %] |
525 |
<p> The [% subscription.staffdisplaycount | html %] latest issues related to this subscription:</p> |
526 |
<table> |
527 |
<tr> |
528 |
<th>Issue #</th> |
529 |
<th>Date arrived</th> |
530 |
<th>Date published</th> |
531 |
<th>Date published (text)</th> |
532 |
<th>Status</th> |
533 |
<th>Note</th> |
534 |
</tr> |
535 |
[% FOREACH latestserial IN subscription.latestserials %] |
536 |
<tr> |
537 |
<td>[% latestserial.serialseq | html %]</td> |
538 |
<td data-order="[% latestserial.planneddate | html %]">[% latestserial.planneddate | $KohaDates %]</td> |
539 |
<td data-order="[% latestserial.publisheddate | html %]">[% latestserial.publisheddate | $KohaDates %]</td> |
540 |
<td>[% latestserial.publisheddatetext | html %]</td> |
541 |
<td> |
542 |
[% INCLUDE 'serial-status.inc' serial = latestserial %] |
543 |
</td> |
544 |
<td>[% latestserial.notes | html %]</td> |
545 |
</tr> |
546 |
[% END %] |
547 |
</table> |
548 |
[% END %] |
549 |
[% IF ( CAN_user_serials ) %] |
550 |
<p> |
551 |
<a class="btn btn-link" href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=[% subscription.subscriptionid | uri %]"><i class="fa fa-list" aria-hidden="true"></i> Subscription details</a> |
552 |
</p> |
553 |
[% END %] |
554 |
[% END %] |
555 |
</div> |
556 |
</div> |
557 |
[% END %] |
676 |
|
558 |
|
677 |
[% IF ( ( Koha.Preference('CatalogConcerns') || Koha.Preference('OpacCatalogConcerns') ) && CAN_user_editcatalogue_edit_catalogue ) %] |
559 |
[% IF Koha.Preference('AcquisitionDetails') %] |
678 |
<div role="tabpanel" class="tab-pane" id="concerns"> |
560 |
<div role="tabpanel" class="tab-pane" id="acq_details"> |
679 |
<fieldset class="action" style="cursor:pointer;"> |
561 |
<p class="acqstatus_[% acq_status | html %]">This bibliographic record has acquisition status: [% PROCESS acq_status myvar=acq_status %] |
680 |
<a id="hideResolved"><i class="fa fa-minus-square"></i> Hide resolved</a> |
562 |
</p> |
681 |
| <a id="showAll"><i class="fa fa-bars"></i> Show all</a> |
563 |
[% IF orders.count %] |
682 |
</fieldset> |
564 |
<table id="orders"> |
683 |
|
565 |
<thead> |
684 |
<table id="table_concerns" width="100%"> |
566 |
<tr> |
685 |
<thead> |
567 |
<th>Vendor</th> |
686 |
<tr> |
568 |
<th>Invoice</th> |
687 |
<th>Reported</th> |
569 |
<th>Basket group</th> |
688 |
<th>Details</th> |
570 |
<th>Basket</th> |
689 |
<th>Title</th> |
571 |
<th>Order number</th> |
690 |
<th>Status</th> |
572 |
<th>Creation date</th> |
691 |
<th data-class-name="actions noExport">Actions</th> |
573 |
<th>Receive date</th> |
692 |
</tr> |
574 |
<th>Status</th> |
693 |
</thead> |
575 |
<th>Quantity</th> |
694 |
</table> |
576 |
<th title="Estimated cost tax incl. while pending, actual cost tax incl. once received">Price</th> |
695 |
</div> |
577 |
<th>Internal note</th> |
696 |
[% END %] |
578 |
<th>Subscription</th> |
|
|
579 |
<th>Subscription call number</th> |
580 |
</tr> |
581 |
</thead> |
582 |
<tbody> |
583 |
[% FOR order IN orders %] |
584 |
[% SET basket = order.basket %] |
585 |
[% SET vendor = basket.bookseller %] |
586 |
<tr> |
587 |
<td> |
588 |
<a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% vendor.id | uri %]" title="Vendor detail page">[% vendor.name | html %]</a> |
589 |
</td> |
590 |
<td> |
591 |
[% IF order.invoiceid %] |
592 |
[% IF CAN_user_acquisition %] |
593 |
<div><a href="/cgi-bin/koha/acqui/invoice.pl?invoiceid=[% order.invoiceid | uri %]" |
594 |
title="Invoice detail page"> |
595 |
[% order.invoice.invoicenumber | html %]</a></div> |
596 |
[% ELSE %] |
597 |
<div>[% order.invoice.invoicenumber | html %]</div> |
598 |
[% END %] |
599 |
|
600 |
[% IF ( Koha.Preference('EDIFACT') && CAN_user_acquisition_edi_manage && order.invoice.message_id ) %] |
601 |
<div><a href="/cgi-bin/koha/acqui/edimsg.pl?id=[% order.invoice.message_id | uri %]" title="EDI INVOICE message">EDI message</a></div> |
602 |
[% END %] |
603 |
[% END %] |
604 |
</td> |
605 |
<td> |
606 |
[% IF basket.basketgroupid %] |
607 |
[% SET basket_group = basket.basket_group %] |
608 |
[% IF CAN_user_acquisition_group_manage %] |
609 |
<a href="/cgi-bin/koha/acqui/basketgroup.pl?op=add&booksellerid=[% vendor.id | uri %]&basketgroupid=[% basket_group.id | uri %]">[% basket_group.name | html%] ([% basket_group.id | html %])</a> |
610 |
[% ELSE %] |
611 |
[% basket_group.name | html %] ([% basket_group.id | html %]) |
612 |
[% END %] |
613 |
[% END %] |
614 |
</td> |
615 |
<td> |
616 |
[% IF CAN_user_acquisition_order_manage %] |
617 |
<a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basket.basketno | uri %]">[% basket.basketname | html %] ([% basket.basketno | html %])</a> |
618 |
[% ELSE %] |
619 |
[% basket.basketname | html %] ([% basket.basketno | html %]) |
620 |
[% END %] |
621 |
</td> |
622 |
<td>[% order.ordernumber | html %]</td> |
623 |
<td data-order="[% basket.creationdate | uri %]">[% basket.creationdate | $KohaDates%]</td> |
624 |
<td data-order="[% order.datereceived | uri %]">[% order.datereceived | $KohaDates%]</td> |
625 |
<td> |
626 |
[% SWITCH order.orderstatus %] |
627 |
[% CASE 'new' %]<span>New</span> |
628 |
[% CASE 'ordered' %]<span>Ordered</span> |
629 |
[% CASE 'partial' %]<span>Partial</span> |
630 |
[% CASE 'complete' %]<span>Complete</span> |
631 |
[% CASE 'cancelled' %]<span>Cancelled</span> |
632 |
[% END %] |
633 |
</td> |
634 |
<td>[% order.quantity | html %]</td> |
635 |
<td> |
636 |
[% IF ( order.orderstatus == "complete" ) %] |
637 |
[% order.unitprice_tax_included | $Price %] |
638 |
[% ELSE %] |
639 |
[% order.ecost_tax_included | $Price %] |
640 |
[% END %] |
641 |
<td>[% order.order_internalnote | html %]</td> |
642 |
<td> |
643 |
[% IF order.subscriptionid %] |
644 |
<a href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=[% order.subscriptionid | uri %]">[% order.subscriptionid | html %]</a> |
645 |
[% END %] |
646 |
</td> |
647 |
<td> |
648 |
[% IF order.subscriptionid %] |
649 |
[% order.subscription.callnumber | html %] |
650 |
[% END %] |
651 |
</td> |
652 |
</tr> |
653 |
[% END %] |
654 |
</tbody> |
655 |
</table> |
656 |
[% ELSE %] |
657 |
<span class="noorder">There is no order for this bibliographic record.</span> |
658 |
[% END %] |
659 |
</div> |
660 |
[% END %] |
697 |
|
661 |
|
698 |
[% IF ( LocalCoverImages ) %] |
662 |
[% IF suggestions.count %] |
699 |
<div role="tabpanel" class="tab-pane" id="images"> |
663 |
<div role="tabpanel" class="tab-pane" id="suggestion_details"> |
700 |
[% IF localimages.count %] |
664 |
[% IF nb_archived_suggestions > 0 %] |
701 |
<p>Click on an image to view it in the image viewer</p> |
665 |
<p>[% tnpx('pluralization', 'There is one archived suggestion.', 'There are {count} archived suggestions.', nb_archived_suggestions, { count = nb_archived_suggestions }) | $raw %] |
702 |
<ul class="thumbnails"> |
666 |
[% END %] |
703 |
[% FOREACH image IN localimages %] |
667 |
<table id="suggestions" class="sorted"> |
704 |
[% IF image %] |
668 |
<thead> |
705 |
<li id="imagenumber-[% image.imagenumber | html %]" class="thumbnail"> |
669 |
<tr> |
706 |
<a href="/cgi-bin/koha/catalogue/imageviewer.pl?biblionumber=[% biblionumber | uri %]&imagenumber=[% image.imagenumber | uri %]"> |
670 |
<th class="NoSort"> </th> |
707 |
<img src="/cgi-bin/koha/catalogue/image.pl?thumbnail=1&imagenumber=[% image.imagenumber | uri %]" /> |
671 |
<th class="anti-the">Suggestion</th> |
708 |
</a> |
672 |
<th>Suggested by - on</th> |
709 |
[% IF CAN_user_tools_upload_local_cover_images %] |
673 |
<th>Managed by - on</th> |
710 |
<a href="#" class="remove"><i class="fa fa-trash-can"></i> Delete image</a> |
674 |
<th>Last modification by - on</th> |
|
|
675 |
<th>Library</th> |
676 |
<th>Fund</th> |
677 |
<th>Status</th> |
678 |
</tr> |
679 |
</thead> |
680 |
<tbody> |
681 |
[% FOREACH suggestion IN suggestions %] |
682 |
<tr> |
683 |
<td>[% suggestion.suggestionid | html %]</td> |
684 |
<td> |
685 |
<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% suggestion.suggestionid | uri %]&op=show" title="suggestion" > |
686 |
[% suggestion.title | html %][% IF ( suggestion.author ) %], by [% suggestion.author | html %][% END %]</a> |
687 |
<br /> |
688 |
[% IF ( suggestion.copyrightdate ) %]© [% suggestion.copyrightdate | html %] [% END %] |
689 |
[% IF ( suggestion.volumedesc ) %]; Volume:<em>[% suggestion.volumedesc | html %]</em> [% END %] |
690 |
[% IF ( suggestion.isbn ) %]; ISBN:<em>[% suggestion.isbn | html %]</em> [% END %] |
691 |
[% IF ( suggestion.publishercode ) %]; Published by [% suggestion.publishercode | html %] [% END %] |
692 |
[% IF ( suggestion.publicationyear ) %] in <em>[% suggestion.publicationyear | html %]</em> [% END %] |
693 |
[% IF ( suggestion.place ) %] in <em>[% suggestion.place | html %]</em> [% END %] |
694 |
[% IF ( suggestion.collectiontitle ) %]; [% suggestion.collectiontitle | html %] [% END %] |
695 |
[% IF ( suggestion.itemtype ) %]; [% AuthorisedValues.GetByCode( 'SUGGEST_FORMAT', suggestion.itemtype, 0 ) | html %] [% END %]<br /> |
696 |
[% IF ( suggestion.note ) %]<div class="suggestion_note"><i class="fa fa-comment"></i> [% suggestion.note | html %]</div>[% END %] |
697 |
</td> |
698 |
<td> |
699 |
<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% suggestion.suggestedby | uri %]">[% INCLUDE 'patron-title.inc' patron => suggestion.suggester %]</a> |
700 |
[% IF suggestion.suggesteddate %] - [% suggestion.suggesteddate | $KohaDates %][% END %] |
701 |
</td> |
702 |
<td> |
703 |
<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% suggestion.managedby | uri %]">[% INCLUDE 'patron-title.inc' patron => suggestion.manager %]</a> |
704 |
[% IF suggestion.manageddate %] - [% suggestion.manageddate | $KohaDates %][% END %] |
705 |
</td> |
706 |
<td> |
707 |
<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% suggestion.lastmodificationby | uri %]">[% INCLUDE 'patron-title.inc' patron => suggestion.last_modifier %]</a> |
708 |
[% IF suggestion.lastmodificationdate %] - [% suggestion.lastmodificationdate | $KohaDates %][% END %] |
709 |
</td> |
710 |
<td> |
711 |
[% Branches.GetName( suggestion.branchcode ) | html %] |
712 |
</td> |
713 |
<td> |
714 |
[% suggestion.fund.budget_name | html %] |
715 |
</td> |
716 |
<td> |
717 |
[% IF suggestion.STATUS == 'ASKED' %]<span>Pending</span> |
718 |
[% ELSIF suggestion.STATUS == 'ACCEPTED' %]<span>Accepted</span> |
719 |
[% ELSIF suggestion.STATUS == 'ORDERED' %]<span>Ordered</span> |
720 |
[% ELSIF suggestion.STATUS == 'REJECTED' %]<span>Rejected</span> |
721 |
[% ELSIF suggestion.STATUS == 'CHECKED' %]<span>Checked</span> |
722 |
[% ELSIF suggestion.STATUS == 'AVAILABLE' %]<span>Available</span> |
723 |
[% ELSIF AuthorisedValues.GetByCode( 'SUGGEST_STATUS', suggestion.STATUS ) %] |
724 |
[% AuthorisedValues.GetByCode( 'SUGGEST_STATUS', suggestion.STATUS ) | html %] |
725 |
[% ELSE %]<span>Status unknown</span> |
726 |
[% END %] |
727 |
[% IF suggestion.reason %] |
728 |
<br />([% suggestion.reason | html %]) |
729 |
[% END %] |
730 |
</td> |
731 |
</tr> |
732 |
[% END %] |
733 |
</tbody> |
734 |
</table> |
735 |
</div> |
711 |
[% END %] |
736 |
[% END %] |
712 |
</li> |
|
|
713 |
[% END %] |
714 |
[% END %] |
715 |
</ul> |
716 |
[% ELSE # - No image passed JavaScript takes care %] |
717 |
<span class="noimagesuploaded">No images have been uploaded for this bibliographic record yet.</span> |
718 |
[% END %] |
719 |
[% IF ( CAN_user_tools_upload_local_cover_images ) %] |
720 |
<p>Upload an image file: <a class="btn btn-default btn-xs" href="/cgi-bin/koha/tools/upload-cover-image.pl?biblionumber=[% biblionumber | uri %]&filetype=image"><i class="fa fa-upload" aria-hidden="true"></i> Upload</a> |
721 |
</p> |
722 |
[% END %] |
723 |
</div> |
724 |
[% END %] |
725 |
|
737 |
|
726 |
[% IF ( HTML5MediaEnabled ) %] |
738 |
[% IF ( FRBRizeEditions ) %] |
727 |
<div role="tabpanel" class="tab-pane" id="html5media"> |
739 |
[% IF ( XISBNS ) %] |
728 |
[% FOREACH HTML5MediaSet IN HTML5MediaSets %] |
740 |
<div role="tabpanel" class="tab-pane" id="editions"> |
729 |
<p> |
741 |
<h4>Editions</h4> |
730 |
[% IF HTML5MediaSet.is_youtube %] |
742 |
<table> |
731 |
<iframe id="player" width="640" height="360" src="[% HTML5MediaSet.srcblock | url %]"></iframe> |
743 |
[% FOREACH XISBN IN XISBNS %] |
732 |
[% ELSE %] |
744 |
<tr> |
733 |
<[% HTML5MediaParent | html %] controls preload=none> |
745 |
[% IF ( AmazonCoverImages ) %] |
734 |
<[% HTML5MediaSet.child | html %] src="[% HTML5MediaSet.srcblock | url %]"[% HTML5MediaSet.typeblock | html %] /> |
746 |
<td> |
735 |
[[% HTML5MediaParent | html %] tag not supported by your browser.] |
747 |
<a href="http://www.amazon.com/gp/reader/[% XISBN.normalized_isbn | uri %][% AmazonAssocTag | uri %]#reader-link"><img src="https://images-na.ssl-images-amazon.com/images/P/[% XISBN.normalized_isbn | html %].01._AA75_PU_PU-5_.jpg" /></a> |
736 |
</[% HTML5MediaParent | html %]> |
748 |
</td> |
737 |
[% END %] |
749 |
[% END %] |
738 |
</p> |
750 |
[% IF ( !item_level_itypes || Koha.Preference('BiblioItemtypeInfo') ) %] |
739 |
[% END %] |
751 |
<td> |
740 |
</div> |
752 |
[% IF ( noItemTypeImages ) %] |
741 |
[% END %] |
753 |
<span class="itypetext">[% XISBN.description | html %]</span> |
|
|
754 |
[% ELSE %] |
755 |
<img src="[% XISBN.imageurl | html %]" alt="[% XISBN.description | html %]" title="[% XISBN.description | html %]"> |
756 |
[% END %] |
757 |
</td> |
758 |
[% END %] |
759 |
<td> |
760 |
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% XISBN.biblionumber | uri %]">[% XISBN.title | html %]</a> <span>by</span> [% XISBN.author | html %] ©[% XISBN.copyrightdate | html %] |
761 |
[% IF ( XISBN.publishercode ) %] |
762 |
[% XISBN.publishercode | html %] |
763 |
[% IF ( XISBN.place ) %]([% XISBN.place | html %])[% END %] |
764 |
[% IF ( XISBN.publicationyear ) %], [% XISBN.publicationyear | html %][% END %] |
765 |
[% IF ( XISBN.editionstatement ) %][% XISBN.editionstatement | html %][% END %] |
766 |
[% IF ( XISBN.editionresponsibility ) %][% XISBN.editionresponsibility | html %][% END %] |
767 |
[% END %] |
768 |
[% IF ( XISBN.pages ) %] [% END %][% XISBN.pages | html %] |
769 |
[% IF ( XISBN.illus ) %][% XISBN.illus | html %][% END %] |
770 |
[% IF ( XISBN.size ) %], [% END %][% XISBN.size | html %] |
771 |
</td> |
772 |
|
773 |
[% END %] |
774 |
</table> |
775 |
</div> |
776 |
[% END %] |
777 |
[% END %] |
742 |
|
778 |
|
|
|
779 |
[% IF ( ( Koha.Preference('CatalogConcerns') || Koha.Preference('OpacCatalogConcerns') ) && CAN_user_editcatalogue_edit_catalogue ) %] |
780 |
<div role="tabpanel" class="tab-pane" id="concerns"> |
781 |
<fieldset class="action" style="cursor:pointer;"> |
782 |
<a id="hideResolved"><i class="fa fa-minus-square"></i> Hide resolved</a> |
783 |
| <a id="showAll"><i class="fa fa-bars"></i> Show all</a> |
784 |
</fieldset> |
785 |
|
786 |
<table id="table_concerns" width="100%"> |
787 |
<thead> |
788 |
<tr> |
789 |
<th>Reported</th> |
790 |
<th>Details</th> |
791 |
<th>Title</th> |
792 |
<th>Status</th> |
793 |
<th data-class-name="actions noExport">Actions</th> |
794 |
</tr> |
795 |
</thead> |
796 |
</table> |
797 |
</div> |
798 |
[% END %] |
743 |
|
799 |
|
744 |
[% IF ( Koha.Preference('NovelistSelectStaffEnabled') && Koha.Preference('NovelistSelectStaffProfile') && Koha.Preference('NovelistSelectStaffView') == 'tab' ) %] |
800 |
[% IF ( LocalCoverImages ) %] |
745 |
<div role="tabpanel" class="tab-pane novelistSelect" id="NovelistSelect"> |
801 |
<div role="tabpanel" class="tab-pane" id="images"> |
746 |
<div data-novelist-novelistselect=[% normalized_isbn | html %]></div> |
802 |
[% IF localimages.count %] |
747 |
</div> |
803 |
<p>Click on an image to view it in the image viewer</p> |
748 |
[% END %] |
804 |
<ul class="thumbnails"> |
|
|
805 |
[% FOREACH image IN localimages %] |
806 |
[% IF image %] |
807 |
<li id="imagenumber-[% image.imagenumber | html %]" class="thumbnail"> |
808 |
<a href="/cgi-bin/koha/catalogue/imageviewer.pl?biblionumber=[% biblionumber | uri %]&imagenumber=[% image.imagenumber | uri %]"> |
809 |
<img src="/cgi-bin/koha/catalogue/image.pl?thumbnail=1&imagenumber=[% image.imagenumber | uri %]" /> |
810 |
</a> |
811 |
[% IF CAN_user_tools_upload_local_cover_images %] |
812 |
<a href="#" class="remove"><i class="fa fa-trash-can"></i> Delete image</a> |
813 |
[% END %] |
814 |
</li> |
815 |
[% END %] |
816 |
[% END %] |
817 |
</ul> |
818 |
[% ELSE # - No image passed JavaScript takes care %] |
819 |
<span class="noimagesuploaded">No images have been uploaded for this bibliographic record yet.</span> |
820 |
[% END %] |
821 |
[% IF ( CAN_user_tools_upload_local_cover_images ) %] |
822 |
<p>Upload an image file: <a class="btn btn-default btn-xs" href="/cgi-bin/koha/tools/upload-cover-image.pl?biblionumber=[% biblionumber | uri %]&filetype=image"><i class="fa fa-upload" aria-hidden="true"></i> Upload</a> |
823 |
</p> |
824 |
[% END %] |
825 |
</div> |
826 |
[% END %] |
749 |
|
827 |
|
750 |
[% FOREACH plugins_intranet_catalog_biblio_tab IN plugins_intranet_catalog_biblio_tabs %] |
828 |
[% IF ( HTML5MediaEnabled ) %] |
751 |
<div role="tabpanel" class="tab-pane" id="[% plugins_intranet_catalog_biblio_tab.id | html %]"> |
829 |
<div role="tabpanel" class="tab-pane" id="html5media"> |
752 |
[% plugins_intranet_catalog_biblio_tab.content | $raw %] |
830 |
[% FOREACH HTML5MediaSet IN HTML5MediaSets %] |
753 |
</div> |
831 |
<p> |
754 |
[% END %] |
832 |
[% IF HTML5MediaSet.is_youtube %] |
|
|
833 |
<iframe id="player" width="640" height="360" src="[% HTML5MediaSet.srcblock | url %]"></iframe> |
834 |
[% ELSE %] |
835 |
<[% HTML5MediaParent | html %] controls preload=none> |
836 |
<[% HTML5MediaSet.child | html %] src="[% HTML5MediaSet.srcblock | url %]"[% HTML5MediaSet.typeblock | html %] /> |
837 |
[[% HTML5MediaParent | html %] tag not supported by your browser.] |
838 |
</[% HTML5MediaParent | html %]> |
839 |
[% END %] |
840 |
</p> |
841 |
[% END %] |
842 |
</div> |
843 |
[% END %] |
755 |
|
844 |
|
756 |
</div><!-- /tab-content --> |
845 |
[% IF ( Koha.Preference('NovelistSelectStaffEnabled') && Koha.Preference('NovelistSelectStaffProfile') && Koha.Preference('NovelistSelectStaffView') == 'tab' ) %] |
757 |
</div><!-- /bibliodetails --> |
846 |
<div role="tabpanel" class="tab-pane novelistSelect" id="NovelistSelect"> |
758 |
|
847 |
<div data-novelist-novelistselect=[% normalized_isbn | html %]></div> |
759 |
<div id="export" style="margin-top: 1em;"> |
848 |
</div> |
760 |
<form method="get" action="/cgi-bin/koha/catalogue/export.pl"> |
849 |
[% END %] |
761 |
<table> <tr> |
|
|
762 |
<th>Save record</th> </tr> |
763 |
<tr><td> Select download format: <select name="format"> |
764 |
<option value="mods">MODS (XML)</option> |
765 |
<option data-toggle="modal" data-target="#exportModal_">Dublin Core</option> |
766 |
<option value="marcxml">MARCXML</option> |
767 |
<option value="marc8">MARC (non-Unicode/MARC-8)</option> |
768 |
<option value="utf8">MARC (Unicode/UTF-8)</option> </select> |
769 |
<input type="submit" name="save" class="btn btn-primary" value="Download record" /></td> |
770 |
</tr> |
771 |
<tr><td> |
772 |
<input type="hidden" name="op" value="export" /><input type="hidden" name="bib" value="[% biblionumber | html %]" /> |
773 |
</td></tr> |
774 |
</table> |
775 |
</form> |
776 |
</div> |
777 |
|
778 |
<div id="marcPreview" class="modal" tabindex="-1" role="dialog" aria-labelledby="marcPreviewLabel" aria-hidden="true"> |
779 |
<div class="modal-dialog modal-lg"> |
780 |
<div class="modal-content"> |
781 |
<div class="modal-header"> |
782 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
783 |
<h3 id="marcPreviewLabel">MARC preview</h3> |
784 |
</div> |
785 |
<div class="modal-body"> |
786 |
<div id="loading"> <img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" alt="" /> Loading </div> |
787 |
</div> |
788 |
<div class="modal-footer"> |
789 |
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button> |
790 |
</div> |
791 |
</div> |
792 |
</div> |
793 |
</div> |
794 |
|
795 |
<div id="elasticPreview" class="modal" tabindex="-1" role="dialog" aria-labelledby="elasticPreviewLabel" aria-hidden="true"> |
796 |
<div class="modal-dialog modal-lg"> |
797 |
<div class="modal-content"> |
798 |
<div class="modal-header"> |
799 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
800 |
<h3 id="elasticPreviewLabel">Elasticsearch record</h3> |
801 |
</div> |
802 |
<div class="modal-body"> |
803 |
<div id="loading"> <img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" alt="" /> Loading </div> |
804 |
</div> |
805 |
<div class="modal-footer"> |
806 |
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button> |
807 |
</div> |
808 |
</div> |
809 |
</div> |
810 |
</div> |
811 |
|
850 |
|
812 |
</main> |
851 |
[% FOREACH plugins_intranet_catalog_biblio_tab IN plugins_intranet_catalog_biblio_tabs %] |
813 |
</div> <!-- /.col-sm-10.col-sm-push-2 --> |
852 |
<div role="tabpanel" class="tab-pane" id="[% plugins_intranet_catalog_biblio_tab.id | html %]"> |
|
|
853 |
[% plugins_intranet_catalog_biblio_tab.content | $raw %] |
854 |
</div> |
855 |
[% END %] |
856 |
</div><!-- /tab-content --> |
857 |
</div><!-- /bibliodetails --> |
858 |
|
859 |
<div id="export" style="margin-top: 1em;"> |
860 |
<form method="get" action="/cgi-bin/koha/catalogue/export.pl"> |
861 |
<table> |
862 |
<tr> |
863 |
<th>Save record</th> |
864 |
</tr> |
865 |
<tr> |
866 |
<td> |
867 |
Select download format: |
868 |
<select name="format"> |
869 |
<option value="mods">MODS (XML)</option> |
870 |
<option data-toggle="modal" data-target="#exportModal_">Dublin Core</option> |
871 |
<option value="marcxml">MARCXML</option> |
872 |
<option value="marc8">MARC (non-Unicode/MARC-8)</option> |
873 |
<option value="utf8">MARC (Unicode/UTF-8)</option> |
874 |
</select> |
875 |
<input type="submit" name="save" class="btn btn-primary" value="Download record" /> |
876 |
</td> |
877 |
</tr> |
878 |
<tr> |
879 |
<td> |
880 |
<input type="hidden" name="op" value="export" /><input type="hidden" name="bib" value="[% biblionumber | html %]" /> |
881 |
</td> |
882 |
</tr> |
883 |
</table> |
884 |
</form> |
885 |
</div> |
814 |
|
886 |
|
815 |
<div class="col-sm-2 col-sm-pull-10"> |
887 |
<div id="marcPreview" class="modal" tabindex="-1" role="dialog" aria-labelledby="marcPreviewLabel" aria-hidden="true"> |
816 |
<aside> |
888 |
<div class="modal-dialog modal-lg"> |
817 |
[% INCLUDE 'biblio-view-menu.inc' %] |
889 |
<div class="modal-content"> |
818 |
</aside> |
890 |
<div class="modal-header"> |
819 |
</div> <!-- /.col-sm-2.col-sm-pull-10 --> |
891 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
820 |
</div> <!-- /.row --> |
892 |
<h3 id="marcPreviewLabel">MARC preview</h3> |
|
|
893 |
</div> |
894 |
<div class="modal-body"> |
895 |
<div id="loading"> <img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" alt="" /> Loading </div> |
896 |
</div> |
897 |
<div class="modal-footer"> |
898 |
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button> |
899 |
</div> |
900 |
</div> |
901 |
</div> |
902 |
</div> |
821 |
|
903 |
|
822 |
[% END %] |
904 |
<div id="elasticPreview" class="modal" tabindex="-1" role="dialog" aria-labelledby="elasticPreviewLabel" aria-hidden="true"> |
|
|
905 |
<div class="modal-dialog modal-lg"> |
906 |
<div class="modal-content"> |
907 |
<div class="modal-header"> |
908 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
909 |
<h3 id="elasticPreviewLabel">Elasticsearch record</h3> |
910 |
</div> |
911 |
<div class="modal-body"> |
912 |
<div id="loading"> <img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" alt="" /> Loading </div> |
913 |
</div> |
914 |
<div class="modal-footer"> |
915 |
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button> |
916 |
</div> |
917 |
</div> |
918 |
</div> |
919 |
</div> |
920 |
</main> |
921 |
</div> <!-- /.col-sm-10.col-sm-push-2 --> |
922 |
|
923 |
<div class="col-sm-2 col-sm-pull-10"> |
924 |
<aside> |
925 |
[% INCLUDE 'biblio-view-menu.inc' %] |
926 |
</aside> |
927 |
</div> <!-- /.col-sm-2.col-sm-pull-10 --> |
928 |
</div> <!-- /.row --> |
929 |
[% END %] |
823 |
|
930 |
|
824 |
<div class="modal fade" id="modal-item-group-create" tabindex="-1" role="dialog" aria-labelledby="modal-item-group-create-label"> |
931 |
<div class="modal fade" id="modal-item-group-create" tabindex="-1" role="dialog" aria-labelledby="modal-item-group-create-label"> |
825 |
<div class="modal-dialog"> |
932 |
<div class="modal-dialog"> |
826 |
<div class="modal-content"> |
933 |
<div class="modal-content"> |
827 |
<div class="modal-header"> |
934 |
<div class="modal-header"> |
828 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
935 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
829 |
<h3 id="modal-item-group-create-label"><i class="fa fa-plus"></i> Create a new item group</h3> |
936 |
<h3 id="modal-item-group-create-label"><i class="fa fa-plus"></i> Create a new item group</h3> |
830 |
</div> |
|
|
831 |
<form method="get" id="modal-item-group-create-form" class="validated"> |
832 |
<div class="modal-body"> |
833 |
<fieldset> |
834 |
<p> |
835 |
<label for="modal-item-group-create-form-description" class="required">Name: </label> |
836 |
<input name="description" id="modal-item-group-create-form-description" type="text" size="30" required="required" class="required" /> |
837 |
<span class="required">Required</span> |
838 |
</p> |
839 |
<p> |
840 |
<label for="modal-item-group-create-form-display_order" class="required">Display order: </label> |
841 |
<input name="display_order" id="modal-item-group-create-form-display_order" value="0" size="5" required="required" class="required" /> |
842 |
<span class="required">Required</span> |
843 |
<br/> |
844 |
<span class="hint">Numbers only, item groups will be displayed in counting order</span> |
845 |
</p> |
846 |
</fieldset> |
847 |
</div> |
937 |
</div> |
848 |
<div class="modal-footer"> |
938 |
<form method="get" id="modal-item-group-create-form" class="validated"> |
849 |
<button id="modal-item-group-create-submit" class="btn btn-default"><i class="fa fa-plus"></i> Submit</button> |
939 |
<div class="modal-body"> |
850 |
<button class="btn btn-link" data-dismiss="modal" aria-hidden="true">Cancel</button> |
940 |
<fieldset> |
851 |
</div> |
941 |
<p> |
852 |
</form> |
942 |
<label for="modal-item-group-create-form-description" class="required">Name: </label> |
|
|
943 |
<input name="description" id="modal-item-group-create-form-description" type="text" size="30" required="required" class="required" /> |
944 |
<span class="required">Required</span> |
945 |
</p> |
946 |
<p> |
947 |
<label for="modal-item-group-create-form-display_order" class="required">Display order: </label> |
948 |
<input name="display_order" id="modal-item-group-create-form-display_order" value="0" size="5" required="required" class="required" /> |
949 |
<span class="required">Required</span> |
950 |
<br/> |
951 |
<span class="hint">Numbers only, item groups will be displayed in counting order</span> |
952 |
</p> |
953 |
</fieldset> |
954 |
</div> |
955 |
<div class="modal-footer"> |
956 |
<button id="modal-item-group-create-submit" class="btn btn-default"><i class="fa fa-plus"></i> Submit</button> |
957 |
<button class="btn btn-link" data-dismiss="modal" aria-hidden="true">Cancel</button> |
958 |
</div> |
959 |
</form> |
960 |
</div> |
853 |
</div> |
961 |
</div> |
854 |
</div> |
962 |
</div> |
855 |
</div> |
963 |
|
856 |
|
964 |
<div class="modal fade" id="modal-item-group-edit" tabindex="-1" role="dialog" aria-labelledby="modal-item-group-edit-label"> |
857 |
<div class="modal fade" id="modal-item-group-edit" tabindex="-1" role="dialog" aria-labelledby="modal-item-group-edit-label"> |
965 |
<div class="modal-dialog"> |
858 |
<div class="modal-dialog"> |
966 |
<div class="modal-content"> |
859 |
<div class="modal-content"> |
967 |
<div class="modal-header"> |
860 |
<div class="modal-header"> |
968 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
861 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
969 |
<h3 id="modal-item-group-edit-label"><i class="fa-solid fa-pencil" aria-hidden="true"></i> Edit item group</h3> |
862 |
<h3 id="modal-item-group-edit-label"><i class="fa-solid fa-pencil" aria-hidden="true"></i> Edit item group</h3> |
970 |
</div> |
|
|
971 |
<form method="get" id="modal-item-group-edit-form" class="validated"> |
972 |
<div class="modal-body"> |
973 |
<fieldset> |
974 |
<p> |
975 |
<label for="modal-item-group-edit-form-description" class="required">Name: </label> |
976 |
<input name="description" id="modal-item-group-edit-form-description" type="text" size="30" required="required" class="required" /> |
977 |
<span class="required">Required</span> |
978 |
</p> |
979 |
<p> |
980 |
<label for="modal-item-group-edit-form-display_order" class="required">Sort order: </label> |
981 |
<input name="display_order" id="modal-item-group-edit-form-display_order" size="5" /> |
982 |
<span class="hint">Numbers only, item groups will be displayed in counting order</span> |
983 |
</p> |
984 |
</fieldset> |
985 |
</div> |
986 |
<div class="modal-footer"> |
987 |
<button id="modal-item-group-edit-submit" class="btn btn-default"><i class="fa-solid fa-pencil" aria-hidden="true"></i> Submit</button> |
988 |
<button class="btn btn-link" data-dismiss="modal" aria-hidden="true">Cancel</button> |
989 |
</div> |
990 |
</form> |
863 |
</div> |
991 |
</div> |
864 |
<form method="get" id="modal-item-group-edit-form" class="validated"> |
992 |
</div> |
|
|
993 |
</div> |
994 |
|
995 |
<div class="modal fade" id="modal-item-group-delete" tabindex="-1" role="dialog" aria-labelledby="modal-item-group-delete-label"> |
996 |
<div class="modal-dialog"> |
997 |
<div class="modal-content"> |
998 |
<div class="modal-header"> |
999 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
1000 |
<h3 id="modal-item-group-delete-label"><i class='fa fa-trash-can'></i> Delete item group</h3> |
1001 |
</div> |
865 |
<div class="modal-body"> |
1002 |
<div class="modal-body"> |
866 |
<fieldset> |
1003 |
Are you sure you want to delete this item group? |
867 |
<p> |
|
|
868 |
<label for="modal-item-group-edit-form-description" class="required">Name: </label> |
869 |
<input name="description" id="modal-item-group-edit-form-description" type="text" size="30" required="required" class="required" /> |
870 |
<span class="required">Required</span> |
871 |
</p> |
872 |
<p> |
873 |
<label for="modal-item-group-edit-form-display_order" class="required">Sort order: </label> |
874 |
<input name="display_order" id="modal-item-group-edit-form-display_order" size="5" /> |
875 |
<span class="hint">Numbers only, item groups will be displayed in counting order</span> |
876 |
</p> |
877 |
</fieldset> |
878 |
</div> |
1004 |
</div> |
879 |
<div class="modal-footer"> |
1005 |
<div class="modal-footer"> |
880 |
<button id="modal-item-group-edit-submit" class="btn btn-default"><i class="fa-solid fa-pencil" aria-hidden="true"></i> Submit</button> |
1006 |
<button id="modal-item-group-delete-submit" class="btn btn-danger"><i class='fa fa-trash-can'></i> Delete</button> |
881 |
<button class="btn btn-link" data-dismiss="modal" aria-hidden="true">Cancel</button> |
1007 |
<button class="btn btn-link" data-dismiss="modal" aria-hidden="true">Cancel</button> |
882 |
</div> |
1008 |
</div> |
883 |
</form> |
1009 |
</div> |
884 |
</div> |
1010 |
</div> |
885 |
</div> |
1011 |
</div> |
886 |
</div> |
1012 |
|
887 |
|
1013 |
<div class="modal fade" id="modal-item-group-set" tabindex="-1" role="dialog" aria-labelledby="modal-item-group-set-label"> |
888 |
<div class="modal fade" id="modal-item-group-delete" tabindex="-1" role="dialog" aria-labelledby="modal-item-group-delete-label"> |
1014 |
<div class="modal-dialog"> |
889 |
<div class="modal-dialog"> |
1015 |
<div class="modal-content"> |
890 |
<div class="modal-content"> |
1016 |
<div class="modal-header"> |
891 |
<div class="modal-header"> |
1017 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
892 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
1018 |
<h3 id="modal-item-group-set-label"><i class='fa fa-book'></i> Set item group for items</h3> |
893 |
<h3 id="modal-item-group-delete-label"><i class='fa fa-trash-can'></i> Delete item group</h3> |
1019 |
</div> |
894 |
</div> |
1020 |
<form method="get" id="modal-item-group-set-form" class="validated"> |
895 |
<div class="modal-body"> |
1021 |
<div class="modal-body"> |
896 |
Are you sure you want to delete this item group? |
1022 |
<fieldset> |
897 |
</div> |
1023 |
<p> |
898 |
<div class="modal-footer"> |
1024 |
<label for="item-group-add-form-select" class="required">Item group: </label> |
899 |
<button id="modal-item-group-delete-submit" class="btn btn-danger"><i class='fa fa-trash-can'></i> Delete</button> |
1025 |
<select name="item_group" id="item-group-add-form-select"> |
900 |
<button class="btn btn-link" data-dismiss="modal" aria-hidden="true">Cancel</button> |
1026 |
[% FOREACH ig IN biblio.item_groups.search({}, {order_by => 'display_order'}) %] |
|
|
1027 |
<option value="[% ig.id | html %]">[% ig.description | html %]</option> |
1028 |
[% END %] |
1029 |
</select> |
1030 |
<span class="required">Required</span> |
1031 |
</p> |
1032 |
</fieldset> |
1033 |
</div> |
1034 |
<div class="modal-footer"> |
1035 |
<button id="modal-item-group-set-submit" class="btn btn-default"><i class='fa fa-book'></i> Set item group</button> |
1036 |
<button class="btn btn-link" data-dismiss="modal" aria-hidden="true">Cancel</button> |
1037 |
</div> |
1038 |
</form> |
901 |
</div> |
1039 |
</div> |
902 |
</div> |
1040 |
</div> |
903 |
</div> |
1041 |
</div> |
904 |
</div> |
1042 |
|
905 |
|
1043 |
<div class="modal fade" id="modal-item-group-unset" tabindex="-1" role="dialog" aria-labelledby="modal-item-group-unset-label"> |
906 |
<div class="modal fade" id="modal-item-group-set" tabindex="-1" role="dialog" aria-labelledby="modal-item-group-set-label"> |
1044 |
<div class="modal-dialog"> |
907 |
<div class="modal-dialog"> |
1045 |
<div class="modal-content"> |
908 |
<div class="modal-content"> |
1046 |
<div class="modal-header"> |
909 |
<div class="modal-header"> |
1047 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
910 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
1048 |
<h3 id="modal-item-group-unset-label"><i class='fa fa-unlink'></i> Remove item from item group</h3> |
911 |
<h3 id="modal-item-group-set-label"><i class='fa fa-book'></i> Set item group for items</h3> |
1049 |
</div> |
912 |
</div> |
|
|
913 |
<form method="get" id="modal-item-group-set-form" class="validated"> |
914 |
<div class="modal-body"> |
1050 |
<div class="modal-body"> |
915 |
<fieldset> |
1051 |
Are you sure you want to remove these item(s) from their item group(s)? |
916 |
<p> |
|
|
917 |
<label for="item-group-add-form-select" class="required">Item group: </label> |
918 |
<select name="item_group" id="item-group-add-form-select"> |
919 |
[% FOREACH ig IN biblio.item_groups.search({}, {order_by => 'display_order'}) %] |
920 |
<option value="[% ig.id | html %]">[% ig.description | html %]</option> |
921 |
[% END %] |
922 |
</select> |
923 |
<span class="required">Required</span> |
924 |
</p> |
925 |
</fieldset> |
926 |
</div> |
1052 |
</div> |
927 |
<div class="modal-footer"> |
1053 |
<div class="modal-footer"> |
928 |
<button id="modal-item-group-set-submit" class="btn btn-default"><i class='fa fa-book'></i> Set item group</button> |
1054 |
<button id="modal-item-group-unset-submit" class="btn btn-danger"><i class='fa fa-unlink'></i> Remove</button> |
929 |
<button class="btn btn-link" data-dismiss="modal" aria-hidden="true">Cancel</button> |
1055 |
<button class="btn btn-link" data-dismiss="modal" aria-hidden="true">Cancel</button> |
930 |
</div> |
1056 |
</div> |
931 |
</form> |
|
|
932 |
</div> |
933 |
</div> |
934 |
</div> |
935 |
|
936 |
<div class="modal fade" id="modal-item-group-unset" tabindex="-1" role="dialog" aria-labelledby="modal-item-group-unset-label"> |
937 |
<div class="modal-dialog"> |
938 |
<div class="modal-content"> |
939 |
<div class="modal-header"> |
940 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
941 |
<h3 id="modal-item-group-unset-label"><i class='fa fa-unlink'></i> Remove item from item group</h3> |
942 |
</div> |
943 |
<div class="modal-body"> |
944 |
Are you sure you want to remove these item(s) from their item group(s)? |
945 |
</div> |
946 |
<div class="modal-footer"> |
947 |
<button id="modal-item-group-unset-submit" class="btn btn-danger"><i class='fa fa-unlink'></i> Remove</button> |
948 |
<button class="btn btn-link" data-dismiss="modal" aria-hidden="true">Cancel</button> |
949 |
</div> |
1057 |
</div> |
950 |
</div> |
1058 |
</div> |
951 |
</div> |
1059 |
</div> |
952 |
</div> |
|
|
953 |
|
1060 |
|
954 |
[% IF bundlesEnabled %] |
1061 |
[% IF bundlesEnabled %] |
955 |
<div class="modal" id="addToBundleModal" tabindex="-1" role="dialog" aria-labelledby="addToBundleLabel"> |
1062 |
<div class="modal" id="addToBundleModal" tabindex="-1" role="dialog" aria-labelledby="addToBundleLabel"> |
956 |
<form method="get" id="addToBundleForm" action=""> |
1063 |
<form method="get" id="addToBundleForm" action=""> |
957 |
<div class="modal-dialog" role="document"> |
1064 |
<div class="modal-dialog" role="document"> |
958 |
<div class="modal-content"> |
1065 |
<div class="modal-content"> |
959 |
<div class="modal-header"> |
1066 |
<div class="modal-header"> |
960 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
1067 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
961 |
<h3 id="addToBundleLabel">Add to bundle</h3> |
1068 |
<h3 id="addToBundleLabel">Add to bundle</h3> |
962 |
</div> |
1069 |
</div> |
963 |
<div class="modal-body"> |
1070 |
<div class="modal-body"> |
964 |
<div id="addResult"></div> |
1071 |
<div id="addResult"></div> |
965 |
<fieldset class="rows"> |
1072 |
<fieldset class="rows"> |
966 |
<ol> |
1073 |
<ol> |
967 |
<li> |
1074 |
<li> |
968 |
<label class="required" for="external_id">Item barcode: </label> |
1075 |
<label class="required" for="external_id">Item barcode: </label> |
969 |
<input type="text" id="external_id" name="external_id" required="required"> |
1076 |
<input type="text" id="external_id" name="external_id" required="required"> |
970 |
<span class="required">Required</span> |
1077 |
<span class="required">Required</span> |
971 |
</li> |
1078 |
</li> |
972 |
</ol> |
1079 |
</ol> |
973 |
</fieldset> |
1080 |
</fieldset> |
974 |
</div> |
1081 |
</div> |
975 |
<div class="modal-footer"> |
1082 |
<div class="modal-footer"> |
976 |
<button type="submit" class="btn btn-default">Submit</button> |
1083 |
<button type="submit" class="btn btn-default">Submit</button> |
977 |
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button> |
1084 |
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button> |
|
|
1085 |
</div> |
978 |
</div> |
1086 |
</div> |
979 |
</div> |
1087 |
</div> |
980 |
</div> |
1088 |
</form> |
981 |
</form> |
1089 |
</div> |
982 |
</div> |
|
|
983 |
|
1090 |
|
984 |
<div class="modal" id="removeFromBundleModal" tabindex="-1" role="dialog" aria-labelledby="removeFromBundleLabel"> |
1091 |
<div class="modal" id="removeFromBundleModal" tabindex="-1" role="dialog" aria-labelledby="removeFromBundleLabel"> |
985 |
<form method="get" id="removeFromBundleForm" action=""> |
1092 |
<form method="get" id="removeFromBundleForm" action=""> |
986 |
<div class="modal-dialog" role="document"> |
1093 |
<div class="modal-dialog" role="document"> |
987 |
<div class="modal-content"> |
1094 |
<div class="modal-content"> |
988 |
<div class="modal-header"> |
1095 |
<div class="modal-header"> |
989 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
1096 |
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button> |
990 |
<h3 id="removeFromBundleLabel">Remove from bundle</h3> |
1097 |
<h3 id="removeFromBundleLabel">Remove from bundle</h3> |
991 |
</div> |
1098 |
</div> |
992 |
<div class="modal-body"> |
1099 |
<div class="modal-body"> |
993 |
<div id="removeResult"></div> |
1100 |
<div id="removeResult"></div> |
994 |
<fieldset class="rows"> |
1101 |
<fieldset class="rows"> |
995 |
<ol> |
1102 |
<ol> |
996 |
<li> |
1103 |
<li> |
997 |
<label class="required" for="external_id">Item barcode: </label> |
1104 |
<label class="required" for="external_id">Item barcode: </label> |
998 |
<input type="text" id="rm_external_id" name="external_id" required="required"> |
1105 |
<input type="text" id="rm_external_id" name="external_id" required="required"> |
999 |
<span class="required">Required</span> |
1106 |
<span class="required">Required</span> |
1000 |
</li> |
1107 |
</li> |
1001 |
</ol> |
1108 |
</ol> |
1002 |
</fieldset> |
1109 |
</fieldset> |
1003 |
</div> |
1110 |
</div> |
1004 |
<div class="modal-footer"> |
1111 |
<div class="modal-footer"> |
1005 |
<button type="submit" class="btn btn-default">Submit</button> |
1112 |
<button type="submit" class="btn btn-default">Submit</button> |
1006 |
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button> |
1113 |
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button> |
|
|
1114 |
</div> |
1007 |
</div> |
1115 |
</div> |
1008 |
</div> |
1116 |
</div> |
1009 |
</div> |
1117 |
</form> |
1010 |
</form> |
1118 |
</div> |
1011 |
</div> |
|
|
1012 |
[% END %] |
1119 |
[% END %] |
1013 |
|
1120 |
|
1014 |
[% IF ( Koha.Preference('CatalogConcerns') ) %] |
1121 |
[% IF ( Koha.Preference('CatalogConcerns') ) %] |
1015 |
[% INCLUDE 'modals/add_catalog_concern.inc' %] |
1122 |
[% INCLUDE 'modals/add_catalog_concern.inc' %] |
1016 |
[% END %] |
1123 |
[% END %] |
1017 |
|
1124 |
|
1018 |
[% IF ( ( Koha.Preference('CatalogConcerns') || Koha.Preference('OpacCatalogConcerns') ) && CAN_user_editcatalogue_edit_catalogue ) %] |
1125 |
[% IF ( ( Koha.Preference('CatalogConcerns') || Koha.Preference('OpacCatalogConcerns') ) && CAN_user_editcatalogue_edit_catalogue ) %] |
1019 |
[% INCLUDE 'modals/display_ticket.inc' %] |
1126 |
[% INCLUDE 'modals/display_ticket.inc' %] |
1020 |
[% END %] |
1127 |
[% END %] |
1021 |
|
1128 |
|
1022 |
[% MACRO jsinclude BLOCK %] |
1129 |
[% MACRO jsinclude BLOCK %] |
Lines 1372-1389
Link Here
|
1372 |
|
1479 |
|
1373 |
}); |
1480 |
}); |
1374 |
|
1481 |
|
1375 |
[% IF ( Koha.Preference('SearchEngine') == 'Elasticsearch' ) %] |
1482 |
[% IF ( Koha.Preference('SearchEngine') == 'Elasticsearch' ) %] |
1376 |
$("body").on("click",".previewElastic", function(e){ |
1483 |
$("body").on("click",".previewElastic", function(e){ |
1377 |
e.preventDefault(); |
1484 |
e.preventDefault(); |
1378 |
var pageElastic = $(this).attr("href"); |
1485 |
var pageElastic = $(this).attr("href"); |
1379 |
$("#elasticPreview .modal-body").load(pageElastic, function( response, status, xhr ) { |
1486 |
$("#elasticPreview .modal-body").load(pageElastic, function( response, status, xhr ) { |
1380 |
if( status == 'error' ){ |
1487 |
if( status == 'error' ){ |
1381 |
$("#elasticPreview .modal-body").html("<h1>"+_("An error has occurred!")+"</h1><h2><em>"+_("Error 404")+"</em></h2><ul><li>"+_("An internal link in the staff interface is broken and the page does not exist")+"</li></ul><h3>"+_("What's next?")+"</h3><ul style='margin-bottom: 1em; padding-bottom: 1em; border-bottom: 1px solid #CCC;'><li>"+_("Use top menu bar to navigate to another part of Koha.")+"</li><li>"+_("To report a broken link or any other issue, please contact the Koha administrator.")+" <a href='mailto:[% Koha.Preference("KohaAdminEmailAddress") | uri %]'>"+_("Send email")+"</a></li></ul>"); |
1488 |
$("#elasticPreview .modal-body").html("<h1>"+_("An error has occurred!")+"</h1><h2><em>"+_("Error 404")+"</em></h2><ul><li>"+_("An internal link in the staff interface is broken and the page does not exist")+"</li></ul><h3>"+_("What's next?")+"</h3><ul style='margin-bottom: 1em; padding-bottom: 1em; border-bottom: 1px solid #CCC;'><li>"+_("Use top menu bar to navigate to another part of Koha.")+"</li><li>"+_("To report a broken link or any other issue, please contact the Koha administrator.")+" <a href='mailto:[% Koha.Preference("KohaAdminEmailAddress") | uri %]'>"+_("Send email")+"</a></li></ul>"); |
1382 |
} |
1489 |
} |
|
|
1490 |
}); |
1491 |
$('#elasticPreview').modal({show:true}); |
1383 |
}); |
1492 |
}); |
1384 |
$('#elasticPreview').modal({show:true}); |
1493 |
[% END %] |
1385 |
}); |
|
|
1386 |
[% END %] |
1387 |
|
1494 |
|
1388 |
[% IF ( Koha.Preference('NovelistSelectStaffEnabled') && Koha.Preference('NovelistSelectStaffProfile') && ( normalized_isbn || normalized_upc ) ) %] |
1495 |
[% IF ( Koha.Preference('NovelistSelectStaffEnabled') && Koha.Preference('NovelistSelectStaffProfile') && ( normalized_isbn || normalized_upc ) ) %] |
1389 |
novSelect.loadContentForQuery({ |
1496 |
novSelect.loadContentForQuery({ |
Lines 1398-1406
Link Here
|
1398 |
$(".NovelistSelect").show(); |
1505 |
$(".NovelistSelect").show(); |
1399 |
} |
1506 |
} |
1400 |
}); |
1507 |
}); |
1401 |
[% END %] |
1508 |
[% END %] |
1402 |
$(".cover-slider").on("click",".cover-nav", function(e){ |
1509 |
$(".cover-slider").on("click",".cover-nav", function(e){ |
1403 |
e.preventDefault(); |
1510 |
e.preventDefault(); |
1404 |
var cover_slider = $(this).parent(); |
1511 |
var cover_slider = $(this).parent(); |
1405 |
// Adding click handler for cover image navigation links |
1512 |
// Adding click handler for cover image navigation links |
1406 |
var num = $(this).data("num"); |
1513 |
var num = $(this).data("num"); |
Lines 1408-1414
Link Here
|
1408 |
$(this).addClass("nav-active"); |
1515 |
$(this).addClass("nav-active"); |
1409 |
$(cover_slider).find(".cover-image").hide(); |
1516 |
$(cover_slider).find(".cover-image").hide(); |
1410 |
$(cover_slider).find(".cover-image").eq( num ).show(); |
1517 |
$(cover_slider).find(".cover-image").eq( num ).show(); |
1411 |
}); |
1518 |
}); |
1412 |
}); |
1519 |
}); |
1413 |
|
1520 |
|
1414 |
|
1521 |
|
Lines 1460-1774
Link Here
|
1460 |
browser.show(); |
1567 |
browser.show(); |
1461 |
|
1568 |
|
1462 |
[% IF bundlesEnabled %] |
1569 |
[% IF bundlesEnabled %] |
1463 |
var bundle_settings = [% TablesSettings.GetTableSettings('catalogue', 'detail','bundle_tables','json') | $raw %]; |
1570 |
var bundle_settings = [% TablesSettings.GetTableSettings('catalogue', 'detail','bundle_tables','json') | $raw %]; |
1464 |
var bundle_lost_value = [% Koha.Preference('BundleLostValue') | html %]; |
1571 |
var bundle_lost_value = [% Koha.Preference('BundleLostValue') | html %]; |
1465 |
[% END %] |
1572 |
[% END %] |
1466 |
|
1573 |
|
1467 |
$(document).ready(function() { |
1574 |
$(document).ready(function() { |
1468 |
|
1575 |
|
1469 |
[% IF bundlesEnabled %] // Bundle handling |
1576 |
[% IF bundlesEnabled %] // Bundle handling |
1470 |
function createChild ( row, itemnumber, duedate ) { |
1577 |
function createChild ( row, itemnumber, duedate ) { |
1471 |
|
1578 |
// Toolbar |
1472 |
// Toolbar |
1579 |
var bundle_toolbar = $('<div id="toolbar" class="btn-toolbar"></div>'); |
1473 |
var bundle_toolbar = $('<div id="toolbar" class="btn-toolbar"></div>'); |
1580 |
bundle_toolbar.append('<a class="btn btn-default" data-toggle="modal" data-target="#addToBundleModal" data-item="' + itemnumber + '"><i class="fa fa-plus"></i> ' + _("Add to bundle") + '</a>'); |
1474 |
bundle_toolbar.append('<a class="btn btn-default" data-toggle="modal" data-target="#addToBundleModal" data-item="' + itemnumber + '"><i class="fa fa-plus"></i> ' + _("Add to bundle") + '</a>'); |
1581 |
bundle_toolbar.append('<a class="btn btn-default" data-toggle="modal" data-target="#removeFromBundleModal" data-item="' + itemnumber + '"><i class="fa fa-minus"></i> ' + _("Remove from bundle") + '</a>'); |
1475 |
bundle_toolbar.append('<a class="btn btn-default" data-toggle="modal" data-target="#removeFromBundleModal" data-item="' + itemnumber + '"><i class="fa fa-minus"></i> ' + _("Remove from bundle") + '</a>'); |
1582 |
|
1476 |
|
1583 |
// Disable management if there's a duedate |
1477 |
// Disable management if there's a duedate |
1584 |
if(duedate) { |
1478 |
if(duedate) { |
1585 |
bundle_toolbar.children('.btn').addClass("disabled"); |
1479 |
bundle_toolbar.children('.btn').addClass("disabled"); |
1586 |
bundle_toolbar.attr("title", _("This bundle is checked out, it cannot be modified")); |
1480 |
bundle_toolbar.attr("title", _("This bundle is checked out, it cannot be modified")); |
1587 |
} |
1481 |
} |
|
|
1482 |
|
1588 |
|
1483 |
// This is the table we'll convert into a DataTable |
1589 |
// This is the table we'll convert into a DataTable |
1484 |
var bundles_table = $('<table class="display tbundle" data-itemnumber="'+itemnumber+'" id="bundle_table_'+itemnumber+'" width="100%"/>'); |
1590 |
var bundles_table = $('<table class="display tbundle" data-itemnumber="'+itemnumber+'" id="bundle_table_'+itemnumber+'" width="100%"/>'); |
1485 |
|
1591 |
|
1486 |
// Display it the child row |
1592 |
// Display it the child row |
1487 |
row.child( bundle_toolbar.add(bundles_table), 'bundle' ).show(); |
1593 |
row.child( bundle_toolbar.add(bundles_table), 'bundle' ).show(); |
1488 |
|
1594 |
|
1489 |
// Initialise as a DataTable |
1595 |
// Initialise as a DataTable |
1490 |
var bundle_table_url = "/api/v1/items/" + itemnumber + "/bundled_items?"; |
1596 |
var bundle_table_url = "/api/v1/items/" + itemnumber + "/bundled_items?"; |
1491 |
var bundle_table = bundles_table.kohaTable({ |
1597 |
var bundle_table = bundles_table.kohaTable({ |
1492 |
"ajax": { |
1598 |
"ajax": { |
1493 |
"url": bundle_table_url |
1599 |
"url": bundle_table_url |
1494 |
}, |
|
|
1495 |
"embed": [ |
1496 |
"biblio", |
1497 |
"return_claim.patron" |
1498 |
], |
1499 |
"order": [[ 1, "asc" ]], |
1500 |
"columnDefs": [ { |
1501 |
"targets": [0,1,2,3], |
1502 |
"render": function (data, type, row, meta) { |
1503 |
if ( data && type == 'display' ) { |
1504 |
return data.escapeHtml(); |
1505 |
} |
1506 |
return data; |
1507 |
} |
1508 |
} ], |
1509 |
"columns": [ |
1510 |
{ |
1511 |
"data": "biblio.title:biblio.subtitle:biblio.medium", |
1512 |
"title": _("Title"), |
1513 |
"searchable": true, |
1514 |
"orderable": true, |
1515 |
"render": function(data, type, row, meta) { |
1516 |
return $biblio_to_html(row.biblio, { link: 1 }); |
1517 |
} |
1518 |
}, |
1519 |
{ |
1520 |
"data": "biblio.author", |
1521 |
"title": _("Author"), |
1522 |
"searchable": true, |
1523 |
"orderable": true, |
1524 |
}, |
1525 |
{ |
1526 |
"data": "callnumber", |
1527 |
"title": _("Callnumber"), |
1528 |
"searchable": true, |
1529 |
"orderable": true, |
1530 |
}, |
1600 |
}, |
1531 |
{ |
1601 |
"embed": [ |
1532 |
"data": "external_id", |
1602 |
"biblio", |
1533 |
"title": _("Barcode"), |
1603 |
"return_claim.patron" |
1534 |
"searchable": true, |
1604 |
], |
1535 |
"orderable": true, |
1605 |
"order": [[ 1, "asc" ]], |
1536 |
}, |
1606 |
"columnDefs": [ { |
1537 |
{ |
1607 |
"targets": [0,1,2,3], |
1538 |
"data": "lost_status:last_seen_date:return_claim.patron", |
1608 |
"render": function (data, type, row, meta) { |
1539 |
"title": _("Status"), |
1609 |
if ( data && type == 'display' ) { |
1540 |
"searchable": false, |
1610 |
return data.escapeHtml(); |
1541 |
"orderable": false, |
|
|
1542 |
"render": function(data, type, row, meta) { |
1543 |
if ( row.lost_status == bundle_lost_value ) { |
1544 |
let out = '<span class="lost">' + _("Last seen") + ': ' + $date(row.last_seen_date) + '</span>'; |
1545 |
if ( row.return_claim ) { |
1546 |
out = out + '<span class="claims_return">' + _("Claims returned by") + ': ' + $patron_to_html( row.return_claim.patron, { display_cardnumber: false, url: true } ) + '</span>'; |
1547 |
} |
1548 |
return out; |
1549 |
} |
1550 |
else if ( row.lost_status !== 0 ) { |
1551 |
return '<span class="lost">' + _("Lost") + ': ' + row.lost_status + '</span>'; |
1552 |
} |
1611 |
} |
1553 |
return '<span class="available">' + _("Present") + '</span>'; |
1612 |
return data; |
1554 |
} |
1613 |
} |
1555 |
}, |
1614 |
} ], |
1556 |
{ |
1615 |
"columns": [ |
1557 |
"data": function( row, type, val, meta ) { |
1616 |
{ |
1558 |
var result; |
1617 |
"data": "biblio.title:biblio.subtitle:biblio.medium", |
1559 |
if (duedate) { |
1618 |
"title": _("Title"), |
1560 |
result = '<button class="btn btn-default btn-xs remove disabled" role="button" data-itemnumber="'+row.item_id+'" title="%s"><i class="fa fa-minus" aria-hidden="true"></i> %s</button>\n'.format(_("This bundle is checked out, it cannot be modified"), _("Remove")); |
1619 |
"searchable": true, |
1561 |
} else { |
1620 |
"orderable": true, |
1562 |
result = '<button class="btn btn-default btn-xs remove" role="button" data-itemnumber="'+row.item_id+'"><i class="fa fa-minus" aria-hidden="true"></i> '+_("Remove")+'</button>\n'; |
1621 |
"render": function(data, type, row, meta) { |
|
|
1622 |
return $biblio_to_html(row.biblio, { link: 1 }); |
1563 |
} |
1623 |
} |
1564 |
return result; |
|
|
1565 |
}, |
1624 |
}, |
1566 |
"title": _("Actions"), |
1625 |
{ |
1567 |
"searchable": false, |
1626 |
"data": "biblio.author", |
1568 |
"orderable": false, |
1627 |
"title": _("Author"), |
1569 |
"class": "noExport" |
1628 |
"searchable": true, |
1570 |
} |
1629 |
"orderable": true, |
1571 |
] |
1630 |
}, |
1572 |
}, bundle_settings, 1); |
1631 |
{ |
1573 |
$(".tbundle").on("click", ".remove:not(.disabled)", function(){ |
1632 |
"data": "callnumber", |
1574 |
var bundle_table = $(this).closest('table'); |
1633 |
"title": _("Callnumber"), |
1575 |
var host_itemnumber = bundle_table.data('itemnumber'); |
1634 |
"searchable": true, |
1576 |
var component_itemnumber = $(this).data('itemnumber'); |
1635 |
"orderable": true, |
1577 |
var unlink_item_url = "/api/v1/items/" + host_itemnumber + "/bundled_items/" + component_itemnumber; |
1636 |
}, |
1578 |
$.ajax({ |
1637 |
{ |
1579 |
type: "DELETE", |
1638 |
"data": "external_id", |
1580 |
url: unlink_item_url, |
1639 |
"title": _("Barcode"), |
1581 |
success: function(){ |
1640 |
"searchable": true, |
1582 |
bundle_table.DataTable({ 'retrieve': true }).draw(false); |
1641 |
"orderable": true, |
1583 |
} |
1642 |
}, |
|
|
1643 |
{ |
1644 |
"data": "lost_status:last_seen_date:return_claim.patron", |
1645 |
"title": _("Status"), |
1646 |
"searchable": false, |
1647 |
"orderable": false, |
1648 |
"render": function(data, type, row, meta) { |
1649 |
if ( row.lost_status == bundle_lost_value ) { |
1650 |
let out = '<span class="lost">' + _("Last seen") + ': ' + $date(row.last_seen_date) + '</span>'; |
1651 |
if ( row.return_claim ) { |
1652 |
out = out + '<span class="claims_return">' + _("Claims returned by") + ': ' + $patron_to_html( row.return_claim.patron, { display_cardnumber: false, url: true } ) + '</span>'; |
1653 |
} |
1654 |
return out; |
1655 |
} |
1656 |
else if ( row.lost_status !== 0 ) { |
1657 |
return '<span class="lost">' + _("Lost") + ': ' + row.lost_status + '</span>'; |
1658 |
} |
1659 |
return '<span class="available">' + _("Present") + '</span>'; |
1660 |
} |
1661 |
}, |
1662 |
{ |
1663 |
"data": function( row, type, val, meta ) { |
1664 |
var result; |
1665 |
if (duedate) { |
1666 |
result = '<button class="btn btn-default btn-xs remove disabled" role="button" data-itemnumber="'+row.item_id+'" title="%s"><i class="fa fa-minus" aria-hidden="true"></i> %s</button>\n'.format(_("This bundle is checked out, it cannot be modified"), _("Remove")); |
1667 |
} else { |
1668 |
result = '<button class="btn btn-default btn-xs remove" role="button" data-itemnumber="'+row.item_id+'"><i class="fa fa-minus" aria-hidden="true"></i> '+_("Remove")+'</button>\n'; |
1669 |
} |
1670 |
return result; |
1671 |
}, |
1672 |
"title": _("Actions"), |
1673 |
"searchable": false, |
1674 |
"orderable": false, |
1675 |
"class": "noExport" |
1676 |
} |
1677 |
] |
1678 |
}, bundle_settings, 1); |
1679 |
$(".tbundle").on("click", ".remove:not(.disabled)", function(){ |
1680 |
var bundle_table = $(this).closest('table'); |
1681 |
var host_itemnumber = bundle_table.data('itemnumber'); |
1682 |
var component_itemnumber = $(this).data('itemnumber'); |
1683 |
var unlink_item_url = "/api/v1/items/" + host_itemnumber + "/bundled_items/" + component_itemnumber; |
1684 |
$.ajax({ |
1685 |
type: "DELETE", |
1686 |
url: unlink_item_url, |
1687 |
success: function(){ |
1688 |
bundle_table.DataTable({ 'retrieve': true }).draw(false); |
1689 |
} |
1690 |
}); |
1584 |
}); |
1691 |
}); |
|
|
1692 |
|
1693 |
return; |
1694 |
} |
1695 |
|
1696 |
var bundle_changed; |
1697 |
var bundle_form_active; |
1698 |
$("#addToBundleModal").on("shown.bs.modal", function(e){ |
1699 |
var button = $(e.relatedTarget); |
1700 |
var item_id = button.data('item'); |
1701 |
$("#addResult").replaceWith('<div id="addResult"></div>'); |
1702 |
$("#addToBundleForm").attr('action', '/api/v1/items/' + item_id + '/bundled_items'); |
1703 |
$("#external_id").focus(); |
1704 |
bundle_changed = 0; |
1705 |
bundle_form_active = item_id; |
1585 |
}); |
1706 |
}); |
1586 |
|
1707 |
|
1587 |
return; |
1708 |
function addToBundle (url, data) { |
1588 |
} |
1709 |
/* Send the data using post with external_id */ |
|
|
1710 |
var posting = $.post({ |
1711 |
url: url, |
1712 |
data: JSON.stringify(data), |
1713 |
contentType: "application/json; charset=utf-8", |
1714 |
dataType: "json" |
1715 |
}); |
1589 |
|
1716 |
|
1590 |
var bundle_changed; |
1717 |
const barcode = data.external_id; |
1591 |
var bundle_form_active; |
|
|
1592 |
$("#addToBundleModal").on("shown.bs.modal", function(e){ |
1593 |
var button = $(e.relatedTarget); |
1594 |
var item_id = button.data('item'); |
1595 |
$("#addResult").replaceWith('<div id="addResult"></div>'); |
1596 |
$("#addToBundleForm").attr('action', '/api/v1/items/' + item_id + '/bundled_items'); |
1597 |
$("#external_id").focus(); |
1598 |
bundle_changed = 0; |
1599 |
bundle_form_active = item_id; |
1600 |
}); |
1601 |
|
1718 |
|
1602 |
function addToBundle (url, data) { |
1719 |
/* Report the results */ |
1603 |
/* Send the data using post with external_id */ |
1720 |
posting.done(function(data) { |
1604 |
var posting = $.post({ |
1721 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-success">'+_("Success: Added '%s'").format(barcode)+'</div>'); |
1605 |
url: url, |
1722 |
$('#external_id').val('').focus(); |
1606 |
data: JSON.stringify(data), |
1723 |
bundle_changed = 1; |
1607 |
contentType: "application/json; charset=utf-8", |
1724 |
}); |
1608 |
dataType: "json" |
1725 |
posting.fail(function(data) { |
1609 |
}); |
1726 |
if ( data.status === 409 ) { |
1610 |
|
1727 |
var response = data.responseJSON; |
1611 |
const barcode = data.external_id; |
1728 |
if ( response.error_code === 'already_bundled' ) { |
1612 |
|
1729 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-warning">'+_("Warning: Item '%s' already attached").format(barcode)+'</div>'); |
1613 |
/* Report the results */ |
1730 |
} else if (response.error_code === 'bundle_checkout_out') { |
1614 |
posting.done(function(data) { |
1731 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-danger">'+_("Failure: Bundle is currently checked out")+'</div>'); |
1615 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-success">'+_("Success: Added '%s'").format(barcode)+'</div>'); |
1732 |
} else if (response.error_code === 'checked_out') { |
1616 |
$('#external_id').val('').focus(); |
1733 |
const button = $('<button type="button">') |
1617 |
bundle_changed = 1; |
1734 |
.addClass('btn btn-xs') |
1618 |
}); |
1735 |
.text(_("Check in and add to bundle")) |
1619 |
posting.fail(function(data) { |
1736 |
.on('click', function () { |
1620 |
if ( data.status === 409 ) { |
1737 |
addToBundle(url, { external_id: barcode, force_checkin: true }); |
1621 |
var response = data.responseJSON; |
1738 |
}); |
1622 |
if ( response.error_code === 'already_bundled' ) { |
1739 |
$('#addResult') |
1623 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-warning">'+_("Warning: Item '%s' already attached").format(barcode)+'</div>'); |
1740 |
.empty() |
1624 |
} else if (response.error_code === 'bundle_checkout_out') { |
1741 |
.attr('class', 'alert alert-warning') |
1625 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-danger">'+_("Failure: Bundle is currently checked out")+'</div>'); |
1742 |
.append(__x('Warning: Item {barcode} is checked out', { barcode })) |
1626 |
} else if (response.error_code === 'checked_out') { |
1743 |
.append(' ', button); |
1627 |
const button = $('<button type="button">') |
1744 |
} else if (response.error_code === 'failed_checkin') { |
1628 |
.addClass('btn btn-xs') |
1745 |
$('#addResult') |
1629 |
.text(_("Check in and add to bundle")) |
1746 |
.empty() |
1630 |
.on('click', function () { |
1747 |
.attr('class', 'alert alert-danger') |
1631 |
addToBundle(url, { external_id: barcode, force_checkin: true }); |
1748 |
.append(__x('Failure: Item {barcode} cannot be checked in', { barcode })) |
1632 |
}); |
1749 |
} else if (response.error_code === 'reserved') { |
1633 |
$('#addResult') |
1750 |
const button = $('<button type="button">') |
1634 |
.empty() |
1751 |
.addClass('btn btn-xs') |
1635 |
.attr('class', 'alert alert-warning') |
1752 |
.text(_("Ignore holds and add to bundle")) |
1636 |
.append(__x('Warning: Item {barcode} is checked out', { barcode })) |
1753 |
.on('click', function () { |
1637 |
.append(' ', button); |
1754 |
addToBundle(url, { external_id: barcode, ignore_holds: true }); |
1638 |
} else if (response.error_code === 'failed_checkin') { |
1755 |
}); |
1639 |
$('#addResult') |
1756 |
$('#addResult') |
1640 |
.empty() |
1757 |
.empty() |
1641 |
.attr('class', 'alert alert-danger') |
1758 |
.attr('class', 'alert alert-warning') |
1642 |
.append(__x('Failure: Item {barcode} cannot be checked in', { barcode })) |
1759 |
.append(__x('Warning: Item {barcode} is on hold', { barcode })) |
1643 |
} else if (response.error_code === 'reserved') { |
1760 |
.append(' ', button); |
1644 |
const button = $('<button type="button">') |
1761 |
} else { |
1645 |
.addClass('btn btn-xs') |
1762 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-danger">'+_("Failure: Item '%s' belongs to another bundle").format(barcode)+'</div>'); |
1646 |
.text(_("Ignore holds and add to bundle")) |
1763 |
} |
1647 |
.on('click', function () { |
1764 |
} else if ( data.status === 404 ) { |
1648 |
addToBundle(url, { external_id: barcode, ignore_holds: true }); |
1765 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-danger">'+_("Failure: Item '%s' not found").format(barcode)+'</div>'); |
1649 |
}); |
1766 |
} else if ( data.status === 400 ) { |
1650 |
$('#addResult') |
1767 |
var response = data.responseJSON; |
1651 |
.empty() |
1768 |
if ( response.error_code === "failed_nesting" ) { |
1652 |
.attr('class', 'alert alert-warning') |
1769 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-danger">'+_("Failure: Item '%s' is a bundle and bundles cannot be nested").format(barcode)+'</div>'); |
1653 |
.append(__x('Warning: Item {barcode} is on hold', { barcode })) |
1770 |
} else { |
1654 |
.append(' ', button); |
1771 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-danger">'+_("Failure: Check the logs for details.")+'</div>'); |
1655 |
} else { |
1772 |
} |
1656 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-danger">'+_("Failure: Item '%s' belongs to another bundle").format(barcode)+'</div>'); |
1773 |
} else { |
1657 |
} |
1774 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-danger">'+_("Failure: Check the logs for details.")+'</div>'); |
1658 |
} else if ( data.status === 404 ) { |
1775 |
} |
1659 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-danger">'+_("Failure: Item '%s' not found").format(barcode)+'</div>'); |
1776 |
$('#external_id').val('').focus(); |
1660 |
} else if ( data.status === 400 ) { |
1777 |
}); |
1661 |
var response = data.responseJSON; |
1778 |
} |
1662 |
if ( response.error_code === "failed_nesting" ) { |
|
|
1663 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-danger">'+_("Failure: Item '%s' is a bundle and bundles cannot be nested").format(barcode)+'</div>'); |
1664 |
} else { |
1665 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-danger">'+_("Failure: Check the logs for details.")+'</div>'); |
1666 |
} |
1667 |
} else { |
1668 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-danger">'+_("Failure: Check the logs for details.")+'</div>'); |
1669 |
} |
1670 |
$('#external_id').val('').focus(); |
1671 |
}); |
1672 |
} |
1673 |
|
1779 |
|
1674 |
$("#addToBundleForm").submit(function(event) { |
1780 |
$("#addToBundleForm").submit(function(event) { |
1675 |
/* stop form from submitting normally */ |
1781 |
/* stop form from submitting normally */ |
1676 |
event.preventDefault(); |
1782 |
event.preventDefault(); |
1677 |
|
1783 |
|
1678 |
const url = this.action; |
1784 |
const url = this.action; |
1679 |
const data = { external_id: this.elements.external_id.value }; |
1785 |
const data = { external_id: this.elements.external_id.value }; |
1680 |
|
1786 |
|
1681 |
addToBundle(url, data); |
1787 |
addToBundle(url, data); |
1682 |
}); |
1788 |
}); |
1683 |
|
1789 |
|
1684 |
$("#addToBundleModal").on("hidden.bs.modal", function(e){ |
1790 |
$("#addToBundleModal").on("hidden.bs.modal", function(e){ |
1685 |
if ( bundle_changed ) { |
1791 |
if ( bundle_changed ) { |
1686 |
$('#bundle_table_'+bundle_form_active).DataTable({ 'retrieve': true }).ajax.reload(); |
1792 |
$('#bundle_table_'+bundle_form_active).DataTable({ 'retrieve': true }).ajax.reload(); |
1687 |
} |
1793 |
} |
1688 |
bundle_form_active = 0; |
1794 |
bundle_form_active = 0; |
1689 |
bundle_changed = 0; |
1795 |
bundle_changed = 0; |
1690 |
}); |
1796 |
}); |
1691 |
|
1797 |
|
1692 |
$("#removeFromBundleModal").on("shown.bs.modal", function(e){ |
1798 |
$("#removeFromBundleModal").on("shown.bs.modal", function(e){ |
1693 |
var button = $(e.relatedTarget); |
1799 |
var button = $(e.relatedTarget); |
1694 |
var item_id = button.data('item'); |
1800 |
var item_id = button.data('item'); |
1695 |
$("#removeResult").replaceWith('<div id="removeResult"></div>'); |
1801 |
$("#removeResult").replaceWith('<div id="removeResult"></div>'); |
1696 |
$("#removeFromBundleForm").attr('action', '/api/v1/items/' + item_id + '/bundled_items/'); |
1802 |
$("#removeFromBundleForm").attr('action', '/api/v1/items/' + item_id + '/bundled_items/'); |
1697 |
$("#rm_external_id").focus(); |
1803 |
$("#rm_external_id").focus(); |
1698 |
bundle_changed = 0; |
1804 |
bundle_changed = 0; |
1699 |
bundle_form_active = item_id; |
1805 |
bundle_form_active = item_id; |
1700 |
}); |
1806 |
}); |
1701 |
|
1807 |
|
1702 |
$("#removeFromBundleForm").submit(function(event) { |
1808 |
$("#removeFromBundleForm").submit(function(event) { |
1703 |
|
1809 |
|
1704 |
/* stop form from submitting normally */ |
1810 |
/* stop form from submitting normally */ |
1705 |
event.preventDefault(); |
1811 |
event.preventDefault(); |
1706 |
|
1812 |
|
1707 |
/* get the action attribute from the <form action=""> element */ |
1813 |
/* get the action attribute from the <form action=""> element */ |
1708 |
var $form = $(this), |
1814 |
var $form = $(this), |
1709 |
url = $form.attr('action'); |
1815 |
url = $form.attr('action'); |
1710 |
|
1816 |
|
1711 |
var barcode = $('#rm_external_id').val(); |
1817 |
var barcode = $('#rm_external_id').val(); |
1712 |
|
1818 |
|
1713 |
/* Fetch itemnumber using rm_external_id */ |
1819 |
/* Fetch itemnumber using rm_external_id */ |
1714 |
var itemReq = $.get('/api/v1/items', { q: JSON.stringify({ |
1820 |
var itemReq = $.get('/api/v1/items', { q: JSON.stringify({ |
1715 |
external_id: barcode |
1821 |
external_id: barcode |
1716 |
}) }, null, "json"); |
1822 |
}) }, null, "json"); |
1717 |
|
1823 |
|
1718 |
var itemnumber; |
1824 |
var itemnumber; |
1719 |
itemReq.done(function(data) { |
1825 |
itemReq.done(function(data) { |
1720 |
if (data.length === 1) { |
1826 |
if (data.length === 1) { |
1721 |
itemnumber = data[0].item_id; |
1827 |
itemnumber = data[0].item_id; |
1722 |
|
1828 |
|
1723 |
/* Remove link using fetch itemnumber */ |
1829 |
/* Remove link using fetch itemnumber */ |
1724 |
var deleteReq = $.ajax( url + itemnumber, { |
1830 |
var deleteReq = $.ajax( url + itemnumber, { |
1725 |
type : 'DELETE' |
1831 |
type : 'DELETE' |
1726 |
}); |
1832 |
}); |
1727 |
|
1833 |
|
1728 |
/* Report the results */ |
1834 |
/* Report the results */ |
1729 |
deleteReq.done(function(data) { |
1835 |
deleteReq.done(function(data) { |
1730 |
var barcode = $('#rm_external_id').val(); |
1836 |
var barcode = $('#rm_external_id').val(); |
1731 |
$('#removeResult').replaceWith('<div id="removeResult" class="alert alert-success">'+_("Success: Removed '%s'").format(barcode)+'</div>'); |
1837 |
$('#removeResult').replaceWith('<div id="removeResult" class="alert alert-success">'+_("Success: Removed '%s'").format(barcode)+'</div>'); |
1732 |
$('#rm_external_id').val('').focus(); |
1838 |
$('#rm_external_id').val('').focus(); |
1733 |
bundle_changed = 1; |
1839 |
bundle_changed = 1; |
1734 |
}); |
1840 |
}); |
1735 |
deleteReq.fail(function(data) { |
1841 |
deleteReq.fail(function(data) { |
1736 |
var barcode = $('#rm_external_id').val(); |
1842 |
var barcode = $('#rm_external_id').val(); |
1737 |
if ( data.status === 409 ) { |
1843 |
if ( data.status === 409 ) { |
1738 |
var response = data.responseJSON; |
1844 |
var response = data.responseJSON; |
1739 |
if (response.error_code === 'bundle_checkout_out') { |
1845 |
if (response.error_code === 'bundle_checkout_out') { |
1740 |
$('#removeResult').replaceWith('<div id="removeResult" class="alert alert-danger">'+_("Failure: Bundle is currently checked out")+'</div>'); |
1846 |
$('#removeResult').replaceWith('<div id="removeResult" class="alert alert-danger">'+_("Failure: Bundle is currently checked out")+'</div>'); |
1741 |
} else if ( response.key === "PRIMARY" ) { |
1847 |
} else if ( response.key === "PRIMARY" ) { |
1742 |
$('#removeResult').replaceWith('<div id="removeResult" class="alert alert-warning">'+_("Warning: Item '%s' already attached").format(barcode)+'</div>'); |
1848 |
$('#removeResult').replaceWith('<div id="removeResult" class="alert alert-warning">'+_("Warning: Item '%s' already attached").format(barcode)+'</div>'); |
|
|
1849 |
} else { |
1850 |
$('#removeResult').replaceWith('<div id="removeResult" class="alert alert-danger">'+_("Failure: Item '%s' belongs to another bundle").format(barcode)+'</div>'); |
1851 |
} |
1852 |
} else if ( data.status === 404 ) { |
1853 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-danger">'+_("Failure: Item '%s' not found").format(barcode)+'</div>'); |
1743 |
} else { |
1854 |
} else { |
1744 |
$('#removeResult').replaceWith('<div id="removeResult" class="alert alert-danger">'+_("Failure: Item '%s' belongs to another bundle").format(barcode)+'</div>'); |
1855 |
$('#removeResult').replaceWith('<div id="removeResult" class="alert alert-danger">'+_("Failure: Check the logs for details")+'</div>'); |
1745 |
} |
1856 |
} |
1746 |
} else if ( data.status === 404 ) { |
1857 |
$('#rm_external_id').val('').focus(); |
1747 |
$('#addResult').replaceWith('<div id="addResult" class="alert alert-danger">'+_("Failure: Item '%s' not found").format(barcode)+'</div>'); |
1858 |
}); |
1748 |
} else { |
1859 |
} else { |
1749 |
$('#removeResult').replaceWith('<div id="removeResult" class="alert alert-danger">'+_("Failure: Check the logs for details")+'</div>'); |
1860 |
$('#removeResult').replaceWith('<div id="removeResult" class="alert alert-danger">'+_("Failed: Barcode matched more than one item '%s'").format(barcode)+'</div>'); |
1750 |
} |
1861 |
} |
1751 |
$('#rm_external_id').val('').focus(); |
1862 |
}); |
1752 |
}); |
1863 |
itemReq.fail(function(data) { |
1753 |
} else { |
1864 |
$('#removeResult').replaceWith('<div id="removeResult" class="alert alert-danger">'+_("Failed: Item not found '%s'").format(barcode)+'</div>'); |
1754 |
$('#removeResult').replaceWith('<div id="removeResult" class="alert alert-danger">'+_("Failed: Barcode matched more than one item '%s'").format(barcode)+'</div>'); |
1865 |
$('#rm_external_id').val('').focus(); |
1755 |
} |
|
|
1756 |
}); |
1757 |
itemReq.fail(function(data) { |
1758 |
$('#removeResult').replaceWith('<div id="removeResult" class="alert alert-danger">'+_("Failed: Item not found '%s'").format(barcode)+'</div>'); |
1759 |
$('#rm_external_id').val('').focus(); |
1760 |
|
1866 |
|
|
|
1867 |
}); |
1761 |
}); |
1868 |
}); |
1762 |
}); |
|
|
1763 |
|
1869 |
|
1764 |
$("#removeFromBundleModal").on("hidden.bs.modal", function(e){ |
1870 |
$("#removeFromBundleModal").on("hidden.bs.modal", function(e){ |
1765 |
if ( bundle_changed ) { |
1871 |
if ( bundle_changed ) { |
1766 |
$('#bundle_table_'+bundle_form_active).DataTable({ 'retrieve': true }).ajax.reload(); |
1872 |
$('#bundle_table_'+bundle_form_active).DataTable({ 'retrieve': true }).ajax.reload(); |
1767 |
} |
1873 |
} |
1768 |
bundle_form_active = 0; |
1874 |
bundle_form_active = 0; |
1769 |
bundle_changed = 0; |
1875 |
bundle_changed = 0; |
1770 |
}); |
1876 |
}); |
1771 |
// End bundle handling |
1877 |
// End bundle handling |
1772 |
[% END %] |
1878 |
[% END %] |
1773 |
|
1879 |
|
1774 |
let items_tab_ids = [ 'holdings', 'otherholdings' ]; |
1880 |
let items_tab_ids = [ 'holdings', 'otherholdings' ]; |
Lines 1776-1805
Link Here
|
1776 |
build_items_table(tab_id, false, {}, build_items_table_drawncallback); |
1882 |
build_items_table(tab_id, false, {}, build_items_table_drawncallback); |
1777 |
|
1883 |
|
1778 |
[% IF bundlesEnabled %] |
1884 |
[% IF bundlesEnabled %] |
1779 |
// Add event listener for opening and closing bundle details |
1885 |
// Add event listener for opening and closing bundle details |
1780 |
$('#' + tab_id + '_table tbody').on('click', 'button.details-control', function () { |
1886 |
$('#' + tab_id + '_table tbody').on('click', 'button.details-control', function () { |
1781 |
var button = $(this); |
1887 |
var button = $(this); |
1782 |
var tr = button.closest('tr'); |
1888 |
var tr = button.closest('tr'); |
1783 |
var dTable = button.closest('table').DataTable({ 'retrieve': true }); |
1889 |
var dTable = button.closest('table').DataTable({ 'retrieve': true }); |
1784 |
|
1890 |
|
1785 |
let row = dTable.row( tr ); |
1891 |
let row = dTable.row( tr ); |
1786 |
let data = row.data(); |
1892 |
let data = row.data(); |
1787 |
let itemnumber = data.item_id; |
1893 |
let itemnumber = data.item_id; |
1788 |
let duedate = (data.checkout&&data.checkout.due_date) || null; |
1894 |
let duedate = (data.checkout&&data.checkout.due_date) || null; |
1789 |
|
1895 |
|
1790 |
if ( row.child.isShown() ) { |
1896 |
if ( row.child.isShown() ) { |
1791 |
// This row is already open - close it |
1897 |
// This row is already open - close it |
1792 |
row.child.hide(); |
1898 |
row.child.hide(); |
1793 |
tr.removeClass('shown'); |
1899 |
tr.removeClass('shown'); |
1794 |
button.removeClass('active'); |
1900 |
button.removeClass('active'); |
1795 |
} |
1901 |
} else { |
1796 |
else { |
1902 |
// Open this row |
1797 |
// Open this row |
1903 |
createChild(row, itemnumber, duedate); |
1798 |
createChild(row, itemnumber, duedate); |
1904 |
tr.addClass('shown'); |
1799 |
tr.addClass('shown'); |
1905 |
button.addClass('active'); |
1800 |
button.addClass('active'); |
1906 |
} |
1801 |
} |
1907 |
}); |
1802 |
} ); |
|
|
1803 |
[% END %] |
1908 |
[% END %] |
1804 |
}); |
1909 |
}); |
1805 |
|
1910 |
|
Lines 1930-1936
Link Here
|
1930 |
|
2035 |
|
1931 |
$('#modal-item-group-create').on('shown.bs.modal', function () { |
2036 |
$('#modal-item-group-create').on('shown.bs.modal', function () { |
1932 |
$('#modal-item-group-create-form-description').focus(); |
2037 |
$('#modal-item-group-create-form-description').focus(); |
1933 |
}) |
2038 |
}); |
1934 |
|
2039 |
|
1935 |
// Edit existing item groups |
2040 |
// Edit existing item groups |
1936 |
$('body').on( 'click', '.item-group-edit', function(){ |
2041 |
$('body').on( 'click', '.item-group-edit', function(){ |
Lines 2071-2077
Link Here
|
2071 |
} |
2176 |
} |
2072 |
|
2177 |
|
2073 |
$('#modal-item-group-unset').modal('hide'); |
2178 |
$('#modal-item-group-unset').modal('hide'); |
2074 |
|
|
|
2075 |
}); |
2179 |
}); |
2076 |
[% END %] |
2180 |
[% END %] |
2077 |
|
2181 |
|
2078 |
- |
|
|