diff options
Diffstat (limited to 'rt/share/html/Admin/Users/index.html')
-rwxr-xr-x | rt/share/html/Admin/Users/index.html | 94 |
1 files changed, 67 insertions, 27 deletions
diff --git a/rt/share/html/Admin/Users/index.html b/rt/share/html/Admin/Users/index.html index 6561abf86..a1e3facd7 100755 --- a/rt/share/html/Admin/Users/index.html +++ b/rt/share/html/Admin/Users/index.html @@ -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) @@ -46,15 +46,51 @@ %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => loc('Select a user') &> -<& /Admin/Elements/UserTabs, current_tab => 'Admin/Users/', - current_subtab => 'Admin/Users/', - Title => loc('Select a user') &> - +<& /Elements/Tabs &> + <h1><% $caption %></h1> -<p><&|/l&>Select a user</&>:</p> + +<form method="post" action="<% RT->Config->Get('WebPath') %>/Admin/Users/index.html"> +% foreach my $field( qw(Format Rows Page Order OrderBy) ) { +% next unless defined $ARGS{ $field } && length $ARGS{ $field }; +<input type="hidden" name="<% $field %>" value="<% $ARGS{ $field } %>" /> +% } +<input type="hidden" name="UserField" value="Name" /> +<input type="hidden" name="UserOp" value="LIKE" /> +<&|/l&>Go to user</&> +<input type="text" name="UserString" value="" id="autocomplete-UserString" /> +<script type="text/javascript"> +jQuery(function(){ + jQuery("#autocomplete-UserString").autocomplete({ + source: "<% RT->Config->Get('WebPath')%>/Helpers/Autocomplete/Users?return=Name", + // Auto-submit once a user is chosen + select: function( event, ui ) { + jQuery(event.target).val(ui.item.value); + var form = jQuery(event.target).closest('form'); + form.find('input[name=UserOp]').val('='); + form.submit(); + } + }); +}); +</script> +</form> + +<form method="post" action="<% RT->Config->Get('WebPath') %>/Admin/Users/index.html"> +% foreach my $field( qw(Format Rows Page Order OrderBy) ) { +% next unless defined $ARGS{ $field } && length $ARGS{ $field }; +<input type="hidden" name="<% $field %>" value="<% $ARGS{ $field } %>" /> +% } +<&|/l&>Find all users whose</&> <& /Elements/SelectUsers, %ARGS, Fields => \@fields &><br /> +<input type="checkbox" class="checkbox" name="FindDisabledUsers" value="1" <% $FindDisabledUsers? 'checked="checked"': '' %> /> +<&|/l&>Include disabled users in search.</&> +<br /> +<div align="right"><input type="submit" class="button" value="<&|/l&>Go!</&>" /></div> +</form> + % unless ( $users->Count ) { <em><&|/l&>No users matching search criteria found.</&></em> % } else { +<p><&|/l&>Select a user</&>:</p> <& /Elements/CollectionList, OrderBy => 'Name', @@ -67,29 +103,8 @@ PassArguments => [qw(Format Rows Page Order OrderBy UserString UserOp UserField IdLike EmailLike FindDisabledUsers)], &> -% my $ids = join ',', map $_->id, @{ $users->ItemsArrayRef }; -% if ( $ids ) { -<div align="right"><em> -(<a href="<%RT->Config->Get('WebPath')%>/Download/Tabular/User/<% $ids %>/Users.tsv"> -<&|/l&>Download as a tab-delimited file</&> -</a>)</em></div> % } -<br /><br /> -% } - -<form method="post" action="<% RT->Config->Get('WebPath') %>/Admin/Users/index.html"> -% foreach my $field( qw(Format Rows Page Order OrderBy) ) { -% next unless defined $ARGS{ $field } && length $ARGS{ $field }; -<input type="hidden" name="<% $field %>" value="<% $ARGS{ $field } %>" /> -% } -<&|/l&>Find all users whose</&> <& /Elements/SelectUsers, %ARGS &><br /> -<input type="checkbox" class="checkbox" name="FindDisabledUsers" value="1" <% $FindDisabledUsers? 'checked="checked"': '' %> /> -<&|/l&>Include disabled users in search.</&> -<br /> -<div align="right"><input type="submit" class="button" value="<&|/l&>Go!</&>" /></div> -</form> - <%INIT> my $caption; my $users = RT::Users->new( $session{'CurrentUser'} ); @@ -111,6 +126,8 @@ if ( defined($UserString) && length $UserString ) { VALUE => $UserString, ); } + RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."Admin/Users/Modify.html?id=".$users->First->id) + if $users->Count == 1; } else { $caption = loc("Privileged users"); @@ -119,6 +136,29 @@ else { $Format ||= RT->Config->Get('AdminSearchResultFormat')->{'Users'}; +# Build up the list of fields to display for searching +my $i = 0; +my %sorted = map { $_ => $i++ } qw( + Name EmailAddress RealName Organization NickName WorkPhone HomePhone + MobilePhone PagerPhone Address1 Address2 City State Zip Country + Timezone Lang Gecos Comments +); + +my @attrs = sort { $sorted{$a} <=> $sorted{$b} } + grep { !/(?:^id$|ContactInfo|Encoding|^External|System|PGPKey|AuthToken|^Last|^Creat(?:ed|or)$|^Signature$)/ } + RT::User->ReadableAttributes; +my @fields; + +for my $name (@attrs) { + my $label = $m->comp( + '/Elements/ColumnMap', + Class => 'RT__User', + Name => $name, + Attr => 'title' + ); + + push @fields, [ $name, $label || $name ]; +} </%INIT> <%ARGS> $Format => undef, |