Author: richter Date: Wed Jun 19 06:41:52 2013 New Revision: 1494470 URL: http://svn.apache.org/r1494470 Log: Embperl::Form fix readonly display
Modified: perl/embperl/trunk/Embperl/Form.pm perl/embperl/trunk/Embperl/Form/Control/grid.pm perl/embperl/trunk/Embperl/Form/Control/mult.pm perl/embperl/trunk/Embperl/Form/ControlMultValue.pm Modified: perl/embperl/trunk/Embperl/Form.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form.pm?rev=1494470&r1=1494469&r2=1494470&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form.pm (original) +++ perl/embperl/trunk/Embperl/Form.pm Wed Jun 19 06:41:52 2013 @@ -606,11 +606,11 @@ sub init_data sub init_markup { - my ($self, $req, $grid, $method) = @_ ; + my ($self, $req, $parentctl, $method) = @_ ; foreach my $control (@{$self -> {init_markup}}) { - $control -> init_markup ($req, $grid, $method) ; + $control -> init_markup ($req, $parentctl, $method) ; } } Modified: perl/embperl/trunk/Embperl/Form/Control/grid.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/grid.pm?rev=1494470&r1=1494469&r2=1494470&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Control/grid.pm (original) +++ perl/embperl/trunk/Embperl/Form/Control/grid.pm Wed Jun 19 06:41:52 2013 @@ -316,6 +316,63 @@ sub prepare_fdat } +# ------------------------------------------------------------------------------------------ +# +# get_display_text - returns the text that should be displayed +# + +sub get_display_text + { + my ($self, $req, $value) = @_ ; + + return '' if (!ref $value) ; + + my $name = $self -> {name} ; + my $fields = $self -> {'fields'}; + my $showfields = $req -> {'grid_gtf_' . $name} ; + my $allfields = $req -> {'grid_gta_' . $name} ; + if (!$showfields) + { + my $fdat = $req -> {docdata} || \%Embperl::fdat ; + my $max = $fdat -> {"__${name}_max"} ||= 0 ; + my $flat = $self -> {flat} ; + my @flat = split /\s*;\s*/, $flat ; + my $i = 0 ; + my @fields ; + my %fields ; + foreach my $field (@$fields) + { + $fields{$field -> {name}} = $i ; + push @fields, $field -> {name} ; + $i++ ; + } + @fields = @flat if (@flat) ; + $req -> {'grid_gtf_' . $name} = $showfields = \@fields ; + $req -> {'grid_gta_' . $name} = $allfields = \%fields ; + } + + my @data ; + my $fieldname ; + my $j ; + my @row ; + my $field ; + foreach $fieldname (@$showfields) + { + $j = $allfields -> {$fieldname} ; + $field = $fields -> [$j] ; + next if $field -> is_hidden ; + if ($field -> {datasrcobj}) + { + push @row, $field -> get_option_from_value ($value -> [$j+1], $req) ; + } + else + { + push @row, $value -> [$j+1] ; + } + } + + return join (', ', @row) ; + } 1 ; __EMBPERL__ @@ -325,7 +382,7 @@ __EMBPERL__ # show_control_readonly - output readonly grid #] -[$ sub show_control_readonly ($self, $req) +[$ sub xshow_control_readonly ($self, $req) my $name = $self -> {name} ; my $max = $fdat{"__${name}_max"} ||= 0 ; Modified: perl/embperl/trunk/Embperl/Form/Control/mult.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/mult.pm?rev=1494470&r1=1494469&r2=1494470&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Control/mult.pm (original) +++ perl/embperl/trunk/Embperl/Form/Control/mult.pm Wed Jun 19 06:41:52 2013 @@ -128,6 +128,20 @@ sub prepare_fdat } } +# ------------------------------------------------------------------------------------------ +# +# get_display_text - returns the text that should be displayed +# + +sub get_display_text + { + my ($self, $req, $value) = @_ ; + + $self -> Embperl::Form::ControlMultValue::show ($req, $value) ; + } + +# ------------------------------------------------------------------------------------------ + sub show { $_[0] -> {fullid} = $_[1] -> {uuid} . '_' . $_[0] -> {id} ; Modified: perl/embperl/trunk/Embperl/Form/ControlMultValue.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/ControlMultValue.pm?rev=1494470&r1=1494469&r2=1494470&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/ControlMultValue.pm (original) +++ perl/embperl/trunk/Embperl/Form/ControlMultValue.pm Wed Jun 19 06:41:52 2013 @@ -302,7 +302,28 @@ sub get_display_text return $value ; } +# --------------------------------------------------------------------------- +# +# init_markup - add any dynamic markup to the form data +# + +sub init_markup + + { + my ($self, $req, $parentctl, $method) = @_ ; + return if (!$self -> is_readonly() && (! $parentctl || ! $parentctl -> is_readonly())) ; + + my $val = $self -> get_value ($req) ; + if ($val ne '') + { + my $name = $self -> {name} ; + my $fdat = $req -> {docdata} || \%Embperl::fdat ; + $fdat -> {'_opt_' . $name} = $self -> get_option_from_value ($val, $req) ; + $fdat -> {'_id_' . $name} = $self -> get_id_from_value ($val, $req) ; + } + } + 1 ; # damit %fdat etc definiert ist @@ -311,6 +332,24 @@ __EMBPERL__ [# --------------------------------------------------------------------------- # +# show_control_readonly - output the control as readonly +#] + +[$ sub show_control_readonly ($self, $req, $value) + +my $text = $self -> get_display_text ($req, $value) ; +my $id = $self -> get_id_from_value ($val, $req) ; +my $name = $self -> {force_name} || $self -> {name} ; +$] +<div [+ do { local $escmode = 0 ; $self -> get_std_control_attr($req, '', 'readonly', 'ef-control-with-id') } +] _ef_divname="_opt_[+ $name +]">[+ $text +]</div> +[$ if $self->{hidden} $] +<input type="hidden" name="[+ $name +]" value="[+ $value +]"> +[$endif$] +<input type="hidden" name="_id_[+ $name +]" value="[+ $id +]"> +[$endsub$] + +[# --------------------------------------------------------------------------- +# # show_control_addons - output additional things after the control #] --------------------------------------------------------------------- To unsubscribe, e-mail: embperl-cvs-unsubscr...@perl.apache.org For additional commands, e-mail: embperl-cvs-h...@perl.apache.org