You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ngcp-panel/lib/NGCP/Panel/Field/MonthPicker.pm

62 lines
1.7 KiB

package NGCP::Panel::Field::MonthPicker;
use HTML::FormHandler::Moose;
use Template;
extends 'HTML::FormHandler::Field';
has '+widget' => (default => ''); # leave this empty, as there is no widget ...
has 'template' => ( isa => 'Str',
is => 'rw',
default => 'helpers/monthpicker.tt' );
has 'language_file' => (isa => 'Str', is => 'rw', default => 'dataTables.default.js' );
has 'date_format_js' => (isa => 'Str', is => 'rw', default => 'yy-mm' );
sub render_element {
my ($self) = @_;
my $output = '';
(my $fieldname = $self->html_name) =~ s!\.!!g;
my $vars = {
label => $self->label,
field_name => $self->html_name,
field_id => $fieldname . "_datepicker",
value => $self->value,
date_format_js => $self->date_format_js,
errors => $self->errors,
language_file => $self->language_file,
};
my $t = new Template({
ABSOLUTE => 1,
INCLUDE_PATH => [
'/usr/share/ngcp-panel/templates',
'share/templates',
],
});
$t->process($self->template, $vars, \$output) or
die "Failed to process Datepicker field template: ".$t->error();
return $output;
}
sub render {
my ( $self, $result ) = @_;
$result ||= $self->result;
die "No result for form field '" . $self->full_name . "'. Field may be inactive." unless $result;
return $self->render_element( $result );
}
sub validate {
my ( $self ) = @_;
return $self->add_error($self->label . " is invalid")
if($self->required and (
!defined $self->value or !length($self->value)
));
return 1;
}
1;
# vim: set tabstop=4 expandtab: