Author: richter
Date: Thu Nov  6 08:41:11 2014
New Revision: 1637051

URL: http://svn.apache.org/r1637051
Log:
Fix tooltip & readonly

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

Modified: perl/embperl/trunk/Embperl/Form.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form.pm?rev=1637051&r1=1637050&r2=1637051&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form.pm (original)
+++ perl/embperl/trunk/Embperl/Form.pm Thu Nov  6 08:41:11 2014
@@ -629,7 +629,7 @@ sub init_data
         }
     foreach my $control (@{$self -> {init_data}})
         {
-        $control -> init_data ($req) if (!$control -> is_disabled ($req) && 
!$control -> is_readonly ($req)) ;
+        $control -> init_data ($req) if ($control -> should_init_data ($req)) ;
         }
     }
 

Modified: perl/embperl/trunk/Embperl/Form/Control.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control.pm?rev=1637051&r1=1637050&r2=1637051&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control.pm Thu Nov  6 08:41:11 2014
@@ -87,10 +87,13 @@ sub is_disabled
     {
     my ($self, $req) = @_ ;
 
-    my $disable = $self -> {disable} || $req -> 
{form_options_masks}{$self->{name}}{disable} || $req -> 
{form_options_masks}{'*'}{disable} ;
-    $disable = &{$disable}($self, $req) if (ref ($disable) eq 'CODE') ;
-
-    return $disable ;
+    foreach my $disable ($self -> {disable}, $req -> 
{form_options_masks}{$self->{name}}{disable}, $req -> 
{form_options_masks}{'*'}{disable})
+        {
+        $disable = &{$disable}($self, $req) if (ref ($disable) eq 'CODE') ;
+        return 1 if ($disable) ;
+        }
+    
+    return ;
     }
 
 # ---------------------------------------------------------------------------
@@ -103,10 +106,12 @@ sub is_blanked
     {
     my ($self, $req) = @_ ;
 
-    my $disable = $self -> {blank} || $req -> 
{form_options_masks}{$self->{name}}{blank} || $req -> 
{form_options_masks}{'*'}{blank} ;
-    $disable = &{$disable}($self, $req) if (ref ($disable) eq 'CODE') ;
-
-    return $disable ;
+    foreach my $blank ($self -> {blank}, $req -> 
{form_options_masks}{$self->{name}}{blank}, $req -> 
{form_options_masks}{'*'}{blank})
+        {
+        $blank = &{$blank}($self, $req) if (ref ($blank) eq 'CODE') ;
+        return 1 if ($blank) ;
+        }
+    return ;    
     }
 
 # ---------------------------------------------------------------------------
@@ -119,10 +124,12 @@ sub is_readonly
     {
     my ($self, $req) = @_ ;
 
-    my $readonly = $self -> {readonly}  || $req -> 
{form_options_masks}{$self->{name}}{readonly} || $req -> 
{form_options_masks}{'*'}{readonly}  ;
-    $readonly = &{$readonly}($self, $req) if (ref ($readonly) eq 'CODE') ;
-
-    return $readonly ;
+    foreach my $readonly ($self -> {readonly}, $req -> 
{form_options_masks}{$self->{name}}{readonly}, $req -> 
{form_options_masks}{'*'}{readonly})
+        {
+        $readonly = &{$readonly}($self, $req) if (ref ($readonly) eq 'CODE') ;
+        return 1 if ($readonly) ;
+        }
+    return ;    
     }
 
 # ---------------------------------------------------------------------------
@@ -153,6 +160,21 @@ sub is_hidden
 
 # ---------------------------------------------------------------------------
 #
+#   should_init_data - returns true if init_data should be called for this 
control
+#
+
+sub should_init_data
+
+    {
+    my ($self, $req) = @_ ;
+
+    return !$self -> is_disabled ($req) && !$self -> is_readonly ($req) ;
+    }
+
+
+
+# ---------------------------------------------------------------------------
+#
 #   has_code_refs - returns true if is_readonly or is_disabled are coderefs
 #
 

Modified: perl/embperl/trunk/Embperl/Form/Control/grid.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/grid.pm?rev=1637051&r1=1637050&r2=1637051&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/grid.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/grid.pm Thu Nov  6 08:41:11 2014
@@ -166,6 +166,7 @@ sub init_data
             }
         }
 
+    my $gridro = $self -> is_readonly ($req) ;
     my $coloffset = defined ($self -> {coloffset})?$self -> {coloffset}:1 ;
     my $data;
     my $i = 0 ;
@@ -200,7 +201,7 @@ sub init_data
                 local $field->{name} = "__${name}_${j}_$i" ;
                 local $field -> {fullid} = "$self->{fullid}_${j}_$i" ;
                 local $field->{dataprefix} ;
-                $field -> init_data ($req, $self)  ;
+                $field -> init_data ($req, $self)  if (!$gridro && $field -> 
should_init_data($req)) ;
                 }
             $j++ ;    
             }
@@ -246,6 +247,19 @@ sub init_markup
         }
     }
 
+# ---------------------------------------------------------------------------
+#
+#   should_init_data - returns true if init_data should be called for this 
control
+#
+
+sub should_init_data
+
+    {
+    my ($self, $req) = @_ ;
+
+    return !$self -> is_disabled ($req) ;
+    }
+
 # 
------------------------------------------------------------------------------------------
 #
 #   prepare_fdat_sub - wird aufgerufen nachdem die einzelen Controls 
abgearbeitet sind abd
@@ -395,6 +409,10 @@ sub get_display_text
     my $field ;
     my $text ;
     my @value ;
