[Rt-commit] rt branch, create-action, updated. 48636fcad4d2973d3a5615147952cb1ed259b6e4
sartak at bestpractical.com
sartak at bestpractical.com
Wed Nov 4 16:38:52 EST 2009
The branch, create-action has been updated
via 48636fcad4d2973d3a5615147952cb1ed259b6e4 (commit)
from 30e3416b7fd3530f2b3e85809b6f01a3d5de210e (commit)
Summary of changes:
lib/RT/Interface/Web.pm | 185 -----------------------------------------------
1 files changed, 0 insertions(+), 185 deletions(-)
- Log -----------------------------------------------------------------
commit 48636fcad4d2973d3a5615147952cb1ed259b6e4
Author: Shawn M Moore <sartak at bestpractical.com>
Date: Wed Nov 4 16:38:44 2009 -0500
Kill create_ticket. Use the action!
diff --git a/lib/RT/Interface/Web.pm b/lib/RT/Interface/Web.pm
index c948e83..517a629 100755
--- a/lib/RT/Interface/Web.pm
+++ b/lib/RT/Interface/Web.pm
@@ -326,191 +326,6 @@ sub abort {
}
}
-
-
-=head2 create_ticket ARGS
-
-Create a new ticket, using Mason's %ARGS. returns @results.
-
-=cut
-
-sub create_ticket {
- my %ARGS = (@_);
-
- my (@Actions);
-
- my $Ticket = RT::Model::Ticket->new( current_user => Jifty->web->current_user );
-
- my $Queue = RT::Model::Queue->new( current_user => Jifty->web->current_user );
- unless ( $Queue->load( $ARGS{'queue'} ) ) {
- abort('Queue not found');
- }
-
- unless ( $Queue->current_user_has_right('CreateTicket') ) {
- abort('You have no permission to create tickets in that queue.');
- }
-
- my $due;
- if ( defined $ARGS{'Due'} and $ARGS{'Due'} =~ /\S/ ) {
- $due = RT::DateTime->new_from_string($ARGS{'Due'});
- }
- my $starts;
- if ( defined $ARGS{'Starts'} and $ARGS{'Starts'} =~ /\S/ ) {
- $starts = RT::DateTime->new_from_string($ARGS{'Starts'});
- }
-
- my $sigless = RT::Interface::Web::strip_content(
- content => $ARGS{content},
- content_type => $ARGS{content_type},
- strip_signature => 1,
- current_user => Jifty->web->current_user,
- );
-
- my $mime_obj = make_mime_entity(
- subject => $ARGS{'subject'},
- from => $ARGS{'from'},
- cc => $ARGS{'cc'},
- body => $sigless,
- type => $ARGS{'content_type'},
- );
-
- if ( $ARGS{'Attachments'} ) {
- my $rv = $mime_obj->make_multipart;
- Jifty->log->error("Couldn't make multipart message")
- if !$rv || $rv !~ /^(?:DONE|ALREADY)$/;
-
- foreach ( values %{ $ARGS{'Attachments'} } ) {
- unless ($_) {
- Jifty->log->error("Couldn't add empty attachemnt");
- next;
- }
- $mime_obj->add_part($_);
- }
- }
-
- foreach my $argument (qw(encrypt sign)) {
- $mime_obj->head->add( "X-RT-$argument" => $ARGS{$argument} )
- if defined $ARGS{$argument};
- }
-
- my %create_args = (
- type => $ARGS{'type'} || 'ticket',
- queue => $ARGS{'queue'},
- owner => $ARGS{'owner'},
-
- # note: name change
- requestor => $ARGS{'requestors'},
- cc => $ARGS{'cc'},
- admin_cc => $ARGS{'admin_cc'},
- initial_priority => $ARGS{'initial_priority'},
- final_priority => $ARGS{'final_priority'},
- time_left => $ARGS{'time_left'},
- time_estimated => $ARGS{'time_estimated'},
- time_worked => $ARGS{'time_worked'},
- subject => $ARGS{'subject'},
- status => $ARGS{'status'},
- due => $due ? $due->iso : undef,
- starts => $starts ? $starts->iso : undef,
- mime_obj => $mime_obj
- );
-
- my @temp_squelch;
- foreach my $type (qw(requestor cc admin_cc)) {
- push @temp_squelch, map $_->address, Email::Address->parse( $create_args{$type} )
- if grep $_ eq $type || $_ eq ( $type . 's' ),
- @{ $ARGS{'SkipNotification'} || [] };
-
- }
-
- if (@temp_squelch) {
- require RT::ScripAction::SendEmail;
- RT::ScripAction::SendEmail->squelch_mail_to( RT::ScripAction::SendEmail->squelch_mail_to, @temp_squelch );
- }
-
- if ( $ARGS{'attach_tickets'} ) {
- require RT::ScripAction::SendEmail;
- RT::ScripAction::SendEmail->attach_tickets(
- RT::ScripAction::SendEmail->attach_tickets, ref $ARGS{'AttachTickets'}
- ? @{ $ARGS{'attach_tickets'} }
- : ( $ARGS{'attach_tickets'} )
- );
- }
-
- foreach my $arg ( keys %ARGS ) {
- next if $arg =~ /-(?:magic)$/;
-
- if ( $arg =~ /^object-RT::Model::Transaction--CustomField-/ ) {
- $create_args{$arg} = $ARGS{$arg};
- }
-
- # object-RT::Model::Ticket--CustomField-3-values
- elsif ( $arg =~ /^object-RT::Model::Ticket--CustomField-(\d+)/ ) {
- my $cfid = $1;
-
- my $cf = RT::Model::CustomField->new( current_user => Jifty->web->current_user );
- $cf->load($cfid);
- unless ( $cf->id ) {
- Jifty->log->error( "Couldn't load custom field #" . $cfid );
- next;
- }
-
- if ( $arg =~ /-Upload$/ ) {
- $create_args{"custom_field-$cfid"} = _uploaded_file($arg);
- next;
- }
-
- my $type = $cf->type;
-
- my @values = ();
- if ( ref $ARGS{$arg} eq 'ARRAY' ) {
- @values = @{ $ARGS{$arg} };
- } elsif ( $type =~ /text/i ) {
- @values = ( $ARGS{$arg} );
- } else {
- @values = split /\r*\n/, $ARGS{$arg} || '';
- }
- @values = grep length, map {
- s/\r+\n/\n/g;
- s/^\s+//;
- s/\s+$//;
- $_;
- }
- grep defined, @values;
-
- $create_args{"custom_field-$cfid"} = \@values;
- }
- }
-
- # turn new link lists into arrays, and pass in the proper arguments
- my %map = (
- 'new-DependsOn' => 'DependsOn',
- 'DependsOn-new' => 'DependedOnBy',
- 'new-MemberOf' => 'Parents',
- 'MemberOf-new' => 'Children',
- 'new-RefersTo' => 'RefersTo',
- 'RefersTo-new' => 'ReferredToBy',
- );
- foreach my $key ( keys %map ) {
- next unless $ARGS{$key};
- $create_args{ $map{$key} } = [ grep $_, split ' ', $ARGS{$key} ];
-
- }
-
- my ( $id, $Trans, $ErrMsg ) = $Ticket->create(%create_args);
- unless ($id) {
- abort($ErrMsg);
- }
-
- push( @Actions, split( "\n", $ErrMsg ) );
- unless ( $Ticket->current_user_has_right('ShowTicket') ) {
- abort( "No permission to view newly Created ticket #" . $Ticket->id . "." );
- }
- return ( $Ticket, @Actions );
-
-}
-
-
-
=head2 load_ticket id
Takes a ticket id as its only variable. if it's handed an array, it takes
-----------------------------------------------------------------------
More information about the Rt-commit
mailing list