BingoX
view release on metacpan or search on metacpan
lib/BingoX/Cobalt.pm view on Meta::CPAN
_app => $app,
_db_obj => $db_obj,
_dbh => $dbh
}, $rclass);
}
}, 'BingoX::Cobalt::Stream');
} # END of stream_related
=item list_related( $rel_display_class [, \@fields] [, \@sort] [, $unary_rev_flag ] )
Returns an array ref of related display objects from the $rel_display_class class.
=cut
sub list_related {
my $self = shift;
return undef unless ref($self && $self->db_obj);
my $stream = $self->stream_related( @_ );
return undef unless (ref $stream);
my @list;
push(@list, $a) while ($a = $stream->());
return \@list;
} # END of list_related
=back
=head2 OBJECT METHODS
=over 4
=item C<db_obj> ( )
Returns the Data object for the Display Class that it was called
from, with the constraint being: map $q->param( $_ ) @{ $data_class->primary_keys }
=cut
sub db_obj {
my $self = shift;
return undef unless (ref $self); # needs to be called as an object method
return $self->{'_db_obj'} if (ref $self->{'_db_obj'}); # return cached object
my $q = $self->cgi;
my $params = { };
foreach (@{ $self->data_class->primary_keys }) {
return undef unless (defined $q->param( $_ ));
$params->{ $_ } = $q->param( $_ );
}
return undef unless (keys %$params); # primary key needs to exist
my $arrayref = $self->data_class->list_obj($self->dbh, $params);
$self->{'_db_obj'} = $arrayref->[0] if (ref $arrayref);
$self->{'_db_obj'};
} # END of db_obj
######################## Display Methods ########################
=item C<hour_menu> ( $name [, $default ] [, $24hr ] )
Returns a Popup Menu with Hours.
=cut
sub hour_menu {
my $self = shift;
my $name = shift;
my $default = shift || undef;
my $hr24 = shift || undef;
my $date = ref($default) ? $default : BingoX::Time->new;
my $values;
if ($hr24) {
$default = $date->hour;
$values = $date->hours24;
} else {
$values = $date->hours;
if ($date->hour > 0 && $date->hour <= 12) {
$default = $date->hour;
} elsif ($date->hour == 0) {
$default = '12';
} else {
$default = $date->hour - 12;
}
}
return $self->cgi->popup_menu( -NAME => $name,
-VALUES => $values,
-DEFAULT => sprintf("%02d", $default),
-OVERRIDE => 1);
} # END of sub hour_menu
=item C<min_menu> ( $name [, $default ] )
Returns a Popup Menu with Minutes.
=cut
sub min_menu {
my $self = shift;
my $name = shift;
my $default = shift || undef;
my $date = ref($default) ? $default : BingoX::Time->new;
return $self->cgi->popup_menu( -NAME => $name,
-VALUES => $date->minutes,
-DEFAULT => sprintf("%02d", $date->min),
-OVERRIDE => 1);
} # END of sub min_menu
=item C<am_pm_menu> ( $name [, $default ] )
Returns a Popup Menu with AM/PM menus.
=cut
sub am_pm_menu {
my $self = shift;
my $name = shift;
my $default = shift || undef;
my $date = ref($default) ? $default : BingoX::Time->new;
if ($date->hour >= 0 && $date->hour < 12) {
$default = 'AM';
} else {
$default = 'PM';
}
return $self->cgi->popup_menu( -NAME => $name,
-VALUES => [ 'AM', 'PM' ],
-DEFAULT => $default || '',
-OVERRIDE => 1);
} # END of sub am_pm_menu
=item C<day_menu> ( $name [, $default ] )
Returns a Popup Menu with the Days of the Month.
=cut
sub day_menu {
my $self = shift;
my $name = shift;
my $default = shift || undef;
my $date = ref($default) ? $default : BingoX::Time->new;
return $self->cgi->popup_menu( -NAME => $name,
-VALUES => [ 1 .. 31 ],
-DEFAULT => $date->mday,
-OVERRIDE => 1);
} # END of sub day_menu
=item C<month_menu> ( $name [, $default ] )
Returns a Popup Menu with the Months of the Year.
=cut
sub month_menu {
my $self = shift;
my $name = shift;
my $default = shift || undef;
my $date = ref($default) ? $default : BingoX::Time->new;
return $self->cgi->popup_menu( -NAME => $name,
-VALUES => [ 1 .. 12 ],
-LABELS => $date->months,
-DEFAULT => $date->mon,
-OVERRIDE => 1);
} # END of sub month_menu
=item C<year_menu> ( $name [, $default ] )
Returns a Popup Menu with a list of Years up to 20 years from now.
=cut
sub year_menu {
my $self = shift;
my $name = shift;
my $default = shift || undef;
my $date = ref($default) ? $default : BingoX::Time->new;
my $start_year = $date->year;
return $self->cgi->popup_menu( -NAME => $name,
-VALUES => [ ($start_year - 20) .. ($start_year + 20) ],
-DEFAULT => $date->year,
-OVERRIDE => 1);
} # END of sub year_menu
=item C<errors_list> ( )
Returns list of errors in list format.
=cut
sub errors_list {
my $self = shift;
my $list = shift;
my $q = $self->cgi;
my $errs = $self->{'_errors'};
return '' unless (keys %$errs);
my $html = '<B>' . $self->conf->error_msg . "</B>\n" unless ($errs->{'success'});
if ($list) {
$html .= "<" . $list . ">\n";
foreach (sort keys %$errs) { $html .= "<LI>" . $errs->{$_} . "\n" }
$html .= "</" . $list . ">\n";
} else {
foreach (keys %$errs) { $html .= $errs->{$_} . "\n" }
}
return $html;
} # END of errors_list
######################## Form Methods ########################
=item C<alink> ( \%params, $text | \@text )
Returns a hyper link with the params passed to it, -HREF, -JAVASCRIPT.
=cut
sub alink {
my $self = shift;
return $self->cgi->a(@_);
} # END of sub alink
=item C<submit> ( $name, %params )
Returns a Submit Button with the params passed to it, -NAME, -VALUE, -JAVASCRIPT.
=cut
sub submit {
my $self = shift;
my $name = shift;
return $self->cgi->submit(-NAME => $name, @_);
} # END of sub submit
=item C<image_button> ( $name, %params )
Returns a hyper link with the params passed to it, -HREF, -SRC,
-BORDER, -ALT, -JAVASCRIPT.
=cut
sub image_button {
my $self = shift;
my $name = shift;
return $self->cgi->image_button(-NAME => $name, @_);
} # END of sub image_button
=item C<textfield> ( $name, %params )
Returns a Text Field with the params passed to it, -VALUE, -SIZE,
-OVERRIDE.
=cut
sub textfield {
my $self = shift;
my $name = shift;
return $self->cgi->textfield(-NAME => $name, -DEFAULT => ($self->_get_default($name) || ''), @_);
} # END of sub textfield
=item C<hidden> ( $name, %params )
Returns a Hidden Field with the params passed to it, -VALUE.
=cut
sub hidden {
my $self = shift;
my $name = shift;
return $self->cgi->hidden(-NAME => $name, @_);
} # END of sub hidden
=item C<popup_menu> ( $name, %params )
Returns a Popup Menu with the params passed to it, -VALUES, -LABELS,
-OVERRIDE.
=cut
sub popup_menu {
my $self = shift;
my $name = shift;
return $self->cgi->popup_menu(-NAME => $name, -DEFAULT => ($self->_get_default($name) || ''), @_);
} # END of sub popup_menu
=item C<checkbox> ( $name, %params )
Returns a Checkbox with the params passed to it, -VALUE, -LABEL,
-OVERRIDE.
=cut
sub checkbox {
my $self = shift;
my $name = shift;
return $self->cgi->checkbox(-NAME => $name, -DEFAULT => ($self->_get_default($name) || ''), @_);
} # END of sub checkbox
=item C<checkbox_group> ( $name, %params )
Returns a Checkbox Button Group with the params passed to it,
-VALUES, -LABELS, OVERRIDE.
=cut
sub checkbox_group {
my $self = shift;
my $name = shift;
return $self->cgi->checkbox_group(-NAME => $name, -DEFAULT => ($self->_get_default($name) || ''), @_);
} # END of sub checkbox_group
=item C<radio_group> ( $name, %params )
Returns a Radio Button Group with the params passed to it,
-NAME, -VALUES, -LABELS, -DEFAULT, -OVERRIDE.
=cut
sub radio_group {
my $self = shift;
my $name = shift;
return $self->cgi->radio_group(-NAME => $name, -DEFAULT => ($self->_get_default($name) || ''), @_);
} # END of sub radio_group
=item C<get_default> ( )
Gets the default value for the field name requested.
=cut
sub get_default {
my $self = shift;
return $self->_get_default(@_);
} # END of get_default
( run in 1.589 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )