2 <% include('/elements/header-popup.html', 'Reason Merge Success') %>
5 window.top.location.reload()
9 <% include('/elements/header-popup.html', 'Merge Reasons') %>
11 <P STYLE="color: red;"><% emt($error) %></P>
15 The following reasons will be merged into one.
16 Please select one reason to merge the others into.
18 <FORM METHOD="POST" ACTION="<% "${p}misc/reason-merge.html" %>">
20 % foreach my $reason (@reasons) {
21 <INPUT TYPE="hidden" NAME="reasonnum" VALUE="<% $reason->reasonnum %>">
22 <INPUT TYPE="radio" NAME="destreasonnum" VALUE="<% $reason->reasonnum %>">
23 <% $reason->reason %><BR>
26 <P>Caution: merging reasons cannot be undone!</P>
27 <P><INPUT TYPE="submit" NAME="process_merge" value="Merge"></P>
30 <BUTTON TYPE="button" onClick="parent.cClick();">Close</BUTTON>
35 my @reasonnums = $cgi->param('reasonnum');
36 my $destreasonnum = $cgi->param('destreasonnum');
42 foreach my $reasonnum (@reasonnums) {
43 unless ($reasonnum =~ /^\d+$/) {
44 $error = "Invalid reasonnum $reasonnum.";
47 my $reason = qsearchs('reason',{ 'reasonnum' => $reasonnum });
49 $error = "Reason $reasonnum could not be loaded.";
52 my $reasontype = $reason->reasontype;
53 $class ||= $reasontype->class;
54 if ($class ne $reasontype->class) {
55 $error = "Selected reasons must have the same reason type class.";
58 push(@reasons, $reason);
59 $destreason = $reason if $reasonnum eq $destreasonnum;
63 $error = "No reasons selected." unless @reasons;
64 $error = "Select two or more reasons to merge." unless @reasons > 1;
67 @reasons = () if $error;
70 if ($cgi->param('process_merge') && !$error) {
72 $error = $destreason->merge(\@reasons);
73 $success = 1 unless $error;
75 $error = "No desitation reason selected.";