X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FElements%2FSelectOwner;h=48f6be0f929b25d9cf8bb103d33cc6be9cadfe2d;hp=3ba7af634bf1a2e71a86f566586c5dd94f152023;hb=187086c479a09629b7d180eec513fb7657f4e291;hpb=0fb307c305e4bc2c9c27dc25a3308beae3a4d33c diff --git a/rt/share/html/Elements/SelectOwner b/rt/share/html/Elements/SelectOwner index 3ba7af634..48f6be0f9 100755 --- a/rt/share/html/Elements/SelectOwner +++ b/rt/share/html/Elements/SelectOwner @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2018 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -45,87 +45,41 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} - +<& "SelectOwner$Widget", %ARGS, Objects => \@objects &> <%INIT> +my $Widget; +if ( !$QueueObj && !$TicketObj && RT->Config->Get('AutocompleteOwnersForSearch') ) { + $Widget = 'Autocomplete'; +} +$Widget ||= RT->Config->Get('AutocompleteOwners', $session{'CurrentUser'}) + ? 'Autocomplete' : 'Dropdown'; my @objects; if ($TicketObj) { @objects = ($TicketObj); } elsif ($QueueObj) { @objects = ($QueueObj); -} elsif ($cfqueues) { - @objects = keys %{$cfqueues}; +} elsif (%Queues) { + for my $name (keys %Queues) { + my $q = RT::Queue->new($session{'CurrentUser'}); + $q->Load($name); + push @objects, $q; + } } else { -# Let's check rights on an empty queue object. that will do a search -# for any queue. + # Let's check rights on an empty queue object. that will do a search + # for any queue. my $queue = RT::Queue->new( $session{'CurrentUser'} ); push( @objects, $queue ); } -my %user_uniq_hash; - $m->callback( %ARGS, objects => \@objects, CallbackName => 'UpdateObjectList' ); - -my $isSU = $session{CurrentUser} - ->HasRight( Right => 'SuperUser', Object => $RT::System ); -foreach my $object (@objects) { - my $Users = RT::Users->new( $session{CurrentUser} ); - $Users->WhoHaveRight( - Right => 'OwnTicket', - Object => $object, - IncludeSystemRights => 1, - IncludeSuperusers => $isSU - ); - while ( my $User = $Users->Next() ) { - $user_uniq_hash{ $User->Id() } = $User; - } -} -if ($Default && $Default != $RT::Nobody->id && !$user_uniq_hash{$Default}) { - $user_uniq_hash{$Default} = RT::User->new($session{CurrentUser}); - $user_uniq_hash{$Default}->Load($Default); -} - -my @users = values %user_uniq_hash; - -$m->callback( - %ARGS, - objects => \@objects, - CallbackName => 'UpdateObjectList' -); - - - <%ARGS> -$QueueObj => undef -$Name => undef -$Default => 0 -$User => undef -$TicketObj => undef -$DefaultValue => 1 -$DefaultLabel => "-" -$ValueAttribute => 'id' -$cfqueues => undef +$TicketObj => undef +$QueueObj => undef +%Queues => ()