-elsif ( $QueueObj ) {
- @status = $QueueObj->Lifecycle->Transitions('');
-} elsif ( %Queues ) {
- for my $id (keys %Queues) {
- my $queue = RT::Queue->new($session{'CurrentUser'});
- $queue->Load($id);
- push @status, $queue->Lifecycle->Valid if $queue->id;
+
+if (keys %statuses_by_lifecycle) {
+ my %simplified;
+ my $key = sub {
+ join "\0", sort @{$_[0]};
+ };
+ for my $name (sort keys %statuses_by_lifecycle) {
+ my $matched;
+ my $statuses = $statuses_by_lifecycle{$name};
+ for my $simple (sort keys %simplified) {
+ if ($key->($statuses) eq $key->($simplified{$simple})) {
+ # Statuses are the same, join 'em!
+ $simplified{"$simple, $name"} = delete $simplified{$simple};
+ $matched++;
+ last;
+ }
+ }
+ unless ($matched) {
+ $simplified{$name} = $statuses;
+ }