diff --git a/lib/NGCP/Panel/Field/DataTable.pm b/lib/NGCP/Panel/Field/DataTable.pm index 4c845b0c45..0217b2be78 100644 --- a/lib/NGCP/Panel/Field/DataTable.pm +++ b/lib/NGCP/Panel/Field/DataTable.pm @@ -1,5 +1,5 @@ package NGCP::Panel::Field::DataTable; -use Moose; +use HTML::FormHandler::Moose; use Template; extends 'HTML::FormHandler::Field'; @@ -26,6 +26,7 @@ sub render_element { ajax_src => $self->ajax_src, table_fields => $self->table_fields, table_titles => $self->table_titles, + errors => $self->errors, }; my $t = new Template({}); @@ -34,22 +35,23 @@ sub render_element { 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; - my $output = $self->render_element( $result ); - return $self->wrap_field( $result, $output ); + return $self->render_element( $result ); } -sub wrap_field { - my ( $self, $result, $rendered_widget ) = @_; - return $rendered_widget; - +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: diff --git a/lib/NGCP/Panel/Utils.pm b/lib/NGCP/Panel/Utils.pm index 46c9b51ab8..003825dfe4 100644 --- a/lib/NGCP/Panel/Utils.pm +++ b/lib/NGCP/Panel/Utils.pm @@ -35,7 +35,7 @@ sub check_form_buttons { if($posted && $form->field('submitid')) { my $val = $form->field('submitid')->value; - if(grep {/^$val$/} @{ $fields }) { + if(defined $val and grep {/^$val$/} @{ $fields }) { my $target = '/'.$val; $target =~ s/\./\//g; if($c->session->{redirect_targets}) { diff --git a/share/templates/helpers/datatables.tt b/share/templates/helpers/datatables.tt index 450e7818f8..7626584a52 100644 --- a/share/templates/helpers/datatables.tt +++ b/share/templates/helpers/datatables.tt @@ -10,6 +10,10 @@ div.modal .table thead tr th, div.modal .table tbody tr td { padding-bottom: 4px; } +div.modal .help-inline { + clear: both; + float: left; +} div.dataTables_length label { width: 460px; diff --git a/share/templates/helpers/datatables_field.tt b/share/templates/helpers/datatables_field.tt index 37b72d9448..e2943ddde1 100644 --- a/share/templates/helpers/datatables_field.tt +++ b/share/templates/helpers/datatables_field.tt @@ -48,8 +48,8 @@ $(document).ready(function() { } ); - -
+ +
@@ -68,6 +68,11 @@ $(document).ready(function() { + [% IF errors.size -%] + + [% errors.join('
') %] +
+ [% END -%]
[% # vim: set tabstop=4 syntax=html expandtab: -%]