X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FElements%2FSelectOwner;h=48f6be0f929b25d9cf8bb103d33cc6be9cadfe2d;hp=6bdb24064a852d3033632873b4839e1a29a0ad3f;hb=187086c479a09629b7d180eec513fb7657f4e291;hpb=63a268637b2d51a8766412617724b9436439deb6 diff --git a/rt/share/html/Elements/SelectOwner b/rt/share/html/Elements/SelectOwner index 6bdb24064..48f6be0f9 100755 --- a/rt/share/html/Elements/SelectOwner +++ b/rt/share/html/Elements/SelectOwner @@ -1,40 +1,40 @@ %# BEGIN BPS TAGGED BLOCK {{{ -%# +%# %# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC -%# -%# +%# +%# This software is Copyright (c) 1996-2018 Best Practical Solutions, LLC +%# +%# %# (Except where explicitly superseded by other copyright notices) -%# -%# +%# +%# %# LICENSE: -%# +%# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. -%# +%# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. -%# +%# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -%# -%# +%# +%# %# CONTRIBUTION SUBMISSION POLICY: -%# +%# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) -%# +%# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,91 +43,43 @@ %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# 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() ) { - next - if ( $User->id == $RT::Nobody->id ) - ; # skip nobody here, so we can make them first later - $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 = sort { uc( $a->Name ) cmp uc( $b->Name ) } values %user_uniq_hash; -unshift( @users, $RT::Nobody ); - -$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 => ()