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-unsubscr...@perl.apache.org For additional commands, e-mail: embperl-cvs-h...@perl.apache.org