[Rt-commit] rt branch, 4.0/pass-default-for-date-fields, created. rt-4.0.8-195-g3658242

Jim Brandt jbrandt at bestpractical.com
Tue Dec 4 09:57:41 EST 2012


The branch, 4.0/pass-default-for-date-fields has been created
        at  3658242710d35ee783b5f36724ff12140a77cd64 (commit)

- Log -----------------------------------------------------------------
commit 80bdc4b41b82abd5f4538b30af9ee9f9de1df0c3
Author: Jim Brandt <jbrandt at bestpractical.com>
Date:   Thu Nov 29 15:01:39 2012 -0500

    Add tests showing date CF value is lost on add attachment submit

diff --git a/t/web/cf_date.t b/t/web/cf_date.t
index 4ea93e4..87731f1 100644
--- a/t/web/cf_date.t
+++ b/t/web/cf_date.t
@@ -2,7 +2,7 @@
 use strict;
 use warnings;
 
-use RT::Test tests => 35;
+use RT::Test tests => 43;
 
 my ( $baseurl, $m ) = RT::Test->started_ok;
 ok $m->login, 'logged in as root';
@@ -184,3 +184,44 @@ diag 'check invalid inputs';
     $m->content_contains('test cf date:', 'has no cf date field on the page' );
     $m->content_lacks('foodate', 'invalid dates not set' );
 }
+
+diag 'retain values when adding attachments';
+{
+    my ( $ticket, $id );
+
+    $m->submit_form(
+        form_name => "CreateTicketInQueue",
+        fields    => { Queue => 'General' },
+    );
+    $m->content_contains('Select date', 'has cf field' );
+
+    $m->submit_form_ok(
+        { form_name => "TicketCreate",
+          fields    => {
+              Subject        => 'test 2015-06-04',
+              Content        => 'test',
+        },},
+        'Create test ticket'
+    );
+
+    ok( ($id) = $m->content =~ /Ticket (\d+) created/, "Created ticket $id" );
+    $m->follow_link_ok( {text => 'Jumbo'} );
+    $m->title_like( qr/Jumbo/ );
+
+    $m->submit_form_ok(
+        { form_name => "TicketModifyAll",
+          fields    => {
+            "Object-RT::Ticket-$id-CustomField-$cfid-Values" => '2015-06-04',
+          },
+          button => 'AddMoreAttach',
+      },
+        'Create test ticket'
+    );
+
+    $m->title_like( qr/Jumbo/ );
+
+    $m->form_name("TicketModifyAll");
+    is($m->value("Object-RT::Ticket-$id-CustomField-$cfid-Values"),
+       "2015-06-04",
+       "Date value still on form" );
+}

commit 3658242710d35ee783b5f36724ff12140a77cd64
Author: Jim Brandt <jbrandt at bestpractical.com>
Date:   Thu Nov 29 11:02:33 2012 -0500

    Pass Default value to SelectDate
    
    The Default value is passed to EditCustomFieldDate and
    EditCustomFieldDateTime, but they don't pass it along to
    SelectDate. Without it, any value provided is lost when reloading
    the page but not submitting, like after adding an attachment.
    
    In SelectDate, Value was being defaulted with ||, but this
    incorrectly set it to undef when Value was the empty string
    and Default was undef.

diff --git a/share/html/Elements/EditCustomFieldDate b/share/html/Elements/EditCustomFieldDate
index c66640f..ceed2db 100644
--- a/share/html/Elements/EditCustomFieldDate
+++ b/share/html/Elements/EditCustomFieldDate
@@ -46,7 +46,7 @@
 %#
 %# END BPS TAGGED BLOCK }}}
 % my $name = $NamePrefix.$CustomField->Id.'-Values';
-<& /Elements/SelectDate, Name => "$name", current => 0, ShowTime => 0 &> (<%$DateObj->AsString(Time => 0)%>)
+<& /Elements/SelectDate, Name => "$name", current => 0, Default => $Default, ShowTime => 0 &> (<%$DateObj->AsString(Time => 0)%>)
 
 <%INIT>
 my $DateObj = RT::Date->new ( $session{'CurrentUser'} );
diff --git a/share/html/Elements/EditCustomFieldDateTime b/share/html/Elements/EditCustomFieldDateTime
index a558884..0e5ad8d 100644
--- a/share/html/Elements/EditCustomFieldDateTime
+++ b/share/html/Elements/EditCustomFieldDateTime
@@ -46,7 +46,7 @@
 %#
 %# END BPS TAGGED BLOCK }}}
 % my $name = $NamePrefix.$CustomField->Id.'-Values';
-<& /Elements/SelectDate, Name => "$name", current => 0 &> (<%$DateObj->AsString%>)
+<& /Elements/SelectDate, Name => "$name", current => 0, Default => $Default &> (<%$DateObj->AsString%>)
 
 <%INIT>
 my $DateObj = RT::Date->new ( $session{'CurrentUser'} );
diff --git a/share/html/Elements/SelectDate b/share/html/Elements/SelectDate
index 18b42ad..898dde4 100644
--- a/share/html/Elements/SelectDate
+++ b/share/html/Elements/SelectDate
@@ -57,7 +57,7 @@ unless ((defined $Default) or
                            $year+1900,$mon+1,$mday,                            
                            $hour,$min);   
 }
-$Value = $Value || $Default;
+$Value = $Default if defined $Default;
 
 unless ($Name) {
 	$Name = $menu_prefix. "_Date";

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


More information about the Rt-commit mailing list