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

Reply via email to