fixed: problem with Calendar in EMS "Ticket" tab, "Start" field

This commit is contained in:
Yung Han Khoe 2008-07-20 22:57:16 +00:00
parent 5d333e0ee7
commit fb4eff7c4a
4 changed files with 48 additions and 20 deletions

View file

@ -13,6 +13,7 @@
an alias to getValueFromForm instead of vice-versa. getValue is still the preferred an alias to getValueFromForm instead of vice-versa. getValue is still the preferred
method, getValueFromForm is still the deprecated method. method, getValueFromForm is still the deprecated method.
- fixed: Image Collateral Uploader in Rich Editor now works correctly - fixed: Image Collateral Uploader in Rich Editor now works correctly
- fixed: problem with Calendar in EMS "Ticket" tab, "Start" field
7.5.17 7.5.17
- fixed: Payment Methods Hover Help Incomplete - fixed: Payment Methods Hover Help Incomplete

View file

@ -95,13 +95,12 @@ sub definition {
label => $i18n->get("event number"), label => $i18n->get("event number"),
hoverHelp => $i18n->get("event number help"), hoverHelp => $i18n->get("event number help"),
}, },
startDate => { startDate => {
tab => "properties", noFormPost => 1,
fieldType => "dateTime", fieldType => "hidden",
defaultValue => $date->toDatabase, defaultValue => $date->toDatabase,
label => $i18n->get("add/edit event start date"), autoGenerate => 0,
hoverHelp => $i18n->get("add/edit event start date help"), },
},
duration => { duration => {
tab => "properties", tab => "properties",
fieldType => "float", fieldType => "float",
@ -252,6 +251,9 @@ sub getEditForm {
my $self = shift; my $self = shift;
my $form = $self->SUPER::getEditForm(@_); my $form = $self->SUPER::getEditForm(@_);
my $metadata = JSON->new->utf8->decode($self->get("eventMetaData") || '{}'); my $metadata = JSON->new->utf8->decode($self->get("eventMetaData") || '{}');
my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem");
my $date = WebGUI::DateTime->new($self->session, time());
foreach my $field (@{$self->getParent->getEventMetaFields}) { foreach my $field (@{$self->getParent->getEventMetaFields}) {
$form->getTab("meta")->DynamicField( $form->getTab("meta")->DynamicField(
name => "eventmeta ".$field->{label}, name => "eventmeta ".$field->{label},
@ -262,6 +264,14 @@ sub getEditForm {
label => $field->{label}, label => $field->{label},
); );
} }
$form->getTab("properties")->DateTime(
name => "startDate",
defaultValue => $date->toDatabase,
label => $i18n->get("add/edit event start date"),
hoverHelp => $i18n->get("add/edit event start date help"),
timeZone => $self->getParent->get("timezone"),
value => $self->get("startDate"),
);
return $form; return $form;
} }
@ -400,7 +410,10 @@ sub processPropertiesFromFormPost {
$metadata{$field->{label}} = $form->process('eventmeta '.$field->{label}, $field->{dataType}, $metadata{$field->{label}} = $form->process('eventmeta '.$field->{label}, $field->{dataType},
{ defaultValue => $field->{defaultValues}, options => $field->{possibleValues}}); { defaultValue => $field->{defaultValues}, options => $field->{possibleValues}});
} }
$self->update({eventMetaData => JSON->new->utf8->encode(\%metadata)}); my $date = WebGUI::DateTime->new($self->session, time())->toDatabase;
my $startDate = $form->process('startDate', "dateTime", $date,
{ defaultValue => $date, timeZone => $self->getParent->get("timezone")});
$self->update({eventMetaData => JSON->new->utf8->encode(\%metadata), startDate => $startDate});
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------

View file

@ -1026,7 +1026,9 @@ className='WebGUI::Asset::Sku::EMSTicket' and state='published' and revisionDate
foreach my $field (keys %{$meta}) { foreach my $field (keys %{$meta}) {
$description .= '<p><b>'.$field.'</b>: '.$meta->{$field}.'</p>' unless ($meta->{$field} eq ""); $description .= '<p><b>'.$field.'</b>: '.$meta->{$field}.'</p>' unless ($meta->{$field} eq "");
} }
my $date = WebGUI::DateTime->new($session, $ticket->get('startDate')); my $date = WebGUI::DateTime->new($session, mysql => $ticket->get('startDate'))
->set_time_zone($self->get("timezone"))
->webguiDate("%W %z %Z");
push(@records, { push(@records, {
title => $ticket->getTitle, title => $ticket->getTitle,
description => $description, description => $description,
@ -1038,7 +1040,7 @@ className='WebGUI::Asset::Sku::EMSTicket' and state='published' and revisionDate
assetId => $ticket->getId, assetId => $ticket->getId,
eventNumber => $ticket->get('eventNumber'), eventNumber => $ticket->get('eventNumber'),
location => $ticket->get('location'), location => $ticket->get('location'),
startDate => $date->webguiDate("%W @ %H:%n%p"), startDate => $date,
duration => $ticket->get('duration'), duration => $ticket->get('duration'),
}); });
last unless (scalar(@records) < $numberOfResults); last unless (scalar(@records) < $numberOfResults);

View file

@ -66,8 +66,13 @@ Defaults to 19. The displayed size of the box for the date to be typed in.
If no value is specified, this will be used. Defaults to today and now. If no value is specified, this will be used. Defaults to today and now.
If the defaultValue is a MySQL date/time string, this form control will return =head4 timeZone
MySQL date/time strings adjusted for the user's time zone.
The time zone in which MySQL date/time strings are entered. Values selected using
this form control will be converted from this time zone to UTC. This control will
return MySQL date/time strings adjusted for this time zone.
Defaults to the users time zone.
=cut =cut
@ -85,6 +90,9 @@ sub definition {
size=>{ size=>{
defaultValue=> 19 defaultValue=> 19
}, },
timeZone=>{
defaultValue=> $session->user->profileField("timeZone")
},
}); });
return $class->SUPER::definition($session, $definition); return $class->SUPER::definition($session, $definition);
} }
@ -143,8 +151,8 @@ sub getValue {
unless ($value =~ m/(?:\d{2}|\d{4})\D\d{2}\D\d{2}\D\d{2}\D\d{2}\D\d{2}/); unless ($value =~ m/(?:\d{2}|\d{4})\D\d{2}\D\d{2}\D\d{2}\D\d{2}\D\d{2}/);
# Fix time zone # Fix time zone
$value = WebGUI::DateTime->new(mysql => $value, time_zone => $self->session->user->profileField("timeZone")) $value = WebGUI::DateTime->new(mysql => $value, time_zone => $self->get("timeZone"))
->set_time_zone("UTC")->toMysql; ->set_time_zone("UTC")->toMysql;
return $value; return $value;
} }
@ -170,6 +178,10 @@ sub getValueAsHtml {
else { else {
# MySQL format # MySQL format
my $value = $self->getDefaultValue; my $value = $self->getDefaultValue;
# Fix time zone
$value = WebGUI::DateTime->new($self->session, mysql => $value)
->set_time_zone($self->get("timeZone"))
->strftime("%Y-%m-%d %H:%M:%S");
return $value; return $value;
} }
} }
@ -208,9 +220,9 @@ sub toHtml {
# MySQL format # MySQL format
$value = $self->getDefaultValue; $value = $self->getDefaultValue;
# Fix time zone # Fix time zone
$value = WebGUI::DateTime->new($value) $value = WebGUI::DateTime->new($self->session, mysql => $value)
->set_time_zone($self->session->user->profileField("timeZone")) ->set_time_zone($self->get("timeZone"))
->toMysql; ->strftime("%Y-%m-%d %H:%M:%S");
} }
$self->session->style->setLink($self->session->url->extras('yui/build/calendar/assets/skins/sam/calendar.css'), { rel=>"stylesheet", type=>"text/css", media=>"all" }); $self->session->style->setLink($self->session->url->extras('yui/build/calendar/assets/skins/sam/calendar.css'), { rel=>"stylesheet", type=>"text/css", media=>"all" });
$self->session->style->setScript($self->session->url->extras('yui/build/yahoo/yahoo-min.js'),{ type=>'text/javascript' }); $self->session->style->setScript($self->session->url->extras('yui/build/yahoo/yahoo-min.js'),{ type=>'text/javascript' });
@ -253,9 +265,9 @@ sub toHtmlAsHidden {
# MySQL format # MySQL format
$value = $self->getDefaultValue; $value = $self->getDefaultValue;
# Fix Time zone # Fix Time zone
$value = WebGUI::DateTime->new($value) $value = WebGUI::DateTime->new($self->session, mysql => $value)
->set_time_zone($self->session->user->profileField("timeZone")) ->set_time_zone($self->get("timeZone"))
->toMysql; ->strftime("%Y-%m-%d %H:%M:%S");
} }
return WebGUI::Form::Hidden->new( return WebGUI::Form::Hidden->new(