Author: richter
Date: Mon Nov 26 23:14:45 2007
New Revision: 598537

URL: http://svn.apache.org/viewvc?rev=598537&view=rev
Log:
Embperl::Form layout improvements

Modified:
    perl/embperl/trunk/Embperl/Form.pm
    perl/embperl/trunk/Embperl/Form/Control.pm
    perl/embperl/trunk/Embperl/Form/Control/button.pm
    perl/embperl/trunk/Embperl/Form/Control/file.pm
    perl/embperl/trunk/Embperl/Form/Control/input.pm
    perl/embperl/trunk/Embperl/Form/Control/number.pm
    perl/embperl/trunk/Embperl/Form/Control/password.pm
    perl/embperl/trunk/Embperl/Form/Control/radio.pm
    perl/embperl/trunk/Embperl/Form/Control/select.pm
    perl/embperl/trunk/Embperl/Form/Control/table.pm
    perl/embperl/trunk/Embperl/Form/ControlMultValue.pm
    perl/embperl/trunk/Embperl/Form/DataSource.pm

Modified: perl/embperl/trunk/Embperl/Form.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form.pm (original)
+++ perl/embperl/trunk/Embperl/Form.pm Mon Nov 26 23:14:45 2007
@@ -33,6 +33,8 @@
 our %forms ;
 our %CLEANUP = ('forms' => 0) ;
 
+use vars qw{$epreq} ;
+
 # ---------------------------------------------------------------------------
 #
 #   new - create a new form
@@ -519,7 +521,9 @@
 #
 #   add_tabs
 #
-#   fügt ein tab elsement mit subforms zu einem Formular hinzu
+#   fügt ein tab element mit subforms zu einem Formular hinzu
+#   wird nur eine Subform übergeben, werden nur diese Felder zurückgeliefert
+#      ohne tabs
 #
 #   in $subform     array mit hashs
 #                       text => <anzeige text>
@@ -545,14 +549,19 @@
         push @options, $file -> {text};
         if ($fn)
             {
-            my $obj = Execute ({object => "./$fn"} ) ;
-            #$subfields = eval {$obj -> fields ($r, {%$file, %$args}) || 
undef};
+            my $obj = Execute ({object => $fn} ) ;
+            $subfields = eval {$obj -> fields ($epreq, {%$file, %$args}) || 
undef};
             }
         push @forms,  $subfields;
         push @grids,  $file -> {grid};
         push @values, $file -> {value} ||= scalar(@forms);
         }
 
