View | Details | Raw Unified | Return to bug 36911
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc (-268 / +320 lines)
Lines 2-302 Link Here
2
[% USE KohaDates %]
2
[% USE KohaDates %]
3
[% PROCESS 'member-display-address-style.inc' %]
3
[% PROCESS 'member-display-address-style.inc' %]
4
[% IF ( patron.borrowernumber ) %]
4
[% IF ( patron.borrowernumber ) %]
5
[% SET patron_is_staff = patron.has_permission({ 'catalogue' => 1 }) %]
5
    [% SET patron_is_staff = patron.has_permission({ 'catalogue' => 1 }) %]
6
[% SET patron_is_superlibrarian = patron.is_superlibrarian %]
6
    [% SET patron_is_superlibrarian = patron.is_superlibrarian %]
7
[% SET patron_type_class = 'is-not-staff' %]
7
    [% SET patron_type_class = 'is-not-staff' %]
8
[% IF ( patron_is_superlibrarian ) %]
8
    [% IF ( patron_is_superlibrarian ) %]
9
    [% patron_type_class = 'is-staff is-superlibrarian' %]
9
        [% patron_type_class = 'is-staff is-superlibrarian' %]
10
[% ELSIF ( patron_is_staff ) %]
10
    [% ELSIF ( patron_is_staff ) %]
11
    [% patron_type_class = 'is-staff' %]
11
        [% patron_type_class = 'is-staff' %]
12
[% END %]
12
    [% END %]
13
<div class="patroninfo [% patron_type_class | html %]">
14
13
15
[% IF ( patronimages ) %]
14
    <div class="patroninfo [% patron_type_class | html %]">
16
    <h5 class="text-center">
15
        [% IF ( patronimages ) %]
17
[% ELSE %]
16
            <h5 class="text-center">
18
    <h5>
17
        [% ELSE %]
19
[% END %]
18
            <h5>
20
        [% IF ( patron_is_staff ) %]
21
            <i class="fa-solid fa-shield fa-fw" title="Staff patron"></i>
22
        [% END %]
19
        [% END %]
23
        [% IF ( patron_is_superlibrarian ) %]
20
            [% IF ( patron_is_staff ) %]
24
            <i class="fa fa-bolt fa-fw" title="Superlibrarian patron"></i>
21
                <i class="fa-solid fa-shield fa-fw" title="Staff patron"></i>
22
            [% END %]
23
            [% IF ( patron_is_superlibrarian ) %]
24
                <i class="fa fa-bolt fa-fw" title="Superlibrarian patron"></i>
25
            [% END %]
26
            [% IF ( patron.protected ) %]
27
                <i class="fa fa-lock fa-fw" title="Protected patron"></i>
28
            [% END %]
29
            [% INCLUDE 'patron-title.inc' %]
30
        </h5>
31
32
        [% IF Koha.Preference('showLastPatron') %]
33
            <input type="hidden" id="hiddenborrowernumber" value="[% patron.borrowernumber | html %]">
34
            <input type="hidden" id="hiddenborrowername" value="[% patron.surname | html %] [% patron.firstname | html %]">
35
            <input type="hidden" id="hiddenborrowercard" value="[% patron.cardnumber | html %]">
25
        [% END %]
36
        [% END %]
26
        [% IF ( patron.protected ) %]
37
27
            <i class="fa fa-lock fa-fw" title="Protected patron"></i>
38
        [% IF ( patronimages ) %]
39
            <div>
40
                <div class="patronimage-container">
41
                    [% IF ( patron.image ) %]
42
                        <img src="/cgi-bin/koha/members/patronimage.pl?borrowernumber=[% patron.borrowernumber | uri %]" class="patronimage" alt="[% patron.firstname | html %] [% patron.surname | html %] ([% patron.cardnumber | html %])" />
43
                        [% IF ( CAN_user_tools_batch_upload_patron_images ) %]
44
                            <div class="patronimage-controls">
45
                                <div class="patronimage-control">
46
                                    <a data-borrowernumber="[% patron.borrowernumber | uri %]" data-cardnumber="[% patron.cardnumber | html %]" class="btn btn-default edit-patronimage" title="Patron photo" href="#"><i class="fa-solid fa-pencil" aria-hidden="true"></i> Edit</a>
47
                                </div>
48
                            </div>
49
                        [% END %]
50
                    [% ELSE %]
51
                        <div class="patronimage empty"></div>
52
                        [% IF ( CAN_user_tools_batch_upload_patron_images ) %]
53
                            <div class="patronimage-controls">
54
                                <div class="patronimage-control">
55
                                    <a data-borrowernumber="[% patron.borrowernumber | uri %]" data-cardnumber="[% patron.cardnumber | html %]" class="btn btn-default edit-patronimage" title="Patron photo" href="#"><i class="fa fa-plus"></i> Add</a>
56
                                </div>
57
                            </div>
58
                        [% END %]
59
                    [% END %]
60
                </div>
61
            </div>
28
        [% END %]
62
        [% END %]
29
        [% INCLUDE 'patron-title.inc' %]
30
    </h5>
31
[% IF Koha.Preference('showLastPatron') %]
32
    <input type="hidden" id="hiddenborrowernumber" value="[% patron.borrowernumber | html %]">
33
    <input type="hidden" id="hiddenborrowername" value="[% patron.surname | html %] [% patron.firstname | html %]">
34
    <input type="hidden" id="hiddenborrowercard" value="[% patron.cardnumber | html %]">
35
[% END %]
36
63
37
[% IF ( patronimages ) %]
64
        <ul class="patronbriefinfo">
38
    <div>
65
            [% IF patron.pronouns %]
39
        <div class="patronimage-container">
66
                <li class="patronpronouns">([% patron.pronouns | html %])</li>
40
            [% IF ( patron.image ) %]
41
                <img src="/cgi-bin/koha/members/patronimage.pl?borrowernumber=[% patron.borrowernumber | uri %]" class="patronimage" alt="[% patron.firstname | html %] [% patron.surname | html %] ([% patron.cardnumber | html %])" />
42
                [% IF ( CAN_user_tools_batch_upload_patron_images ) %]
43
                    <div class="patronimage-controls">
44
                        <div class="patronimage-control"><a data-borrowernumber="[% patron.borrowernumber | uri %]" data-cardnumber="[% patron.cardnumber | html %]" class="btn btn-default edit-patronimage" title="Patron photo" href="#"><i class="fa-solid fa-pencil" aria-hidden="true"></i> Edit</a></div>
45
                    </div>
46
                [% END %]
47
            [% ELSE %]
48
                <div class="patronimage empty"></div>
49
                [% IF ( CAN_user_tools_batch_upload_patron_images ) %]
50
                    <div class="patronimage-controls">
51
                        <div class="patronimage-control"><a data-borrowernumber="[% patron.borrowernumber | uri %]" data-cardnumber="[% patron.cardnumber | html %]" class="btn btn-default edit-patronimage" title="Patron photo" href="#"><i class="fa fa-plus"></i> Add</a></div>
52
                    </div>
53
                [% END %]
54
            [% END %]
67
            [% END %]
55
        </div>
56
    </div>
57
[% END %]
58
68
59
<ul class="patronbriefinfo">
69
            [% IF !(Koha.Preference('HidePersonalPatronDetailOnCirculation')) %]
60
61
    [% IF patron.pronouns %]
62
        <li class="patronpronouns">([% patron.pronouns | html %])</li>
63
    [% END %]
64
70
65
    [% IF !(Koha.Preference('HidePersonalPatronDetailOnCirculation')) %]
71
                [% PROCESS 'display-address-style' %]
66
72
67
        [% PROCESS 'display-address-style' %]
73
                [% IF ( patron.phone || patron.mobile || patron.phonepro ) %]
74
                    <li class="patronphone">
75
                        [% IF ( patron.phone ) %]
76
                            <a href="tel:[% patron.phone | url %]">[% patron.phone | html %]</a>
77
                        [% ELSE %]
78
                            [% IF ( patron.mobile ) %]
79
                                <a href="tel:[% patron.mobile | url %]">[% patron.mobile | html %]</a>
80
                            [% ELSE %]
81
                                [% IF ( patron.phonepro ) %]
82
                                    <a href="tel:[% patron.phonepro | url %]">[% patron.phonepro | html %]</a>
83
                                [% END %]
84
                            [% END %]
85
                        [% END %]
86
                    </li>
87
                [% END %]
88
                [% IF ( patron.email ) %]
89
                    <li class="email">
90
                        <a href="mailto:[% patron.email | url %]" title="[% patron.email | html %]">[% patron.email | html %]</a>
91
                    </li>
92
                [% ELSE %]
93
                    [% IF ( patron.emailpro ) %]
94
                        <li class="email">
95
                            <a href="mailto:[% patron.emailpro | url %]" title="[% patron.emailpro | html %]">[% patron.emailpro | html %]</a>
96
                        </li>
97
                    [% END %]
98
                [% END %]
99
                [% IF ( patron.dateofbirth ) %]
100
                    <li class="patrondateofbirth">
101
                        <span>Born:</span>
102
                        [% INCLUDE 'patron-age.inc' %]
103
                    </li>
104
                [% END %]
68
105
69
        [% IF ( patron.phone || patron.mobile || patron.phonepro ) %]<li class="patronphone">
106
                [% UNLESS ( patron.address or patron.address2 ) %]
70
        [% IF ( patron.phone ) %]
107
                    <li><span class="empty" id="noaddressstored">No address stored.</span></li>
