Mailing List Archive

svn commit: r1494470 - in /perl/embperl/trunk/Embperl: Form.pm Form/Control/grid.pm Form/Control/mult.pm Form/ControlMultValue.pm
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-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org