if ($ARGS{'id'} eq 'new') {
# {{{ Create a new ticket
+ # Massage customer IDs into member links.
+ my @cust_uris = map {
+ /^(\d+)$/ && "freeside://freeside/cust_main/$1"
+ } split(' ', $ARGS{'new-Customer'});
+
+ $ARGS{'new-MemberOf'} =
+ join(' ', $ARGS{'new-MemberOf'}, @cust_uris);
+
my $Queue = new RT::Queue( $session{'CurrentUser'} );
$Queue->Load($ARGS{'Queue'});
unless ( $Queue->id ) {
push @Actions, ProcessTicketBasics( ARGSRef => \%ARGS, TicketObj => $TicketObj );
push @Actions, ProcessTicketLinks( ARGSRef => \%ARGS, TicketObj => $TicketObj );
push @Actions, ProcessTicketDates( ARGSRef => \%ARGS, TicketObj => $TicketObj );
- push @Actions, ProcessObjectCustomFieldUpdates(ARGSRef => \%ARGS, TicketObj => $TicketObj );
+ push @Actions, ProcessTicketCustomFieldUpdates(ARGSRef => \%ARGS, TicketObj => $TicketObj );
+ # If this fails due to required fields being empty, it will set
+ # notes('RedirectToBasics').
+ push @Actions, ProcessTicketStatus( ARGSRef => \%ARGS, TicketObj => $TicketObj );
- # XXX: we shouldn't block actions here if user has no right to see the ticket,
- # but we should allow him to see actions he has done
+ # XXX: we shouldn't block actions here if user has no right to see the
+ # ticket, but we should allow him to see actions he has done
unless ($TicketObj->CurrentUserHasRight('ShowTicket')) {
Abort("No permission to view ticket");
}
my $key = Digest::MD5::md5_hex( rand(1024) );
push @{ $session{"Actions"}->{$key} ||= [] }, @Actions;
$session{'i'}++;
- my $url = RT->Config->Get('WebURL') . "Ticket/Display.html?id=" . $TicketObj->id . "&results=" . $key;
+ my $url = RT->Config->Get('WebURL');
+ if ( $m->notes('RedirectToBasics') ) {
+ $url .= 'Ticket/Modify.html';
+ }
+ else {
+ $url .= 'Ticket/Display.html';
+ }
+ $url .= '?id=' . $TicketObj->id . "&results=" . $key;
$url .= '#' . $ARGS{Anchor} if $ARGS{Anchor};
RT::Interface::Web::Redirect($url);
}