
richter at apache
Nov 26, 2007, 11:14 PM
Post #1 of 1
(253 views)
Permalink
|
|
svn commit: r598537 - in /perl/embperl/trunk/Embperl: ./ Form/ Form/Control/
|
|
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: embperl-cvs-unsubscribe[at]perl.apache.org For additional commands, e-mail: embperl-cvs-help[at]perl.apache.org
|