You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl-cvs@perl.apache.org by ri...@apache.org on 2006/10/29 14:24:27 UTC
svn commit: r468902 - /perl/embperl/trunk/Embperl/Form/Control/checkboxes.pm
Author: richter
Date: Sun Oct 29 05:24:26 2006
New Revision: 468902
URL: http://svn.apache.org/viewvc?view=rev&rev=468902
Log:
Embperl::Form checkboxes
Added:
perl/embperl/trunk/Embperl/Form/Control/checkboxes.pm (with props)
Added: perl/embperl/trunk/Embperl/Form/Control/checkboxes.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/checkboxes.pm?view=auto&rev=468902
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/checkboxes.pm (added)
+++ perl/embperl/trunk/Embperl/Form/Control/checkboxes.pm Sun Oct 29 05:24:26 2006
@@ -0,0 +1,174 @@
+
+###################################################################################
+#
+# Embperl - Copyright (c) 1997-2005 Gerald Richter / ecos gmbh www.ecos.de
+#
+# You may distribute under the terms of either the GNU General Public
+# License or the Artistic License, as specified in the Perl README file.
+#
+# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+#
+# $Id$
+#
+###################################################################################
+
+package Embperl::Form::Control::checkboxes ;
+
+use strict ;
+use vars qw{%fdat} ;
+use base 'Embperl::Form::ControlMultValue' ;
+
+use Embperl::Inline ;
+
+# ---------------------------------------------------------------------------
+#
+# show_control_readonly - output readonly control
+#
+
+sub show_control_readonly
+ {
+ my ($self, $req) = @_ ;
+
+ my $name = $self -> {name} ;
+ $self -> show_control ($req, "^\Q$fdat{$name}\\E\$") ;
+ }
+
+1 ;
+
+__EMBPERL__
+
+[# ---------------------------------------------------------------------------
+#
+# show_control - output the control
+#]
+
+[$ sub show_control ($self, $req, $filter)
+
+ my ($values, $options) = $self -> get_values ($req) ;
+ my $name = $self -> {name} ;
+ $filter ||= $self -> {filter} ;
+ my $addtop = $self -> {addtop} || [] ;
+ my $addbottom= $self -> {addbottom} || [] ;
+ my $max = @$values ;
+ my $set = !defined ($fdat{$name})?1:0 ;
+
+ my $val ;
+ my $i = 0 ;
+$]
+[$ foreach $val (@$addtop) $]
+ [$if !defined ($filter) || ($val->[0] =~ /$filter/i) $]
+ [- $fdat{$name} = $val -> [0], $set = 0 if ($set) ; -]
+ <input type="checkboxes" name="[+ $name +]" value="[+ $val -> [0] +]"
+ >[+ $val ->[1] || $val -> [0] +]
+ [$endif$]
+[$endforeach$]
+[$ foreach $val (@$values) $]
+ [$if !defined ($filter) || ($val =~ /$filter/i) $]
+ [- $fdat{$name} = $val, $set = 0 if ($set) ; -]
+ <input type="checkbox" name="[+ $name +]" value="[+ $val +]"
+ [$if ($self -> {sublines} || $self -> {subobjects}) $] OnClick="show_checkboxes_checked(this,[+ $i +],[+ $max +])" [$endif$]
+ >[+ $options ->[$i] || $val +]
+ [- $vert = $self -> {vert} -][$while $vert-- > 0 $]<br/>[$endwhile$]
+ [$endif$]
+ [* $i++ ; *]
+[$endforeach$]
+[$ foreach $val (@$addbottom) $]
+ [$if !defined ($filter) || ($val->[0] =~ /$filter/i) $]
+ [- $fdat{$name} = $val -> [0], $set = 0 if ($set) ; -]
+ <input type="checkboxes" name="[+ $name +]" value="[+ $val -> [0] +]"
+ >[+ $val ->[1] || $val -> [0] +]
+ [$endif$]
+[$endforeach$]
+
+[$endsub$]
+
+
+
+__END__
+
+=pod
+
+=head1 NAME
+
+Embperl::Form::Control::checkboxes - A multiple checkbox control inside an Embperl Form
+
+
+=head1 SYNOPSIS
+
+ {
+ type => 'checkboxes',
+ text => 'blabla',
+ name => 'foo',
+ values => [1,2,3],
+ options => ['foo', 'bar', 'none'],
+ }
+
+=head1 DESCRIPTION
+
+Used to create an checkboxes control inside an Embperl Form.
+See Embperl::Form on how to specify parameters.
+
+=head2 PARAMETER
+
+=head3 type
+
+Needs to be 'checkboxes'
+
+=head3 name
+
+Specifies the name of the checkboxes control
+
+=head3 text
+
+Will be used as label for the checkboxes control
+
+=head3 values
+
+Gives the values as an array ref of the checkboxes control.
+
+=head3 options
+
+Gives the options as an array ref that should be displayed to the user.
+If no options are given, the values from values are used.
+
+=head3 vert
+
+If specified arranges the checkboxes button vertically. The number given specifies
+the number of <br>'s used the separate the checkboxes buttons.
+
+=head3 addtop
+
+Array ref which contains items that should be added at the left or top
+of the checkboxes buttons. Each item consists of an array ref with two
+entries, the first is the value and the second is the option
+that is displayed on the page. If the second is missing the
+value (first entry)is displayed. Example:
+
+ addtop => [ [1 => 'first item'], [2 => 'second item']]
+
+=head3 addbottom
+
+Array ref which contains items that should be added at the right or bottom
+of the checkboxes buttons. Each item consists of an array ref with two
+entries, the first is the value and the second is the option
+that is displayed on the page. If the second is missing the
+value (first entry)is displayed. Example:
+
+ addbottom => [ [9999 => 'last item'], [9999 => 'very last item']]
+
+=head3 filter
+
+If given, only items where the value matches the regex given in
+C<filter> are displayed.
+
+=head1 Author
+
+G. Richter (richter@dev.ecos.de)
+
+=head1 See Also
+
+perl(1), Embperl, Embperl::Form
+
+
Propchange: perl/embperl/trunk/Embperl/Form/Control/checkboxes.pm
------------------------------------------------------------------------------
svn:executable = *
---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org