71
            <a href="tel:[% patron.phone | url %]">[% patron.phone | html %]</a>
72
        [% ELSE %]
73
            [% IF ( patron.mobile ) %]
74
                <a href="tel:[% patron.mobile | url %]">[% patron.mobile | html %]</a>
75
            [% ELSE %]
76
                [% IF ( patron.phonepro ) %]
77
                    <a href="tel:[% patron.phonepro | url %]">[% patron.phonepro | html %]</a>
78
                [% END %]
108
                [% END %]
109
                [% UNLESS ( patron.city ) %]
110
                    <li><span class="empty" id="nocitystored">No city stored.</span></li>
111
                [% END %]
112
                [% UNLESS ( patron.phone or patron.mobile or patron.phonepro) %]
113
                    <li> <span class="empty">No phone stored.</span></li>
114
                [% END %]
115
                [% UNLESS ( patron.email or patron.emailpro) %]
116
                    <li> <span class="empty">No email stored.</span></li>
117
                [% END %]
118
                [% UNLESS ( patron.dateofbirth ) %]
119
                    <li> <span class="empty">No date of birth stored.</span></li>
120
                [% END %]
121
79
            [% END %]
122
            [% END %]
80
        [% END %]</li>[% END %]
81
        [% IF ( patron.email ) %]
82
            <li class="email"> <a href="mailto:[% patron.email | url %]" title="[% patron.email | html %]">[% patron.email | html %]</a></li>
83
        [% ELSE %]
84
            [% IF ( patron.emailpro ) %]
85
                <li class="email"> <a href="mailto:[% patron.emailpro | url %]" title="[% patron.emailpro | html %]">[% patron.emailpro | html %]</a></li>
86
            [% END %]
87
        [% END %]
88
        [% IF ( patron.dateofbirth ) %]
89
            <li class="patrondateofbirth">
90
                <span>Born:</span>
91
                [% INCLUDE 'patron-age.inc' %]
92
            </li>
93
        [% END %]
94
123
95
        [% UNLESS ( patron.address or patron.address2 ) %]
124
            [% IF Koha.Preference('ExtendedPatronAttributes') %]
96
            <li><span class="empty" id="noaddressstored">No address stored.</span></li>
125
                [% FOREACH extendedattribute IN patron.extended_attributes %]
97
        [% END %]
126
                    [% IF ( extendedattribute.type.display_checkout ) %] [%# FIXME We should filter in the line above %]
98
        [% UNLESS ( patron.city ) %]
127
                        [% IF ( extendedattribute.attribute.defined  ) %]
99
            <li><span class="empty" id="nocitystored">No city stored.</span></li>
128
                            <li class="patronattribute">
100
        [% END %]
129
                                <span class="patronattributelabel">[% extendedattribute.type.description | html %]</span>:
101
        [% UNLESS ( patron.phone or patron.mobile or patron.phonepro) %]
130
                                [% IF extendedattribute.type.is_date %]
102
            <li> <span class="empty">No phone stored.</span></li>
131
                                    [% extendedattribute.description | $KohaDates %]
103
        [% END %]
132
                                [% ELSE %]
104
        [% UNLESS ( patron.email or patron.emailpro) %]
133
                                    [% extendedattribute.description | html %]
105
            <li> <span class="empty">No email stored.</span></li>
134
                                [% END %]
106
        [% END %]
135
                            </li>
107
        [% UNLESS ( patron.dateofbirth ) %]
136
                        [% END %]
108
            <li> <span class="empty">No date of birth stored.</span></li>
137
                    [% END %]
109
        [% END %]
138
                [% END %]
139
            [% END %]
110
140
111
    [% END %]
141
            <li class="patroncategory">
142
                Category: <span class="patroncategory_description">[% patron.category.description | html %]</span> <span class="patroncategory_code">([% patron.categorycode | html %])</span>
143
            </li>
144
            <li class="patronlibrary">Home library: [% Branches.GetName( patron.branchcode ) | html %]</li>
145
            <li class="patronborrowernumber">Borrowernumber: [% patron.borrowernumber | html %]</li>
146
            <li><span class="patronupdatedon">Updated on [% patron.updated_on | $KohaDates with_hours => 1 %]</span></li>
147
            [% IF patron.account_locked %]
148
                [% IF patron.login_attempts < 0 %]
149
                    <li class="blocker account_admin_locked">Account has been administratively locked</li>
150
                [% ELSE %]
151
                    <li class="blocker account_locked">Account has been locked</li>
152
                [% END %]
153
            [% END %]
154
        </ul>
155
    </div>
112
156
113
    [% IF Koha.Preference('ExtendedPatronAttributes') %]
157
    <div id="menu">
114
        [% FOREACH extendedattribute IN patron.extended_attributes %]
158
        <ul>
115
            [% IF ( extendedattribute.type.display_checkout ) %] [%# FIXME We should filter in the line above %]
159
            [% IF ( CAN_user_circulate_circulate_remaining_permissions ) %]
116
                [% IF ( extendedattribute.attribute.defined  ) %]
160
                [% IF ( circview ) %]<li class="active">[% ELSE %]<li>[% END %]
117
                    <li class="patronattribute">
161
                    <a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% patron.borrowernumber | uri %]">Check out</a>
118
                        <span class="patronattributelabel">[% extendedattribute.type.description | html %]</span>:
162
                </li>
119
                        [% IF extendedattribute.type.is_date %]
163
                [% IF Koha.Preference('BatchCheckouts') && Koha.Preference('BatchCheckoutsValidCategories').split(',').grep('^' _ patron.categorycode _ '$').size > 0 %]
120
                            [% extendedattribute.description | $KohaDates %]
164
                    [% IF ( batch_checkout_view ) %]<li class="active">[% ELSE %]<li>[% END %]
121
                        [% ELSE %]
165
                        <a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% patron.borrowernumber | uri %]&amp;batch=1">Batch check out</a>
