5 @ISA = ( "Webmin::Input" );
7 =head2 new Webmin::Date(name, time, [disabled])
8 Create a new field for selecting a date
12 if (defined(&Webmin::Theme::Date::new)) {
13 return new Webmin::Theme::Date(@_[1..$#_]);
15 my ($self, $name, $value, $disabled) = @_;
17 $self->set_name($name);
18 $self->set_value($value);
19 $self->set_disabled($disabled) if (defined($disabled));
24 Returns the HTML for the date chooser
30 my @tm = localtime($self->get_value());
31 my $name = $self->get_name();
32 $rv .= &ui_date_input($tm[3], $tm[4]+1, $tm[5]+1900,
33 "day_".$name, "month_".$name, "year_".$name,
34 $self->get_disabled())." ".
35 &date_chooser_button("day_".$name, "month_".$name, "year_".$name);
40 Returns the date as a Unix time number (for zero o'clock)
45 my $in = $self->{'form'} ? $self->{'form'}->{'in'} : undef;
46 if ($in && defined($in->{"day_".$self->{'name'}})) {
47 my $rv = $self->to_time($in);
48 return defined($rv) ? $rv : $self->{'value'};
50 elsif ($in && defined($in->{"ui_value_".$self->{'name'}})) {
51 return $in->{"ui_value_".$self->{'name'}};
54 return $self->{'value'};
61 my $day = $in->{"day_".$self->{'name'}};
62 return undef if ($day !~ /^\d+$/);
63 my $month = $in->{"month_".$self->{'name'}}-1;
64 my $year = $in->{"year_".$self->{'name'}}-1900;
65 return undef if ($year !~ /^\d+$/);
66 my $rv = eval { timelocal(0, 0, 0, $day, $month, $year) };
67 return $@ ? undef : $rv;
70 sub set_validation_func
72 my ($self, $func) = @_;
73 $self->{'validation_func'} = $func;
77 Ensures that the date is valid
82 my $tm = $self->to_time($self->{'form'}->{'in'});
84 return ( $text{'ui_edate'} );
86 if ($self->{'validation_func'}) {
87 my $err = &{$self->{'validation_func'}}($self->get_value(),
90 return ( $err ) if ($err);