Author: richter Date: Mon Sep 29 06:48:25 2014 New Revision: 1628127 URL: http://svn.apache.org/r1628127 Log: add get_display_text for more controls
Modified: perl/embperl/trunk/Embperl/Form/Control.pm perl/embperl/trunk/Embperl/Form/Control/grid.pm perl/embperl/trunk/Embperl/Form/Control/number.pm perl/embperl/trunk/Embperl/Form/Control/price.pm Modified: perl/embperl/trunk/Embperl/Form/Control.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control.pm?rev=1628127&r1=1628126&r2=1628127&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Control.pm (original) +++ perl/embperl/trunk/Embperl/Form/Control.pm Mon Sep 29 06:48:25 2014 @@ -586,12 +586,12 @@ $] # show_control_readonly - output the control as readonly #] -[$ sub show_control_readonly ($self, $req, $value) +[$ sub show_control_readonly ($self, $req, $value, $suffix) my $text = $self -> get_display_text ($req, $value) ; my $name = $self -> {force_name} || $self -> {name} ; $] -<div [+ do { local $escmode = 0 ; $self -> get_std_control_attr($req, '', 'readonly') } +] _ef_divname="[+ $name +]">[+ $text +]</div> +<div [+ do { local $escmode = 0 ; $self -> get_std_control_attr($req, '', 'readonly') } +] _ef_divname="[+ $name +]">[+ $text +][+ $suffix +]</div> [$ if $self->{hidden} $] <input type="hidden" name="[+ $name +]" value="[+ $value +]"> [$endif$] Modified: perl/embperl/trunk/Embperl/Form/Control/grid.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/grid.pm?rev=1628127&r1=1628126&r2=1628127&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Control/grid.pm (original) +++ perl/embperl/trunk/Embperl/Form/Control/grid.pm Mon Sep 29 06:48:25 2014 @@ -404,7 +404,7 @@ sub get_display_text $j = $allfields -> {$fieldname} ; $field = $fields -> [$j] ; next if $field -> is_hidden ; - $text = $field -> get_display_text ($req, $rowval -> [$j+1]) ; + $text = $field -> get_display_text ($req, $rowval -> [$j+1], 1) ; push @row, $text if ($text ne '') ; } push @rows, join (', ', @row) if (@row) ; Modified: perl/embperl/trunk/Embperl/Form/Control/number.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/number.pm?rev=1628127&r1=1628126&r2=1628127&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Control/number.pm (original) +++ perl/embperl/trunk/Embperl/Form/Control/number.pm Mon Sep 29 06:48:25 2014 @@ -22,6 +22,8 @@ use base 'Embperl::Form::Control::input' use Embperl::Inline ; +use vars qw{%fdat} ; + # ------------------------------------------------------------------------------------------ sub get_std_control_attr @@ -38,12 +40,18 @@ sub get_std_control_attr sub get_display_text { - my ($self, $req, $value) = @_ ; + my ($self, $req, $value, $compact) = @_ ; $value = $self -> get_value ($req) if (!defined ($value)) ; return if ($value eq '') ; - return $value + 0 ; + return $value + 0 if ($compact) ; + + my $unit = $self->{unit} ; + my $unittext = !$unit?'':$self -> form -> convert_text ($self, ($unit =~ /:/)?$unit:'unit:' . lc($unit), $unit, $req) ; + $unittext =~ s/^unit:// ; + + return $value . ' ' . $unittext ; } # ------------------------------------------------------------------------------------------ @@ -65,17 +73,59 @@ sub get_sort_value # show_control_readonly - output the control as readonly # -sub show_control_readonly +sub xshow_control_readonly { my ($self, $req, $value) = @_ ; my $unit = $self->{unit} ; my $unittext = !$unit?'':$self -> form -> convert_text ($self, ($unit =~ /:/)?$unit:'unit:' . lc($unit), $unit, $req) ; $unittext =~ s/^unit:// ; - $value = $self -> {value} || $Embperl::fdat{$self -> {name}} if (!defined($value)) ; - $value .= $unittext if ($unit && $value ne '') ; + $value = $self -> get_value ($req) if (!defined ($value)) ; + + $self -> SUPER::show_control_readonly ($req, $value, $unit && $value ne ''?$unittext:'') ; + } + +# ------------------------------------------------------------------------------------------ +# +# init_data - daten aufteilen +# + +sub init_data + { + my ($self, $req, $parentctrl, $force) = @_ ; + + my $fdat = $req -> {docdata} || \%fdat ; + my $name = $self->{name} ; + my $val = $fdat->{$name} ; + return if ($val eq '' || (!$force && $req -> {"ef_number_init_done_$name"})) ; + + my $num = $self -> get_display_text ($req, $val, 1) ; + + $fdat->{$name} = $num ; + $req -> {"ef_number_init_done_$name"} = 1 ; + } + +# --------------------------------------------------------------------------- +# +# init_markup - add any dynamic markup to the form data +# + +sub init_markup + + { + my ($self, $req, $parentctl, $method) = @_ ; + + return if (!$self -> is_readonly($req) && (! $parentctl || ! $parentctl -> is_readonly($req))) ; + + my $fdat = $req -> {docdata} || \%fdat ; + my $name = $self->{name} ; + my $val = $fdat->{$name} ; + return if ($val eq '' || ($req -> {"ef_number_init_done_$name"})) ; + + my $num = $self -> get_display_text ($req, $val) ; - $self -> SUPER::show_control_readonly ($req, $value) ; + $fdat->{$name} = $num ; + $req -> {"ef_number_init_done_$name"} = 1 ; } # --------------------------------------------------------------------------- Modified: perl/embperl/trunk/Embperl/Form/Control/price.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/price.pm?rev=1628127&r1=1628126&r2=1628127&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Control/price.pm (original) +++ perl/embperl/trunk/Embperl/Form/Control/price.pm Mon Sep 29 06:48:25 2014 @@ -35,26 +35,22 @@ sub init my ($self) = @_ ; $self -> {use_comma} = 1 if (!defined $self -> {use_comma}) ; - $self->{unit} = '' if (!defined ($self->{unit} )); + $self->{unit} = 'euro' if (!defined ($self->{unit} )); return $self ; } - + # ------------------------------------------------------------------------------------------ # -# init_data - daten aufteilen +# get_display_text - returns the text that should be displayed # -sub init_data +sub get_display_text { - my ($self, $req, $parentctrl, $force) = @_ ; + my ($self, $req, $val, $compact) = @_ ; + + $val = $self -> get_value ($req) if (!defined ($val)) ; - my $fdat = $req -> {docdata} || \%fdat ; - delete $self -> {unit} if ($parentctrl) ; - my $name = $self->{name} ; - my $val = $fdat->{$name} ; - return if ($val eq '' || (!$force && $req -> {"ef_price_init_done_$name"})) ; - my $sep ; my $dec ; my $int ; @@ -83,9 +79,18 @@ sub init_data $int[0] =~ s/^0+// ; $int[0] = '0' if (@int == 1 && !$int[0]) ; $frac = substr ($frac . '00', 0, 2) ; - $fdat->{$name} = ($minus?'-':'') . join ($sep, @int) . $dec . $frac ; - $req -> {"ef_price_init_done_$name"} = 1 ; + my $result = ($minus?'-':'') . join ($sep, @int) . $dec . $frac ; + return $result if ($compact || $val eq '') ; + + my $unit = $self->{unit} ; + my $unittext = !$unit?'':$self -> form -> convert_text ($self, ($unit =~ /:/)?$unit:'unit:' . lc($unit), $unit, $req) ; + $unittext =~ s/^unit:// ; + + return $result . ' ' . $unittext ; } + + + # ------------------------------------------------------------------------------------------ # @@ -179,7 +184,7 @@ Gives the maximun length in characters =head3 unit Gives a string that should be displayed right of the input field. -(Default: ) +(Default: ¤) =head3 use_comma --------------------------------------------------------------------- To unsubscribe, e-mail: embperl-cvs-unsubscr...@perl.apache.org For additional commands, e-mail: embperl-cvs-h...@perl.apache.org