diff options
author | Ivan Kohler <ivan@freeside.biz> | 2012-06-07 00:56:06 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2012-06-07 00:56:06 -0700 |
commit | 43a06151e47d2c59b833cbd8c26d97865ee850b6 (patch) | |
tree | 42c51d94e7fa265461b508d061562be204ccc2c1 /rt/share/html/Elements/SelectOwner | |
parent | 6587f6ba7d047ddc1686c080090afe7d53365bd4 (diff) |
starting to work...
Diffstat (limited to 'rt/share/html/Elements/SelectOwner')
-rwxr-xr-x | rt/share/html/Elements/SelectOwner | 76 |
1 files changed, 13 insertions, 63 deletions
diff --git a/rt/share/html/Elements/SelectOwner b/rt/share/html/Elements/SelectOwner index 3ba7af634..cc64e247b 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-2012 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) @@ -45,26 +45,14 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} -<select name="<%$Name%>" id="<%$Name%>"> -%if ($DefaultValue) { -<option value=""<% !$Default ? qq[ selected="selected"] : '' |n %>><%$DefaultLabel |n%></option> -%} -% $Default = 0 unless defined $Default && $Default =~ /^\d+$/; -% my @formatednames = sort {lc $a->[1] cmp lc $b->[1]} map {[$_, $m->scomp('/Elements/ShowUser', User => $_)]} grep { $_->id != $RT::Nobody->id } @users; -% my $nobody = [$RT::Nobody, $m->scomp('/Elements/ShowUser', User => $RT::Nobody)]; -% unshift @formatednames, $nobody; -%foreach my $UserRef ( @formatednames) { -%my $User = $UserRef->[0]; -<option <% ( $User->Id == $Default) ? qq[ selected="selected"] : '' |n %> -%if ($ValueAttribute eq 'id') { - value="<%$User->id%>" -%} elsif ($ValueAttribute eq 'Name') { - value="<%$User->Name%>" -%} -><% $UserRef->[1] |n %></option> -%} -</select> +<& "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) { @@ -74,58 +62,20 @@ if ($TicketObj) { } elsif ($cfqueues) { @objects = keys %{$cfqueues}; } 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' -); - - </%INIT> - <%ARGS> -$QueueObj => undef -$Name => undef -$Default => 0 -$User => undef -$TicketObj => undef -$DefaultValue => 1 -$DefaultLabel => "-" -$ValueAttribute => 'id' -$cfqueues => undef +$TicketObj => undef +$QueueObj => undef +$cfqueues => undef </%ARGS> |