X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FTicket%2FElements%2FShowRequestor;h=4fea9b9ab964728ccda54bd4ec2ddfa121cfcb63;hp=5a7ffc224f514b7da4a16136961c24b5233601ac;hb=44dd00a3ff974a17999e86e64488e996edc71e3c;hpb=b4b0c7e72d7eaee2fbfc7022022c9698323203dd diff --git a/rt/share/html/Ticket/Elements/ShowRequestor b/rt/share/html/Ticket/Elements/ShowRequestor index 5a7ffc224..4fea9b9ab 100755 --- a/rt/share/html/Ticket/Elements/ShowRequestor +++ b/rt/share/html/Ticket/Elements/ShowRequestor @@ -1,40 +1,40 @@ %# BEGIN BPS TAGGED BLOCK {{{ -%# +%# %# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC -%# -%# +%# +%# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC +%# +%# %# (Except where explicitly superseded by other copyright notices) -%# -%# +%# +%# %# LICENSE: -%# +%# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. -%# +%# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. -%# +%# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -%# -%# +%# +%# %# CONTRIBUTION SUBMISSION POLICY: -%# +%# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) -%# +%# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,63 +43,147 @@ %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# 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]'