X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=rt%2Flib%2FRT%2FLink_Overlay.pm;h=3eb0355d13bfa64a030f05dedd2f80265c9ddbac;hb=962240fd1b1e43bba505e0d3ba0f6afdae304dbc;hp=1c02619df3429ec34b2da5c60f2ab8c9648c0ca6;hpb=2041a9143fac20b79ead4a1ae01224dedf5b27c2;p=freeside.git diff --git a/rt/lib/RT/Link_Overlay.pm b/rt/lib/RT/Link_Overlay.pm index 1c02619df..3eb0355d1 100644 --- a/rt/lib/RT/Link_Overlay.pm +++ b/rt/lib/RT/Link_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # -# Copyright (c) 1996-2003 Jesse Vincent +# COPYRIGHT: # -# (Except where explictly superceded by other copyright notices) +# This software is Copyright (c) 1996-2009 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 @@ -14,13 +20,32 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # -# Unless otherwise specified, all modifications, corrections or -# extensions to this work which alter its source code become the -# property of Best Practical Solutions, LLC when submitted for -# inclusion in the work. +# 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.) # -# END LICENSE BLOCK +# 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 +# you are the copyright holder for those contributions and you grant +# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, +# 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 }}} + =head1 NAME RT::Link - an RT Link object @@ -37,22 +62,11 @@ should only be accessed through exported APIs in Ticket other similar objects. =head1 METHODS -=begin testing - - -use RT::Link; -my $link = RT::Link->new($RT::SystemUser); +=cut -ok (ref $link); -ok (UNIVERSAL::isa($link, 'RT::Link')); -ok (UNIVERSAL::isa($link, 'RT::Base')); -ok (UNIVERSAL::isa($link, 'RT::Record')); -ok (UNIVERSAL::isa($link, 'DBIx::SearchBuilder::Record')); - -=end testing -=cut +package RT::Link; use strict; no warnings qw(redefine); @@ -81,27 +95,31 @@ sub Create { my $base = RT::URI->new( $self->CurrentUser ); $base->FromURI( $args{'Base'} ); - unless ( $base->Resolver and $base->Scheme ) { - $RT::Logger->warning( "$self couldn't resolve base:'" - . $args{'Base'} . " - " - . "' into a URI\n" ); + unless ( $base->Resolver && $base->Scheme ) { + my $msg = $self->loc("Couldn't resolve base '[_1]' into a URI.", + $args{'Base'}); + $RT::Logger->warning( "$self $msg" ); - #use Data::Dumper; - #$RT::Logger->warning(scalar Dumper $base); - return (undef); + if (wantarray) { + return(undef, $msg); + } else { + return (undef); + } } my $target = RT::URI->new( $self->CurrentUser ); $target->FromURI( $args{'Target'} ); unless ( $target->Resolver ) { - $RT::Logger->warning( "$self couldn't resolve target:'" - . $args{'Target'} . " - " - . "' into a URI\n" ); - - #use Data::Dumper; - #$RT::Logger->warning(scalar Dumper $target); - return (undef); + my $msg = $self->loc("Couldn't resolve target '[_1]' into a URI.", + $args{'Target'}); + $RT::Logger->warning( "$self $msg" ); + + if (wantarray) { + return(undef, $msg); + } else { + return (undef); + } } my $base_id = 0; @@ -111,18 +129,20 @@ sub Create { if ( $base->IsLocal ) { - unless (UNIVERSAL::can($base->Object, 'Id')) { + my $object = $base->Object; + unless (UNIVERSAL::can($object, 'Id')) { return (undef, $self->loc("[_1] appears to be a local object, but can't be found in the database", $args{'Base'})); } - $base_id = $base->Object->Id; + $base_id = $object->Id if UNIVERSAL::isa($object, 'RT::Ticket'); } if ( $target->IsLocal ) { - unless (UNIVERSAL::can($target->Object, 'Id')) { + my $object = $target->Object; + unless (UNIVERSAL::can($object, 'Id')) { return (undef, $self->loc("[_1] appears to be a local object, but can't be found in the database", $args{'Target'})); } - $target_id = $target->Object->Id; + $target_id = $object->Id if UNIVERSAL::isa($object, 'RT::Ticket'); } # {{{ We don't want references to ourself @@ -238,8 +258,8 @@ sub TargetURI { =cut sub TargetObj { - my $self = shift; - return $self->TargetURI->Object; + my $self = shift; + return $self->TargetURI->Object; } # }}} @@ -271,89 +291,5 @@ sub BaseObj { } # }}} - - -# Static methods: - -# {{{ sub BaseIsLocal - -=head2 BaseIsLocal - -Returns true if the base of this link is a local ticket - -=cut - -sub BaseIsLocal { - my $self = shift; - $RT::Logger->crit("Link::BaseIsLocal is deprecated in favor of Link->BaseURI->IsLocal"); - return $self->BaseURI->IsLocal; -} - -# }}} - -# {{{ sub TargetIsLocal - -=head2 TargetIsLocal - -Returns true if the target of this link is a local ticket - -=cut - -sub TargetIsLocal { - my $self = shift; - $RT::Logger->crit("Link::BaseIsLocal is deprecated in favor of Link->BaseURI->IsLocal"); - return $self->TargetURI->IsLocal; -} - -# }}} - - -# {{{ sub BaseAsHREF - -=head2 BaseAsHREF - -Returns an HTTP url to access the base of this link - -=cut - -sub BaseAsHREF { - my $self = shift; - $RT::Logger->crit("Link::BaseAsHREF deprecated in favor of ->BaseURI->AsHREF"); - return $self->BaseURI->HREF; -} -# }}} - -# {{{ sub TargetAsHREF - -=head2 TargetAsHREF - -return an HTTP url to access the target of this link - -=cut - -sub TargetAsHREF { - my $self = shift; - $RT::Logger->crit("Link::TargetAsHREF deprecated in favor of ->TargetURI->AsHREF"); - return $self->TargetURI->HREF; -} -# }}} - -# {{{ sub AsHREF - Converts Link URIs to HTTP URLs - -=head2 URI - -Takes a URI and returns an http: url to access that object. - -=cut - - -sub AsHREF { - my $self=shift; - - $RT::Logger->crit("AsHREF is gone. look at URI::HREF to figure out what to do with \$URI"); -} - -# }}} - 1;