Lines 148-198
Link Here
|
148 |
[% SET staged_and_ready = curbside_pickups.filter_by_staged_and_ready %] |
148 |
[% SET staged_and_ready = curbside_pickups.filter_by_staged_and_ready %] |
149 |
[% SET patron_outside = curbside_pickups.filter_by_patron_outside %] |
149 |
[% SET patron_outside = curbside_pickups.filter_by_patron_outside %] |
150 |
[% SET delivered_today = curbside_pickups.filter_by_delivered %] |
150 |
[% SET delivered_today = curbside_pickups.filter_by_delivered %] |
151 |
<div id="pickup-tabs" class="toptabs"> |
151 |
|
152 |
<ul class="nav nav-tabs" role="tablist"> |
152 |
[% SET to_be_staged_active = 0 %] |
153 |
[% IF !tab OR tab == 'to-be-staged' %] |
153 |
[% SET staged_and_ready_active = 0 %] |
154 |
<li role="presentation" class="active"> |
154 |
[% SET patron_is_outside_active = 0 %] |
155 |
[% ELSE %] |
155 |
[% SET delivered_today_active = 0 %] |
156 |
<li role="presentation"> |
156 |
[% SET schedule_pickup_active = 0 %] |
157 |
[% END %] |
157 |
|
158 |
<a id="to-be-staged-tab" href="#to-be-staged" role="tab" data-bs-toggle="tab">To be staged ([% to_be_staged.count | html %])</a> |
158 |
[% SWITCH tab -%] |
159 |
</li> |
159 |
[% CASE "to-be-staged_panel" -%] |
160 |
[% IF tab == 'staged-and-ready' %] |
160 |
[% to_be_staged_active = 1 %] |
161 |
<li role="presentation" class="active"> |
161 |
[% CASE "staged-and-ready_panel" -%] |
162 |
[% ELSE %] |
162 |
[% staged_and_ready_active = 1 %] |
163 |
<li role="presentation"> |
163 |
[% CASE "patron-is-outside_panel" -%] |
|
|
164 |
[% patron_is_outside_active = 1 %] |
165 |
[% CASE "delivered-today_panel" -%] |
166 |
[% delivered_today_active = 1 %] |
167 |
[% CASE "schedule-pickup_panel" -%] |
168 |
[% schedule_pickup_active = 1 %] |
169 |
[% CASE # default case -%] |
170 |
[% to_be_staged_active = 1 %] |
171 |
[% END -%] |
172 |
|
173 |
[% WRAPPER tabs id= "pickup-tabs" %] |
174 |
[% WRAPPER tabs_nav %] |
175 |
[% WRAPPER tab_item tabname= "to-be-staged" bt_active= to_be_staged_active %] |
176 |
<span>To be staged ([% to_be_staged.count | html %])</span> |
164 |
[% END %] |
177 |
[% END %] |
165 |
<a id="staged-and-ready-tab" href="#staged-and-ready" role="tab" data-bs-toggle="tab">Staged & ready ([% staged_and_ready.count | html %])</a> |
178 |
[% WRAPPER tab_item tabname= "staged-and-ready" bt_active = staged_and_ready_active %] |
166 |
</li> |
179 |
<span>Staged & ready ([% staged_and_ready.count | html %])</span> |
167 |
[% IF tab == 'patron-is-outside' %] |
|
|
168 |
<li role="presentation" class="active"> |
169 |
[% ELSE %] |
170 |
<li role="presentation"> |
171 |
[% END %] |
180 |
[% END %] |
172 |
<a id="patron-is-outside-tab" href="#patron-is-outside" role="tab" data-bs-toggle="tab">Patron is outside ([% patron_outside.count | html %])</a> |
181 |
[% WRAPPER tab_item tabname= "patron-is-outside" bt_active = patron_is_outside_active %] |
173 |
</li> |
182 |
<span>Patron is outside ([% patron_outside.count | html %])</span> |
174 |
[% IF tab == 'delivered-today' %] |
|
|
175 |
<li role="presentation" class="active"> |
176 |
[% ELSE %] |
177 |
<li role="presentation"> |
178 |
[% END %] |
183 |
[% END %] |
179 |
<a id="delivered-today-tab" href="#delivered-today" role="tab" data-bs-toggle="tab">Delivered today ([% delivered_today.count | html %])</a> |
184 |
[% WRAPPER tab_item tabname= "delivered-today" bt_active = delivered_today_active %] |
180 |
</li> |
185 |
<span>Delivered today ([% delivered_today.count | html %])</span> |
181 |
[% IF tab == 'schedule-pickup' %] |
|
|
182 |
<li role="presentation" class="active"> |
183 |
[% ELSE %] |
184 |
<li role="presentation"> |
185 |
[% END %] |
186 |
[% END %] |
186 |
<a id="schedule-pickup-tab" href="#schedule-pickup" role="tab" data-bs-toggle="tab">Schedule pickup</a> |
187 |
[% WRAPPER tab_item tabname= "schedule-pickup" bt_active = schedule_pickup_active %] |
187 |
</li> |
188 |
<span>Schedule pickup</span> |
188 |
</ul> |
|
|
189 |
|
190 |
<div class="tab-content"> |
191 |
[% IF !tab OR tab == 'to-be-staged' %] |
192 |
<div id="to-be-staged" role="tabpanel" class="tab-pane active"> |
193 |
[% ELSE %] |
194 |
<div id="to-be-staged" role="tabpanel" class="tab-pane"> |
195 |
[% END %] |
189 |
[% END %] |
|
|
190 |
[% END # /WRAPPER tabs_nav %] |
191 |
|
192 |
[% WRAPPER tab_panels %] |
193 |
[% WRAPPER tab_panel tabname="to-be-staged" bt_active= to_be_staged_active %] |
196 |
[% IF to_be_staged.count %] |
194 |
[% IF to_be_staged.count %] |
197 |
<table class="table table-striped"> |
195 |
<table class="table table-striped"> |
198 |
<thead> |
196 |
<thead> |
Lines 241-255
Link Here
|
241 |
</tbody> |
239 |
</tbody> |
242 |
</table> |
240 |
</table> |
243 |
[% ELSE %] |
241 |
[% ELSE %] |
244 |
<span>There are no pickups to be staged.</span> |
242 |
<div class="alert alert-info">There are no pickups to be staged.</div> |
245 |
[% END %] |
243 |
[% END %] |
246 |
</div> |
244 |
[% END # /tab_panel %] |
247 |
|
245 |
[% WRAPPER tab_panel tabname="staged-and-ready" bt_active = staged_and_ready_active %] |
248 |
[% IF tab == "staged-and-ready" %] |
|
|
249 |
<div id="staged-and-ready" role="tabpanel" class="tab-pane active"> |
250 |
[% ELSE %] |
251 |
<div id="staged-and-ready" role="tabpanel" class="tab-pane"> |
252 |
[% END %] |
253 |
[% IF staged_and_ready.count %] |
246 |
[% IF staged_and_ready.count %] |
254 |
<table class="table table-striped"> |
247 |
<table class="table table-striped"> |
255 |
<thead> |
248 |
<thead> |
Lines 312-326
Link Here
|
312 |
</tbody> |
305 |
</tbody> |
313 |
</table> |
306 |
</table> |
314 |
[% ELSE %] |
307 |
[% ELSE %] |
315 |
<span>There are no pickups staged and ready.</span> |
308 |
<div class="alert alert-info">There are no pickups staged and ready.</div> |
316 |
[% END %] |
309 |
[% END %] |
317 |
</div> |
310 |
[% END # /tab_panel %] |
318 |
|
311 |
[% WRAPPER tab_panel tabname="patron-is-outside" bt_active = patron_is_outside_active %] |
319 |
[% IF tab == "patron-is-outside" %] |
|
|
320 |
<div id="patron-is-outside" role="tabpanel" class="tab-pane active"> |
321 |
[% ELSE %] |
322 |
<div id="patron-is-outside" role="tabpanel" class="tab-pane"> |
323 |
[% END %] |
324 |
[% IF patron_outside.count %] |
312 |
[% IF patron_outside.count %] |
325 |
<table class="table table-striped"> |
313 |
<table class="table table-striped"> |
326 |
<thead> |
314 |
<thead> |
Lines 383-397
Link Here
|
383 |
</tbody> |
371 |
</tbody> |
384 |
</table> |
372 |
</table> |
385 |
[% ELSE %] |
373 |
[% ELSE %] |
386 |
<span>There are no patrons waiting outside.</span> |
374 |
<div class="alert alert-info">There are no patrons waiting outside.</div> |
387 |
[% END %] |
375 |
[% END %] |
388 |
</div> |
376 |
[% END # /tab_panel %] |
389 |
|
377 |
[% WRAPPER tab_panel tabname="delivered-today" bt_active = delivered_today_active %] |
390 |
[% IF tab == "delivered-today" %] |
|
|
391 |
<div id="delivered-today" role="tabpanel" class="tab-pane active"> |
392 |
[% ELSE %] |
393 |
<div id="delivered-today" role="tabpanel" class="tab-pane"> |
394 |
[% END %] |
395 |
[% IF delivered_today.count %] |
378 |
[% IF delivered_today.count %] |
396 |
<table class="table table-striped"> |
379 |
<table class="table table-striped"> |
397 |
<thead> |
380 |
<thead> |
Lines 410-507
Link Here
|
410 |
[% PROCESS patron_info %] |
393 |
[% PROCESS patron_info %] |
411 |
</td> |
394 |
</td> |
412 |
<td> |
395 |
<td> |
413 |
[% FOREACH c IN cp.checkouts %] |
396 |
[% FOREACH c IN cp.checkouts %] |
414 |
[% IF date.format(c.issuedate, format = '%Y-%m-%d') == today_iso %] |
397 |
[% IF date.format(c.issuedate, format = '%Y-%m-%d') == today_iso %] |
415 |
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% c.item.biblionumber | uri %]">[% c.item.biblio.title | html %]</a> ([% c.item.biblio.author | html %], <a href="/cgi-bin/koha/catalogue/moredetail.pl?itemnumber=[% c.itemnumber | html %]&biblionumber=[% c.item.biblionumber | html %]#item[% c.itemnumber | html %]">[% c.item.barcode | html %]</a>)<br/> |
398 |
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% c.item.biblionumber | uri %]">[% c.item.biblio.title | html %]</a> ([% c.item.biblio.author | html %], <a href="/cgi-bin/koha/catalogue/moredetail.pl?itemnumber=[% c.itemnumber | html %]&biblionumber=[% c.item.biblionumber | html %]#item[% c.itemnumber | html %]">[% c.item.barcode | html %]</a>)<br/> |
|
|
399 |
[% END %] |
416 |
[% END %] |
400 |
[% END %] |
417 |
[% END %] |
401 |
</td> |
418 |
</td> |
402 |
</tr> |
419 |
</tr> |
403 |
[% END %] |
420 |
[% END %] |
404 |
[% END %] |
421 |
[% END %] |
405 |
</tbody> |
422 |
</tbody> |
406 |
</table> |
423 |
</table> |
407 |
[% ELSE %] |
424 |
[% ELSE %] |
408 |
<div class="alert alert-info">There have not been any deliveries today.</div> |
425 |
<span>No pickups have been delivered today.</span> |
409 |
[% END # /IF delivered_today.count %] |
426 |
[% END %] |
410 |
[% END # /tab_panel %] |
427 |
</div> |
411 |
[% WRAPPER tab_panel tabname="schedule-pickup" bt_active = schedule_pickup_active %] |
428 |
|
412 |
[% IF !patron || ( patron && existing_curbside_pickups.count >= 1 ) %] |
429 |
[% IF tab == "schedule-pickup" %] |
413 |
[% IF existing_curbside_pickups.count >= 1 %] |
430 |
<div id="schedule-pickup" role="tabpanel" class="tab-pane active"> |
414 |
<div class="alert alert-warning"> |
431 |
[% ELSE %] |
415 |
[% patron.firstname | html %] [% patron.surname | html %] ([% patron.cardnumber | html %]) already has a scheduled pickup for this library. |
432 |
<div id="schedule-pickup" role="tabpanel" class="tab-pane"> |
416 |
</div> |
433 |
[% END %] |
417 |
[% END %] |
434 |
[% IF !patron || ( patron && existing_curbside_pickups.count >= 1 ) %] |
418 |
<div class="col-10 col-sm-4 form-group"> |
435 |
[% IF existing_curbside_pickups.count >= 1 %] |
419 |
<div class="input-group-addon"> |
436 |
<div class="alert alert-warning"> |
420 |
<label for="find-patron" class="form-label">Search a patron</label> |
437 |
[% patron.firstname | html %] [% patron.surname | html %] ([% patron.cardnumber | html %]) already has a scheduled pickup for this library. |
421 |
</div> |
438 |
</div> |
422 |
<div> |
439 |
[% END %] |
423 |
<input autocomplete="off" id="find-patron" class="form-control" type="text" style="" class="noEnterSubmit" placeholder="Enter patron card number or name"/> |
440 |
<div class="form-group"> |
424 |
</div> |
441 |
<label class="sr-only" for="input-patron-cardnumber">Card number</label> |
|
|
442 |
<div class="input-group"> |
443 |
<div class="input-group-addon">Search a patron</div> |
444 |
<input autocomplete="off" id="find-patron" class="form-control noEnterSubmit" type="text" style="width:25%" placeholder="Enter patron card number or name"//> |
445 |
</div> |
425 |
</div> |
446 |
</div> |
|
|
447 |
[% ELSE %] |
448 |
[% SET waiting_holds = patron.holds.search( found => 'W', branchcode => Branches.GetLoggedInBranchcode ) %] |
449 |
[% IF !policy.enable_waiting_holds_only || waiting_holds.count > 0 %] |
450 |
<form id="create-pickup" method="post"> |
451 |
[% INCLUDE 'csrf-token.inc' %] |
452 |
<fieldset class="rows" style="float: none;"> |
453 |
<input type="hidden" name="borrowernumber" value="[% patron.id | html %]"/> |
454 |
<input type="hidden" name="op" value="cud-create-pickup"/> |
455 |
<input type="hidden" name="tab" value="schedule-pickup"/> |
456 |
<ol> |
457 |
<li> |
458 |
<label>Patron: </label> |
459 |
<span>[% INCLUDE 'patron-title.inc' patron=patron %]</span> |
460 |
<a title="Search for another patron" href="/cgi-bin/koha/circ/curbside_pickups.pl?tab=schedule-pickup"><i class="fa fa-search"></i></a> |
461 |
</li> |
462 |
|
463 |
<li> |
464 |
<label>Items ready for pickup: </label> |
465 |
<fieldset> |
466 |
<ul> |
467 |
[% IF waiting_holds.count %] |
468 |
[% FOREACH h IN waiting_holds %] |
469 |
<li> |
470 |
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% h.biblionumber | uri %]">[% h.biblio.title | html %]</a> ([% h.biblio.author | html %], <a href="/cgi-bin/koha/catalogue/moredetail.pl?itemnumber=[% h.itemnumber | html %]&biblionumber=[% h.biblionumber | html %]#item[% h.itemnumber | html %]">[% h.item.barcode | html %]</a>) |
471 |
</li> |
472 |
[% END %] |
473 |
[% ELSE %] |
474 |
<li>There are no waiting holds for this patron at this library.</li> |
475 |
[% END %] |
476 |
</ul> |
477 |
</fieldset> |
478 |
</li> |
479 |
|
480 |
<li> |
481 |
<label for="pickup_date">Pickup date: </label> |
482 |
<input id="pickup_date" name="pickup_date" required="required" class="flatpickr" data-flatpickr-futureinclusive="true" /> |
483 |
</li> |
484 |
|
485 |
<li id="pickup-times" class="radio"></li> |
486 |
|
487 |
<li> |
488 |
<label for="notes">Notes: </label> |
489 |
<input id="notes" name="notes" type="text" /> |
490 |
</li> |
491 |
</ol> |
492 |
</fieldset> |
493 |
|
494 |
<fieldset class="action"> |
495 |
<input type="submit" id="schedule-pickup-button" class="btn btn-primary" value="Submit" /> |
496 |
</fieldset> |
497 |
</form> |
498 |
[% ELSE %] |
426 |
[% ELSE %] |
499 |
<div class="alert alert-warning">The patron does not have waitings holds.</div> |
427 |
[% SET waiting_holds = patron.holds.search( found => 'W', branchcode => Branches.GetLoggedInBranchcode ) %] |
|
|
428 |
[% IF !policy.enable_waiting_holds_only || waiting_holds.count > 0 %] |
429 |
<form id="create-pickup" method="post"> |
430 |
[% INCLUDE 'csrf-token.inc' %] |
431 |
<fieldset class="rows" style="float: none;"> |
432 |
<input type="hidden" name="borrowernumber" value="[% patron.id | html %]"/> |
433 |
<input type="hidden" name="op" value="cud-create-pickup"/> |
434 |
<input type="hidden" name="tab" value="schedule-pickup"/> |
435 |
<ol> |
436 |
<li> |
437 |
<label>Patron: </label> |
438 |
<span>[% INCLUDE 'patron-title.inc' patron=patron %]</span> |
439 |
<a title="Search for another patron" href="/cgi-bin/koha/circ/curbside_pickups.pl?tab=schedule-pickup"><i class="fa fa-search"></i></a> |
440 |
</li> |
441 |
|
442 |
<li> |
443 |
<label>Items ready for pickup: </label> |
444 |
<fieldset> |
445 |
<ul> |
446 |
[% IF waiting_holds.count %] |
447 |
[% FOREACH h IN waiting_holds %] |
448 |
<li> |
449 |
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% h.biblionumber | uri %]">[% h.biblio.title | html %]</a> ([% h.biblio.author | html %], <a href="/cgi-bin/koha/catalogue/moredetail.pl?itemnumber=[% h.itemnumber | html %]&biblionumber=[% h.biblionumber | html %]#item[% h.itemnumber | html %]">[% h.item.barcode | html %]</a>) |
450 |
</li> |
451 |
[% END %] |
452 |
[% ELSE %] |
453 |
<li>There are no waiting holds for this patron at this library.</li> |
454 |
[% END %] |
455 |
</ul> |
456 |
</fieldset> |
457 |
</li> |
458 |
|
459 |
<li> |
460 |
<label for="pickup_date">Pickup date: </label> |
461 |
<input id="pickup_date" name="pickup_date" required="required" class="flatpickr" data-flatpickr-futureinclusive="true" /> |
462 |
</li> |
463 |
|
464 |
<li id="pickup-times" class="radio"></li> |
465 |
|
466 |
<li> |
467 |
<label for="notes">Notes: </label> |
468 |
<input id="notes" name="notes" type="text" /> |
469 |
</li> |
470 |
</ol> |
471 |
</fieldset> |
472 |
|
473 |
<fieldset class="action"> |
474 |
<input type="submit" id="schedule-pickup-button" class="btn btn-primary" value="Submit" /> |
475 |
</fieldset> |
476 |
</form> |
477 |
[% ELSE %] |
478 |
<div class="alert alert-warning">The patron does not have waitings holds.</div> |
479 |
[% END %] |
500 |
[% END %] |
480 |
[% END %] |
501 |
[% END %] |
481 |
[% END # /tab_panel %] |
502 |
</div> |
482 |
[% END # /WRAPPER tab_panels %] |
503 |
</div> |
483 |
[% END # /WRAPPER tabs %] |
504 |
</div> |
484 |
|
505 |
[% IF Koha.Preference('CircSidebar') %] |
485 |
[% IF Koha.Preference('CircSidebar') %] |
506 |
</div> <!-- /.col-md-10.order-md-2 --> |
486 |
</div> <!-- /.col-md-10.order-md-2 --> |
507 |
<div class="col-md-2 order-sm-2 order-md-1"> |
487 |
<div class="col-md-2 order-sm-2 order-md-1"> |
508 |
- |
|
|