+    if (@forms == 1)
+       {
+       return @{$forms[0]} ;
+       }
+
     return {
             section => 'cSectionText',
             name    => '__auswahl',
@@ -696,18 +705,19 @@
 #   Can be overwritten to allow for example internationalization.
 #
 #   in $ctrl        Embperl::Form::Control object
+#      $name        optional: name to translate, if not given take $ctrl -> 
{name}
 #
 
 sub convert_label
     {
-    my ($self, $ctrl) = @_ ;
+    my ($self, $ctrl, $name) = @_ ;
     
-    return $ctrl->{text} || $ctrl->{name} ;
+    return $name || $ctrl->{text} || $ctrl->{name} ;
     }
 
 
#------------------------------------------------------------------------------------------
 #
-#   convert_values
+#   convert_options
 #
 #   converts the values/options of a control to the text that should be 
outputed.
 #   By default does nothing.
@@ -794,7 +804,20 @@
 [$if ($activeid && $self->{id} ne $activeid) $] style="display: none" [$endif$]
 >
 [$if (!$self -> {noframe}) $]<table class="[+ $class +]"><tr><td 
class="cTabTD"> [$endif$]
-<table class="cBase cTable">
+<table class="cBase cTable cTableInput">
+[#
+<colgroup class="cLabelGroup" span="1">
+<colgroup class="cControlGroup" span="49">
+<colgroup class="cLabelGroup" span="1">
+<colgroup class="cControlGroup" span="49">
+#]
+[# -- this row is necessary for fixed table layout -- #]
+<tr style="display: none">
+<td class="cLabelGroup" colspan="20"></td>
+<td class="cControlGroup" colspan="30"></td>
+<td class="cLabelGroup" colspan="20"></td>
+<td class="cControlGroup" colspan="30"></td>
+</tr>
 [$endsub$]
 
 [# ---------------------------------------------------------------------------
@@ -970,6 +993,10 @@
 
 Embperl::Form::Control object
 
+=item $name
+
+optional: name to translate, if not given take $ctrl -> {name}
+
 =back
 
 =head2 convert_text
@@ -986,7 +1013,7 @@
 
 =back
 
-=head2 convert_values
+=head2 convert_options
 
 Converts the values of a control to the text that should be outputed.
 By default does nothing.

Modified: perl/embperl/trunk/Embperl/Form/Control.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control.pm Mon Nov 26 23:14:45 2007
@@ -205,8 +205,8 @@
 #]
 
 [$sub show_label_icon ($self, $req) $]
-[$if $self -> {sublines} $]&nbsp;<img src="/images/plus.png" 
style="vertical-align: middle;">[$endif$]
-[$if $self -> {parentid} $]&nbsp;<img src="/images/vline.png" 
style="vertical-align: middle;">[$endif$]
+[$if $self -> {xxsublines} $]&nbsp;<img src="/images/plus.png" 
style="vertical-align: middle;">[$endif$]
+[$if $self -> {xxparentid} $]&nbsp;<img src="/images/vline.png" 
style="vertical-align: middle;">[$endif$]
 [$endsub$]
 
 [# ---------------------------------------------------------------------------
@@ -216,18 +216,26 @@
 
 [$ sub show_label_cell ($self, $req)
 
-my $style = "";
-$style = "white-space:nowrap;" if ($self->{labelnowrap}) ;
-
+my $style = '';
+my $addclass = '' ;
+$style = 'white-space:nowrap; ' if ($self->{labelnowrap}) ;
+if ($self -> {width_precent} && !$self -> {width})
+    {
+    $style .= 'width: 20%; '  ;
+    }
+else
+    {
+    $addclass = 'cLabelBoxWidth' . ($self->{width} || 2 ) ;
+    }
 $]
-  <td class="cLabelBox[$ if $self->{labelclass} $][+ " $self->{labelclass}" 
+][$ endif $]"
-      colspan="1" [$ if $style $]style="[+ $style +]"[$ endif $]>
+  <td class="cLabelBox [+ $addclass +] [$ if $self->{labelclass} $][+ " 
$self->{labelclass}" +][$ endif $]"
+      colspan="20" [$ if $style $]style="[+ $style +]"[$ endif $]>
     [-
     $self -> show_label ($req);
     $self -> show_label_icon ($req) ;
     -]
   </td>
-  [- return 1; -]
+  [- return 20 ; -]
 [$endsub$]
 
 [# ---------------------------------------------------------------------------
@@ -260,8 +268,18 @@
 [$ sub show_control_cell ($self, $req, $x)
 
     my $span = $self->{width_percent} - $x ;
+    my $addclass = '' ;
+    my $style    = '' ;
+    if ($self -> {width_precent} && !$self -> {width})
+        {
+        $style = "width: " . int($self -> {width_precent} * 100 / 80) . '; '  ;
+        }
+    else
+        {
+        $addclass = 'cControlBoxWidth' . ($self->{width} || 2 ) ;
+        }
 $]
-    <td class="cControlBox" colspan="[+ $span +]">
+    <td class="cControlBox [+ $addclass +]" colspan="[+ $span +]" [$ if $style 
$]style="[+ $style +]"[$ endif $]>
     [*
      my @ret = $self -> is_readonly?$self -> show_control_readonly($req):$self 
-> show_control ($req);
      $self -> show_control_addons ($req) ;

Modified: perl/embperl/trunk/Embperl/Form/Control/button.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/button.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/button.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/button.pm Mon Nov 26 23:14:45 2007
@@ -40,8 +40,8 @@
   [# Workaround around segfault in Embperl 2.1.1-dev *grmpf* #]
   <[# #]input
   class="cBase cControl cControlButton"  name="[+ $self->{name} +]"
-  value="[+ $self->{value} || $self->{text} +]"
-  title="[+ $self->{text} +]"
+  value="[+ $self -> {showvalue}?($self -> {value} || $self->{text}):$self -> 
form -> convert_label ($self) +]"
+  title="[+ $self -> {showtext}?($self->{text}):$self -> form -> convert_label 
($self) +]"
   [$if $self -> {onclick} $] onClick="[+ $self -> {onclick} +]" [$endif$]
   [$if $self -> {image} $]
   type="image" src="[+ $self -> {image} +]"

Modified: perl/embperl/trunk/Embperl/Form/Control/file.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/file.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/file.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/file.pm Mon Nov 26 23:14:45 2007
@@ -30,9 +30,13 @@
 #   show_control - output the control
 #]
 
-[$ sub show_control ($self) $]
+[$ sub show_control ($self) 
 
-<input type="file"  class="cBase cControl"  name="[+ $self->{name} +]"
+$self -> {size} ||= 80 / ($self -> {width} || 2) ;
+$class = $self -> {class} ||= 'cControlWidthInput' ;
+$]
+
+<input type="file"  class="cBase cControl [+ $class +]"  name="[+ 
$self->{name} +]" id="[+ $self->{name} +]"
 [$if $self -> {size} $]size="[+ $self->{size} +]"[$endif$]
 [$if $self -> {maxlength} $]size="[+ $self->{maxlength} +]"[$endif$]
 >

Modified: perl/embperl/trunk/Embperl/Form/Control/input.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/input.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/input.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/input.pm Mon Nov 26 23:14:45 2007
@@ -31,10 +31,12 @@
 #]
 
 [$ sub show_control ($self) 
+
 $self -> {size} ||= 80 / ($self -> {width} || 2) ;
+$class = $self -> {class} ||= 'cControlWidthInput' ;
 $]
 
-<input type="text"  class="cBase cControl"  name="[+ $self->{name} +]" id="[+ 
$self->{name} +]"
+<input type="text"  class="cBase cControl [+ $class +]"  name="[+ 
$self->{name} +]" id="[+ $self->{name} +]"
 [$if $self -> {size} $]size="[+ $self->{size} +]"[$endif$]
 [$if $self -> {maxlength} $]maxlength="[+ $self->{maxlength} +]"[$endif$]
 >
@@ -85,6 +87,10 @@
 =head3 maxlength
 
 Gives the maximum possible input length in characters
+
+=head3 class
+
+Alternative CSS class name
 
 =head1 Author
 

Modified: perl/embperl/trunk/Embperl/Form/Control/number.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/number.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/number.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/number.pm Mon Nov 26 23:14:45 2007
@@ -33,7 +33,7 @@
 [$ sub show_control ($self)
 
     $self->{size}      ||= 10 ;
-    $self->{css_width} ||= '50%' ;
+    $self->{class}     ||= 'cControlWidthNumber' ;
 $]
 [-     $self -> SUPER::show_control ; -]
 [$if ($self->{unit}) $][+ $self ->{unit} +][$endif$]

Modified: perl/embperl/trunk/Embperl/Form/Control/password.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/password.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/password.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/password.pm Mon Nov 26 23:14:45 2007
@@ -32,7 +32,7 @@
 
 [$ sub show_control ($self) $]
 
-<input type="password"  class="cBase cControl"  name="[+ $self->{name} +]"
+<input type="password"  class="cBase cControl cControlWidthInput"  name="[+ 
$self->{name} +]"
 [$if $self -> {size} $]size="[+ $self->{size} +]"[$endif$]
 [$if $self -> {maxlength} $]size="[+ $self->{maxlength} +]"[$endif$]
 >

Modified: perl/embperl/trunk/Embperl/Form/Control/radio.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/radio.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/radio.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/radio.pm Mon Nov 26 23:14:45 2007
@@ -111,7 +111,7 @@
     [$if !defined ($filter) || ($val =~ /$filter/i) $]
     [- $fdat{$name} = $val, $set = 0 if ($set) ;
        $fdat{$name} = $val if ($ignorecase && lc($fdat{$name}) eq lc($val)) ; 
-]
-    [+ do { local $escmode = 0 ; $tr }+]<td><input type="radio" name="[+ $name 
+]" value="[+ $val +]"
+    [+ do { local $escmode = 0 ; $tr }+]<td><input type="radio" name="[+ $name 
+]" value="[+ $val +]" id="[+ "$name-$val" +]"
     [$if ($self -> {sublines} || $self -> {subobjects}) $] OnClick="[+ 
