X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Flib%2FRT%2FGraph%2FTickets.pm;h=477a5d077b6614989f8a299033db8d9201880385;hp=77a0ce5c25244362b6ff7b62a56485bd1167a763;hb=e9e0cf0989259b94d9758eceff448666a2e5a5cc;hpb=b4b0c7e72d7eaee2fbfc7022022c9698323203dd diff --git a/rt/lib/RT/Graph/Tickets.pm b/rt/lib/RT/Graph/Tickets.pm index 77a0ce5c2..477a5d077 100644 --- a/rt/lib/RT/Graph/Tickets.pm +++ b/rt/lib/RT/Graph/Tickets.pm @@ -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-2014 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,7 +43,7 @@ # 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 }}} package RT::Graph::Tickets; @@ -58,10 +58,6 @@ RT::Graph::Tickets - view relations between tickets as graphs =cut unless ($RT::DisableGraphViz) { - require IPC::Run; - IPC::Run->import; - require IPC::Run::SafeHandles; - IPC::Run::SafeHandles->import; require GraphViz; GraphViz->import; } @@ -104,7 +100,7 @@ EOT sub gv_escape($) { my $value = shift; - $value =~ s{(?=")}{\\}g; + $value =~ s{(?=["\\])}{\\}g; return $value; } @@ -233,7 +229,7 @@ sub AddTicket { my @fields = $self->_PropertiesToFields( %args ); if ( @fields ) { unshift @fields, $args{'Ticket'}->id; - my $label = join ' | ', map { s/(?=[{}|])/\\/g; $_ } @fields; + my $label = join ' | ', map { s/(?=[{}|><])/\\/g; $_ } @fields; $label = "{ $label }" if ($args{'Direction'} || 'TB') =~ /^(?:TB|BT)$/; $node_style{'label'} = gv_escape( $label ); $node_style{'shape'} = 'record'; @@ -282,6 +278,14 @@ sub TicketLinks { ShowLinkDescriptions => 0, @_ ); + + my %valid_links = map { $_ => 1 } + qw(Members MemberOf RefersTo ReferredToBy DependsOn DependedOnBy); + + # Validate our link types + $args{ShowLinks} = [ grep { $valid_links{$_} } @{$args{ShowLinks}} ]; + $args{LeadingLink} = 'Members' unless $valid_links{ $args{LeadingLink} }; + unless ( $args{'Graph'} ) { $args{'Graph'} = GraphViz->new( name => 'ticket_links_'. $args{'Ticket'}->id, @@ -345,14 +349,6 @@ sub TicketLinks { return $args{'Graph'}; } -eval "require RT::Graph::Tickets_Vendor"; -if ($@ && $@ !~ qr{^Can't locate RT/Graph/Tickets_Vendor.pm}) { - die $@; -}; - -eval "require RT::Graph::Tickets_Local"; -if ($@ && $@ !~ qr{^Can't locate RT/Graph/Tickets_Local.pm}) { - die $@; -}; +RT::Base->_ImportOverlays(); 1;