ClearPress
view release on metacpan or search on metacpan
lib/ClearPress/view.pm view on Meta::CPAN
!scalar keys %{$params->{$k}}) {
delete $params->{$k};
}
}
}
for my $field (@fields) {
if(!exists $params->{$field}) {
next;
}
my $v = $params->{$field};
#########
# $v here will always be defined
# but may be false, e.g. $v=q[] or $v=q[0]
#
if($self->autoescape) {
$v = $cgi->escapeHTML($v);
}
$model->$field($v);
}
return 1;
}
sub add {
my $self = shift;
return $self->_populate_from_cgi;
}
sub edit {
my $self = shift;
return $self->_populate_from_cgi;
}
sub options {
#########
# streamed response
#
return q[];
}
sub list {
return 1;
}
sub read { ## no critic (homonym)
return 1;
}
sub delete { ## no critic (homonym)
my $self = shift;
my $model = $self->model;
$model->delete or croak qq[Failed to delete entity: $EVAL_ERROR];
return 1;
}
sub update {
my $self = shift;
my $model = $self->model;
#########
# Populate model object with parameters posted into CGI
# by default (in controller.pm) model will only have util & its primary_key.
#
$self->_populate_from_cgi;
$model->update or croak qq[Failed to update entity: $EVAL_ERROR];
return 1;
}
sub create {
my $self = shift;
my $model = $self->model;
#########
# Populate model object with parameters posted into CGI
# by default (in controller.pm) model will only have util & its primary_key.
#
$self->_populate_from_cgi;
$model->create or croak qq[Failed to create entity: $EVAL_ERROR];
return 1;
}
sub add_tt_filter {
my ($self, $name, $code) = @_;
if(!$name || !$code) {
return;
}
$self->tt_filters->{$name} = $code;
return 1;
}
sub tt_filters {
my $self = shift;
if(!$self->{tt_filters}) {
$self->{tt_filters} = {};
}
return $self->{tt_filters};
}
sub tt_opts {
return {};
}
sub tt {
my ($self, $tt) = @_;
my $util = $self->util;
if($tt) {
$util->{tt} = $tt;
( run in 0.815 second using v1.01-cache-2.11-cpan-5a3173703d6 )