[Rt-commit] rt branch, 4.0/quick-create-retain-values-on-failure, created. rt-4.0.20-45-gcd52b35

? sunnavy sunnavy at bestpractical.com
Mon Jul 7 12:48:43 EDT 2014


The branch, 4.0/quick-create-retain-values-on-failure has been created
        at  cd52b35ea0551f7345127134a199d08874052df7 (commit)

- Log -----------------------------------------------------------------
commit cd52b35ea0551f7345127134a199d08874052df7
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Mon May 12 21:47:21 2014 +0800

    retain form values for QuickCreate when it fails to create
    
    so users can try again more easily.
    
    see also #14136

diff --git a/share/html/Elements/QuickCreate b/share/html/Elements/QuickCreate
index 425694c..cebd25e 100644
--- a/share/html/Elements/QuickCreate
+++ b/share/html/Elements/QuickCreate
@@ -55,27 +55,31 @@
 <input type="hidden" class="hidden" name="QuickCreate" value="1" />
 <table>
 <tr class="input-row"><td class="label"><&|/l&>Subject</&>:</td>
-    <td colspan="3" class="value"><input type="text" size="50" name="Subject" /></td>
+    <td colspan="3" class="value"><input type="text" size="50" name="Subject" value="<% $args->{Subject} || '' %>" /></td>
     </tr><tr class="input-row">
-<td class="label"><&|/l&>Queue</&>:</td><td class="value"><& /Elements/SelectNewTicketQueue, Name => 'Queue' &>
+<td class="label"><&|/l&>Queue</&>:</td><td class="value"><& /Elements/SelectNewTicketQueue, Name => 'Queue', Default => $args->{Queue} &>
 </td>
 <td class="label"><&|/l&>Owner</&>:</td><td class="value">
 <select type="select" name="Owner">  
-<option value="<%$session{'CurrentUser'}->id%>" selected="selected"><&|/l&>Me</&></option>
-<option value="<%RT->Nobody->id%>"><%loc('Nobody')%></option>
+% my $default_owner = $args->{Owner} || $session{'CurrentUser'}->id;
+<option value="<%$session{'CurrentUser'}->id%>" <% $default_owner == $session{'CurrentUser'}->id ? 'selected="selected"' : '' |n %>><&|/l&>Me</&></option>
+<option value="<%RT->Nobody->id%>" <% $default_owner == RT->Nobody->id ? 'selected="selected"' : '' |n %>><%loc('Nobody')%></option>
 </select>
 </td>
 </tr>
 <tr class="input-row">
     <td class="label"><&|/l&>Requestors</&>:</td>
-    <td colspan="3" class="value"><& /Elements/EmailInput, Name => 'Requestors', Size => '40', Default => $ARGS{Requestors} || $session{CurrentUser}->EmailAddress &></td>
+    <td colspan="3" class="value"><& /Elements/EmailInput, Name => 'Requestors', Size => '40', Default => $args->{Requestors} || $session{CurrentUser}->EmailAddress &></td>
 </tr>
 <tr class="input-row">
 <td class="labeltop"><&|/l&>Content</&>:</td>
-<td colspan="3" class="value"><textarea name="Content" cols="50" rows="3"></textarea></td></tr>
+<td colspan="3" class="value"><textarea name="Content" cols="50" rows="3"><% $args->{Content} || ''%></textarea></td></tr>
 </table>
 <& /Elements/Submit, Label => loc('Create') &>
 </form>
 </&>
 </div>
 
+<%INIT>
+my $args = delete $session{QuickCreate} || {};
+</%INIT>
diff --git a/share/html/index.html b/share/html/index.html
index 45ebc62..04a27ab 100644
--- a/share/html/index.html
+++ b/share/html/index.html
@@ -102,6 +102,7 @@ if ( $ARGS{'QuickCreate'} ) {
     );
 
 
+    my $created;
     if ( $ValidCFs && !$skip_create ) {
         my ($t, $msg) = CreateTicket( 
                         Queue => $ARGS{'Queue'},
@@ -114,12 +115,15 @@ if ( $ARGS{'QuickCreate'} ) {
                         Subject => $ARGS{'Subject'});
         push @results, $msg;
 
-        if ( $t && $t->Id && RT->Config->Get('DisplayTicketAfterQuickCreate', $session{'CurrentUser'}) ) {
-            MaybeRedirectForResults(
-                Actions   => \@results,
-                Path      => '/Ticket/Display.html',
-                Arguments => { id => $t->Id },
-            );
+        if ( $t && $t->Id ) {
+            $created = 1;
+            if ( RT->Config->Get('DisplayTicketAfterQuickCreate', $session{'CurrentUser'}) ) {
+                MaybeRedirectForResults(
+                    Actions   => \@results,
+                    Path      => '/Ticket/Display.html',
+                    Arguments => { id => $t->Id },
+                );
+            }
         }
 
     }
@@ -127,6 +131,9 @@ if ( $ARGS{'QuickCreate'} ) {
         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.';
     }
+
+    $session{QuickCreate} = \%ARGS unless $created;
+
     MaybeRedirectForResults(
         Actions   => \@results,
         Path      => '/',

-----------------------------------------------------------------------


More information about the rt-commit mailing list