+    my $coloffset = defined ($self -> {coloffset})?$self -> {coloffset}:1 ;
+    my $col ;
+    my $colval ;
+    my $val ;
     @value = (ref ($value) eq 'HASH')?init_data_hash (1, $value, 
$fields):@$value ;
     foreach my $rowval (@value)
         {
@@ -404,7 +422,17 @@ sub get_display_text
             $j     = $allfields -> {$fieldname}  ;
             $field = $fields -> [$j] ;
             next if $field -> is_hidden ;
-            $text = $field -> get_display_text ($req, $rowval -> [$j+1], 1) ; 
+            $col = exists $field -> {col}?$field -> {col}:$j ;
+            if ($colval = $field -> {colval})
+                {
+                $val = $rowval->[$col+$coloffset] =~ /\Q$colval\E/?1:0 ;
+                }
+            else
+                {
+                $val = $rowval->[$col+$coloffset] ;
+                }
+
+            $text = $field -> get_display_text ($req, $val, 1) ; 
             push @row, $text if ($text ne '') ;
             }
         push @rows, join (', ', @row) if (@row) ;

Modified: perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm?rev=1637051&r1=1637050&r2=1637051&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm Thu Nov  6 08:41:11 
2014
@@ -104,7 +104,7 @@ my $class = $self -> {class} ;
 
 my $doctypes ;
 my $datasrc = $self -> {datasrc} ;
-if ($datasrc)
+if ($datasrc && !$self -> {no_new})
     {
     my %doctypes ;
     my $datasource = CouchDB::AppServ::DataSource -> get_datasource ($datasrc) 
;
@@ -114,14 +114,13 @@ if ($datasrc)
         my $docclass = CouchDB::AppServ::Docclass -> find_docclass ($doctype) ;
         next if (!$docclass || $docclass -> abstract_doctype eq ref $docclass) 
;
         #next if ($subclass -> is_allowed ('new', $reqdata, $reqdata -> 
{document}) != 1) ;
-        $doctypes{$docclass -> title ($reqdata -> {i18n})} = $docclass -> 
doctype ;            
+        $doctypes{$docclass -> title ($req -> {i18n})} = $docclass -> doctype 
;            
         }
     $doctypes = join (',', map {( $doctypes{$_}, $_) } sort keys %doctypes) ;  
  
     }
 
 $]
-
-<input name="_opt_[+ $name +]" [+ do { local $escmode = 0 ; $self -> 
get_std_control_attr($req, undef, undef, 'ef-context-menu') } +]
+<input name="_opt_[+ $name +]" [+ do { local $escmode = 0 ; $self -> 
get_std_control_attr($req, undef, undef, 'ef-context-menu ' . ($self -> 
{no_button}?'':'ef-control-selectdyn-has-ctrl' )) } +]
 type="text" _ef_attach="ef_selectdyn"
 [$if $self -> {size}            $]size="[+ $self->{size} +]" [$endif$]
 [$if $self -> {showurl}         $]_ef_show_url="[+ $self -> {showurl} +]" 
[$endif$] 
@@ -135,7 +134,7 @@ type="text" _ef_attach="ef_selectdyn"
 [$if $self -> {show_on_select}  $]_ef_show_on_select="[+ $self -> 
{show_on_select}?'1':'' +]" [$endif$] 
 [$if $doctypes                  $]_ef_doctypes="[+ $doctypes +]" [$endif$] 
 >
-[$if !$self -> {no_button} $]<span class="ui-icon ui-icon-triangle-1-s ef-icon 
ef-control-selectdyn-ctrl ef-context-menu"></span>[$endif$]
+[$if !$self -> {no_button} $]<span class="ui-icon ui-icon-triangle-1-s ef-icon 
ef-control-selectdyn-ctrl ef-context-menu [+ $self -> {state} 
+]"></span>[$endif$]
 <input type="hidden" name="[+ $name +]">
 <input type="hidden" name="_id_[+ $name +]">
 [$endsub$]
@@ -245,6 +244,14 @@ If true show the selected item as soon a
 If set to an id of an html element, documents that are loaded via showurl
 are fetch via ajax into this html container, instead of fetching a whole page.
 
+=head3 no_button
+
+Do not show button right of input to select all entries
+
+=head3 no_new
+
+Do add "New" to context menu
+
 =head3 $fdat{-init-<name>}
 
 If set this value is used to prefill the input box, if not set get_values

Modified: perl/embperl/trunk/Embperl/Form/ControlMultValue.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/ControlMultValue.pm?rev=1637051&r1=1637050&r2=1637051&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/ControlMultValue.pm (original)
+++ perl/embperl/trunk/Embperl/Form/ControlMultValue.pm Thu Nov  6 08:41:11 2014
@@ -386,8 +386,10 @@ sub init_markup
         {
         my $name = $self -> {name} ;
         my $fdat = $req -> {docdata} || \%Embperl::fdat ;
-        $fdat -> {'_opt_' . $name} = $self -> get_display_text ($req, $val) ;
-        $fdat -> {'_id_' .  $name} = $self -> get_id_from_value ($val, $req) ;
+        my $opt  = $self -> get_display_text ($req, $val) ;
+        my $id   = $self -> get_id_from_value ($val, $req) ;
+        $fdat -> {'_opt_' . $name} = $opt if ($opt ne '') ;
+        $fdat -> {'_id_' .  $name} = $id  if ($id ne '') ;
         }
     }
     



---------------------------------------------------------------------
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