Mailing List Archive

svn commit: r1688196 - in /perl/embperl/trunk/Embperl/Form: Control/mult.pm Control/selectdyn.pm ControlMultValue.pm DataSource.pm
Author: richter
Date: Mon Jun 29 12:19:27 2015
New Revision: 1688196

URL: http://svn.apache.org/r1688196
Log:
Support for posting options or ids, insetad of values for ControlMultValue

Modified:
perl/embperl/trunk/Embperl/Form/Control/mult.pm
perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm
perl/embperl/trunk/Embperl/Form/ControlMultValue.pm
perl/embperl/trunk/Embperl/Form/DataSource.pm

Modified: perl/embperl/trunk/Embperl/Form/Control/mult.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/mult.pm?rev=1688196&r1=1688195&r2=1688196&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/mult.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/mult.pm Mon Jun 29 12:19:27 2015
@@ -105,11 +105,35 @@ sub prepare_fdat
my $max = $fdat->{"__${name}_max"} || 1 ;

my $field = $self -> {fields}[0] ;
+ my $fieldprep = (ref ($field) =~ /::/) && $field -> can ('prepare_fdat') ;
my @rows;
my $val ;
+ if ($fieldprep && $fdat -> {$name} eq '')
+ {
+ if (exists ($fdat -> {"_opt_$name"}))
+ {
+ my @vals = split (/\s*,\s*/, $fdat -> {"_opt_$name"}) ;
+ $max = @vals ;
+ for (my $i = 0; $i < $max; $i++)
+ {
+ $val = $fdat->{"_opt___${name}__$i"} = shift @vals ;
+ }
+ }
+ elsif (exists ($fdat -> {"_id_$name"}))
+ {
+ my @vals = split (/\s*,\s*/, $fdat -> {"_id_$name"}) ;
+ $max = @vals ;
+ for (my $i = 0; $i < $max; $i++)
+ {
+ $val = $fdat->{"_id___${name}__$i"} = shift @vals ;
+ }
+ }
+ }
+
+
for (my $i = 0; $i < $max; $i++)
{
- if ((ref ($field) =~ /::/) && $field -> can ('prepare_fdat'))
+ if ($fieldprep)
{
local $field->{name} = "__${name}__$i" ;
local $field -> {fullid} = "$self->{fullid}__$i" ;

Modified: perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm?rev=1688196&r1=1688195&r2=1688196&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm Mon Jun 29 12:19:27 2015
@@ -65,7 +65,7 @@ sub init_data
# prepare_fdat - daten zusammenfuehren
#

-sub prepare_fdat
+sub xprepare_fdat
{
my ($self, $req) = @_ ;


Modified: perl/embperl/trunk/Embperl/Form/ControlMultValue.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/ControlMultValue.pm?rev=1688196&r1=1688195&r2=1688196&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/ControlMultValue.pm (original)
+++ perl/embperl/trunk/Embperl/Form/ControlMultValue.pm Mon Jun 29 12:19:27 2015
@@ -284,6 +284,91 @@ sub get_option_from_value

# ---------------------------------------------------------------------------
#
+# get_value_from_option - returns the value for a given option
+#
+# in $option option
+# ret value
+#
+
+sub get_value_from_option
+
+ {
+ my ($self, $option, $req) = @_ ;
+
+ my $addtop = $self -> {addtop} ;
+ if ($addtop)
+ {
+ foreach (@$addtop)
+ {
+ if ($_ -> [1] eq $option)
+ {
+ return $_ -> [0] ;
+ }
+ }
+ }
+
+ if ($self->{datasrc})
+ {
+ my $value = $self -> {datasrcobj} -> get_value_from_option ($option, $req, $self) ;
+
+ return $value if (defined ($value)) ;
+ }
+ elsif (ref $self -> {options})
+ {
+ my $i = 0 ;
+ my $options = $self -> {options} ;
+ $options = $self -> form -> convert_options ($self, $self -> {options}, $options, $req)
+ if (!$self -> {showoptions}) ;
+ foreach (@$options)
+ {
+ if ($_ eq $option)
+ {
+ return $self -> {values}[$i] ;
+ }
+ $i++ ;
+ }
+ }
+
+ my $addbottom = $self -> {addbottom} ;
+ if ($addbottom)
+ {
+ foreach (@$addbottom)
+ {
+ if ($_ -> [1] eq $option)
+ {
+ return $_ -> [0] ;
+ }
+ }
+ }
+
+ return ;
+ }
+
+# ---------------------------------------------------------------------------
+#
+# get_value_from_id - returns the value for a given id
+#
+# in $id id
+# ret value
+#
+
+sub get_value_from_id
+
+ {
+ my ($self, $id, $req) = @_ ;
+
+ if ($self->{datasrc})
+ {
+ my $value = $self -> {datasrcobj} -> get_value_from_id ($id, $req, $self) ;
+
+ return $value if (defined ($value)) ;
+ }
+
+ return ;
+ }
+
+# ---------------------------------------------------------------------------
+#
# get_active_id - get the id of the value which is currently active
#

@@ -393,6 +478,41 @@ sub init_markup
$fdat -> {'_id_' . $name} = $id if ($id ne '') ;
}
}
+
+# ------------------------------------------------------------------------------------------
+#
+# prepare_fdat - daten zusammenfuehren
+#
+
+sub prepare_fdat
+ {
+ my ($self, $req) = @_ ;
+
+ return if ($self -> is_readonly ($req)) ;
+
+ my $fdat = $req -> {form} || \%fdat ;
+ my $name = $self->{name} ;
+ if (exists ($fdat -> {"_opt_$name"}))
+ {
+ if ($fdat -> {"_opt_$name"} eq '')
+ {
+ $fdat -> {$name} = '' ;
+ }
+ elsif ($fdat -> {$name} eq '')
+ {
+ $fdat -> {$name} = $self -> get_value_from_option ($fdat -> {"_opt_$name"}, $req) ;
+ }
+ }
+ elsif (exists ($fdat -> {"_id_$name"}))
+ {
+ if ($fdat -> {$name} eq '')
+ {
+ $fdat -> {$name} = $self -> get_value_from_id ($fdat -> {"_id_$name"}, $req) ;
+ }
+ }
+ delete $fdat -> {"_opt_$name"} ;
+ delete $fdat -> {"_id_$name"} ;
+ }

1 ;


Modified: perl/embperl/trunk/Embperl/Form/DataSource.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/DataSource.pm?rev=1688196&r1=1688195&r2=1688196&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/DataSource.pm (original)
+++ perl/embperl/trunk/Embperl/Form/DataSource.pm Mon Jun 29 12:19:27 2015
@@ -161,6 +161,51 @@ sub get_option_from_value
return ;
}

+# ---------------------------------------------------------------------------
+#
+# get_value_from_option - returns the value for a given option
+#
+# in $option option
+# ret value
+#
+
+sub get_value_from_option
+
+ {
+ my ($self, $option, $req, $ctrl) = @_ ;
+
+
+ my ($values, $options) = $self -> get_values ($req, $ctrl) ;
+
+ my $i = 0 ;
+ foreach (@$options)
+ {
+ if ($_ eq $option)
+ {
+ return $values -> [$i] ;
+ }
+ $i++ ;
+ }
+
+ return ;
+ }
+
+# ---------------------------------------------------------------------------
+#
+# get_value_from_id - returns the value for a given id
+#
+# in $id id
+# ret value
+#
+
+sub get_value_from_id
+
+ {
+ my ($self, $option, $req, $ctrl) = @_ ;
+
+ return ;
+ }
+

# ---------------------------------------------------------------------------
#



---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org