% if ($success) { <% include('/elements/header-popup.html', 'Reason Merge Success') %> % } else { <% include('/elements/header-popup.html', 'Merge Reasons') %> % if ($error) {

<% emt($error) %>

% } % if (@reasons > 1) {

The following reasons will be merged into one. Please select one reason to merge the others into.

">

% foreach my $reason (@reasons) { <% $reason->reason %>
% }

Caution: merging reasons cannot be undone!

% } else { % } % } <%init> my @reasonnums = $cgi->param('reasonnum'); my $destreasonnum = $cgi->param('destreasonnum'); my $error; my $class; my @reasons; my $destreason; foreach my $reasonnum (@reasonnums) { unless ($reasonnum =~ /^\d+$/) { $error = "Invalid reasonnum $reasonnum."; last; } my $reason = qsearchs('reason',{ 'reasonnum' => $reasonnum }); unless ($reason) { $error = "Reason $reasonnum could not be loaded."; last; } my $reasontype = $reason->reasontype; $class ||= $reasontype->class; if ($class ne $reasontype->class) { $error = "Selected reasons must have the same reason type class."; last; } push(@reasons, $reason); $destreason = $reason if $reasonnum eq $destreasonnum; } unless ($error) { $error = "No reasons selected." unless @reasons; $error = "Select two or more reasons to merge." unless @reasons > 1; } @reasons = () if $error; my $success = 0; if ($cgi->param('process_merge') && !$error) { if ($destreason) { $error = $destreason->merge(\@reasons); $success = 1 unless $error; } else { $error = "No destination reason selected."; } }