diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 5e85e7fc6..a969f0e2b 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -6,6 +6,7 @@ - fix: CS post title form field sized too large - fix: asset manager doesn't obey ui levels - fix: pagination broken on SQL Reports + - fix: calendar events are always given start/end times 7.4.3 - Data Forms set reply to to the same as the from field diff --git a/lib/WebGUI/Asset/Event.pm b/lib/WebGUI/Asset/Event.pm index ad0fac228..6be7eeeef 100644 --- a/lib/WebGUI/Asset/Event.pm +++ b/lib/WebGUI/Asset/Event.pm @@ -77,11 +77,13 @@ sub definition { }, 'startTime' => { fieldType => "TimeField", - defaultValue => $dt->toMysqlTime, + defaultValue => undef, + format => 'mysql', }, 'endTime' => { fieldType => "TimeField", - defaultValue => $dt->toMysqlTime, + defaultValue => undef, + format => 'mysql', }, 'recurId' => { @@ -1425,9 +1427,9 @@ sub processPropertiesFromFormPost { # Fix times according to input (allday, timezone) # All day events have no time if ($form->param("allday")) { - $self->update({ - startTime => undef, - endTime => undef, + $self->update({ + startTime => '', + endTime => '', }); } # Non-allday events need timezone conversion @@ -1660,7 +1662,7 @@ Wrap update so that isHidden is always set to be a 1. sub update { my $self = shift; - my $properties = shift; + my $properties = shift; $properties->{isHidden} = 1; return $self->SUPER::update($properties); } diff --git a/lib/WebGUI/Form/TimeField.pm b/lib/WebGUI/Form/TimeField.pm index 83bfcf1e9..f8aee2489 100644 --- a/lib/WebGUI/Form/TimeField.pm +++ b/lib/WebGUI/Form/TimeField.pm @@ -87,7 +87,10 @@ sub definition { size=>{ defaultValue=>8 }, - profileEnabled=>{ + format => { + defaultValue => undef, + }. + profileEnabled=>{ defaultValue=>1 }, dbDataType => { @@ -118,10 +121,11 @@ sub getValueFromPost { if (@_) { my $value = shift; - if (!$self->get("defaultValue") + if ($self->get('format') ne 'mysql' && ( + !$self->get("defaultValue") || $self->get("defaultValue") =~ m/^\d+$/ || !$value - || $value =~ m/^\d+$/) { + || $value =~ m/^\d+$/)) { return $self->session->datetime->timeToSeconds($value)-($self->session->user->profileField("timeOffset")*3600); } elsif ($value =~ /^\d{2}\D\d{2}(\D\d{2})?$/) {