fixed: problem with Calendar in EMS "Ticket" tab, "Start" field
This commit is contained in:
parent
5d333e0ee7
commit
fb4eff7c4a
4 changed files with 48 additions and 20 deletions
|
|
@ -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});
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 the defaultValue is a MySQL date/time string, this form control will return
|
||||
MySQL date/time strings adjusted for the user's time zone.
|
||||
=head4 timeZone
|
||||
|
||||
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
|
||||
|
||||
|
|
@ -85,6 +90,9 @@ sub definition {
|
|||
size=>{
|
||||
defaultValue=> 19
|
||||
},
|
||||
timeZone=>{
|
||||
defaultValue=> $session->user->profileField("timeZone")
|
||||
},
|
||||
});
|
||||
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}/);
|
||||
|
||||
# Fix time zone
|
||||
$value = WebGUI::DateTime->new(mysql => $value, time_zone => $self->session->user->profileField("timeZone"))
|
||||
->set_time_zone("UTC")->toMysql;
|
||||
$value = WebGUI::DateTime->new(mysql => $value, time_zone => $self->get("timeZone"))
|
||||
->set_time_zone("UTC")->toMysql;
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
|
@ -170,6 +178,10 @@ sub getValueAsHtml {
|
|||
else {
|
||||
# MySQL format
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
@ -208,9 +220,9 @@ sub toHtml {
|
|||
# MySQL format
|
||||
$value = $self->getDefaultValue;
|
||||
# Fix time zone
|
||||
$value = WebGUI::DateTime->new($value)
|
||||
->set_time_zone($self->session->user->profileField("timeZone"))
|
||||
->toMysql;
|
||||
$value = WebGUI::DateTime->new($self->session, mysql => $value)
|
||||
->set_time_zone($self->get("timeZone"))
|
||||
->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->setScript($self->session->url->extras('yui/build/yahoo/yahoo-min.js'),{ type=>'text/javascript' });
|
||||
|
|
@ -253,9 +265,9 @@ sub toHtmlAsHidden {
|
|||
# MySQL format
|
||||
$value = $self->getDefaultValue;
|
||||
# Fix Time zone
|
||||
$value = WebGUI::DateTime->new($value)
|
||||
->set_time_zone($self->session->user->profileField("timeZone"))
|
||||
->toMysql;
|
||||
$value = WebGUI::DateTime->new($self->session, mysql => $value)
|
||||
->set_time_zone($self->get("timeZone"))
|
||||
->strftime("%Y-%m-%d %H:%M:%S");
|
||||
}
|
||||
|
||||
return WebGUI::Form::Hidden->new(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue