Rose-HTML-Objects
view release on metacpan or search on metacpan
lib/Rose/HTML/Form/Field/DateTime/Split/MDYHMS.pm view on Meta::CPAN
package Rose::HTML::Form::Field::DateTime::Split::MDYHMS;
use strict;
use Rose::DateTime::Util();
use Rose::HTML::Form::Field::DateTime::Split::MonthDayYear;
use Rose::HTML::Form::Field::Time::Split::HourMinuteSecond;
use base 'Rose::HTML::Form::Field::DateTime::Split';
our $VERSION = '0.550';
sub build_field
{
my($self) = shift;
$self->add_fields
(
date => 'datetime split mdy',
time => 'time split hms',
);
}
sub decompose_value
{
my($self, $value) = @_;
return undef unless(defined $value);
my $date = $self->SUPER::inflate_value($value);
unless($date)
{
no warnings;
return
{
date => substr($value, 0, 10) || '',
time => substr($value, 10) || '',
}
}
my($mdy, $time) = Rose::DateTime::Util::format_date($date, '%m/%d/%Y', '%I:%M:%S %p');
return
{
date => $mdy,
time => $time,
};
}
sub coalesce_value
{
my($self) = shift;
return join(' ', map { defined($_) ? $_ : '' }
map { $self->field($_)->output_value } qw(date time));
}
sub is_full
{
my($self) = shift;
my $count = grep { defined && length }
map { $self->field($_)->internal_value } qw(date time);
return $count == 2 ? 1 : 0;
}
sub deflate_value
{
my($self, $date) = @_;
return $self->input_value_filtered unless($date);
return Rose::DateTime::Util::format_date($date, '%m/%d/%Y %I:%M:%S %p');
}
sub html_field
{
my($self) = shift;
return '<span class="datetime">' .
( run in 0.944 second using v1.01-cache-2.11-cpan-71847e10f99 )