X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2Findex.html;h=acf6c129b69e4a4d2dc78b3ab17a442aacf4db51;hb=5b5eb87bf66f1fac003a13dc2db48e8970c5c986;hp=5b1edd662496626b3e623d6d26d4af74b3af9857;hpb=7588a4ac90a9b07c08a3107cd1107d773be1c991;p=freeside.git diff --git a/rt/share/html/index.html b/rt/share/html/index.html index 5b1edd662..acf6c129b 100755 --- a/rt/share/html/index.html +++ b/rt/share/html/index.html @@ -30,7 +30,7 @@ If you need commercial support, please contact us at sales@bestpractical.com. %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -95,33 +95,63 @@ if ( $ARGS{'QuickCreate'} ) { my $CFs = $QueueObj->TicketCustomFields(); - my $ValidCFs = $m->comp( + my ($ValidCFs, @msg) = $m->comp( '/Elements/ValidateCustomFields', - CustomFields => $CFs, - ARGSRef => \%ARGS + CustomFields => $CFs, + ARGSRef => \%ARGS, + ValidateUnsubmitted => 1, ); + my $created; if ( $ValidCFs && !$skip_create ) { my ($t, $msg) = CreateTicket( Queue => $ARGS{'Queue'}, Owner => $ARGS{'Owner'}, - Status => $ARGS{'Status'}||'new', + Status => $ARGS{'Status'}, # yes! it's Requestors, not Requestor Requestors => $ARGS{'Requestors'}, - From => $session{'CurrentUser'}->EmailAddress, Content => $ARGS{'Content'}, Subject => $ARGS{'Subject'}); - if ( $t && $t->Id && RT->Config->Get('DisplayAfterQuickCreate', $session{'CurrentUser'}) ) { - RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."Ticket/Display.html?id=". $t->Id); - } else { - push @results, $msg; + push @results, $msg; + + if ( $t && $t->Id ) { + $created = 1; + if ( RT->Config->Get('DisplayTicketAfterQuickCreate', $session{'CurrentUser'}) ) { + MaybeRedirectForResults( + Actions => \@results, + Path => '/Ticket/Display.html', + Arguments => { id => $t->Id }, + ); + } } } elsif ( !$ValidCFs ) { - push @results, "can't quickly create ticket in queue " . - $QueueObj->Name . ' because some custom fields need to be set, please go to normal ticket creation page to do that.'; + push @results, loc("Can't quickly create ticket in queue [_1] because custom fields are required. Please finish by using the normal ticket creation page.", $QueueObj->Name); + push @results, @msg; + + MaybeRedirectForResults( + Actions => \@results, + Path => "/Ticket/Create.html", + Arguments => { + (map { $_ => $ARGS{$_} } qw(Queue Owner Status Content Subject)), + Requestors => $ARGS{Requestors}, + # From is set above when CFs are OK, but not here since we're + # not calling CreateTicket() directly. The proper place to set + # a default for From, if desired in the future, is in + # CreateTicket() itself, or at least /Ticket/Display.html + # (which processes /Ticket/Create.html). From is rarely used + # overall. + }, + ); } + + $session{QuickCreate} = \%ARGS unless $created; + + MaybeRedirectForResults( + Actions => \@results, + Path => '/', + ); }