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/Admin/Users | |
parent | 6587f6ba7d047ddc1686c080090afe7d53365bd4 (diff) |
starting to work...
Diffstat (limited to 'rt/share/html/Admin/Users')
-rw-r--r-- | rt/share/html/Admin/Users/CustomFields.html | 9 | ||||
-rw-r--r-- | rt/share/html/Admin/Users/GnuPG.html | 9 | ||||
-rw-r--r-- | rt/share/html/Admin/Users/History.html | 11 | ||||
-rw-r--r-- | rt/share/html/Admin/Users/Memberships.html | 15 | ||||
-rwxr-xr-x | rt/share/html/Admin/Users/Modify.html | 66 | ||||
-rw-r--r-- | rt/share/html/Admin/Users/MyRT.html | 14 | ||||
-rwxr-xr-x | rt/share/html/Admin/Users/index.html | 94 |
7 files changed, 113 insertions, 105 deletions
diff --git a/rt/share/html/Admin/Users/CustomFields.html b/rt/share/html/Admin/Users/CustomFields.html index 82e8bbc76..bebb163eb 100644 --- a/rt/share/html/Admin/Users/CustomFields.html +++ b/rt/share/html/Admin/Users/CustomFields.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,12 +46,7 @@ %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> -<& /Admin/Elements/UserTabs, - id => $Object->id, - current_tab => "Admin/Users/CustomFields.html?$id=".$id, - current_subtab => "Admin/Users/CustomFields.html?id=".$id, - UserObj => $Object, - Title => $title +<& /Elements/Tabs &> <& /Admin/Elements/EditCustomFields, %ARGS, title => $title, Object => $Object, ObjectType => 'RT::User' &> diff --git a/rt/share/html/Admin/Users/GnuPG.html b/rt/share/html/Admin/Users/GnuPG.html index de1199340..90408e449 100644 --- a/rt/share/html/Admin/Users/GnuPG.html +++ b/rt/share/html/Admin/Users/GnuPG.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,12 +46,7 @@ %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> -<& /Admin/Elements/UserTabs, - id => $id, - UserObj => $UserObj, - current_tab => 'Admin/Users/GnuPG.html?id='. $id, - Title => $title, -&> +<& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &> diff --git a/rt/share/html/Admin/Users/History.html b/rt/share/html/Admin/Users/History.html index e8928c8d5..fb51038ee 100644 --- a/rt/share/html/Admin/Users/History.html +++ b/rt/share/html/Admin/Users/History.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,11 +46,7 @@ %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> -<& /Admin/Elements/UserTabs, - id => $id, - UserObj => $UserObj, - current_tab => $current_tab, - Title => $title &> +<& /Elements/Tabs &> <& /Ticket/Elements/ShowHistory, Ticket => $UserObj, @@ -58,8 +54,7 @@ &> <%INIT> -my $current_tab = 'Admin/Users/History.html?id='.$id; -my $UserObj = new RT::User($session{'CurrentUser'}); +my $UserObj = RT::User->new($session{'CurrentUser'}); $UserObj->Load($id) || Abort("Couldn't load user '$id'"); my $title = loc("History of the user [_1]", $UserObj->Name); </%INIT> diff --git a/rt/share/html/Admin/Users/Memberships.html b/rt/share/html/Admin/Users/Memberships.html index 5422e120e..443e189a9 100644 --- a/rt/share/html/Admin/Users/Memberships.html +++ b/rt/share/html/Admin/Users/Memberships.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,11 +46,7 @@ %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> -<& /Admin/Elements/UserTabs, - id => $id, - UserObj => $UserObj, - current_tab => $current_tab, - Title => $title &> +<& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &> @@ -63,12 +59,12 @@ OrderBy => 'Name', Order => 'ASC', %ARGS, - Rows => 0, + Rows => 20, DisplayFormat => "__CheckBox.{Delete}__,$Format", Format => $Format, Collection => $is_member, AllowSorting => 1, - PassArguments => [qw(Format Rows Order OrderBy id)], + PassArguments => [qw(Format Rows Page Order OrderBy id)], &> <h2><&|/l&>Groups the user is not member of (check box to add)</&></h2> @@ -76,7 +72,7 @@ <& /Elements/CollectionList, OrderBy => 'Name', Order => 'ASC', - Rows => 100, + Rows => 20, %ARGS, DisplayFormat => "__CheckBox.{Add}__,'__HasMemberRecursively.{$id}__/TITLE:Recursive',$Format", Format => $Format, @@ -94,7 +90,6 @@ my $UserObj = RT::User->new($session{'CurrentUser'}); $UserObj->Load( $id ) || Abort("Couldn't load user '$id'"); my $title = loc("Memberships of the user [_1]", $UserObj->Name); -my $current_tab = 'Admin/Users/Memberships.html?id='. $id; my @results; if ( $Update ) { diff --git a/rt/share/html/Admin/Users/Modify.html b/rt/share/html/Admin/Users/Modify.html index 28d594377..b14f936f4 100755 --- a/rt/share/html/Admin/Users/Modify.html +++ b/rt/share/html/Admin/Users/Modify.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,11 +46,7 @@ %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> -<& /Admin/Elements/UserTabs, - id => $id, - UserObj => $UserObj, - current_tab => $current_tab, - Title => $title &> +<& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &> @@ -70,37 +66,37 @@ <tr><td align="right"> <&|/l&>Username</&>: </td><td> -<input name="Name" value="<%$UserObj->Name||''%>" /> <strong><&|/l&>(required)</&></strong> +<input name="Name" value="<%$UserObj->Name||$Name||''%>" /> <strong><&|/l&>(required)</&></strong> </td></tr> <tr><td align="right"> <&|/l&>Email</&>: </td><td> -<input name="EmailAddress" value="<%$UserObj->EmailAddress||''%>" /> +<input name="EmailAddress" value="<%$UserObj->EmailAddress||$EmailAddress||''%>" /> </td></tr> <tr><td align="right"> <&|/l&>Real Name</&>: </td><td> -<input name="RealName" value="<%$UserObj->RealName||''%>" /> +<input name="RealName" value="<%$UserObj->RealName||$RealName||''%>" /> </td></tr> <tr><td align="right"> <&|/l&>Nickname</&>: </td><td> -<input name="NickName" value="<%$UserObj->NickName||''%>" /> +<input name="NickName" value="<%$UserObj->NickName||$NickName||''%>" /> </td></tr> <tr><td align="right"> <&|/l&>Unix login</&>: </td><td> -<input name="Gecos" value="<%$UserObj->Gecos||''%>" /> +<input name="Gecos" value="<%$UserObj->Gecos||$Gecos||''%>" /> </td></tr> <tr><td align="right"> <&|/l&>Language</&>: </td><td> -<& /Elements/SelectLang, Name => 'Lang', Default => $UserObj->Lang &> +<& /Elements/SelectLang, Name => 'Lang', Default => $UserObj->Lang||$Lang &> </td></tr> <tr><td align="right"> <&|/l&>Extra info</&>: </td><td> -<textarea name="FreeformContactInfo" cols="20" rows="5"><%$UserObj->FreeformContactInfo||''%></textarea> +<textarea name="FreeformContactInfo" cols="20" rows="5"><%$UserObj->FreeformContactInfo||$FreeformContactInfo||''%></textarea> </td></tr> </table> </&> @@ -134,39 +130,39 @@ <tr><td align="right"> <&|/l&>Organization</&>: </td><td> -<input name="Organization" value="<%$UserObj->Organization||''%>" /> +<input name="Organization" value="<%$UserObj->Organization||$Organization||''%>" /> </td></tr> <tr><td align="right"> <&|/l&>Address1</&>: </td><td> -<input name="Address1" value="<%$UserObj->Address1||''%>" /> +<input name="Address1" value="<%$UserObj->Address1||$Address1||''%>" /> </td></tr> <tr><td align="right"> <&|/l&>Address2</&>: </td><td> -<input name="Address2" value="<%$UserObj->Address2||''%>" /> +<input name="Address2" value="<%$UserObj->Address2||$Address2||''%>" /> </td></tr> <tr><td align="right"> <&|/l&>City</&>: </td><td> -<input name="City" value="<%$UserObj->City||''%>" size="14" /> +<input name="City" value="<%$UserObj->City||$City||''%>" size="14" /> </td></tr> <tr><td align="right"> <&|/l&>State</&>: </td><td> -<input name="State" value="<%$UserObj->State||''%>" size="3" /> +<input name="State" value="<%$UserObj->State||$State||''%>" size="3" /> </td></tr> <tr><td align="right"> <&|/l&>Zip</&>: </td><td> -<input name="Zip" value="<%$UserObj->Zip||''%>" size="9" /> +<input name="Zip" value="<%$UserObj->Zip||$Zip||''%>" size="9" /> </td></tr> <tr><td align="right"> <&|/l&>Country</&>: </td><td> -<input name="Country" value="<%$UserObj->Country||''%>" /> +<input name="Country" value="<%$UserObj->Country||$Country||''%>" /> </td></tr> </table> </&> @@ -176,22 +172,22 @@ <tr><td align="right"> <&|/l&>Residence</&>: </td><td> -<input name="HomePhone" value="<%$UserObj->HomePhone||''%>" size="13" /><br /> +<input name="HomePhone" value="<%$UserObj->HomePhone||$HomePhone||''%>" size="13" /><br /> </td></tr> <tr><td align="right"> <&|/l&>Work</&>: </td><td> -<input name="WorkPhone" value="<%$UserObj->WorkPhone||''%>" size="13" /><br /> +<input name="WorkPhone" value="<%$UserObj->WorkPhone||$WorkPhone||''%>" size="13" /><br /> </td></tr> <tr><td align="right"> <&|/l&>Mobile</&>: </td><td> -<input name="MobilePhone" value="<%$UserObj->MobilePhone||''%>" size="13" /><br /> +<input name="MobilePhone" value="<%$UserObj->MobilePhone||$MobilePhone||''%>" size="13" /><br /> </td></tr> <tr><td align="right"> <&|/l&>Pager</&>: </td><td> -<input name="PagerPhone" value="<%$UserObj->PagerPhone||''%>" size="13" /><br /> +<input name="PagerPhone" value="<%$UserObj->PagerPhone||$PagerPhone||''%>" size="13" /><br /> </td> </tr> </table> @@ -218,12 +214,12 @@ <tr> <td colspan="2"> <&| /Widgets/TitleBox, title => loc('Comments about this user') &> -<textarea class="comments" name="Comments" cols="80" rows="5" wrap="virtual"><%$UserObj->Comments||''%></textarea> +<textarea class="comments" name="Comments" cols="80" rows="5" wrap="virtual"><%$UserObj->Comments||$Comments||''%></textarea> </&> %if (!$Create && $UserObj->Privileged) { <br /> <&| /Widgets/TitleBox, title => loc('Signature') &> -<textarea class="signature" cols="80" rows="5" name="Signature" wrap="hard"><%$UserObj->Signature||''%></textarea> +<textarea class="signature" cols="80" rows="5" name="Signature" wrap="hard"><%$UserObj->Signature||$Signature||''%></textarea> </&> % } @@ -240,20 +236,16 @@ <%INIT> -my $current_tab; -my $UserObj = new RT::User($session{'CurrentUser'}); +my $UserObj = RT::User->new($session{'CurrentUser'}); my ($title, $PrivilegedChecked, $EnabledChecked, $Disabled, $result, @results); my ($val, $msg); if ($Create) { - $current_tab = 'Admin/Users/Modify.html?Create=1'; $title = loc("Create a new user"); } else { - $current_tab = 'Admin/Users/Modify.html?id='.$id if $id; - if ( defined $id && $id eq 'new') { ( $val, $msg ) = $UserObj->Create( Name => $Name, @@ -318,6 +310,7 @@ else { } +$m->callback( %ARGS, CallbackName => 'BeforeUpdate', User => $UserObj, ARGSRef => \%ARGS, Results => \@results ); # If we have a user to modify, lets try. @@ -354,7 +347,6 @@ if ($UserObj->Id && $id ne 'new') { } - # }}} } @@ -379,13 +371,15 @@ unless ( $UserObj->id && $UserObj->Disabled ) { $EnabledChecked = 'checked="checked"'; } -if (!$Create && $UserObj->Privileged()) { +if ((!$Create && $UserObj->Privileged()) or (!$UserObj->Id and $Privileged)) { $PrivilegedChecked = 'checked="checked"'; } -# set the id, so the the menu will have the right info, this needs to -# be done here to avoid creating and then modifying a user -$id = $UserObj->Id; +# This code does automatic redirection if any updates happen. +MaybeRedirectForResults( + Actions => \@results, + Arguments => { id => $UserObj->Id }, +) if $UserObj->Id; </%INIT> diff --git a/rt/share/html/Admin/Users/MyRT.html b/rt/share/html/Admin/Users/MyRT.html index 346a2d60c..0fcd63b60 100644 --- a/rt/share/html/Admin/Users/MyRT.html +++ b/rt/share/html/Admin/Users/MyRT.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,11 +46,7 @@ %# %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> -<& /Admin/Elements/UserTabs, - id => $id, - UserObj => $UserObj, - current_tab => $current_tab, - Title => $title &> +<& /Elements/Tabs &> <& /Widgets/SelectionBox:header, nojs => 1 &> @@ -72,9 +68,7 @@ <%init> my @actions; -my $current_tab; -$current_tab = 'Admin/Users/MyRT.html?id='.$id if $id; -my $UserObj = new RT::User($session{'CurrentUser'}); +my $UserObj = RT::User->new($session{'CurrentUser'}); $UserObj->Load($id) || Abort("Couldn't load user '" . ($id || '') . "'"); my $title = loc("RT at a glance for the user [_1]", $UserObj->Name); @@ -94,7 +88,7 @@ push @items, map {["component-$_", $_]} sort keys %allowed_components; my $sys = RT::System->new( RT::CurrentUser->new($UserObj) ); my @objs = ($sys); -push @objs, RT::SavedSearches->new( RT::CurrentUser->new( $UserObj ) )->_PrivacyObjects; +push @objs, RT::SavedSearch->new( RT::CurrentUser->new( $UserObj ) )->ObjectsForLoading; for my $object (@objs) { for ($m->comp("/Search/Elements/SearchesForObject", Object => $object)) { 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, |