& /Admin/Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
<%INIT> my ($title, @results); my $LifecycleObj = RT::Lifecycle->new(); $LifecycleObj->Load(Name => $Name, Type => $Type); Abort("Invalid lifecycle") unless $LifecycleObj->Name && $LifecycleObj->{data}{type} eq $Type; my @MyStatuses = $LifecycleObj->Valid; $title = loc("Lifecycle [_1] Mappings", $LifecycleObj->Name); # This code does automatic redirection if any updates happen. MaybeRedirectForResults( Actions => \@results, Arguments => { Name => $LifecycleObj->Name, Type => $LifecycleObj->Type }, ); my @lifecycle_names = grep { $_ ne 'approvals' } RT::Lifecycle->ListAll($Type); if ($Update) { my %maps; my $lifecycle_re = join '|', map { quotemeta($_) } @lifecycle_names; for my $key (keys %ARGS) { my ($from_lifecycle, $from_status, $to_lifecycle) = $key =~ /^map-($lifecycle_re)-(.*)--($lifecycle_re)$/ or next; if (my $to_status = $ARGS{$key}) { $maps{"$from_lifecycle -> $to_lifecycle"}{$from_status} = $to_status; } } my ($ok, $msg) = RT::Extension::LifecycleUI->UpdateMaps( CurrentUser => $session{CurrentUser}, Maps => \%maps, ); push @results, $msg; } my @lifecycles = map { RT::Lifecycle->Load(Name => $_, Type => $Type) } sort { loc($a) cmp loc($b) } grep { $_ ne $Name } @lifecycle_names; %INIT> <%ARGS> $Name => undef $Type => undef $Update => undef %ARGS>