Mailing List Archive

svn commit: r1448898 - /perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm
Author: richter
Date: Fri Feb 22 05:23:54 2013
New Revision: 1448898

URL: http://svn.apache.org/r1448898
Log:
selectdyn without need for id attribute

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

Modified: perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm?rev=1448898&r1=1448897&r2=1448898&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm Fri Feb 22 05:23:54 2013
@@ -29,20 +29,43 @@ sub get_std_control_attr
{
my ($self, $req, $id, $type, $addclass) = @_ ;

- if ($type eq 'readonly')
- {
- $id = $req -> {uuid} . '_' . $self -> {name} ;
- my $url = $self -> {showurl} ;
- $url =~ s/%id%/$self -> get_id_from_value ($Embperl::fdat{$self -> {name}})/e ;
- my $attr = $self -> SUPER::get_std_control_attr ($req, $id, $type, 'ef-control-selectdyn-readonly') ;
- return $attr . qq{ onDblClick="\$('#$self->{use_ajax}').ef_document ('load', '$url');"} ;
- }
+ if ($type eq 'readonly')
+ {
+ $id = $req -> {uuid} . '_' . $self -> {name} ;
+ my $url = $self -> {showurl} ;
+ $url =~ s/<id>/$self -> get_id_from_value ($Embperl::fdat{$self -> {name}})/e ;
+ my $attr = $self -> SUPER::get_std_control_attr ($req, $id, $type, 'ef-control-selectdyn-readonly') ;
+ return $attr . qq{ onDblClick="\$('#$self->{use_ajax}').ef_document ('load', '$url');"} ;
+ }

return $self -> SUPER::get_std_control_attr ($req, $id, $type, $addclass) ;
}

# ------------------------------------------------------------------------------------------
#
+# init_data - daten aufteilen
+#
+
+sub init_data
+ {
+ my ($self, $req) = @_ ;
+
+ my $fdat = $req -> {docdata} || \%fdat ;
+ my $opt ;
+ my $id ;
+ my $name = $self -> {name} ;
+ my $val = $fdat -> {$name} ;
+ if ($val ne '')
+ {
+ $opt = $self -> get_option_from_value ($val, $req) ;
+ $id = $self -> get_id_from_value ($val, $req) ;
+ $fdat -> {"_opt_$name"} = $opt ;
+ $fdat -> {"_id_$name"} = $id ;
+ }
+ }
+
+# ------------------------------------------------------------------------------------------
+#
# prepare_fdat - daten zusammenfuehren
#

@@ -54,8 +77,9 @@ sub prepare_fdat

my $fdat = $req -> {form} || \%fdat ;
my $name = $self->{name} ;
- $fdat -> {$name} = '' if (exists ($fdat -> {"_inp_$name"}) && $fdat -> {"_inp_$name"} eq '') ;
- delete $fdat -> {"_inp_$name"} ;
+ $fdat -> {$name} = '' if (exists ($fdat -> {"_opt_$name"}) && $fdat -> {"_opt_$name"} eq '') ;
+ delete $fdat -> {"_opt_$name"} ;
+ delete $fdat -> {"_id_$name"} ;
}

# ---------------------------------------------------------------------------
@@ -81,33 +105,13 @@ __EMBPERL__
my $id = $req -> {uuid} . '_' . $self -> {name} ;

my $url = $self -> {popupurl} ;
-$url =~ s/%id%/$self -> get_id_from_value ($Embperl::fdat{$self -> {name}})/e ;
+$url =~ s/<id>/$self -> get_id_from_value ($Embperl::fdat{$self -> {name}})/e ;

$]
[- $self -> SUPER::show_control_readonly ($req, $option) ; -]
<script>add_qtip($('#[+ $id +]'), '[+ $url +]');</script>
[$endsub$]

