diff options
Diffstat (limited to 'rt/html/REST/1.0/Forms/ticket/links')
-rw-r--r-- | rt/html/REST/1.0/Forms/ticket/links | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/rt/html/REST/1.0/Forms/ticket/links b/rt/html/REST/1.0/Forms/ticket/links deleted file mode 100644 index 12e1b1f..0000000 --- a/rt/html/REST/1.0/Forms/ticket/links +++ /dev/null @@ -1,172 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC -%# <jesse@bestpractical.com> -%# -%# (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 -%# 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 }}} -%# REST/1.0/Forms/ticket/links -%# -<%ARGS> -$id -$format => 's' -$changes => undef -</%ARGS> -<%INIT> -my @data; -my $ticket = new RT::Ticket $session{CurrentUser}; - -$ticket->Load($id); -if (!$ticket->Id) { - return [ "# Ticket $id does not exist.", [], {}, 1 ]; -} - -my ($c, $o, $k, $e) = ("", [], {}, 0); -my @fields = qw(DependsOn DependedOnBy RefersTo ReferredToBy Members MemberOf); -my %fields = map { lc $_ => $_ } @fields; - -my %lfields = ( - Members => { Type => 'MemberOf', Mode => 'Base' }, - ReferredToBy => { Type => 'RefersTo', Mode => 'Base' }, - DependedOnBy => { Type => 'DependsOn', Mode => 'Base' }, - MemberOf => { Type => 'MemberOf', Mode => 'Target' }, - RefersTo => { Type => 'RefersTo', Mode => 'Target' }, - DependsOn => { Type => 'DependsOn', Mode => 'Target' }, -); - -if ($changes) { - my ($get, $set, $key, $val, $n, $s); - my %data = %$changes; - my @comments; - - foreach $key (keys %data) { - $val = $data{$key}; - $key = lc $key; - $n = 1; - - if (exists $fields{$key}) { - $key = $fields{$key}; - - my %old; - my $field = $lfields{$key}->{Mode}; - while (my $link = $ticket->$key->Next) { - $old{$link->$field} = 1; - } - - my %new; - foreach my $nkey (@{vsplit($val)}) { - if ($nkey =~ /^\d+$/) { - my $uri = new RT::URI $session{CurrentUser}; - my $tick = new RT::Ticket $session{CurrentUser}; - $tick->Load($nkey); - if ($tick->Id) { - $nkey = $uri->FromObject($tick); - } - else { - $n = 0; - $s = "Ticket $nkey does not exist."; - goto SET; - } - } - $new{$nkey} = 1; - } - - foreach my $u (keys %old) { - if (exists $new{$u}) { - delete $new{$u}; - } - else { - my $type = $lfields{$key}->{Type}; - my $mode = $lfields{$key}->{Mode}; - ($n, $s) = $ticket->DeleteLink(Type => $type, $mode => $u); - goto SET; - } - } - foreach my $u (keys %new) { - my $type = $lfields{$key}->{Type}; - my $mode = $lfields{$key}->{Mode}; - ($n, $s) = $ticket->AddLink(Type => $type, $mode => $u); - goto SET; - } - } - elsif ($key ne 'id' && $key ne 'type') { - $n = 0; - $s = "Unknown field: $key"; - } - - SET: - if ($n == 0) { - $e = 1; - push @comments, "# $key: $s"; - unless (@$o) { - @$o = ("id", @fields); - %$k = %data; - } - } - } - - push(@comments, "# Links for ticket $id updated.") unless @comments; - $c = join("\n", @comments) if @comments; -} -else { - my @data; - - push @data, [ id => "ticket/".$ticket->Id."/links" ]; - foreach my $key (@fields) { - my @val; - - my $field = $lfields{$key}->{Mode}; - while (my $link = $ticket->$key->Next) { - push @val, $link->$field; - } - push(@val, "") if (@val == 0 && $format eq 'l'); - push @data, [ $key => [ @val ] ] if @val; - } - - my %k = map {@$_} @data; - $o = [ map {$_->[0]} @data ]; - $k = \%k; -} - -return [ $c, $o, $k, $e ]; -</%INIT> |