App-Widget
view release on metacpan or search on metacpan
lib/App/Widget/DateField.pm view on Meta::CPAN
######################################################################
## $Id: DateField.pm 3668 2006-03-11 20:51:13Z spadkins $
######################################################################
package App::Widget::DateField;
$VERSION = (q$Revision: 3668 $ =~ /(\d[\d\.]*)/)[0]; # VERSION numbers generated by svn
use App;
use App::Widget::TextField;
@ISA = ( "App::Widget::TextField" );
use strict;
=head1 NAME
App::Widget::DateField - An HTML text field
=head1 SYNOPSIS
$name = "first_name";
# official way
use App;
$context = App->context();
$w = $context->widget($name);
# OR ...
$w = $context->widget($name,
class => "App::Widget::DateField",
size => 8, # from HTML spec
maxlength => 18, # from HTML spec
style => "mystyle", # from HTML to support CSS
color => "#6666CC", # from CSS spec
font_size => "10px", # from CSS spec
border_style => "solid", # from CSS spec
border_width => "1px", # from CSS spec
border_color => "#6666CC", # from CSS spec
padding => "2px", # from CSS spec
background_color => "#ccffcc", # from CSS spec
font_family => "Verdana, Geneva, Arial", # from CSS spec
override => 1, # increase precedence of following options to "override" from "default"
#validate => "date", # not impl. yet ("date", "time", "datetime", "enum", "number", "integer", ":regexp")
#autocomplete => \@previous_choices, # not impl. yet
);
# internal way
use App::Widget::DateField;
$w = App::Widget::DateField->new($name);
=cut
######################################################################
# CONSTANTS
######################################################################
######################################################################
# ATTRIBUTES
######################################################################
# INPUTS FROM THE ENVIRONMENT
=head1 DESCRIPTION
This class is a <input type=text> HTML element.
=cut
######################################################################
# INITIALIZATION
######################################################################
# no special initialization
######################################################################
# EVENTS
######################################################################
# no events
######################################################################
# METHODS
######################################################################
sub value {
my ($self, $value) = @_;
if (defined $value) {
if ($value !~ /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/) {
$value = $self->format_date($value);
}
$self->{context}->wvalue($self->{name}, $value);
}
else {
$value = $self->{context}->wvalue($self->{name});
if ($value ne "" && $value !~ /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/) {
$value = $self->format_date($value);
$self->{context}->wvalue($self->{name}, $value);
}
return $value;
}
}
sub get_value {
my ($self, $default, $setdefault) = @_;
$self->{context}->wget($self->{name}, "", $default, $setdefault);
}
sub fget_value {
my ($self, $format) = @_;
$format = $self->get("format") if (!defined $format);
if (! defined $format) {
return $self->{context}->wget($self->{name}, "", "");
}
else {
my ($value, $type);
$type = $self->get("validate");
$value = $self->{context}->wget($self->{name}, "", "");
if ($type) {
$value = App::Widget->format($value, $type, $format);
}
return $value;
( run in 0.506 second using v1.01-cache-2.11-cpan-39bf76dae61 )