$nsprefix +]show_radio_checked(document, this,[+ $i +],[+ $max +])" [$endif$]
     ></td><td>[+ $options ->[$i] || $val +]</td>[+ do { local $escmode = 0 ; 
$trend }+]
     [$endif$]

Modified: perl/embperl/trunk/Embperl/Form/Control/select.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/select.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/select.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/select.pm Mon Nov 26 23:14:45 2007
@@ -57,7 +57,7 @@
     my $val ;
     my $i = 0 ;
 $]
-<select  class="cBase cControl" name="[+ $name +]" id="[+ $name +]"
+<select  class="cBase cControl cControlWidthSelect" name="[+ $name +]" id="[+ 
$name +]"
 [$if ($self -> {sublines} || $self -> {subobjects}) $] OnChange="[+ $nsprefix 
+]show_selected(document, this)" [$endif$]
 [$if ($self -> {rows}) $] size="[+ $self->{rows} +]" [$endif$]
 >

Modified: perl/embperl/trunk/Embperl/Form/Control/table.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/table.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/table.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/table.pm Mon Nov 26 23:14:45 2007
@@ -33,13 +33,13 @@
 [$ sub show_table ($self, $data) 
 
     my $span = ($self->{width_percent})  ;
-
+    my $showtext = $self -> {showtext} ;
 $]
 <td class="cBase cTabTD" colspan="[+ $span +]">
 [$if $self -> {text} $]
 [# --- heading text --- #]
 <table width="100%"><tr><td class="cLabelBox">
-[+ $self -> {text} +]<br>
+[+ $self -> {showtext}?($self->{text} || $self->{name}):$self -> form -> 
convert_label ($self) +]<br>
 </td></tr></table>
 [$endif$]
 <table width="100%">
@@ -49,7 +49,7 @@
 [$foreach $line (@{$self->{columns}}) $]
 <tr style="background: white">
 [$foreach $c (@$line) $]
-<td colspan="[+ ref $c?$c -> [2] || 1:1 +]" class="[+$self -> {line2} || 
(@{$self->{columns}} > 1 && $i == 0)?'cGridLabelBox':'cControlBox'+]">[+ ref 
$c?$c -> [1] || $c -> [0]:$c +]</td>
+<td colspan="[+ ref $c?$c -> [2] || 1:1 +]" class="[+$self -> {line2} || 
(@{$self->{columns}} > 1 && $i == 0)?'cGridLabelBox':'cControlBox'+]">[+ 
$showtext?(ref $c?$c -> [1] || $c -> [0]:$c):$self -> form -> convert_label 
($self, ref $c?$c -> [1]:$c) +]</td>
 [$endforeach$]
 [- $i++ -]
 </tr>

