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

@ -95,13 +95,12 @@ sub definition {
label => $i18n->get("event number"),
hoverHelp => $i18n->get("event number help"),
},
startDate => {
tab => "properties",
fieldType => "dateTime",
defaultValue => $date->toDatabase,
label => $i18n->get("add/edit event start date"),
hoverHelp => $i18n->get("add/edit event start date help"),
},
startDate => {
noFormPost => 1,
fieldType => "hidden",
defaultValue => $date->toDatabase,
autoGenerate => 0,
},
duration => {
tab => "properties",
fieldType => "float",
@ -252,6 +251,9 @@ sub getEditForm {
my $self = shift;
my $form = $self->SUPER::getEditForm(@_);
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}) {
$form->getTab("meta")->DynamicField(
name => "eventmeta ".$field->{label},
@ -262,6 +264,14 @@ sub getEditForm {
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;
}
@ -400,7 +410,10 @@ sub processPropertiesFromFormPost {
$metadata{$field->{label}} = $form->process('eventmeta '.$field->{label}, $field->{dataType},
{ 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}) {
$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, {
title => $ticket->getTitle,
description => $description,
@ -1038,7 +1040,7 @@ className='WebGUI::Asset::Sku::EMSTicket' and state='published' and revisionDate
assetId => $ticket->getId,
eventNumber => $ticket->get('eventNumber'),
location => $ticket->get('location'),
startDate => $date->webguiDate("%W @ %H:%n%p"),
startDate => $date,
duration => $ticket->get('duration'),
});
last unless (scalar(@records) < $numberOfResults);