%# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# 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 %# 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/transaction %# <%ARGS> $id $args => undef $format => undef $fields => undef <%INIT> my $trans = new RT::Transactions $session{CurrentUser}; my ($c, $o, $k, $e) = ("", [], {} , ""); chomp $args; my @arglist = split('/', $args); my $tid = $id; $trans->Limit(FIELD => 'Id', OPERATOR => '=', VALUE => $tid); if ($tid) { my @data; my $t = new RT::Transaction $session{CurrentUser}; $t->Load($tid); if ($format eq "l") { push @data, [ id => $t->Id ]; push @data, [ Ticket => $t->Ticket ] if (!%$fields || exists $fields->{lc 'Ticket'}); push @data, [ TimeTaken => $t->TimeTaken ] if (!%$fields || exists $fields->{lc 'TimeTaken'}); push @data, [ Type => $t->Type ] if (!%$fields || exists $fields->{lc 'Type'}); push @data, [ Field => $t->Field ] if (!%$fields || exists $fields->{lc 'Field'}); push @data, [ OldValue => $t->OldValue ] if (!%$fields || exists $fields->{lc 'OldValue'}); push @data, [ NewValue => $t->NewValue ] if (!%$fields || exists $fields->{lc 'NewValue'}); push @data, [ Data => $t->Data ] if (!%$fields || exists $fields->{lc 'Data'}); push @data, [ Description => $t->Description ] if (!%$fields || exists $fields->{lc 'Description'}); push @data, [ Content => $t->Content ] if (!%$fields || exists $fields->{lc 'Content'}); if (!%$fields || exists $fields->{lc 'Content'}) { my $creator = new RT::User $session{CurrentUser}; $creator->Load($t->Creator); push @data, [ Creator => $creator->Name ]; } push @data, [ Created => $t->Created ] if (!%$fields || exists $fields->{lc 'Created'}); if (!%$fields || exists $fields->{lc 'Attachments'}) { my $attachlist; my $attachments = $t->Attachments; while (my $a = $attachments->Next) { my $size = length($a->Content); if ($size > 1024) { $size = int($size/102.4)/10 . "k"; } else { $size .= "b"; } $attachlist .= "\n" . $a->Id.": ".($a->Filename || "untitled")." (".$size.")"; } push @data, [Attachments => $attachlist]; } } else { push @data, [ id => $t->Id ]; push @data, [ Description => $t->Description ]; } my %k = map {@$_} @data; $o = [ map {$_->[0]} @data ]; $k = \%k; } #else { # my (@data, $tids); # $format ||= "s"; # $format = "l" if (%$fields); # # while (my $t = $trans->Next) { # my $tid = $t->Id; # if ($format eq "l") { # $tids .= "," if $tids; # $tids .= $tid; # } else { # push @$o, $tid; # $k->{$tid} = $t->Description; # } # } #} return [ $c, $o, $k, $e ];