X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2Findex.html;h=bbf84c8b196fba81900af50bd9cc9f6a3294c622;hb=7322f2afedcc2f427e997d1535a503613a83f088;hp=d6e0b79b5187a86756c3ebfc7834b7b93eb314a5;hpb=85e677b86fc37c54e6de2b06340351a28f5a5916;p=freeside.git diff --git a/rt/share/html/index.html b/rt/share/html/index.html index d6e0b79b5..bbf84c8b1 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-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2016 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 => '/', + ); }