122
                            [% extendedattribute.description | html %]
166
                    </li>
123
                        [% END %]
167
                [% END %]
168
            [% END %]
169
            [% IF CAN_user_borrowers_edit_borrowers %]
170
                [% IF ( detailview ) %]<li class="active">[% ELSE %]<li>[% END %]
171
                    <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">Details</a>
172
                </li>
173
            [% END %]
174
            [% IF ( CAN_user_updatecharges_remaining_permissions ) %]
175
                [% IF ( finesview ) %]<li class="active">[% ELSE %]<li>[% END %]
176
                    <a href="/cgi-bin/koha/members/pay.pl?borrowernumber=[% patron.borrowernumber | uri %]">Accounting</a>
177
                </li>
178
            [% END %]
179
            [% IF ( CAN_user_circulate_circulate_remaining_permissions  )  %]
180
                [% IF Koha.Preference("RoutingSerials") %]
181
                    [% IF ( routinglistview ) %]<li class="active">[% ELSE %]<li>[% END %]
182
                        <a href="/cgi-bin/koha/members/routing-lists.pl?borrowernumber=[% patron.borrowernumber | uri %]">Routing lists</a>
183
                    </li>
184
                [% END %]
185
            [% END %]
186
            [% IF CAN_user_borrowers_edit_borrowers %]
187
                [% IF ( intranetreadinghistory ) %]
188
                    [% IF ( readingrecordview ) %]<li class="active">[% ELSE %]<li>[% END %]
189
                        <a href="/cgi-bin/koha/members/readingrec.pl?borrowernumber=[% patron.borrowernumber | uri %]">Circulation history</a>
190
                    </li>
191
                [% END %]
192
            [% END %]
193
            [% IF CAN_user_borrowers_edit_borrowers %]
194
                [% IF ( IntranetReadingHistoryHolds ) %]
195
                    [% IF ( holdshistoryview ) %]<li class="active">[% ELSE %]<li>[% END %]
196
                        <a href="/cgi-bin/koha/members/holdshistory.pl?borrowernumber=[% patron.borrowernumber | uri %]">Holds history</a>
197
                    </li>
198
                [% END %]
199
            [% END %]
200
            [% IF ( CAN_user_tools_view_system_logs ) %]
201
                [% IF ( logview ) %]<li class="active">[% ELSE %]<li>[% END %]
202
                    <a href="/cgi-bin/koha/tools/viewlog.pl?do_it=1&amp;modules=MEMBERS&amp;modules=CIRCULATION&amp;object=[% patron.borrowernumber | uri %]&amp;src=circ">Modification log</a>
203
                </li>
204
            [% END %]
205
            [% IF CAN_user_borrowers_edit_borrowers %]
206
                [% IF ( sentnotices ) %]<li class="active">[% ELSE %]<li>[% END %]
207
                    <a href="/cgi-bin/koha/members/notices.pl?borrowernumber=[% patron.borrowernumber | uri %]">Notices</a>
208
                </li>
209
            [% END %]
210
            [% IF CAN_user_borrowers_edit_borrowers %]
211
                [% IF (  statisticsview ) %]<li class="active">[% ELSE %]<li>[% END %]
212
                    <a href="/cgi-bin/koha/members/statistics.pl?borrowernumber=[% patron.borrowernumber | uri %]">Statistics</a>
213
                </li>
214
            [% END %]
215
            [% IF CAN_user_borrowers_edit_borrowers %]
216
                [% IF ( EnableBorrowerFiles ) %]
217
                    [% IF ( borrower_files ) %]<li class="active">[% ELSE %]<li>[% END %]
218
                        <a href="/cgi-bin/koha/members/files.pl?borrowernumber=[% patron.borrowernumber | uri %]">Files</a>
