summaryrefslogtreecommitdiff
path: root/rt/share/html/Elements/SelectOwner
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2012-06-07 00:56:06 -0700
committerIvan Kohler <ivan@freeside.biz>2012-06-07 00:56:06 -0700
commit43a06151e47d2c59b833cbd8c26d97865ee850b6 (patch)
tree42c51d94e7fa265461b508d061562be204ccc2c1 /rt/share/html/Elements/SelectOwner
parent6587f6ba7d047ddc1686c080090afe7d53365bd4 (diff)
starting to work...
Diffstat (limited to 'rt/share/html/Elements/SelectOwner')
-rwxr-xr-xrt/share/html/Elements/SelectOwner76
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>