Modified: perl/embperl/trunk/Embperl/Form/ControlMultValue.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/ControlMultValue.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/ControlMultValue.pm (original)
+++ perl/embperl/trunk/Embperl/Form/ControlMultValue.pm Mon Nov 26 23:14:45 2007
@@ -119,12 +119,12 @@
 [$ sub show_control_addons ($self, $req)
  
     my $datasrc_ctrls      = $self -> get_datasource_controls ($req) ;
-    return if (!$datasrc_ctrls) ;
- 
-$]
-[$foreach my $ctrl (@$datasrc_ctrl) $]
-<a href="[+ $ctrl->{href} +]" onClick="[+ $ctrl->{onclick} +]">[$if $ctrl -> 
{icon} $]<img src="[+ $ctrl -> {icon} +]" title="[+ $ctrl -> {text} 
+]">[$else$][+ $ctrl -> {text} +][$endif$]
+
+$][$if $datasrc_ctrls $]
+[$foreach my $ctrl (@$datasrc_ctrls) $]
+<a class="cControlAddonA" href="[+ $ctrl->{href} +]" onClick="[+ 
$ctrl->{onclick} +]">[$if $ctrl -> {icon} $]<img class="cControlAddonImg" 
src="[+ $ctrl -> {icon} +]" title="[+ $ctrl -> {text} +]" alt="[+ $ctrl -> 
{text} +]">[$else$][+ $ctrl -> {text} +][$endif$]</a>
 [$endforeach$]
+[$endif$]
 [$endsub$]
 
 

Modified: perl/embperl/trunk/Embperl/Form/DataSource.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/DataSource.pm?rev=598537&r1=598536&r2=598537&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/DataSource.pm (original)
+++ perl/embperl/trunk/Embperl/Form/DataSource.pm Mon Nov 26 23:14:45 2007
@@ -63,6 +63,21 @@
     die "Please overwrite get_values in " . ref $self ;
     }
 
+# ---------------------------------------------------------------------------
+#
+#   get_datasource_controls - returns additional controls provided by the
+#   datasource object e.g. a browse button
+#
+
+sub get_datasource_controls
+
+    {
+    my ($self, $req, $ctrl) = @_ ;
+
+    return ;
+    }
+
+
 1 ;
 
 __END__
@@ -92,6 +107,10 @@
 
 returns the values and options. Must be overwritten.
 
+=head3 get_datasource_controls 
+
+returns additional controls provided by the
+datasource object e.g. a browse button
 
 =head1 AUTHOR
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to