124
                    </li>
219
                    </li>
125
                [% END %]
220
                [% END %]
126
            [% END %]
221
            [% END %]
127
        [% END %]
128
    [% END %]
129
    <li class="patroncategory">Category: <span class="patroncategory_description">[% patron.category.description | html %]</span> <span class="patroncategory_code">([% patron.categorycode | html %])</span></li>
130
    <li class="patronlibrary">Home library: [% Branches.GetName( patron.branchcode ) | html %]</li>
131
    <li class="patronborrowernumber">Borrowernumber: [% patron.borrowernumber | html %]</li>
132
    <li><span class="patronupdatedon">Updated on [% patron.updated_on | $KohaDates with_hours => 1 %]</span></li>
133
    [% IF patron.account_locked %]
134
        [% IF patron.login_attempts < 0 %]
135
            <li class="blocker account_admin_locked">Account has been administratively locked</li>
136
        [% ELSE %]
137
            <li class="blocker account_locked">Account has been locked</li>
138
        [% END %]
139
    [% END %]
140
  </ul></div>
141
<div id="menu">
142
<ul>
143
    [% IF ( CAN_user_circulate_circulate_remaining_permissions ) %]
144
        [% IF ( circview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% patron.borrowernumber | uri %]">Check out</a></li>
145
        [% IF Koha.Preference('BatchCheckouts') && Koha.Preference('BatchCheckoutsValidCategories').split(',').grep('^' _ patron.categorycode _ '$').size > 0 %]
146
          [% IF ( batch_checkout_view ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% patron.borrowernumber | uri %]&amp;batch=1">Batch check out</a></li>
147
        [% END %]
148
    [% END %]
149
    [% IF CAN_user_borrowers_edit_borrowers %]
150
        [% IF ( detailview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">Details</a></li>
151
    [% END %]
152
    [% IF ( CAN_user_updatecharges_remaining_permissions ) %]
153
        [% IF ( finesview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/pay.pl?borrowernumber=[% patron.borrowernumber | uri %]">Accounting</a></li>
154
    [% END %]
155
    [% IF ( CAN_user_circulate_circulate_remaining_permissions  )  %]
156
        [% IF Koha.Preference("RoutingSerials") %][% IF ( routinglistview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/routing-lists.pl?borrowernumber=[% patron.borrowernumber | uri %]">Routing lists</a></li>[% END %]
157
    [% END %]
158
    [% IF CAN_user_borrowers_edit_borrowers %]
159
        [% IF ( intranetreadinghistory ) %]
160
            [% IF ( readingrecordview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/readingrec.pl?borrowernumber=[% patron.borrowernumber | uri %]">Circulation history</a></li>
161
        [% END %]
162
    [% END %]
163
    [% IF CAN_user_borrowers_edit_borrowers %]
164
        [% IF ( IntranetReadingHistoryHolds ) %]
165
            [% IF ( holdshistoryview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/holdshistory.pl?borrowernumber=[% patron.borrowernumber | uri %]">Holds history</a></li>
166
        [% END %]
167
    [% END %]
168
    [% IF ( CAN_user_tools_view_system_logs ) %]
169
        [% IF ( logview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/tools/viewlog.pl?do_it=1&amp;modules=MEMBERS&amp;modules=CIRCULATION&amp;object=[% patron.borrowernumber | uri %]&amp;src=circ">Modification log</a></li>
170
    [% END %]
171
    [% IF CAN_user_borrowers_edit_borrowers %]
172
    [% IF ( sentnotices ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/notices.pl?borrowernumber=[% patron.borrowernumber | uri %]">Notices</a></li>
173
    [% END %]
174
    [% IF CAN_user_borrowers_edit_borrowers %]
175
        [% IF (  statisticsview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/statistics.pl?borrowernumber=[% patron.borrowernumber | uri %]">Statistics</a></li>
176
    [% END %]
177
    [% IF CAN_user_borrowers_edit_borrowers %]
178
        [% IF ( EnableBorrowerFiles ) %]
179
            [% IF ( borrower_files ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/files.pl?borrowernumber=[% patron.borrowernumber | uri %]">Files</a></li>
180
        [% END %]
181
    [% END %]
182
222
183
    [% IF CAN_user_suggestions_suggestions_manage %]
223
            [% IF CAN_user_suggestions_suggestions_manage %]
184
        [% IF ( suggestionsview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/purchase-suggestions.pl?borrowernumber=[% patron.borrowernumber | uri %]">Purchase suggestions</a></li>
224
                [% IF ( suggestionsview ) %]<li class="active">[% ELSE %]<li>[% END %]
185
    [% END %]
225
                    <a href="/cgi-bin/koha/members/purchase-suggestions.pl?borrowernumber=[% patron.borrowernumber | uri %]">Purchase suggestions</a>
186
    [% IF CAN_user_borrowers_edit_borrowers && useDischarge %]
226
                </li>
187
        [% IF dischargeview %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/discharge.pl?borrowernumber=[% patron.borrowernumber | uri %]">Discharges</a></li>
227
            [% END %]
188
    [% END %]
228
            [% IF CAN_user_borrowers_edit_borrowers && useDischarge %]
189
    [% IF Koha.Preference('HouseboundModule') %]
229
                [% IF dischargeview %]<li class="active">[% ELSE %]<li>[% END %]
190
        [% IF houseboundview %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/housebound.pl?borrowernumber=[% patron.borrowernumber | uri %]">Housebound</a></li>
230
                    <a href="/cgi-bin/koha/members/discharge.pl?borrowernumber=[% patron.borrowernumber | uri %]">Discharges</a>
191
    [% END %]
231
                </li>
192
    [% IF Koha.Preference('ILLModule') && CAN_user_ill %]
232
            [% END %]
193
        [% IF illview %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/ill-requests.pl?borrowernumber=[% patron.borrowernumber | uri %]">ILL requests history</a></li>
233
            [% IF Koha.Preference('HouseboundModule') %]
194
    [% END %]
234
                [% IF houseboundview %]<li class="active">[% ELSE %]<li>[% END %]
195
    [% IF Koha.Preference('UseRecalls') && CAN_user_recalls %]
235
                    <a href="/cgi-bin/koha/members/housebound.pl?borrowernumber=[% patron.borrowernumber | uri %]">Housebound</a>
196
        [% IF recallsview %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/recallshistory.pl?borrowernumber=[% patron.borrowernumber | uri %]">Recalls history</a></li>
236
                </li>
197
    [% END %]
237
            [% END %]
198
    [% IF ( CAN_user_serials && patron.alert_subscriptions.count ) %]
238
            [% IF Koha.Preference('ILLModule') && CAN_user_ill %]
199
        [% IF alertsview %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/alert-subscriptions.pl?borrowernumber=[% patron.borrowernumber | uri %]">Alert subscriptions ([% patron.alert_subscriptions.count | html %])</a></li>
239
                [% IF illview %]<li class="active">[% ELSE %]<li>[% END %]
200
    [% END %]
240
                    <a href="/cgi-bin/koha/members/ill-requests.pl?borrowernumber=[% patron.borrowernumber | uri %]">ILL requests history</a>
201
</ul></div>
241
                </li>
242
            [% END %]
243
            [% IF Koha.Preference('UseRecalls') && CAN_user_recalls %]
244
                [% IF recallsview %]<li class="active">[% ELSE %]<li>[% END %]
245
                    <a href="/cgi-bin/koha/members/recallshistory.pl?borrowernumber=[% patron.borrowernumber | uri %]">Recalls history</a>
246
                </li>
247
            [% END %]
248
            [% IF ( CAN_user_serials && patron.alert_subscriptions.count ) %]
249
                [% IF alertsview %]<li class="active">[% ELSE %]<li>[% END %]
250
                    <a href="/cgi-bin/koha/members/alert-subscriptions.pl?borrowernumber=[% patron.borrowernumber | uri %]">Alert subscriptions ([% patron.alert_subscriptions.count | html %])</a>
251
                </li>
252
            [% END %]
253
        </ul>
254
    </div>
202
255
203
[% IF patronimages && CAN_user_tools_batch_upload_patron_images %]
256
    [% IF patronimages && CAN_user_tools_batch_upload_patron_images %]
204
<!-- Modal -->
257
        <!-- Modal -->
205
<div class="modal" id="patronImageEdit" tabindex="-1" role="dialog" aria-labelledby="patronImageEditLabel">
258
        <div class="modal" id="patronImageEdit" tabindex="-1" role="dialog" aria-labelledby="patronImageEditLabel">
206
    <div class="modal-dialog" role="document">
259
            <div class="modal-dialog" role="document">
207
        <div class="modal-content">
260
                <div class="modal-content">
208
            <div class="modal-header">
261
                    <div class="modal-header">
209
                <button type="button" class="closebtn" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
262
                        <button type="button" class="closebtn" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
210
                <h4 class="modal-title" id="patronImageEditLabel">Patron photo</h4>
263
                        <h4 class="modal-title" id="patronImageEditLabel">Patron photo</h4>
211
            </div>
264
                    </div>
212
            <div class="modal-body">
265
                    <div class="modal-body">
213
                [% IF ( patron.cardnumber ) %]
266
                        [% IF ( patron.cardnumber ) %]
214
                <div id="upload-patron-image" class="patroninfo-section">
267
                            <div id="upload-patron-image" class="patroninfo-section">
215
                    <h5>Upload patron photo</h5>
268
                                <h5>Upload patron photo</h5>
216
                    <form method="post" id="picture-upload" action="/cgi-bin/koha/tools/picture-upload.pl"
269
                                <form method="post" id="picture-upload" action="/cgi-bin/koha/tools/picture-upload.pl"
217
                        enctype="multipart/form-data">
270
                                    enctype="multipart/form-data">
218
                        [% IF ( patron.image ) %]
271
                                    [% IF ( patron.image ) %]
219
                            <div class="hint">
272
                                        <div class="hint">
220
                                To update the image for [% patron.title | html %] [% patron.firstname | html %] [% patron.surname | html %], select a new image file and click 'Upload.' <br />Click the 'Delete' button to
273
                                            To update the image for [% patron.title | html %] [% patron.firstname | html %] [% patron.surname | html %], select a new image file and click 'Upload.' <br />Click the 'Delete' button to
221
                                remove the current image.
274
                                            remove the current image.
222
                            </div>
275
                                        </div>
223
                        [% ELSE %]
276
                                    [% ELSE %]
224
                            <div class="hint">
277
                                        <div class="hint">
225
                                [% patron.title | html %] [% patron.firstname | html %] [% patron.surname | html %] does not currently have an image available. To import an image for [% patron.title | html %] [% patron.firstname | html %] [% patron.surname | html %], enter the name of an image file to upload.
278
                                            [% patron.title | html %] [% patron.firstname | html %] [% patron.surname | html %] does not currently have an image available. To import an image for [% patron.title | html %] [% patron.firstname | html %] [% patron.surname | html %], enter the name of an image file to upload.
226
                            </div>
279
                                        </div>
227
                        [% END %]
280
                                    [% END %]
228
                        <p>Only PNG, GIF, JPEG, XPM formats are supported.</p>
281
                                    <p>Only PNG, GIF, JPEG, XPM formats are supported.</p>
229
                        <label for="uploadfile">Select the file to upload: </label>
282
                                    <label for="uploadfile">Select the file to upload: </label>
230
                        <input type="file" id="uploadfile" name="uploadfile" required="required" />
283
                                    <input type="file" id="uploadfile" name="uploadfile" required="required" />
231
                        <div class="action">
284
                                    <div class="action">
232
                            [% INCLUDE 'csrf-token.inc' %]
285
                                        [% INCLUDE 'csrf-token.inc' %]
233
                            <input type="hidden" id="image" name="filetype" value="image" />
286
                                        <input type="hidden" id="image" name="filetype" value="image" />
234
                            <input type="hidden" id="cardnumber" name="cardnumber" value="[% patron.cardnumber | html %]" />
287
                                        <input type="hidden" id="cardnumber" name="cardnumber" value="[% patron.cardnumber | html %]" />
235
                            <input type="hidden" id="borrowernumber" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
288
                                        <input type="hidden" id="borrowernumber" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
236
                            <button type="submit" class="btn btn-default btn-xs" name="op" value="cud-Upload"><i class="fa fa-upload"></i> Upload photo</button>
289
                                        <button type="submit" class="btn btn-default btn-xs" name="op" value="cud-Upload"><i class="fa fa-upload"></i> Upload photo</button>
237
                            [% IF ( patron.image ) %]
290
                                        [% IF ( patron.image ) %]
238
                            <button id="delpicture" type="submit" class="btn btn-default btn-xs delete" name="op" value="cud-Delete"><i class="fa fa-trash-can"></i> Delete</button>
291
                                        <button id="delpicture" type="submit" class="btn btn-default btn-xs delete" name="op" value="cud-Delete"><i class="fa fa-trash-can"></i> Delete</button>
239
                            [% END %]
292
                                        [% END %]
240
                        </div>
293
                                    </div>
241
                    </form>
294
                                </form>
242
                </div>
243
                <div id="capture-patron-image" class="patroninfo-section">
244
                    <h5>Take patron photo</h5>
245
                    <form method="post" id="camera-upload" action="/cgi-bin/koha/tools/picture-upload.pl">
246
                        <div class="btn-toolbar">
247
                            <div class="btn-group">
248
                                <button class="btn btn-default" id="takebutton"><i class="fa fa-camera"></i> Take photo</button>
249
                            </div>
295
                            </div>
250
                            <div class="btn-group">
296
                            <div id="capture-patron-image" class="patroninfo-section">
251
                                <button class="btn btn-default" id="retakebutton" style="display:none;"><i class="fa-solid fa-rotate"></i> Retake photo</button>
297
                                <h5>Take patron photo</h5>
298
                                <form method="post" id="camera-upload" action="/cgi-bin/koha/tools/picture-upload.pl">
299
                                    <div class="btn-toolbar">
300
                                        <div class="btn-group">
301
                                            <button class="btn btn-default" id="takebutton"><i class="fa fa-camera"></i> Take photo</button>
302
                                        </div>
303
                                        <div class="btn-group">
304
                                            <button class="btn btn-default" id="retakebutton" style="display:none;"><i class="fa-solid fa-rotate"></i> Retake photo</button>
305
                                        </div>
306
                                        <div class="btn-group">
307
                                            <a id="downloadbutton" href="#" class="btn btn-default" style="display:none;"><i class="fa fa-download"></i> Download photo</a>
308
                                        </div>
309
                                        <div class="btn-group">
310
                                            <button id="savebutton" type="submit" class="btn btn-default" style="display:none;"><i class="fa-solid fa-hard-drive"></i> Upload</button>
311
                                        </div>
312
                                    </div>
313
                                    <div id="camera">
314
                                        <video id="viewfinder">Video stream not available.</video>
315
                                    </div>
316
                                    <canvas id="canvas" style="display:none"></canvas>
317
                                    <div id="output" style="display:none">
318
                                        <img style="width:100%;height:auto;" id="photo" alt="The screen capture will appear in this box.">
319
                                    </div>
320
                                    <input type="hidden" name="uploadfilename" value="patron-photo.jpg" />
321
                                    <textarea id="uploadfiletext" name="uploadfiletext" style="display:none;"></textarea>
322
                                    [% INCLUDE 'csrf-token.inc' %]
323
                                    <input type="hidden" name="filetype" value="image" />
324
                                    <input type="hidden" name="cardnumber" value="[% patron.cardnumber | html %]" />
325
                                    <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
326
                                    <input name="op" type="hidden" value="cud-Upload" />
327
                                </form>
252
                            </div>
328
                            </div>
253
                            <div class="btn-group">
329
                            <div class="dialog message" style="display:none" id="camera-error">
254
                                <a id="downloadbutton" href="#" class="btn btn-default" style="display:none;"><i class="fa fa-download"></i> Download photo</a>
330
                                <div>
331
                                    <span class="fa-stack fa-lg">
332
                                        <i class="fa fa-camera fa-stack-1x"></i>
333
                                        <i class="fa fa-ban fa-stack-2x text-danger"></i>
334
                                    </span>
335
                                </div>
336
                                <div>
337
                                    <strong>Cannot take patron photo.</strong>
338
                                    <span id="camera-error-message"></span>
339
                                </div>
255
                            </div>
340
                            </div>
256
                            <div class="btn-group">
341
                        [% ELSE %]
257
                                <button id="savebutton" type="submit" class="btn btn-default" style="display:none;"><i class="fa-solid fa-hard-drive"></i> Upload</button>
342
                            <div id="missing-cardnumber-picture-upload">
343
                                <p>The patron must have a card number before a patron photo can be uploaded.</p>
258
                            </div>
344
                            </div>
259
                        </div>
345
                        [% END %]
260
                        <div id="camera">
261
                            <video id="viewfinder">Video stream not available.</video>
262
                        </div>
263
                        <canvas id="canvas" style="display:none"></canvas>
264
                        <div id="output" style="display:none">
265
                            <img style="width:100%;height:auto;" id="photo" alt="The screen capture will appear in this box.">
266
                        </div>
267
                        <input type="hidden" name="uploadfilename" value="patron-photo.jpg" />
268
                        <textarea id="uploadfiletext" name="uploadfiletext" style="display:none;"></textarea>
269
                        [% INCLUDE 'csrf-token.inc' %]
270
                        <input type="hidden" name="filetype" value="image" />
271
                        <input type="hidden" name="cardnumber" value="[% patron.cardnumber | html %]" />
272
                        <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
273
                        <input name="op" type="hidden" value="cud-Upload" />
274
                    </form>
275
                </div>
276
                <div class="dialog message" style="display:none" id="camera-error">
277
                    <div>
278
                        <span class="fa-stack fa-lg">
279
                            <i class="fa fa-camera fa-stack-1x"></i>
280
                            <i class="fa fa-ban fa-stack-2x text-danger"></i>
281
                        </span>
282
                    </div>
346
                    </div>
283
                    <div>
347
                    <div class="modal-footer">
284
                        <strong>Cannot take patron photo.</strong>
348
                        <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
285
                        <span id="camera-error-message"></span>
286
                    </div>
349
                    </div>
287
                </div>
350
                </div>
288
                [% ELSE %]
289
                    <div id="missing-cardnumber-picture-upload">
290
                        <p>The patron must have a card number before a patron photo can be uploaded.</p>
291
                    </div>
292
                [% END %]
293
            </div>
294
            <div class="modal-footer">
295
                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
296
            </div>
351
            </div>
297
        </div>
352
        </div>
298
    </div>
353
    [% END %]
299
</div>
300
[% END %]
301
354
302
[% END %]
355
[% END %]
303
- 

Return to bug 36911