-[# ---------------------------------------------------------------------------
-#
-# show_hidden - out hidden field
-#]
-
-[.$ sub xshow_hidden ($self, $req)
-my $noscript = $req -> {epf_no_script} ;
-$]
-<input type="hidden" name="[+ $self -> {name} +]" id="[+ $self -> {name} +]">
-<[$if $noscript $]x-[$endif$]script type="text/javascript">
-control_link_setup($( "#_inp_[+ $self -> {name} +]" ), {
- showurl: '[.+ do { local $escmode = 0 ; $self -> {showurl} } +]',
- popupurl: '[.+ do { local $escmode = 0 ; $self -> {popupurl} } +]',
- use_ajax: '[+ $self->{use_ajax} +]',
- }) ;
-</[$if $noscript $]x-[$endif$]script >
-
-[$endsub$]
-
-


[.# ---------------------------------------------------------------------------
@@ -117,83 +121,39 @@ control_link_setup($( "#_inp_[.+ $self ->

[.$ sub show_control ($self, $req, $filter)

- my $name = $self -> {name} ;
- #$filter ||= $self -> {filter} ;
- #my $addtop = $self -> {addtop} || [] ;
- #my $addbottom= $self -> {addbottom} || [] ;
- my $noscript = $req -> {epf_no_script} ;
- my $nsprefix = $self -> form -> {jsnamespace} ;
- my $jsname = $req -> {uuid} . '_' . $name ;
- if ($noscript)
- {
- $jsname =~ s/[^a-zA-Z0-9%]/_/g ;
- }
- else
- {
- $jsname =~ s/[^a-zA-Z0-9]/_/g ;
- }
- $self -> {size} ||= 75 / ($self -> {width} || 2) ;
- my $initval ;
- my $fdatval = $fdat{$name} ;
- if ($fdatval ne '')
- {
-
- if (exists $fdat{"-init-$name"})
- {
- $initval = $fdat{"-init-$name"} ;
- }
- else
- {
- $initval = $self -> get_option_from_value ($fdatval, $req) ;
- }
- }
- $target = '' ;
- $target = "parent.frames.$self->{link_target}." if ($self -> {link_target}) ;
- $self -> {datasrcurl} ||= '/epfctrl/datasrc.json?datasrc=%datasrc%' ;
- my $class = $self -> {class} ;
+my $name = $self -> {name} ;
+my $class = $self -> {class} ;
$]
-[# <div class="ui-widget"> #]
-[# --- input --- #]
-<input name="_inp_[+ $name +]" [.+ do { local $escmode = 0 ; $self -> get_std_control_attr($req, "_inp_$jsname") } +] type="text"
-[$if $self -> {size} $]size="[+ $self->{size} +]"[$endif$]
-value="[+ $initval +]"
->
-
-<input type="hidden" name="[+ $name +]" id="[+ $jsname +]" >
-[#
-<input type="hidden" name="[+ "_id_$jsname" +]" id="[+ "_id_$jsname" +]" value="[+ $self -> get_id_from_value ($fdat{$name}) +]">
-#]
-<[$if $noscript $]x-[$endif$]script type="text/javascript">
-$( "#_inp_[+ $jsname +]" ).ef_selectdyn(
- {
- show_url: '[.+ do { local $escmode = 0 ; $self -> {showurl} } +]',
- popup_url: '[.+ do { local $escmode = 0 ; $self -> {popupurl} } +]',
- datasrc_url: '[.+ do { local $escmode = 0 ; $self -> {datasrcurl} } +]',
- datasrc: '[+ $self->{datasrc} +]',
- datasrc_term_max: [+ $self->{datasrctermmax} + 0 +],
- use_ajax: '[+ $self->{use_ajax} +]',
- show_on_select: [+ $self->{show_on_select}?'true':'false' +],
- initial_id: "[+ $self -> get_id_from_value ($fdat{$name}) +]",
- input_value: $('#[+ $jsname +]')
- }) ;
-</[$if $noscript $]x-[$endif$]script >

+<input name="_opt_[+ $name +]" [.+ do { local $escmode = 0 ; $self -> get_std_control_attr($req) } +]
+type="text" _ef_attach="ef_selectdyn"
+[$if $self -> {size} $]size="[+ $self->{size} +]" [$endif$]
+[$if $self -> {showurl} $]_ef_show_url="[+ $self -> {showurl} +]" [$endif$]
+[$if $self -> {popupurl} $]_ef_popup_url="[+ $self -> {popupurl} +]" [$endif$]
+[$if $self -> {datasrcurl} $]_ef_datasrc_url="[+ $self -> {datasrcurl} +]" [$endif$]
+[$if $self -> {datasrc} $]_ef_datasrc_nam="[+ $self -> {datasrc} +]" [$endif$]
+[$if $self -> {datasrctermmax} $]_ef_datasrc_term_max="[+ $self -> {datasrctermmax} +]" [$endif$]
+[$if $self -> {use_ajax} $]_ef_use_ajax="[+ $self -> {use_ajax} +]" [$endif$]
+[$if $self -> {show_on_select} $]_ef_show_on_select="[+ $self -> {show_on_select}?'1':'' +]" [$endif$]
+>
+<input type="hidden" name="[+ $name +]">
+<input type="hidden" name="_id_[+ $name +]">
[$endsub$]


__END__
-, afterUpdateElement: [+ $jsname +]savevalue
+
=pod

=head1 NAME

-Embperl::Form::Control::select - A select control inside an Embperl Form
+Embperl::Form::Control::selectdyn - A dynamic select control inside an Embperl Form


=head1 SYNOPSIS

{
- type => 'select',
+ type => 'selectdyn',
text => 'blabla',
name => 'foo',
values => [1,2,3],



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