Owen Leonard
41f0f22cb2
This patch makes a minor change the the merge patrons template so that on the patron selection stage the user can click the card number to select the radio button. To test, apply the patch and perform a patron search in the patrons module. - In patron search results, select two patrons to merge. - Click the "Merge selected patrons" button. - On the page showing the two patrons to merge, click each of the card numbers to confirm that it selects the correct radio button. Signed-off-by: Jennifer <jennifer.marlatt@coronaca.gov> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
160 lines
7.3 KiB
Text
160 lines
7.3 KiB
Text
[% USE raw %]
|
|
[% USE Asset %]
|
|
[% USE Branches %]
|
|
[% USE Categories %]
|
|
[% USE KohaDates %]
|
|
[% SET footerjs = 1 %]
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Patrons › Merge patron records</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
|
|
</head>
|
|
<body id="pat_merge" class="pat">
|
|
[% INCLUDE 'header.inc' %]
|
|
[% INCLUDE 'patron-search.inc' %]
|
|
|
|
[% BLOCK display_names %]
|
|
[% SWITCH rs %]
|
|
[% CASE 'Accountline' %]account lines
|
|
[% CASE 'ArticleRequest' %]article requests
|
|
[% CASE 'BorrowerAttribute' %]extended patron attributes
|
|
[% CASE 'BorrowerDebarment' %]patron restrictions
|
|
[% CASE 'BorrowerFile' %]patrons files
|
|
[% CASE 'BorrowerModification' %]patron modification requests
|
|
[% CASE 'ClubEnrollment' %]club enrollments
|
|
[% CASE 'Issue' %]checkouts
|
|
[% CASE 'ItemsLastBorrower' %]marks as last borrower of item
|
|
[% CASE 'Linktracker' %]tracked link clicks
|
|
[% CASE 'Message' %]patron messages
|
|
[% CASE 'MessageQueue' %]patron notices
|
|
[% CASE 'OldIssue' %]previous checkouts
|
|
[% CASE 'OldReserve' %]filled holds
|
|
[% CASE 'Rating' %]ratings
|
|
[% CASE 'Reserve' %]current holds
|
|
[% CASE 'Review' %]reviews
|
|
[% CASE 'Statistic' %]statistics
|
|
[% CASE 'SearchHistory' %]historical searches
|
|
[% CASE 'Suggestion' %]purchase suggestions
|
|
[% CASE 'TagAll' %]tags
|
|
[% CASE 'Virtualshelfcontent' %]list items
|
|
[% CASE 'Virtualshelfshare' %]list shares
|
|
[% CASE 'Virtualshelve' %]lists
|
|
[% CASE %][% rs | html %]
|
|
[% END %]
|
|
[% END %]
|
|
|
|
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/members/members-home.pl">Patrons</a> › Merge patron records</div>
|
|
|
|
<div class="main container-fluid">
|
|
<div class="row">
|
|
<div class="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
|
|
<h3>Merge patron records</h3>
|
|
|
|
[% IF action == 'show' %]
|
|
[% IF patrons.count > 1 %]
|
|
<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>
|
|
<form type="post" action="merge-patrons.pl">
|
|
<table id="patron-merge-table" class="datatable">
|
|
<thead>
|
|
<tr>
|
|
<th> </th>
|
|
<th>Card</th>
|
|
<th>Name</th>
|
|
<th>Date of birth</th>
|
|
<th>Category</th>
|
|
<th>Library</th>
|
|
<th>Expires on</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
[% FOREACH p IN patrons %]
|
|
<tr>
|
|
<td><input class="keeper" type="radio" name="keeper" value="[% p.id | html %]" id="keeper_[% p.id | html %]" /></td>
|
|
<td>
|
|
<label for="keeper_[% p.id | html %]">
|
|
<strong>[% p.cardnumber | html %]</strong>
|
|
</label>
|
|
</td>
|
|
<td>[% INCLUDE 'patron-title.inc' patron = p %]</td>
|
|
<td>[% p.dateofbirth | $KohaDates %]</td>
|
|
<td>[% Categories.GetName( p.categorycode ) | html %] ([% p.categorycode | html %])</td>
|
|
<td>[% Branches.GetName( p.branchcode ) | html %]</td>
|
|
<td>[% p.dateexpiry | $KohaDates %]</td>
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
|
|
[% FOREACH p IN patrons %]
|
|
<input type="hidden" name="id" value="[% p.id | html %]" />
|
|
[% END %]
|
|
|
|
<p/>
|
|
|
|
<input type="hidden" name="action" value="merge" />
|
|
<input id="merge-patrons" type="submit" value="Merge patrons" />
|
|
[% ELSE %]
|
|
<div class="dialog alert">Error: Two or more patrons need to be selected for merging</div>
|
|
[% END %]
|
|
</form>
|
|
[% ELSIF action == 'merge' %]
|
|
<h4>Results</h4>
|
|
[% IF error %]
|
|
[% IF error == 'INVALID_KEEPER' %]
|
|
<div class="dialog alert">Merge failed! The patron to keep was invalid.</div>
|
|
[% ELSE %]
|
|
<div class="dialog alert">Merge failed! The following error was reported: [% error | html %].</div>
|
|
[% END %]
|
|
[% ELSIF !results.merged.keys.size %]
|
|
<div class="dialog alert">No valid patrons to merge were found.</div>
|
|
[% ELSE %]
|
|
<p>
|
|
Patron records merged into <a href="moremember.pl?borrowernumber=[% keeper.id | uri %]">[% INCLUDE 'patron-title.inc' patron = keeper %]</a>
|
|
</p>
|
|
|
|
[% FOREACH pair IN results.merged.pairs %]
|
|
[% SET patron = pair.value.patron %]
|
|
|
|
<h5>[% INCLUDE 'patron-title.inc' %]</h5>
|
|
|
|
[% FOREACH r IN pair.value.updated.pairs %]
|
|
[% SET name = r.key %]
|
|
[% SET count = r.value %]
|
|
[% IF count %]
|
|
<p>
|
|
<span>[% count | html %] [% PROCESS display_names rs = name %] transferred.</span>
|
|
[% IF name == 'Reserve' %]
|
|
<strong>It is advisable to check for and resolve duplicate holds due to merging.</strong>
|
|
[% END %]
|
|
</p>
|
|
[% END %]
|
|
[% END %]
|
|
[% END %]
|
|
[% END %]
|
|
|
|
[% UNLESS error %]
|
|
<a class="btn btn-default" href="moremember.pl?borrowernumber=[% keeper.id | html %]">View patron record</a>
|
|
[% END %]
|
|
[% END %]
|
|
</div>
|
|
</div>
|
|
|
|
[% MACRO jsinclude BLOCK %]
|
|
[% INCLUDE 'str/members-menu.inc' %]
|
|
[% Asset.js("js/members-menu.js") | $raw %]
|
|
|
|
<script>
|
|
$(document).ready(function() {
|
|
$('#merge-patrons').prop('disabled', true);
|
|
$('#patron-merge-table').on('change', 'input', function() {
|
|
if ( $('.keeper:checked').length > 0 ) {
|
|
$('#merge-patrons').prop('disabled', false);
|
|
} else {
|
|
$('#merge-patrons').prop('disabled', true);
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
[% END %]
|
|
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|