<& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>

<&|/l&>Filters

<&|/l&>Filters reduce the pool of eligible owners. Each user must fulfill the requirements of all the filters below to be included in this queue's automatic assignment.

<&|/l&>Loading...
% my $i = 0; % my $filters_value = ""; % for my $filter (@{ $config->{filters} }) { % ++$i; % my $name = $filter->{_name}; % my $path = "/Admin/Queues/Elements/Filter/$name"; % my $prefix = "Filter_${name}_$i"; % $filters_value .= "$prefix,"; % $m->comp($path, prefix => $prefix, config => $filter, queue => $QueueObj); % }

<&|/l&>Chooser

<&|/l&>A chooser selects a single owner from the filtered set of eligible users.

% my $chooser_config = $config->{chooser}; % my $name = $chooser_config->{_name}; % my $prefix = "Chooser_${name}"; Loading... % my $path = "/Admin/Queues/Elements/Chooser/$name"; % $m->comp($path, prefix => $prefix, config => $chooser_config, queue => $QueueObj);
<& /Elements/Submit, Name => 'Update', Label => loc('Save Changes') &>
<%INIT> my @results; my $QueueObj = RT::Queue->new($session{'CurrentUser'}); $QueueObj->Load($id) || Abort(loc("Couldn't load queue", $id)); my $title = loc('Automatic Assignment for queue [_1]', $QueueObj->Name); my @filters = RT->Config->Get('AutomaticAssignmentFilters'); my @choosers = RT->Config->Get('AutomaticAssignmentChoosers'); if ($Update) { my @filters_config; my %chooser_config; for my $filter_prefix (split /,/, $Filters) { my @config_keys = grep { s/^\Q$filter_prefix\E_// ? $_ : () } keys %ARGS; my %filter_config = map { $_ => $ARGS{"${filter_prefix}_$_"} } @config_keys; push @filters_config, \%filter_config; } { my @config_keys = grep { s/^\Q$Chooser\E_// ? $_ : () } keys %ARGS; %chooser_config = map { $_ => $ARGS{"${Chooser}_$_"} } @config_keys; } my ($ok, $msg) = RT::Extension::AutomaticAssignment->_SetConfigForQueue( $QueueObj, \@filters_config, \%chooser_config, ); if ($ok) { push @results, 'Automatic assignment updated'; } else { push @results, $msg; } } my $attr = $QueueObj->FirstAttribute('AutomaticAssignment'); my $config = $attr ? $attr->Content : { filters => [], chooser => { _name => $choosers[0] }, }; my $scrips = RT::Extension::AutomaticAssignment->_ScripsForQueue($QueueObj); if ($scrips->Count == 0) { push @results, loc("No scrips for automatic assignment are applied to this queue. Please see the AutomaticAssignment documentation for setup instructions."); } <%ARGS> $id => undef $Update => undef $Filters => undef $Chooser => undef