X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2Findex.html;h=e61f14619bb8bf0642585e64ce5e0cf8a0ef94c4;hp=d6e0b79b5187a86756c3ebfc7834b7b93eb314a5;hb=187086c479a09629b7d180eec513fb7657f4e291;hpb=85e677b86fc37c54e6de2b06340351a28f5a5916 diff --git a/rt/share/html/index.html b/rt/share/html/index.html index d6e0b79b5..e61f14619 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-2018 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -90,38 +90,73 @@ $m->callback( ARGSRef => \%ARGS, results => \@results, CallbackName => 'Initial' skip_create => \$skip_create ); if ( $ARGS{'QuickCreate'} ) { + + ProcessAttachments(ARGSRef => \%ARGS); + my $QueueObj = RT::Queue->new($session{'CurrentUser'}); $QueueObj->Load($ARGS{Queue}) or Abort(loc("Queue could not be loaded.")); 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', - # 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; + Queue => $ARGS{'Queue'}, + Owner => $ARGS{'Owner'}, + Status => $ARGS{'Status'}, + # yes! it's Requestors, not Requestor + Requestors => $ARGS{'Requestors'}, + Content => $ARGS{'Content'}, + Subject => $ARGS{'Subject'}, + Token => $ARGS{'Token'}, + ); + 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 => '/', + ); }