1 [% PROCESS "opac/parts/header.tt2";
2 PROCESS "opac/parts/misc_util.tt2";
3 PROCESS "opac/parts/hold_status.tt2";
4 PROCESS "opac/parts/org_selector.tt2";
5 PROCESS "opac/parts/metarecord_hold_filters.tt2";
6 WRAPPER "opac/parts/myopac/base.tt2";
7 myopac_page = "holds"; # in this case, just for tab coloring.
11 attrs = {marc_xml => hold.marc_xml};
12 PROCESS get_marc_attrs args=attrs;
13 hold.human_status = PROCESS get_hold_status hold=hold;
15 # Do this up front to avoid verbosity later
16 expire_time = ahr.expire_time ? date.format(ctx.parse_datetime(ahr.expire_time), DATE_FORMAT) : '';
17 thaw_date = ahr.thaw_date ? date.format(ctx.parse_datetime(ahr.thaw_date), DATE_FORMAT) : '';
19 <h3 class="sr-only">[% l('Edit Hold') %]</h3>
20 <div class="pad-bottom-five">
21 <div class="header_middle">
22 <span id="acct_holds_header float-left">[% l('Editing Hold') %]</span>
23
24 <a href="[% ctx.opac_root %]/myopac/holds">[% l('List all holds') %]</a>
26 <div id="hold_editor">
29 IF ahr.hold_type == 'P';
30 title = l('[_1] ([_2])', title, hold.hold.part.label);
33 <h1>[% title | html %]</h1>
34 <h2>[% attrs.author | html %]</h2>
35 [% IF attrs.format_icon %]<p>
36 <strong>[% l('Format:') %]</strong>
37 <img src="[% attrs.format_icon %]" alt="[% attrs.format_label | html %]" title="[% attrs.format_label | html %]" />
40 <strong>[% l('Status') %]</strong>: [% hold.human_status %]
43 <table id="hold_editor_table">
46 <input type="hidden" name="action" value="edit" />
47 <input type="hidden" name="hold_id"
48 value="[% ahr.id %]" />
49 [% l('Pickup library') %]
52 [% INCLUDE build_org_selector
53 name='pickup_lib' value=ahr.pickup_lib
54 can_have_vols_only=1 hold_pickup_lib=1 %]
57 [% IF hold.hold.status < 3 OR hold.hold.status == 7 %]
58 [%# The following actions cannot be performed on holds that
59 have already been captured... %]
62 [% l('Cancel unless filled by') %]
65 <input type="text" name="expire_time"
66 value="[% expire_time | html %]" />
69 <em>[% l('Enter date in MM/DD/YYYY format') %]</em>
70 <!-- XXX TODO pick out a minimal, simple, reliable
71 calendar widget that's not part of some giant,
72 bloated framework and doesn't do anything at onload.
81 <select name="frozen">
82 <option value="f"[% ahr.frozen == 't' ? '' :' selected="selected"' %]>
83 [% l('Yes, this hold is active now') %]
85 <option value="t"[% ahr.frozen == 't' ? ' selected="selected"' : '' %]>
86 [% l('No, this hold is suspended') %]
93 [% l('If suspended, activate on') %]
96 <input type="text" name="thaw_date"
97 value="[% thaw_date | html %]" />
100 <em>[% l('Enter date in MM/DD/YYYY format') %]</em>
104 <td>[% l('Email Notification') %]</td>
105 <td><input type="checkbox" name="email_notify"
106 [% IF ahr.email_notify == 't' %] checked [% END %] />
110 <td>[% l('Phone Notification') %]</td>
111 <td><input type="text" name="phone_notify"
112 value="[% ahr.phone_notify | html %]" /></td>
115 <td>[% l('SMS Notification') %]</td>
116 <td><input onblur="check_sms_carrier(event)" type="text" name="sms_notify"
117 value="[% ahr.sms_notify | html %]" /></td>
120 <td>[% l('Default Mobile Carrier') %]</td>
121 <td>[% INCLUDE "opac/parts/sms_carrier_selector.tt2" ahr, sms_carrier_hide_warning="true", sms_carrier_hide_label="true" %]</td>
126 [% IF hold.metarecord_filters.formats.size OR
127 (hold.metarecord_filters.langs.size.defined && hold.metarecord_filters.langs.size > 1);
128 PROCESS metarecord_hold_filters_selector
129 hold_data=hold; END %]
133 <td colspan="2" class="hold-editor-controls">
134 <a href="[% ctx.opac_root %]/myopac/holds"><button
135 class="opac-button">[% l('Go Back') %]</button></a>
136 <input type="submit" value="[% l('Submit') %]" class="opac-button" />