Author: richter
Date: Mon Nov 26 23:14:45 2007
New Revision: 598537
URL: http://svn.apache.org/viewvc?rev=598537&view=rev
Log:
Embperl::Form layout improvements
Modified:
perl/embperl/trunk/Embperl/Form.pm
perl/embperl/trunk/Embperl/Form/Control.pm
perl/embperl/trunk/Embperl/Form/Control/button.pm
perl/embperl/trunk/Embperl/Form/Control/file.pm
perl/embperl/trunk/Embperl/Form/Control/input.pm
perl/embperl/trunk/Embperl/Form/Control/number.pm
perl/embperl/trunk/Embperl/Form/Control/password.pm
perl/embperl/trunk/Embperl/Form/Control/radio.pm
perl/embperl/trunk/Embperl/Form/Control/select.pm
perl/embperl/trunk/Embperl/Form/Control/table.pm
perl/embperl/trunk/Embperl/Form/ControlMultValue.pm
perl/embperl/trunk/Embperl/Form/DataSource.pm
Modified: perl/embperl/trunk/Embperl/Form.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form.pm (original)
+++ perl/embperl/trunk/Embperl/Form.pm Mon Nov 26 23:14:45 2007
@@ -33,6 +33,8 @@
our %forms ;
our %CLEANUP = ('forms' => 0) ;
+use vars qw{$epreq} ;
+
# ---------------------------------------------------------------------------
#
# new - create a new form
@@ -519,7 +521,9 @@
#
# add_tabs
#
-# fügt ein tab elsement mit subforms zu einem Formular hinzu
+# fügt ein tab element mit subforms zu einem Formular hinzu
+# wird nur eine Subform übergeben, werden nur diese Felder zurückgeliefert
+# ohne tabs
#
# in $subform array mit hashs
# text => <anzeige text>
@@ -545,14 +549,19 @@
push @options, $file -> {text};
if ($fn)
{
- my $obj = Execute ({object => "./$fn"} ) ;
- #$subfields = eval {$obj -> fields ($r, {%$file, %$args}) ||
undef};
+ my $obj = Execute ({object => $fn} ) ;
+ $subfields = eval {$obj -> fields ($epreq, {%$file, %$args}) ||
undef};
}
push @forms, $subfields;
push @grids, $file -> {grid};
push @values, $file -> {value} ||= scalar(@forms);
}
+ if (@forms == 1)
+ {
+ return @{$forms[0]} ;
+ }
+
return {
section => 'cSectionText',
name => '__auswahl',
@@ -696,18 +705,19 @@
# Can be overwritten to allow for example internationalization.
#
# in $ctrl Embperl::Form::Control object
+# $name optional: name to translate, if not given take $ctrl ->
{name}
#
sub convert_label
{
- my ($self, $ctrl) = @_ ;
+ my ($self, $ctrl, $name) = @_ ;
- return $ctrl->{text} || $ctrl->{name} ;
+ return $name || $ctrl->{text} || $ctrl->{name} ;
}
#------------------------------------------------------------------------------------------
#
-# convert_values
+# convert_options
#
# converts the values/options of a control to the text that should be
outputed.
# By default does nothing.
@@ -794,7 +804,20 @@
[$if ($activeid && $self->{id} ne $activeid) $] style="display: none" [$endif$]
>
[$if (!$self -> {noframe}) $]<table class="[+ $class +]"><tr><td
class="cTabTD"> [$endif$]
-<table class="cBase cTable">
+<table class="cBase cTable cTableInput">
+[#
+<colgroup class="cLabelGroup" span="1">
+<colgroup class="cControlGroup" span="49">
+<colgroup class="cLabelGroup" span="1">
+<colgroup class="cControlGroup" span="49">
+#]
+[# -- this row is necessary for fixed table layout -- #]
+<tr style="display: none">
+<td class="cLabelGroup" colspan="20"></td>
+<td class="cControlGroup" colspan="30"></td>
+<td class="cLabelGroup" colspan="20"></td>
+<td class="cControlGroup" colspan="30"></td>
+</tr>
[$endsub$]
[# ---------------------------------------------------------------------------
@@ -970,6 +993,10 @@
Embperl::Form::Control object
+=item $name
+
+optional: name to translate, if not given take $ctrl -> {name}
+
=back
=head2 convert_text
@@ -986,7 +1013,7 @@
=back
-=head2 convert_values
+=head2 convert_options
Converts the values of a control to the text that should be outputed.
By default does nothing.
Modified: perl/embperl/trunk/Embperl/Form/Control.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control.pm Mon Nov 26 23:14:45 2007
@@ -205,8 +205,8 @@
#]
[$sub show_label_icon ($self, $req) $]
-[$if $self -> {sublines} $] <img src="/images/plus.png"
style="vertical-align: middle;">[$endif$]
-[$if $self -> {parentid} $] <img src="/images/vline.png"
style="vertical-align: middle;">[$endif$]
+[$if $self -> {xxsublines} $] <img src="/images/plus.png"
style="vertical-align: middle;">[$endif$]
+[$if $self -> {xxparentid} $] <img src="/images/vline.png"
style="vertical-align: middle;">[$endif$]
[$endsub$]
[# ---------------------------------------------------------------------------
@@ -216,18 +216,26 @@
[$ sub show_label_cell ($self, $req)
-my $style = "";
-$style = "white-space:nowrap;" if ($self->{labelnowrap}) ;
-
+my $style = '';
+my $addclass = '' ;
+$style = 'white-space:nowrap; ' if ($self->{labelnowrap}) ;
+if ($self -> {width_precent} && !$self -> {width})
+ {
+ $style .= 'width: 20%; ' ;
+ }
+else
+ {
+ $addclass = 'cLabelBoxWidth' . ($self->{width} || 2 ) ;
+ }
$]
- <td class="cLabelBox[$ if $self->{labelclass} $][+ " $self->{labelclass}"
+][$ endif $]"
- colspan="1" [$ if $style $]style="[+ $style +]"[$ endif $]>
+ <td class="cLabelBox [+ $addclass +] [$ if $self->{labelclass} $][+ "
$self->{labelclass}" +][$ endif $]"
+ colspan="20" [$ if $style $]style="[+ $style +]"[$ endif $]>
[-
$self -> show_label ($req);
$self -> show_label_icon ($req) ;
-]
</td>
- [- return 1; -]
+ [- return 20 ; -]
[$endsub$]
[# ---------------------------------------------------------------------------
@@ -260,8 +268,18 @@
[$ sub show_control_cell ($self, $req, $x)
my $span = $self->{width_percent} - $x ;
+ my $addclass = '' ;
+ my $style = '' ;
+ if ($self -> {width_precent} && !$self -> {width})
+ {
+ $style = "width: " . int($self -> {width_precent} * 100 / 80) . '; ' ;
+ }
+ else
+ {
+ $addclass = 'cControlBoxWidth' . ($self->{width} || 2 ) ;
+ }
$]
- <td class="cControlBox" colspan="[+ $span +]">
+ <td class="cControlBox [+ $addclass +]" colspan="[+ $span +]" [$ if $style
$]style="[+ $style +]"[$ endif $]>
[*
my @ret = $self -> is_readonly?$self -> show_control_readonly($req):$self
-> show_control ($req);
$self -> show_control_addons ($req) ;
Modified: perl/embperl/trunk/Embperl/Form/Control/button.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/button.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/button.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/button.pm Mon Nov 26 23:14:45 2007
@@ -40,8 +40,8 @@
[# Workaround around segfault in Embperl 2.1.1-dev *grmpf* #]
<[# #]input
class="cBase cControl cControlButton" name="[+ $self->{name} +]"
- value="[+ $self->{value} || $self->{text} +]"
- title="[+ $self->{text} +]"
+ value="[+ $self -> {showvalue}?($self -> {value} || $self->{text}):$self ->
form -> convert_label ($self) +]"
+ title="[+ $self -> {showtext}?($self->{text}):$self -> form -> convert_label
($self) +]"
[$if $self -> {onclick} $] onClick="[+ $self -> {onclick} +]" [$endif$]
[$if $self -> {image} $]
type="image" src="[+ $self -> {image} +]"
Modified: perl/embperl/trunk/Embperl/Form/Control/file.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/file.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/file.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/file.pm Mon Nov 26 23:14:45 2007
@@ -30,9 +30,13 @@
# show_control - output the control
#]
-[$ sub show_control ($self) $]
+[$ sub show_control ($self)
-<input type="file" class="cBase cControl" name="[+ $self->{name} +]"
+$self -> {size} ||= 80 / ($self -> {width} || 2) ;
+$class = $self -> {class} ||= 'cControlWidthInput' ;
+$]
+
+<input type="file" class="cBase cControl [+ $class +]" name="[+
$self->{name} +]" id="[+ $self->{name} +]"
[$if $self -> {size} $]size="[+ $self->{size} +]"[$endif$]
[$if $self -> {maxlength} $]size="[+ $self->{maxlength} +]"[$endif$]
>
Modified: perl/embperl/trunk/Embperl/Form/Control/input.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/input.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/input.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/input.pm Mon Nov 26 23:14:45 2007
@@ -31,10 +31,12 @@
#]
[$ sub show_control ($self)
+
$self -> {size} ||= 80 / ($self -> {width} || 2) ;
+$class = $self -> {class} ||= 'cControlWidthInput' ;
$]
-<input type="text" class="cBase cControl" name="[+ $self->{name} +]" id="[+
$self->{name} +]"
+<input type="text" class="cBase cControl [+ $class +]" name="[+
$self->{name} +]" id="[+ $self->{name} +]"
[$if $self -> {size} $]size="[+ $self->{size} +]"[$endif$]
[$if $self -> {maxlength} $]maxlength="[+ $self->{maxlength} +]"[$endif$]
>
@@ -85,6 +87,10 @@
=head3 maxlength
Gives the maximum possible input length in characters
+
+=head3 class
+
+Alternative CSS class name
=head1 Author
Modified: perl/embperl/trunk/Embperl/Form/Control/number.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/number.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/number.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/number.pm Mon Nov 26 23:14:45 2007
@@ -33,7 +33,7 @@
[$ sub show_control ($self)
$self->{size} ||= 10 ;
- $self->{css_width} ||= '50%' ;
+ $self->{class} ||= 'cControlWidthNumber' ;
$]
[- $self -> SUPER::show_control ; -]
[$if ($self->{unit}) $][+ $self ->{unit} +][$endif$]
Modified: perl/embperl/trunk/Embperl/Form/Control/password.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/password.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/password.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/password.pm Mon Nov 26 23:14:45 2007
@@ -32,7 +32,7 @@
[$ sub show_control ($self) $]
-<input type="password" class="cBase cControl" name="[+ $self->{name} +]"
+<input type="password" class="cBase cControl cControlWidthInput" name="[+
$self->{name} +]"
[$if $self -> {size} $]size="[+ $self->{size} +]"[$endif$]
[$if $self -> {maxlength} $]size="[+ $self->{maxlength} +]"[$endif$]
>
Modified: perl/embperl/trunk/Embperl/Form/Control/radio.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/radio.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/radio.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/radio.pm Mon Nov 26 23:14:45 2007
@@ -111,7 +111,7 @@
[$if !defined ($filter) || ($val =~ /$filter/i) $]
[- $fdat{$name} = $val, $set = 0 if ($set) ;
$fdat{$name} = $val if ($ignorecase && lc($fdat{$name}) eq lc($val)) ;
-]
- [+ do { local $escmode = 0 ; $tr }+]<td><input type="radio" name="[+ $name
+]" value="[+ $val +]"
+ [+ do { local $escmode = 0 ; $tr }+]<td><input type="radio" name="[+ $name
+]" value="[+ $val +]" id="[+ "$name-$val" +]"
[$if ($self -> {sublines} || $self -> {subobjects}) $] OnClick="[+
$nsprefix +]show_radio_checked(document, this,[+ $i +],[+ $max +])" [$endif$]
></td><td>[+ $options ->[$i] || $val +]</td>[+ do { local $escmode = 0 ;
$trend }+]
[$endif$]
Modified: perl/embperl/trunk/Embperl/Form/Control/select.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/select.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/select.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/select.pm Mon Nov 26 23:14:45 2007
@@ -57,7 +57,7 @@
my $val ;
my $i = 0 ;
$]
-<select class="cBase cControl" name="[+ $name +]" id="[+ $name +]"
+<select class="cBase cControl cControlWidthSelect" name="[+ $name +]" id="[+
$name +]"
[$if ($self -> {sublines} || $self -> {subobjects}) $] OnChange="[+ $nsprefix
+]show_selected(document, this)" [$endif$]
[$if ($self -> {rows}) $] size="[+ $self->{rows} +]" [$endif$]
>
Modified: perl/embperl/trunk/Embperl/Form/Control/table.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/table.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/table.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/table.pm Mon Nov 26 23:14:45 2007
@@ -33,13 +33,13 @@
[$ sub show_table ($self, $data)
my $span = ($self->{width_percent}) ;
-
+ my $showtext = $self -> {showtext} ;
$]
<td class="cBase cTabTD" colspan="[+ $span +]">
[$if $self -> {text} $]
[# --- heading text --- #]
<table width="100%"><tr><td class="cLabelBox">
-[+ $self -> {text} +]<br>
+[+ $self -> {showtext}?($self->{text} || $self->{name}):$self -> form ->
convert_label ($self) +]<br>
</td></tr></table>
[$endif$]
<table width="100%">
@@ -49,7 +49,7 @@
[$foreach $line (@{$self->{columns}}) $]
<tr style="background: white">
[$foreach $c (@$line) $]
-<td colspan="[+ ref $c?$c -> [2] || 1:1 +]" class="[+$self -> {line2} ||
(@{$self->{columns}} > 1 && $i == 0)?'cGridLabelBox':'cControlBox'+]">[+ ref
$c?$c -> [1] || $c -> [0]:$c +]</td>
+<td colspan="[+ ref $c?$c -> [2] || 1:1 +]" class="[+$self -> {line2} ||
(@{$self->{columns}} > 1 && $i == 0)?'cGridLabelBox':'cControlBox'+]">[+
$showtext?(ref $c?$c -> [1] || $c -> [0]:$c):$self -> form -> convert_label
($self, ref $c?$c -> [1]:$c) +]</td>
[$endforeach$]
[- $i++ -]
</tr>
Modified: perl/embperl/trunk/Embperl/Form/ControlMultValue.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/ControlMultValue.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/ControlMultValue.pm (original)
+++ perl/embperl/trunk/Embperl/Form/ControlMultValue.pm Mon Nov 26 23:14:45 2007
@@ -119,12 +119,12 @@
[$ sub show_control_addons ($self, $req)
my $datasrc_ctrls = $self -> get_datasource_controls ($req) ;
- return if (!$datasrc_ctrls) ;
-
-$]
-[$foreach my $ctrl (@$datasrc_ctrl) $]
-<a href="[+ $ctrl->{href} +]" onClick="[+ $ctrl->{onclick} +]">[$if $ctrl ->
{icon} $]<img src="[+ $ctrl -> {icon} +]" title="[+ $ctrl -> {text}
+]">[$else$][+ $ctrl -> {text} +][$endif$]
+
+$][$if $datasrc_ctrls $]
+[$foreach my $ctrl (@$datasrc_ctrls) $]
+<a class="cControlAddonA" href="[+ $ctrl->{href} +]" onClick="[+
$ctrl->{onclick} +]">[$if $ctrl -> {icon} $]<img class="cControlAddonImg"
src="[+ $ctrl -> {icon} +]" title="[+ $ctrl -> {text} +]" alt="[+ $ctrl ->
{text} +]">[$else$][+ $ctrl -> {text} +][$endif$]</a>
[$endforeach$]
+[$endif$]
[$endsub$]
Modified: perl/embperl/trunk/Embperl/Form/DataSource.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/DataSource.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/DataSource.pm (original)
+++ perl/embperl/trunk/Embperl/Form/DataSource.pm Mon Nov 26 23:14:45 2007
@@ -63,6 +63,21 @@
die "Please overwrite get_values in " . ref $self ;
}
+# ---------------------------------------------------------------------------
+#
+# get_datasource_controls - returns additional controls provided by the
+# datasource object e.g. a browse button
+#
+
+sub get_datasource_controls
+
+ {
+ my ($self, $req, $ctrl) = @_ ;
+
+ return ;
+ }
+
+
1 ;
__END__
@@ -92,6 +107,10 @@
returns the values and options. Must be overwritten.
+=head3 get_datasource_controls
+
+returns additional controls provided by the
+datasource object e.g. a browse button
=head1 AUTHOR
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]