summaryrefslogtreecommitdiff
path: root/rt/html/REST/1.0/search/ticket
diff options
context:
space:
mode:
Diffstat (limited to 'rt/html/REST/1.0/search/ticket')
-rw-r--r--rt/html/REST/1.0/search/ticket31
1 files changed, 24 insertions, 7 deletions
diff --git a/rt/html/REST/1.0/search/ticket b/rt/html/REST/1.0/search/ticket
index 0990fd6..3788393 100644
--- a/rt/html/REST/1.0/search/ticket
+++ b/rt/html/REST/1.0/search/ticket
@@ -2,7 +2,7 @@
%#
%# COPYRIGHT:
%#
-%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC
%# <jesse@bestpractical.com>
%#
%# (Except where explicitly superseded by other copyright notices)
@@ -22,7 +22,9 @@
%#
%# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+%# 02110-1301 or visit their web page on the internet at
+%# http://www.gnu.org/copyleft/gpl.html.
%#
%#
%# CONTRIBUTION SUBMISSION POLICY:
@@ -57,10 +59,10 @@ my $status = "200 Ok";
my $tickets = new RT::Tickets $session{CurrentUser};
# Parse and validate any field specifications.
-my $field = '[a-zA-Z][a-zA-Z0-9_-]*';
+my $field = '[a-zA-Z](?:[a-zA-Z0-9_-]|\s+)*';
my (%fields, @fields);
if ($fields) {
- $format = "l";
+ $format ||= "l";
unless ($fields =~ /^(?:$field,)*$field$/) {
$status = "400 Bad Request";
$output = "Invalid field specification: $fields";
@@ -115,14 +117,28 @@ my @output;
while (my $ticket = $tickets->Next) {
$n++;
+ my $id = $ticket->Id;
if ($format eq "i") {
- $output .= "ticket/" . $ticket->Id . "\n";
+ $output .= "ticket/" . $id . "\n";
}
elsif ($format eq "s") {
- $output .= $ticket->Id . ": ". $ticket->Subject . "\n";
+ if ($fields) {
+ my $result = $m->comp("/REST/1.0/Forms/ticket/default", id => $id, format => $format, fields => \%fields);
+ my ($notes, $order, $key_values, $errors) = @$result;
+ # If it's the first time through, add our header
+ if ($n == 1) {
+ $output .= join("\t",@$order)."\n";
+ }
+ # Cut off the annoying ticket/ before the id;
+ $key_values->{'id'} = $id;
+ $output .= join("\t", map {$key_values->{$_}} @$order)."\n";
+
+
+ } else {
+ $output .= $ticket->Id . ": ". $ticket->Subject . "\n";
+ }
}
else {
- my $id = $ticket->Id;
my $d = $m->comp("/REST/1.0/Forms/ticket/default", id => $id, format => $format, fields => \%fields);
my ($c, $o, $k, $e) = @$d;
push @output, [ $c, $o, $k ];
@@ -138,4 +154,5 @@ OUTPUT:
$m->out("RT/". $RT::VERSION . " " . $status ."\n\n");
$m->out($output );
+return();
</%INIT>