X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FTicket%2FElements%2FShowRequestor;h=4fea9b9ab964728ccda54bd4ec2ddfa121cfcb63;hp=b5d7c7dcbf5469611988f2c9870a596e1c9f106b;hb=44dd00a3ff974a17999e86e64488e996edc71e3c;hpb=fc6209f398899f0211cfcedeb81a3cd65e04a941 diff --git a/rt/share/html/Ticket/Elements/ShowRequestor b/rt/share/html/Ticket/Elements/ShowRequestor index b5d7c7dcb..4fea9b9ab 100755 --- a/rt/share/html/Ticket/Elements/ShowRequestor +++ b/rt/share/html/Ticket/Elements/ShowRequestor @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -45,61 +45,145 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} -<%PERL> -# Unsure sane default -unless ( @$conditions ) { - foreach (RT::Queue->ActiveStatusArray()) { - push @$conditions, { cond => "Status = '$_'", name => loc($_) }; - } -} -my $rows = 10; -my $has_right_adminusers = $session{'CurrentUser'}->HasRight( - Object => $RT::System, Right => 'AdminUsers' -); -$has_right_adminusers &&= $session{'CurrentUser'}->HasRight( - Object => $RT::System, Right => 'ShowConfigTab' -); -my $people = $Ticket->Requestors->UserMembersObj; -while ( my $requestor = $people->Next ) { - next if $requestor->Privileged; - my $name = $m->scomp('/Elements/ShowUser', User => $requestor); - - my $tickets = RT::Tickets->new( $session{'CurrentUser'} ); - $tickets->FromSQL( "Requestor.id = ". $requestor->id ." AND (".join( " OR ", map $_->{cond}, @$conditions).")" ); - $tickets->RowsPerPage( $rows ); - $tickets->OrderBy( FIELD => 'Priority', ORDER => 'DESC' ); - +% if ($ShowTickets) { + +% } <&| /Widgets/TitleBox, - title_href => $has_right_adminusers? RT->Config->Get('WebPath')."/Admin/Users/Modify.html?id=".$requestor->id: undef, - title_raw => loc("More about [_1]", $name), + title_raw => loc("More about the requestors"), class => 'ticket-info-requestor' &> +
+ +% while ( my $requestor = $people->Next ) { +

<& /Elements/ShowUser, User => $requestor, Link => 0 &> + User Summary

+
+ %# Additional information about this user. Empty by default. % $m->callback( requestor => $requestor, %ARGS, CallbackName => 'AboutThisUser' ); +<& ShowRequestorExtraInfo, Requestor => $requestor &> + +% if ( $ShowComments ) { +
+ <&|/l&>Comments about this user: + <% ($requestor->Comments || loc("No comment entered about this user")) %> +
+% } -<&|/l&>Comments about this user:
-<% ($requestor->Comments || loc("No comment entered about this user")) %>
+% $m->callback( requestor => $requestor, %ARGS, CallbackName => 'AfterComments' ); + +% if ( $ShowTickets ) { +
+ +% $index = 1; +% for my $status (@$status_order) { +% if ( $status eq $DefaultTicketsTab ) { +
+ <& $TicketTemplate, Requestor => $requestor &> +% } else { + +% } +
+% } -<&|/l, $rows &>This user's [_1] highest priority tickets: -
    -%while (my $w=$tickets->Next) { -%my $uri = RT::URI->new( $session{'CurrentUser'} ); -%$uri->FromObject($w); -
  • <& /Elements/ShowLink, URI => $uri &>
  • -%} -
+% my $grouplimit = RT->Config->Get('MoreAboutRequestorGroupsLimit'); +% if ( $ShowGroups and defined $grouplimit ) { +
+ + <&|/l&>Groups this user belongs to + +% if ( $session{CurrentUser}->HasRight( Right => 'AdminUsers', Object => $RT::System ) && +% $session{CurrentUser}->HasRight( Right => 'ShowConfigTab', Object =>$RT::System ) ) { + [Config->Get('WebPath') . '/Admin/Users/Memberships.html?id=' . $requestor->id %> ><&|/l&>Edit] +% } + + <& /Elements/ShowMemberships, UserObj => $requestor, Limit => $grouplimit &> +
+% } -<&|/l&>Groups this user belongs to:
+%# end of individual requestor details
+
+% } +%# end of requestors loop -<& /Elements/ShowMemberships, UserObj => $requestor &> +% $m->callback( %ARGS, CallbackName => 'AfterRequestors' ); +
+<%INIT> +my $show_privileged = RT->Config->Get('ShowMoreAboutPrivilegedUsers'); -% } +my $people = $Ticket->Requestors->UserMembersObj; +$people->LimitToUnprivileged unless $show_privileged; + +my $count = $people->Count; +return unless $count; + +my $has_right_adminusers = $session{'CurrentUser'}->HasRight( + Object => $RT::System, Right => 'AdminUsers' +); +$has_right_adminusers &&= $session{'CurrentUser'}->HasRight( + Object => $RT::System, Right => 'ShowConfigTab' +); + +# Ticket list tabs +my $selected = -1; +$DefaultTicketsTab ||= RT->Config->Get('MoreAboutRequestorTicketList', $session{CurrentUser}) || 'Active'; +my $status_link_text = {Active => loc('Active Tickets'), + Inactive => loc('Inactive Tickets'), + All => loc('All Tickets')}; +my $status_order = [qw/Active Inactive All/]; +$m->callback( CallbackName => 'AddStatus', status_link_text => \$status_link_text, status_order => \$status_order ); + +$ShowTickets = 0 if $DefaultTicketsTab eq 'None'; + +my $TicketTemplate; +if ($ShowTickets) { + for (0 .. (@$status_order - 1)) { + if ( $status_order->[$_] eq $DefaultTicketsTab ) { + $selected = $_; + last; + } + } + + $TicketTemplate = "ShowRequestorTickets$DefaultTicketsTab"; + $TicketTemplate = "ShowRequestorTicketsActive" + unless RT::Interface::Web->ComponentPathIsSafe($TicketTemplate) + and $m->comp_exists($TicketTemplate); +} + <%ARGS> $Ticket=>undef -$DisplayPath => "/Ticket/Display.html" -$conditions => [] +$DefaultTicketsTab => undef +$ShowComments => 1 +$ShowTickets => 1 +$ShowGroups => 1 +$Title => 'More about [_1]'