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

Reply via email to