You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl-cvs@perl.apache.org by ri...@apache.org on 2011/07/29 06:53:14 UTC
svn commit: r1152101 - in /perl/embperl/trunk/Embperl: Form.pm
Form/Control/grid.pm Form/Control/mult.pm Form/Control/selectdyn.pm
Author: richter
Date: Fri Jul 29 04:53:13 2011
New Revision: 1152101
URL: http://svn.apache.org/viewvc?rev=1152101&view=rev
Log:
Fixes for grid and mult
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/Control/selectdyn.pm
Modified: perl/embperl/trunk/Embperl/Form.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form.pm?rev=1152101&r1=1152100&r2=1152101&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form.pm (original)
+++ perl/embperl/trunk/Embperl/Form.pm Fri Jul 29 04:53:13 2011
@@ -66,6 +66,8 @@ sub sub_new
$self -> {valign} = $options -> {valign} || 'top' ;
$self -> {jsnamespace} = $options -> {jsnamespace} || '' ;
$self -> {jsnamespace} .= '.' if ($self -> {jsnamespace}) ;
+ $self -> {control_packages} = $options -> {control_packages} ;
+ $self -> {datasrc_packages} = $options -> {datasrc_packages} ;
bless $self, $class if (!ref $class);
@@ -1090,6 +1092,17 @@ Gives the CSS class of the DIV arround t
If set to true, allow to call the function diff_checkitems after the data is
posted and see which form fields are changed.
+=item * control_packages
+
+Arrayref with package names to search for form controls. Alternativly you can
+overwrite the method get_control_packages.
+
+=item * datasrc_packages
+
+Arrayref with package names to search for form data source modules. Alternativly you can
+overwrite the method get_datasrc_packages.
+
+
=back
=back
Modified: perl/embperl/trunk/Embperl/Form/Control/grid.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/grid.pm?rev=1152101&r1=1152100&r2=1152101&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/grid.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/grid.pm Fri Jul 29 04:53:13 2011
@@ -90,17 +90,17 @@ sub init_data
foreach my $field (@$fields)
{
$col = exists $field -> {col}?$field -> {col}:$j ;
- $fdat->{"${name}_${j}_$i"} = $data->[$col] ;
+ $fdat->{"__${name}_${j}_$i"} = $data->[$col] ;
if ($field -> can ('init_data'))
{
- local $field->{name} = "${name}_${j}_$i" ;
+ local $field->{name} = "__${name}_${j}_$i" ;
$field -> init_data ($req, $self) ;
}
$j++ ;
}
$i++ ;
}
- $fdat->{"$name-max"} = $i?$i:1;
+ $fdat->{"__${name}_max"} = $i?$i:1;
}
# ------------------------------------------------------------------------------------------
@@ -130,7 +130,7 @@ sub prepare_fdat
my $ldap = $req->{ldap};
my $name = $self->{name} ;
my $fields = $self -> {fields} ;
- my $max = $fdat->{"$name-max"} ;
+ my $max = $fdat->{"__${name}_max"} ;
my @rows;
my $j ;
@@ -147,7 +147,7 @@ sub prepare_fdat
{
if ((ref ($field) =~ /::/) && $field -> can ('prepare_fdat'))
{
- local $field->{name} = "${name}_${j}_$i" ;
+ local $field->{name} = "__${name}_${j}_$i" ;
$field -> prepare_fdat ($req) ;
}
$ok++ ;
@@ -156,7 +156,7 @@ sub prepare_fdat
next if (!$ok) ;
- $order = $fdat->{"$name-#row#-$i"} ;
+ $order = $fdat->{"__${name}_#row#_$i"} ;
next if (!defined($order)) ;
$order = $i + 10000 if (!defined($order)) ;
$orders{$order} = $i ;
@@ -172,7 +172,7 @@ sub prepare_fdat
foreach my $field (@$fields)
{
$col = exists $field -> {col}?$field -> {col}:$j ;
- $data[$col+1] = $fdat->{"${name}_${j}_$i"} ;
+ $data[$col+1] = $fdat->{"__${name}_${j}_$i"} ;
$j++ ;
}
$val = $ldap?ecos::LdapBase -> joinAttrValue(\@data):\@data ;
@@ -180,11 +180,11 @@ sub prepare_fdat
}
$fdat->{$name} = \@rows ;
-
foreach my $key (keys %$fdat)
{
- delete $fdat->{$key} if ($key =~ /^\Q$name-\E/) ;
+ delete $fdat->{$key} if ($key =~ /^__\Q$name\E_/) ;
}
+
}
1 ;
@@ -205,7 +205,7 @@ __EMBPERL__
my $jsname = $name ;
$jsname =~ s/[^a-zA-Z0-9]/_/g ;
$jsname .= 'Grid' ;
- my $max = $fdat{"$name-max"} ;
+ my $max = $fdat{"__${name}_max"} ;
my $on_grid_change = $self -> {on_grid_change} ;
$]
<td class="cBase cLabelBox" colspan="[+ $span +]">
@@ -214,14 +214,14 @@ $]
my $span = 0 ;
$self -> show_grid_title ($jsname);
-]
- <input type="hidden" name="[+ $self -> {name} +]-max" id="[+ $self -> {id} +]-max">
+ <input type="hidden" name="__[+ $self -> {name} +]_max" id="__[+ $self -> {id} +]_max">
<table class="cGridTable cBase" id="[+ $self -> {id} +]">
[- $self -> show_grid_header ($req); -]
[- $self -> show_grid_table ($req) ; -]
</table>
[- $self -> show_grid_title ($jsname)
if ($max > $self -> {header_bottom}) -]
- <table id="[+ $self -> {id} +]-newrow" style="display: none">
+ <table id="__[+ $self -> {id} +]_newrow" style="display: none">
[-
local $req -> {epf_no_script} = 1 ;
$self -> show_grid_table_row ($req, '%row%') ;
@@ -229,11 +229,6 @@ $]
</table>
<script>
$('#[+ $self -> {id} +]').eplgrid ([$if $on_grid_change $]{'onchange': [+ $on_grid_change +] }[$endif$]) ;
- [#
- [+ $jsname +] = new [+ $nsprefix +]Grid (document.getElementById('[+ $self -> {id} +]'),
- document.getElementById('[+ $self -> {id} +]-newrow'),
- document.getElementById('[+ $self -> {id} +]-max')) ;
- #]
</script>
</td>
[$endsub$]
@@ -298,8 +293,8 @@ $]
<tr class="cGridRow" id="[+ "$id-row-$i" +]">
[$foreach $field (@$fields)$]
[- $ro = $gridro || $field -> is_readonly ; -]
- <td class="[+ $ro?'cGridCellReadonly':'cGridCell' +]">[$if $n++ == 0$]<input type="hidden" name="[+ "$name-#row#-$i" +]" value="[+ $i +]">[$endif$][-
- local $field -> {name} = "${name}_${j}_$i" ;
+ <td class="[+ $ro?'cGridCellReadonly':'cGridCell' +]">[$if $n++ == 0$]<input type="hidden" name="[+ "__${name}_#row#_$i" +]" value="[+ $i +]">[$endif$][-
+ local $field -> {name} = "__${name}_${j}_$i" ;
if ($ro)
{
$field -> show_control_readonly ($req)
@@ -324,7 +319,7 @@ $]
my $fields = $self -> {fields} ;
my $id = $self -> {id};
my $i = 0 ;
- my $max = $fdat{"$name-max"} || 1 ;
+ my $max = $fdat{"__${name}_max"} || 1 ;
$]
<tbody>
Modified: perl/embperl/trunk/Embperl/Form/Control/mult.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/mult.pm?rev=1152101&r1=1152100&r2=1152101&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/mult.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/mult.pm Fri Jul 29 04:53:13 2011
@@ -71,16 +71,16 @@ sub init_data
my $fdat = $req -> {docdata} || \%fdat ;
my $name = $self->{name} ;
- my @entries = split("\t",$fdat->{$name});
+ my @entries = ref $fdat->{$name} eq 'ARRAY'?@{$fdat->{$name}}:split("\t",$fdat->{$name});
my $i = 0 ;
foreach my $entry (@entries)
{
- $fdat->{"$name--$i"} = $entry ;
+ $fdat->{"__${name}__$i"} = $entry ;
$i++ ;
}
- $fdat->{"$name-max"} = $i?$i:1;
+ $fdat->{"__${name}_max"} = $i?$i:1;
}
# ------------------------------------------------------------------------------------------
@@ -92,21 +92,26 @@ sub prepare_fdat
{
my ($self, $req) = @_ ;
my $fdat = $req -> {form} || \%fdat ;
- my $ldap = $req->{ldap};
my $name = $self->{name} ;
- my $max = $fdat->{"$name-max"} || 1 ;
+ my $max = $fdat->{"__${name}_max"} || 1 ;
my @rows;
my $val ;
for (my $i = 0; $i < $max; $i++)
{
- $val = $fdat->{"$name--$i"} ;
+ $val = $fdat->{"__${name}__$i"} ;
push @rows, $val if ($val ne '') ;
}
$fdat->{$name} = \@rows ;
+
+ foreach my $key (keys %$fdat)
+ {
+ delete $fdat->{$key} if ($key =~ /^__\Q$name\E__/) ;
+ }
}
sub show { Embperl::Form::Control::show (@_) }
+sub show_control_readonly { my $self = shift ; $self -> show_control (@_) }
1 ;
@@ -121,36 +126,45 @@ __EMBPERL__
[$ sub show_control ($self, $req)
my $name = $self -> {name} ;
+ my $max = $fdat{"__${name}_max"} ;
+
my $span = ($self->{width_percent}) ;
my $nsprefix = $self -> form -> {jsnamespace} ;
my $jsname = $name ;
$jsname =~ s/[^a-zA-Z0-9]/_/g ;
$jsname .= 'Grid' ;
- my $max = $fdat{"$name-max"} ;
+ my $on_grid_change = $self -> {on_grid_change} ;
$]
+[$ if ($max == 1 && $self -> is_readonly() ) $]
+[-
+ my $field = $self -> {fields}[0] ;
+ local $field -> {name} = "__${name}__0" ;
+ $field -> show_control_readonly ($req) ;
+-]
+[$else$]
+
[-
$fdat{$name} = $self -> {default} if ($fdat{$name} eq '' && exists ($self -> {default})) ;
my $span = 0 ;
-]
- <input type="hidden" name="[+ $self -> {name} +]-max" id="[+ $self -> {id} +]-max">
+ <input type="hidden" name="__[+ $self -> {name} +]_max" id="__[+ $self -> {id} +]_max">
<table class="[+ $self -> {class} +]Table cBase" id="[+ $self -> {id} +]">
[- $self -> show_grid_table ($req) ; -]
</table>
- <table id="[+ $self -> {id} +]-newrow" style="display: none">
+ <table id="__[+ $self -> {id} +]_newrow" style="display: none">
[-
local $req -> {epf_no_script} = 1 ;
$self -> show_grid_table_row ($req, '%row%') ;
-]
</table>
- <script>
- $('#[+ $self -> {id} +]').eplgrid () ;
- [#
- [+ $jsname +] = new [+ $nsprefix +]Grid (document.getElementById('[+ $self -> {id} +]'),
- [+ $jsname +] = new [+ $nsprefix +]Grid (document.getElementById('[+ $self -> {id} +]'),
- document.getElementById('[+ $self -> {id} +]-newrow'),
- document.getElementById('[+ $self -> {id} +]-max')) ;
- #]
- </script>
+
+
+[$if (! $self -> is_readonly ()) $]
+ <[$if $noscript $]x-[$endif$]script>
+ $('#[+ $self -> {id} +]').eplgrid ([$if $on_grid_change $]{'onchange': [+ $on_grid_change +] }[$endif$]) ;
+ </[$if $noscript $]x-[$endif$]script>
+[$endif$]
+[$endif$]
[$endsub$]
@@ -168,14 +182,22 @@ $]
my $jsname = $name ;
$jsname =~ s/[^a-zA-Z0-9]/_/g ;
$jsname .= 'Grid' ;
+ my $ro = $self -> is_readonly () ;
$]
<tr class="cGridRow" id="[+ "$id-row-$i" +]">
<td class="[+ $self -> {class} +]Cell">
[-
- local $field -> {name} = "$name--$i" ;
- $field -> show_control ($req)
+ local $field -> {name} = "__${name}__$i" ;
+ if ($ro)
+ {
+ $field -> show_control_readonly ($req)
+ }
+ else
+ {
+ $field -> show_control ($req)
+ }
-]
</td>
</tr>
@@ -190,9 +212,10 @@ $]
$]
-
+[$if (! $self -> is_readonly ()) $]
<img src="[+ $self -> {imagedir} +]/btn_add.gif" id="[+ $self -> {id} +]-add" title="Zeile Hinzufügen">
<img src="[+ $self -> {imagedir} +]/btn_del.gif" id="[+ $self -> {id} +]-del" title="Zeile Löschen">
+[$endif$]
[$endsub$]
[# ---------------------------------------------------------------------------
@@ -205,7 +228,7 @@ $]
my $fields = $self -> {fields} ;
my $id = $self -> {id};
my $i = 0 ;
- my $max = $fdat{"$name-max"} || 1 ;
+ my $max = $fdat{"__${name}_max"} || 1 ;
$]
[* for ($i = 0; $i < $max ; $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=1152101&r1=1152100&r2=1152101&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm Fri Jul 29 04:53:13 2011
@@ -161,7 +161,7 @@ autocomplete_setup($( "#_inp_[+ $jsname
use_ajax: '[+ $self->{use_ajax} +]',
show_on_select: [+ $self->{show_on_select}?'true':'false' +]
}) ;
-</[$if $noscript $]x-[$endif$]script type="text/javascript">
+</[$if $noscript $]x-[$endif$]script >
[$endsub$]
---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org