Lines 7-13
Link Here
|
7 |
[% INCLUDE 'doc-head-open.inc' %] |
7 |
[% INCLUDE 'doc-head-open.inc' %] |
8 |
<title>Koha › Patrons › Merge patron records</title> |
8 |
<title>Koha › Patrons › Merge patron records</title> |
9 |
[% INCLUDE 'doc-head-close.inc' %] |
9 |
[% INCLUDE 'doc-head-close.inc' %] |
10 |
|
10 |
<style> |
|
|
11 |
[% FILTER collapse %] |
12 |
ins { |
13 |
background-color: #e6ffe6; |
14 |
} |
15 |
del { |
16 |
background-color: #ffe6e6; |
17 |
} |
18 |
#col0 ins, |
19 |
#col1 del { |
20 |
display: none; |
21 |
} |
22 |
#col-label, |
23 |
#col0, |
24 |
#col1 { |
25 |
border-right: 1px solid #EEE; |
26 |
flex-grow: 1; |
27 |
margin-right:1em; |
28 |
} |
29 |
#col-label { |
30 |
font-family: monospace; |
31 |
} |
32 |
#col-label div { |
33 |
white-space: none; |
34 |
} |
35 |
.compare { |
36 |
display: flex; |
37 |
} |
38 |
.modal-lg { |
39 |
width: 90%; |
40 |
} |
41 |
[% END %] |
42 |
</style> |
11 |
</head> |
43 |
</head> |
12 |
<body id="pat_merge" class="pat"> |
44 |
<body id="pat_merge" class="pat"> |
13 |
[% INCLUDE 'header.inc' %] |
45 |
[% INCLUDE 'header.inc' %] |
Lines 52-58
Link Here
|
52 |
|
84 |
|
53 |
[% IF action == 'show' %] |
85 |
[% IF action == 'show' %] |
54 |
[% IF patrons.count > 1 %] |
86 |
[% IF patrons.count > 1 %] |
|
|
87 |
[% IF ( patrons.count == 2 ) %] |
88 |
<div id="toolbar" class="btn-toolbar"> |
89 |
<div class="btn-group"> |
90 |
<button class="btn btn-default" id="compare_patrons"> |
91 |
Compare patrons |
92 |
</button> |
93 |
</div> |
94 |
</div> |
95 |
[% END %] |
96 |
|
55 |
<p>Select patron to keep. Data from the other patrons will be transferred to this patron record and the remaining patron records will be deleted.</p> |
97 |
<p>Select patron to keep. Data from the other patrons will be transferred to this patron record and the remaining patron records will be deleted.</p> |
|
|
98 |
|
56 |
<form type="post" action="merge-patrons.pl"> |
99 |
<form type="post" action="merge-patrons.pl"> |
57 |
<table id="patron-merge-table" class="datatable"> |
100 |
<table id="patron-merge-table" class="datatable"> |
58 |
<thead> |
101 |
<thead> |
Lines 76-82
Link Here
|
76 |
<strong>[% p.cardnumber | html %]</strong> |
119 |
<strong>[% p.cardnumber | html %]</strong> |
77 |
</label> |
120 |
</label> |
78 |
</td> |
121 |
</td> |
79 |
<td>[% INCLUDE 'patron-title.inc' patron = p %]</td> |
122 |
<td> |
|
|
123 |
<a target="_blank" href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% p.borrowernumber | uri %]"> |
124 |
[% INCLUDE 'patron-title.inc' patron = p %] |
125 |
<i class="fa fa-window-restore"></i> |
126 |
</a> |
127 |
</td> |
80 |
<td>[% p.dateofbirth | $KohaDates %]</td> |
128 |
<td>[% p.dateofbirth | $KohaDates %]</td> |
81 |
<td>[% Categories.GetName( p.categorycode ) | html %] ([% p.categorycode | html %])</td> |
129 |
<td>[% Categories.GetName( p.categorycode ) | html %] ([% p.categorycode | html %])</td> |
82 |
<td>[% Branches.GetName( p.branchcode ) | html %]</td> |
130 |
<td>[% Branches.GetName( p.branchcode ) | html %]</td> |
Lines 139-148
Link Here
|
139 |
</div> |
187 |
</div> |
140 |
</div> |
188 |
</div> |
141 |
|
189 |
|
|
|
190 |
<!-- Modal --> |
191 |
<div class="modal" id="compareModal" tabindex="-1" role="dialog" aria-labelledby="compareModalLabel"> |
192 |
<div class="modal-dialog modal-lg" role="document"> |
193 |
<div class="modal-content"> |
194 |
<div class="modal-header"> |
195 |
<button type="button" class="closebtn" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> |
196 |
<h4 class="modal-title" id="compareModalLabel">Compare patrons for merging</h4> |
197 |
</div> |
198 |
<div class="modal-body"> |
199 |
<div class="compare"> |
200 |
<div id="col-label"> |
201 |
<div><strong>Name:</strong></div> |
202 |
<div><strong>Initials:</strong></div> |
203 |
<div><strong>Other name:</strong></div> |
204 |
<div><strong>Library:</strong></div> |
205 |
<div><strong>Card number:</strong></div> |
206 |
<div><strong>Category:</strong></div> |
207 |
<br /> |
208 |
<div><strong>Address line 1:</strong></div> |
209 |
<div><strong>Address line 2:</strong></div> |
210 |
<div><strong>City:</strong></div> |
211 |
<div><strong>Country:</strong></div> |
212 |
<div><strong>State:</strong></div> |
213 |
<div><strong>Zip code:</strong></div> |
214 |
<div><strong>Country:</strong></div> |
215 |
<br /> |
216 |
<div><strong>Registration date:</strong></div> |
217 |
<div><strong>Renewal date:</strong></div> |
218 |
<div><strong>Expiration date:</strong></div> |
219 |
<div><strong>Date of birth:</strong></div> |
220 |
<div><strong>Restricted:</strong></div> |
221 |
<div><strong>Primary email:</strong></div> |
222 |
<div><strong>Secondary email:</strong></div> |
223 |
<div><strong>Primary phone:</strong></div> |
224 |
<div><strong>Secondary phone:</strong></div> |
225 |
<div><strong>Other phone:</strong></div> |
226 |
<div><strong>Gender:</strong></div> |
227 |
<div><strong>Updated on:</strong></div> |
228 |
<div><strong>Username:</strong></div> |
229 |
</div> |
230 |
|
231 |
[% FOREACH p IN patrons %] |
232 |
<div id="col[% loop.index | html %]"> |
233 |
<!-- <pre> block is unindented to avoid unwanted whitespace --> |
234 |
<pre> |
235 |
[% IF ( p.surname ) %][% p.surname | html %], [% p.firstname | html %][% ELSE %]-[% END %] |
236 |
[% IF ( p.initials ) %][% p.initials | html %][% ELSE %]-[% END %] |
237 |
[% IF ( p.othernames ) %][% p.othernames | html %][% ELSE %]-[% END %] |
238 |
[% IF ( p.branchcode ) %][% p.branchcode | html %][% ELSE %]-[% END %] |
239 |
[% IF ( p.cardnumber ) %][% p.cardnumber | html %][% ELSE %]-[% END %] |
240 |
[% IF ( p.categorycode ) %][% p.categorycode | html %][% ELSE %]-[% END %] |
241 |
|
242 |
[% IF ( p.address ) %][% p.address | html %][% ELSE %]-[% END %] |
243 |
[% IF ( p.address2 ) %][% p.address2 | html %][% ELSE %]-[% END %] |
244 |
[% IF ( p.city ) %][% p.city | html %][% ELSE %]-[% END %] |
245 |
[% IF ( p.country ) %][% p.country | html %][% ELSE %]-[% END %] |
246 |
[% IF ( p.state ) %][% p.state | html %][% ELSE %]-[% END %] |
247 |
[% IF ( p.zipcode ) %][% p.zipcode | html %][% ELSE %]-[% END %] |
248 |
[% IF ( p.country ) %][% p.country | html %][% ELSE %]-[% END %] |
249 |
|
250 |
[% IF ( p.dateenrolled ) %][% p.dateenrolled | html %][% ELSE %]-[% END %] |
251 |
[% IF ( p.date_renewed ) %][% p.date_renewed | html %][% ELSE %]-[% END %] |
252 |
[% IF ( p.dateexpiry ) %][% p.dateexpiry | html %][% ELSE %]-[% END %] |
253 |
[% IF ( p.dateofbirth ) %][% p.dateofbirth | html %][% ELSE %]-[% END %] |
254 |
[% IF ( p.debarred ) %][% p.debarred | html %][% ELSE %]-[% END %] |
255 |
[% IF ( p.email ) %][% p.email | html %][% ELSE %]-[% END %] |
256 |
[% IF ( p.emailpro ) %][% p.emailpro | html %][% ELSE %]-[% END %] |
257 |
[% IF ( p.phone ) %][% p.phone | html %][% ELSE %]-[% END %] |
258 |
[% IF ( p.phonepro ) %][% p.phonepro | html %][% ELSE %]-[% END %] |
259 |
[% IF ( p.mobile ) %][% p.mobile | html %][% ELSE %]-[% END %] |
260 |
[% IF ( p.sex ) %][% p.sex | html %][% ELSE %]-[% END %] |
261 |
[% IF ( p.updated_on ) %][% p.updated_on | html %][% ELSE %]-[% END %] |
262 |
[% IF ( p.userid ) %][% p.userid | html %][% ELSE %]-[% END %] |
263 |
</pre> |
264 |
</div> |
265 |
[% END %] |
266 |
</div> |
267 |
</div> |
268 |
<div class="modal-footer"> |
269 |
<button type="button" class="btn btn-default" data-dismiss="modal"><i class="fa fa-remove" aria-hidden="true"></i> Close</button> |
270 |
</div> |
271 |
</div> <!-- /.modal-content --> |
272 |
</div> <!-- /.modal-dialog --> |
273 |
</div> <!-- /#compareModal --> |
274 |
|
142 |
[% MACRO jsinclude BLOCK %] |
275 |
[% MACRO jsinclude BLOCK %] |
143 |
[% INCLUDE 'str/members-menu.inc' %] |
276 |
[% INCLUDE 'str/members-menu.inc' %] |
144 |
[% Asset.js("js/members-menu.js") | $raw %] |
277 |
[% Asset.js("js/members-menu.js") | $raw %] |
145 |
|
278 |
[% Asset.js("lib/jsdiff/jsdiff.min.js") | $raw %] |
146 |
<script> |
279 |
<script> |
147 |
$(document).ready(function() { |
280 |
$(document).ready(function() { |
148 |
$('#merge-patrons').prop('disabled', true); |
281 |
$('#merge-patrons').prop('disabled', true); |
Lines 153-159
Link Here
|
153 |
$('#merge-patrons').prop('disabled', true); |
286 |
$('#merge-patrons').prop('disabled', true); |
154 |
} |
287 |
} |
155 |
}); |
288 |
}); |
|
|
289 |
$("#compare_patrons").on("click", function(e){ |
290 |
e.preventDefault(); |
291 |
$("#compareModal").modal("show"); |
292 |
}); |
293 |
$("#compareModal").on("shown.bs.modal", function(){ |
294 |
if( $(this).hasClass("shown") ){ |
295 |
// modal has already displayed, don't re-run diff |
296 |
} else { |
297 |
$(this).addClass("shown"); |
298 |
var diff1 = $("#col0 pre").text(); |
299 |
var diff2 = $("#col1 pre").text(); |
300 |
var diffs = diffString(diff1,diff2); |
301 |
$("#col0 pre,#col1 pre").html(diffs); |
302 |
} |
303 |
}); |
156 |
}); |
304 |
}); |
|
|
305 |
|
157 |
</script> |
306 |
</script> |
158 |
[% END %] |
307 |
[% END %] |
159 |
|
308 |
|
160 |
- |
|
|