phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] CVS: etemplate/inc class.date_widget.inc.php,1.9,1.10


From: Ralf Becker <address@hidden>
Subject: [Phpgroupware-cvs] CVS: etemplate/inc class.date_widget.inc.php,1.9,1.10 class.select_widget.inc.php,1.5,1.6class.tab_widget.inc.php,1.12,1.13 class.uietemplate.inc.php,1.54,1.55
Date: Sun, 13 Apr 2003 15:14:54 -0400

Update of /cvsroot/phpgroupware/etemplate/inc
In directory subversions:/tmp/cvs-serv26882

Modified Files:
        class.date_widget.inc.php class.select_widget.inc.php 
        class.tab_widget.inc.php class.uietemplate.inc.php 
Log Message:
added time and date+time to date_widget and select-number to select_widget


Index: class.date_widget.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/etemplate/inc/class.date_widget.inc.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** class.date_widget.inc.php   12 Oct 2002 22:34:50 -0000      1.9
--- class.date_widget.inc.php   13 Apr 2003 19:14:50 -0000      1.10
***************
*** 16,20 ****
        @class date_widget
        @author ralfbecker
!       @abstract widget that reads a date 
        @param Options/$cell['size'] = $format[,$year_no_select], $format: 
''=timestamp or eg. 'Y-m-d' for 2002-12-31
        @discussion This widget is independent of the UI as it only uses 
etemplate-widgets and has therefor no render-function
--- 16,20 ----
        @class date_widget
        @author ralfbecker
!       @abstract widget that reads a date and/or time 
        @param Options/$cell['size'] = $format[,$year_no_select], $format: 
''=timestamp or eg. 'Y-m-d' for 2002-12-31
        @discussion This widget is independent of the UI as it only uses 
etemplate-widgets and has therefor no render-function
***************
*** 26,33 ****
                        'post_process' => True
                );
!               var $human_name = 'Date';       // this is the name for the 
editor
  
                function date_widget($ui)
                {
                }
  
--- 26,38 ----
                        'post_process' => True
                );
!               var $human_name = array(
!                       'date'      => 'Date',          // just a date, no time
!                       'date-time' => 'Date+Time',     // date + time
!                       'date-timeonly' => 'Time'
!               );
  
                function date_widget($ui)
                {
+                       $this->timeformat = 
$GLOBALS['phpgw_info']['user']['preferences']['common']['timeformat'];
                }
  
***************
*** 36,39 ****
--- 41,45 ----
                        list($data_format,$options) = 
explode(',',$cell['size']);
                        $extension_data = $data_format;
+                       $type = $cell['type'];
  
                        if (!$value)
***************
*** 42,59 ****
                                        'Y' => '',
                                        'm' => '',
!                                       'd' => ''
                                );
                        }
                        elseif ($data_format != '')
                        {
!                               $date = split('[/.-]',$value);
!                               $mdy  = split('[/.-]',$data_format);
!                               for ($value=array(),$n = 0; $n < 3; ++$n)
                                {
                                        switch($mdy[$n])
                                        {
!                                               case 'Y': $value['Y'] = 
$date[$n]; break;
!                                               case 'm': $value['m'] = 
$date[$n]; break;
!                                               case 'd': $value['d'] = 
$date[$n]; break;
                                        }
                                }
--- 48,71 ----
                                        'Y' => '',
                                        'm' => '',
!                                       'd' => '',
!                                       'H' => '',
!                                       'i' => ''
                                );
                        }
                        elseif ($data_format != '')
                        {
!                               $date = split('[- /.:,]',$value);
!                               //echo "date=<pre>"; print_r($date); echo 
"</pre>";
!                               $mdy  = split('[- /.:,]',$data_format);
!                               $value = array();
!                               foreach ($date as $n => $dat)
                                {
                                        switch($mdy[$n])
                                        {
!                                               case 'Y': $value['Y'] = $dat; 
break;
!                                               case 'm': $value['m'] = $dat; 
break;
!                                               case 'd': $value['d'] = $dat; 
break;
!                                               case 'H': $value['H'] = $dat; 
break;
!                                               case 'i': $value['i'] = $dat; 
break;
                                        }
                                }
***************
*** 61,75 ****
                        else
                        {
                                $value = array(
                                        'Y' => date('Y',$value),
                                        'm' => date('m',$value),
!                                       'd' => date('d',$value)
                                );
                        }
                        $format = 
split('[/.-]',$sep=$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat']);
                        $sep = $sep[1];
                        if ($cell['readonly'] || $readonlys)    // is readonly
                        {
!                               for ($str='',$n = 0; $n < 3; ++$n)
                                {
                                        $str .= ($str != '' ? $sep : '');
--- 73,106 ----
                        else
                        {
+                               $value += 
$GLOBALS['phpgw']->datetime->tz_offset;
                                $value = array(
                                        'Y' => date('Y',$value),
                                        'm' => date('m',$value),
!                                       'd' => date('d',$value),
!                                       'H' => date('H',$value),
!                                       'i' => date('i',$value)
                                );
                        }
+                       $timeformat = array(3 => 'H', 4 => 'i');
+                       if ($this->timeformat == '12')
+                       {
+                               $value['a'] = $value['H'] < 12 ? 'am' : 'pm';
+                               
+                               if ($value['H'] > 12)
+                               {
+                                       $value['H'] -= 12; 
+                               }
+                               $timeformat += array(5 => 'a');
+                       }
                        $format = 
split('[/.-]',$sep=$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat']);
+                       
+                       if ($type != 'date')
+                       {
+                               $format += $timeformat;
+                       }
                        $sep = $sep[1];
                        if ($cell['readonly'] || $readonlys)    // is readonly
                        {
!                               for ($str='',$n = $type == 'date-timeonly' ? 3 
: 0; $n < count($format); ++$n)
                                {
                                        $str .= ($str != '' ? $sep : '');
***************
*** 84,107 ****
                        $tpl->init('*** generated fields for 
date','','',0,'',0,0);     // make an empty template
  
!                       $fields = array(
!                               'Y' => ($options ? 'int' : 'select-year'),      
// if options set, show an int-field
                                'm' => 'select-month',
!                               'd' => 'select-day'
                        );
                        $help = array(
                                'Y' => 'Year',
                                'm' => 'Month',
!                               'd' => 'Day'
                        );
                        $row = array();
!                       for ($n=0; $n < 3; ++$n)
                        {
                                $dcell = $tpl->empty_cell();
!                               $dcell['type'] = $fields[$format[$n]];
                                $dcell['name'] = $format[$n];
                                $dcell['help'] = lang($help[$format[$n]]).': 
'.$cell['help'];   // note: no lang on help, already done
                                $dcell['no_lang'] = True;
!                               $row[$tpl->num2chrs($n)] = &$dcell;
                                unset($dcell);
                        }
                        $tpl->data[0] = array();
--- 115,181 ----
                        $tpl->init('*** generated fields for 
date','','',0,'',0,0);     // make an empty template
  
!                       $types = array(
!                               'Y' => ($options&1 ? 'int' : 'select-year'),    
// if options&1 set, show an int-field
                                'm' => 'select-month',
!                               'd' => 'select-day',
!                               'H' => 'select-number',
!                               'i' => 'select-number'
!                       );
!                       $options = array(
!                               'H' => $this->timeformat == '12' ? ',0,12' : 
',0,23',
!                               'i' => ',0,59,5'
                        );
                        $help = array(
                                'Y' => 'Year',
                                'm' => 'Month',
!                               'd' => 'Day',
!                               'H' => 'Hour',
!                               'i' => 'Minute'
                        );
                        $row = array();
!                       for ($i=0,$n=$type == 'date-timeonly'?3:0; $n < ($type 
== 'date' ? 3 : 5); ++$n,++$i)
                        {
                                $dcell = $tpl->empty_cell();
!                               $dcell['type'] = $types[$format[$n]];
!                               $dcell['size'] = $options[$format[$n]];
                                $dcell['name'] = $format[$n];
                                $dcell['help'] = lang($help[$format[$n]]).': 
'.$cell['help'];   // note: no lang on help, already done
                                $dcell['no_lang'] = True;
!                               $row[$tpl->num2chrs($i)] = &$dcell;
                                unset($dcell);
+ 
+                               if ($n == 2 && $options & 2)    // Today button
+                               {
+                                       $dcell = $tpl->empty_cell();
+                                       $dcell['type'] = 'button';
+                                       $dcell['name'] = 'today';
+                                       $dcell['label'] = $type == 'Today';
+                                       $dcell['help'] = 'sets today as date';
+                                       $dcell['onchange'] = 
"this.form.elements['$name"."[Y]'].value='".date('Y')."'; 
this.form.elements['$name"."[m]'].value='".date('n')."';this.form.elements['$name"."[d]'].value='".(0+date('d'))."';
 return false;";
+                                       $row[$tpl->num2chrs(3)] = &$dcell;
+                                       unset($dcell);
+                               }
+                               if ($n == 2 && $type == 'date-time')    // 
insert some space between date+time
+                               {
+                                       $dcell = $tpl->empty_cell();
+                                       $dcell['type'] = 'label';
+                                       $dcell['name'] = 'space';
+                                       $value['space'] = ' &nbsp; &nbsp; ';
+                                       $dcell['no_lang'] = True;
+                                       $row[$tpl->num2chrs(++$i)] = &$dcell;
+                                       unset($dcell);
+                               }
+                               if ($n == 4 && $type != 'date' && 
$this->timeformat == '12')
+                               {
+                                       $dcell = $tpl->empty_cell();
+                                       $dcell['type'] = 'radio';
+                                       $dcell['name'] = 'a';
+                                       $dcell['help'] = $cell['help'];
+                                       $dcell['size'] = $dcell['label'] = 'am';
+                                       $row[$tpl->num2chrs(++$i)] = $dcell;
+                                       $dcell['size'] = $dcell['label'] = 'pm';
+                                       $row[$tpl->num2chrs(++$i)] = &$dcell;
+                                       unset($dcell);
+                               }
                        }
                        $tpl->data[0] = array();
***************
*** 124,144 ****
                                return False;
                        }
!                       if ($value['d'])
                        {
!                               if (!$value['m'])
                                {
!                                       $value['m'] = date('m');
                                }
!                               if (!$value['Y'])
                                {
!                                       $value['Y'] = date('Y');
                                }
!                               elseif ($value['Y'] < 100)
                                {
!                                       $value['Y'] += $value['Y'] < 30 ? 2000 
: 1900;
                                }
                                if (empty($extension_data))
                                {
!                                       $value = 
mktime(0,0,0,$value['m'],$value['d'],$value['Y']);
                                }
                                else
--- 198,234 ----
                                return False;
                        }
!                       if ($value['d'] || $value['H'] !== '' || $value['i'] 
!== '')
                        {
!                               if ($value['d'])
                                {
!                                       if (!$value['m'])
!                                       {
!                                               $value['m'] = date('m');
!                                       }
!                                       if (!$value['Y'])
!                                       {
!                                               $value['Y'] = date('Y');
!                                       }
!                                       elseif ($value['Y'] < 100)
!                                       {
!                                               $value['Y'] += $value['Y'] < 30 
? 2000 : 1900;
!                                       }
                                }
!                               else    // for the timeonly field
                                {
!                                       $value['d'] = $value['m'] = 1;
!                                       $value['Y'] = 1970;
                                }
!                               if (isset($value['a']))
                                {
!                                       if ($value['a'] == 'pm' && $value['H'] 
< 12)
!                                       {
!                                               $value['H'] += 12;
!                                       }
                                }
                                if (empty($extension_data))
                                {
!                                       $value = 
mktime(intval($value['H']),intval($value['i']),0,$value['m'],$value['d'],$value['Y'])
 
!                                               - 
$GLOBALS['phpgw']->datetime->tz_offset;
                                }
                                else
***************
*** 146,150 ****
                                        for ($n = 0,$str = ''; $n < 
strlen($extension_data); ++$n)
                                        {
!                                               if (strstr('Ymd',$c = 
$extension_data[$n]))
                                                {
                                                        $str .= 
sprintf($c=='Y'?'%04d':'%02d',$value[$c]);
--- 236,240 ----
                                        for ($n = 0,$str = ''; $n < 
strlen($extension_data); ++$n)
                                        {
!                                               if (strstr('YmdHi',$c = 
$extension_data[$n]))
                                                {
                                                        $str .= 
sprintf($c=='Y'?'%04d':'%02d',$value[$c]);

Index: class.select_widget.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/etemplate/inc/class.select_widget.inc.php,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** class.select_widget.inc.php 18 Mar 2003 13:06:27 -0000      1.5
--- class.select_widget.inc.php 13 Apr 2003 19:14:50 -0000      1.6
***************
*** 37,40 ****
--- 37,41 ----
                        'select-month'    => 'Select Month',
                        'select-day'      => 'Select Day',
+                       'select-number'   => 'Select Number',
                        'select-app'      => 'Select Application'
                );
***************
*** 360,364 ****
                function 
pre_process($name,&$value,&$cell,&$readonlys,&$extension_data,&$tmpl)
                {
!                       list($rows,$type,$type2) = explode(',',$cell['size']);
  
                        switch ($cell['type'])
--- 361,365 ----
                function 
pre_process($name,&$value,&$cell,&$readonlys,&$extension_data,&$tmpl)
                {
!                       list($rows,$type,$type2,$type3) = 
explode(',',$cell['size']);
  
                        switch ($cell['type'])
***************
*** 469,476 ****
  
                                case 'select-day':
                                        $cell['sel_options'][''] = '';
!                                       for ($d=1; $d <= 31; ++$d)
                                        {
!                                               $cell['sel_options'][$d] = $d;
                                        }
                                        $cell['no_lang'] = True;
--- 470,490 ----
  
                                case 'select-day':
+                                       $type = 1;
+                                       $type2 = 31;
+                                       $type3 = 1;
+                                       // fall-through
+                                       
+                               case 'select-number':   // options: 
rows,min,max,dec
                                        $cell['sel_options'][''] = '';
!                                       $type = $type === '' ? 1 : 
intval($type);
!                                       $type2 = $type2 === '' ? 10 : 
intval($type2);
!                                       $type3 = !$type3 ? 1 : intval($type3);
!                                       if (($type < $type2) != ($type3 > 0))
                                        {
!                                               $type3 = -$type3;       // void 
infinite loop
!                                       }
!                                       for ($i=0,$n=$type; $n <= $type2 && $i 
<= 100; $n += $type3)
!                                       {
!                                               $cell['sel_options'][$n] = $n;
                                        }
                                        $cell['no_lang'] = True;

Index: class.tab_widget.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/etemplate/inc/class.tab_widget.inc.php,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -r1.12 -r1.13
*** class.tab_widget.inc.php    9 Oct 2002 00:32:04 -0000       1.12
--- class.tab_widget.inc.php    13 Apr 2003 19:14:50 -0000      1.13
***************
*** 34,47 ****
                function 
pre_process($form_name,&$value,&$cell,&$readonlys,&$extension_data,&$tmpl)
                {
                        $labels = explode('|',$cell['label']);
                        $helps = explode('|',$cell['help']);
                        $names = explode('|',$cell['name']);
  
!                       $tabs = new etemplate();
!                       $tab = new etemplate('etemplate.tab_widget.tab');
                        $tab_active = new 
etemplate('etemplate.tab_widget.tab_active');
! 
                        $tabs->init('*** generated tabs','','',0,'',0,0);       
// make an empty template
  
                        $tab_row = array();     // generate the tab row
                        while (list($k,$name) = each($names))
--- 34,62 ----
                function 
pre_process($form_name,&$value,&$cell,&$readonlys,&$extension_data,&$tmpl)
                {
+                       $dom_enabled = 
0;//$GLOBALS['phpgw_info']['etemplate']['dom_enabled'];
                        $labels = explode('|',$cell['label']);
                        $helps = explode('|',$cell['help']);
                        $names = explode('|',$cell['name']);
  
!                       $tab = new 
etemplate('etemplate.tab_widget.tab'.($dom_enabled ? '_dom' : ''));
                        $tab_active = new 
etemplate('etemplate.tab_widget.tab_active');
!                       $tabs = new etemplate();
                        $tabs->init('*** generated tabs','','',0,'',0,0);       
// make an empty template
  
+                       foreach($names as $k => $name)
+                       {
+                               if (!strstr($name,'.'))
+                               {
+                                       $name = $names[$k] = $tmpl->name . '.' 
. $name;
+                               }
+                               if ($extension_data == $name)
+                               {
+                                       $selected_tab = $name;
+                               }
+                       }
+                       if (empty($selected_tab))
+                       {
+                               $extension_data = $selected_tab = $names[0];
+                       }
                        $tab_row = array();     // generate the tab row
                        while (list($k,$name) = each($names))
***************
*** 56,67 ****
                                        // save selected tab in persistent 
extension_data to use it in post_process
                                        $selected_tab = $name;
!                                       $tcell['obj'] = &$tab_active;
                                        $tcell['name'] = $tab_active->name;
                                }
                                else
                                {
!                                       $tcell['obj'] = &$tab;
                                        $tcell['name'] = $tab->name;
                                }
                                $tcell['type'] = 'template';
                                $tcell['size'] = $cell['name'].'['.$name.']';
--- 71,87 ----
                                        // save selected tab in persistent 
extension_data to use it in post_process
                                        $selected_tab = $name;
!                                       $tcell['obj'] = $tab_active;
                                        $tcell['name'] = $tab_active->name;
                                }
                                else
                                {
!                                       $tcell['obj'] = $tab;
                                        $tcell['name'] = $tab->name;
                                }
+                               if ($dom_enabled)
+                               {
+                                       
$tcell['obj']->set_cell_attribute('tab','onclick',"activate_tab('$name','$cell[name]');");
+                                       
$tcell['obj']->set_cell_attribute('tab','id',$name.'-tab');
+                               }
                                $tcell['type'] = 'template';
                                $tcell['size'] = $cell['name'].'['.$name.']';
***************
*** 78,99 ****
                        $tabs->data[0]['c1'] = ',bottom';
  
-                       if (!isset($selected_tab))
-                       {
-                               $tab_row['A']['obj'] = &$tab_active;
-                               $tcell['name'] = $tab_active->name;
-                               $extension_data = $selected_tab = $names[0];
-                       }
                        $tabs->data[1] = $tab_row;
                        $tabs->set_rows_cols();
!                       $tabs->size = ',,,,0';
  
                        $tab_widget = new etemplate('etemplate.tab_widget');
                        $tab_widget->set_cell_attribute('@tabs','obj',$tabs);
                        
!                       $stab = new etemplate($selected_tab,$tmpl->as_array());
!                       $options = array_pad(explode(',',$stab->size),3,'');
!                       $options[3] = ($options[3]!= '' ? $options[3].' ':'') . 
'tab_body';
!          $stab->size = implode(',',$options);
!                       $tab_widget->set_cell_attribute('@body','obj',$stab);
                        
$tab_widget->set_cell_attribute('@body','name',$selected_tab);
  
--- 98,133 ----
                        $tabs->data[0]['c1'] = ',bottom';
  
                        $tabs->data[1] = $tab_row;
                        $tabs->set_rows_cols();
!                       $tabs->size = "$cell[width],,,0,0";
  
                        $tab_widget = new etemplate('etemplate.tab_widget');
                        $tab_widget->set_cell_attribute('@tabs','obj',$tabs);
                        
!                       if ($dom_enabled)
!                       {
!                               
$tab_widget->set_cell_attribute('@body','type','deck');
!                               
$tab_widget->set_cell_attribute('@body','width',$cell['width']);
!                               
$tab_widget->set_cell_attribute('@body','height',$cell['height']);
!                               
$tab_widget->set_cell_attribute('@body','size',count($names));
!                               
$tab_widget->set_cell_attribute('@body','class',$cell['class']);
!                               foreach($names as $n => $name)
!                               {
!                                       $bcell = $tab_widget->empty_cell();
!                                       $bcell['type'] = 'template';
!                                       $bcell['obj'] = new 
etemplate($name,$tmpl->as_array());
!                                       $bcell['name'] = $name;
!                                       
$tab_widget->set_cell_attribute('@body',$n+1,$bcell);
!                               }
!                               
$tab_widget->set_cell_attribute('@body','name',$cell['name']);
!                       }
!                       else
!                       {
!                               $stab = new 
etemplate($selected_tab,$tmpl->as_array());
!                               $options = 
array_pad(explode(',',$stab->size),3,'');
!                               $options[3] = ($options[3]!= '' ? $options[3].' 
':'') . 'tab_body';
!                               $stab->size = implode(',',$options);
!                               
$tab_widget->set_cell_attribute('@body','obj',$stab);
!                       }
                        
$tab_widget->set_cell_attribute('@body','name',$selected_tab);
  

Index: class.uietemplate.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/etemplate/inc/class.uietemplate.inc.php,v
retrieving revision 1.54
retrieving revision 1.55
diff -C2 -r1.54 -r1.55
*** class.uietemplate.inc.php   22 Feb 2003 15:03:27 -0000      1.54
--- class.uietemplate.inc.php   13 Apr 2003 19:14:50 -0000      1.55
***************
*** 56,60 ****
                        list($a,$b,$c,$d) = 
explode('.',$GLOBALS['phpgw_info']['server']['versions']['phpgwapi']);
                        //echo "Version: $a.$b.$c.$d\n";
!                       $this->stable = $a <= 0 && $b <= 9 && $c <= 14;
                }
  
--- 56,60 ----
                        list($a,$b,$c,$d) = 
explode('.',$GLOBALS['phpgw_info']['server']['versions']['phpgwapi']);
                        //echo "Version: $a.$b.$c.$d\n";
!                       $this->stable = $a <= 0 && $b <= 9 && $c <= 14 && 
!is_object($GLOBALS['phpgw']->xslttpl);
                }
  
***************
*** 153,156 ****
--- 153,157 ----
                                'to_process' => 
$GLOBALS['phpgw_info']['etemplate']['to_process'],
                                'java_script' => 
$GLOBALS['phpgw_info']['etemplate']['java_script'],
+                               'dom_enabled' => 
$GLOBALS['phpgw_info']['etemplate']['dom_enabled'],
                                'method' => $method,
                                'hooked' => $hooked
***************
*** 194,197 ****
--- 195,199 ----
                        $GLOBALS['phpgw_info']['etemplate']['extension_data'] = 
$session_data['extension_data'];
                        $GLOBALS['phpgw_info']['etemplate']['java_script'] = 
$session_data['java_script'] || $GLOBALS['HTTP_POST_VARS']['java_script'];
+                       $GLOBALS['phpgw_info']['etemplate']['dom_enabled'] = 
$session_data['dom_enabled'] || $GLOBALS['HTTP_POST_VARS']['dom_enabled'];
                        //echo "globals[java_script] = 
'".$GLOBALS['phpgw_info']['etemplate']['java_script']."', 
session_data[java_script] = '".$session_data['java_script']."', 
HTTP_POST_VARS[java_script] = 
'".$GLOBALS['HTTP_POST_VARS']['java_script']."'\n";
                        //echo "process_exec($this->name) content ="; 
_debug_array($content);
***************
*** 346,350 ****
                                        {
                                                $cell = &$cols[$c_key];
!                                               list(,$col_disabled) = 
explode(',',$opts[$col]);
                                        }
                                        if ($cell['type'] == 'template' && 
$cell['onchange'])
--- 348,369 ----
                                        {
                                                $cell = &$cols[$c_key];
!                                               list($col_width,$col_disabled) 
= explode(',',$opts[$col]);
!                                               
!                                               if (!$cell['height'])   // if 
not set, cell-height = height of row
!                                               {
!                                                       $cell['height'] = 
$height;
!                                               }
!                                               if (!$cell['width'])    // if 
not set, cell-width = width of column or table
!                                               {
!                                                       list($col_span) = 
explode(',',$cell['span']);
!                                                       if ($col_span == 'all' 
&& !$c)
!                                                       {
!                                                               
list($cell['width']) = explode(',',$this->size);
!                                                       }
!                                                       else
!                                                       {
!                                                               $cell['width'] 
= $col_width;
!                                                       }
!                                               }
                                        }
                                        if ($cell['type'] == 'template' && 
$cell['onchange'])
***************
*** 363,366 ****
--- 382,394 ----
                                                continue;
                                        }
+                                       if ($cell['onclick'])   // can only be 
set via source at the moment
+                                       {
+                                               $row_data[".$col"] .= ' 
onClick="'.$cell['onclick'].'"';
+ 
+                                               if ($cell['id'])
+                                               {
+                                                       $row_data[".$col"] .= ' 
ID="'.$cell['id'].'"';
+                                               }
+                                       }
                                        $colspan = $span == 'all' ? 
$this->cols-$c : 0+$span;
                                        if ($colspan > 1)
***************
*** 479,483 ****
                                        }
                                }
!                               if ($cell['onchange'] && $cell['type'] != 
'button')     // values != '1' can only set by a program (not in the editor so 
far)
                                {
                                        $options .= ' 
onChange="'.($cell['onchange']=='1'?'this.form.submit();':$cell['onchange']).'"';
--- 507,511 ----
                                        }
                                }
!                               if ($cell['onchange'] && $cell['type'] != 
'button') // values != '1' can only set by a program (not in the editor so fa
                                {
                                        $options .= ' 
onChange="'.($cell['onchange']=='1'?'this.form.submit();':$cell['onchange']).'"';
***************
*** 577,594 ****
                                case 'button':
                                        list($app) = explode('.',$this->name);
!                                       if ($this->java_script() && 
$cell['onchange'])
                                        {
!                                               $html .= 
$this->html->input_hidden($form_name,'',False) . "\n";
!                                               $html .= '<a href="" 
onClick="set_element(document.eTemplate,\''.$form_name.'\',\'pressed\'); 
document.eTemplate.submit(); return false;" '.$options.'>' .
!                                                       (strlen($label) <= 1 || 
$cell['no_lang'] ? $label : lang($label)) . '</a>';
                                        }
                                        else
                                        {
                                                list($img,$ro_img) = 
explode(',',$cell['size']);
!                   if (!empty($img))
                                                {
                                                        $options .= ' 
TITLE="'.(strlen($label)<=1||$cell['no_lang']?$label:lang($label)).'"';
                                                }
!                                               $html .= !$readonly ? 
$this->html->submit_button($form_name,$label,'',
                                                        strlen($label) <= 1 || 
$cell['no_lang'],$options,$img,$app) :
                                                        
$this->html->image($app,$ro_img);
--- 605,630 ----
                                case 'button':
                                        list($app) = explode('.',$this->name);
!                                       if ($this->java_script() && 
$cell['onchange'] != '') // use a link instead of a button
                                        {
!                                               if ($cell['onchange'] == 1)
!                                               {
!                                                       $html .= 
$this->html->input_hidden($form_name,'',False) . "\n";
!                                                       $html .= '<a href="" 
onClick="set_element(document.eTemplate,\''.$form_name.'\',\'pressed\'); 
document.eTemplate.submit(); return false;" '.$options.'>' .
!                                                               (strlen($label) 
<= 1 || $cell['no_lang'] ? $label : lang($label)) . '</a>';
!                                               }
!                                               else    // use custom javascript
!                                               {
!                                                       $html .= '<a href="" 
onClick="'.$cell['onchange'].'; return false;" '.$options.'>' .
!                                                               (strlen($label) 
<= 1 || $cell['no_lang'] ? $label : lang($label)) . '</a>';
!                                               }
                                        }
                                        else
                                        {
                                                list($img,$ro_img) = 
explode(',',$cell['size']);
!                                               if (!empty($img))
                                                {
                                                        $options .= ' 
TITLE="'.(strlen($label)<=1||$cell['no_lang']?$label:lang($label)).'"';
                                                }
!                                               $html .= !$readonly ? 
$this->html->submit_button($form_name,$label,$cell['onchange'],
                                                        strlen($label) <= 1 || 
$cell['no_lang'],$options,$img,$app) :
                                                        
$this->html->image($app,$ro_img);
***************
*** 759,762 ****
--- 795,832 ----
                                        }
                                        break;
+                               case 'deck':
+                                       for ($n = 1; $n <= $cell['size'] && 
(empty($value) || $value != $cell[$n]['name']); ++$n) ;
+                                       if ($n > $cell['size'])
+                                       {
+                                               $value = $cell[1]['name'];
+                                       }
+                                       if ($s_width = $cell['width'])
+                                       {
+                                               $s_width = "width: 
$s_width".(substr($s_width,-1) != '%' ? 'px' : '').';';
+                                       }
+                                       if ($s_height = $cell['height'])
+                                       {
+                                               $s_height = "height: 
$s_height".(substr($s_height,-1) != '%' ? 'px' : '').';';
+                                       }
+                                       for ($n = 1; $n <= $cell['size']; ++$n)
+                                       {
+                                               $h = 
$this->show_cell($cell[$n],$content,$sel_options,$readonlys,$cname,$show_c,$show_row,$nul);
+                                               $vis = !empty($value) && $value 
== $cell['size'][$n]['name'] || $n == 1 && $first ? 'visible' : 'hidden';
+                                               list (,$cl) = 
explode(',',$cell[$n]['span']);
+                                               $html .= 
$this->html->div($h,$this->html->formatOptions(array(
+                                                       $cl.($cl ? ' 
':'').'tab_body',
+                                                       "$s_width $s_height 
position: absolute; left: 0px; top: 0px; visibility: $vis; z-index: 50;",
+                                                       $cell[$n]['name']
+                                               ),'CLASS,STYLE,ID'));
+                                       }
+                                       $html .= 
$this->html->input_hidden($form_name,$value);  // to store active plane
+                                       
+                                       list (,$cl) = 
explode(',',$cell['span']);
+                                       $html = 
$this->html->input_hidden($form_name,$value)."\n".      // to store active plane
+                                               
$this->html->div($html,$this->html->formatOptions(array(
+                                                       $cl,
+                                                       "$s_width $s_height 
position: relative; z-index: 100;"
+                                               ),'CLASS,STYLE'));
+                                       break;
                                default:
                                        if ($ext_type && 
$this->haveExtension($ext_type,'render'))
***************
*** 787,793 ****
                                        $label = 
$this->html->label($label,$form_name,$accesskey[1]);
                                }
!                               if (strstr($label,'%s'))
                                {
!                                       $html = str_replace('%s',$html,$label);
                                }
                                elseif (($html = $label . ' ' . $html) == ' ')
--- 857,863 ----
                                        $label = 
$this->html->label($label,$form_name,$accesskey[1]);
                                }
!                               if ($type == 'radio' || strstr($label,'%s'))    
// default for radio is label after the button
                                {
!                                       $html = strstr($label,'%s') ? 
str_replace('%s',$html,$label) : $html.' '.$label;
                                }
                                elseif (($html = $label . ' ' . $html) == ' ')
***************
*** 925,929 ****
                @abstract is javascript enabled?
                @discussion this should be tested by the api at login
!               @result true if javascript is enabled or not yet tested
                */
                function java_script($consider_not_tested_as_enabled = True)
--- 995,999 ----
                @abstract is javascript enabled?
                @discussion this should be tested by the api at login
!               @result true if javascript is enabled or not yet tested and 
$consider_not_tested_as_enabled 
                */
                function java_script($consider_not_tested_as_enabled = True)
***************
*** 948,951 ****
--- 1018,1024 ----
                                $js = '<script language="javascript">
  
document.write(\''.str_replace("\n",'',$this->html->input_hidden('java_script','1')).'\');
+ if (document.getElementById) {
+       
document.write(\''.str_replace("\n",'',$this->html->input_hidden('dom_enabled','1')).'\');
+ }
  </script>
  ';
***************
*** 955,962 ****
                        if ($this->java_script(True))
                        {
!                               $js .= '<script language="JavaScript">
  function set_element(form,name,value)
  {
! '. /* '       alert("set_element: "+name+"="+value);'. */ '
        for (i = 0; i < form.length; i++)
        {
--- 1028,1035 ----
                        if ($this->java_script(True))
                        {
!                               $js .= "<script language=\"JavaScript\">
  function set_element(form,name,value)
  {
! ". /* "       alert('set_element: '+name+'='+value);". */ "
        for (i = 0; i < form.length; i++)
        {
***************
*** 970,974 ****
  function set_element2(form,name,vname)
  {
! '. /* '       alert("set_element2: "+name+"="+vname);'. */ '
        for (i = 0; i < form.length; i++)
        {
--- 1043,1047 ----
  function set_element2(form,name,vname)
  {
! ". /* "       alert('set_element2: '+name+'='+vname);". */ "
        for (i = 0; i < form.length; i++)
        {
***************
*** 978,982 ****
                }
        }
! '. /* '       alert("set_element2: "+name+"="+value);'. */ '
        for (i = 0; i < form.length; i++)
        {
--- 1051,1055 ----
                }
        }
! ". /* "       alert('set_element2: '+name+'='+value);". */ "
        for (i = 0; i < form.length; i++)
        {
***************
*** 987,992 ****
        }
  }
  </script>
! ';
                        }
                        return $js;
--- 1060,1086 ----
        }
  }
+ 
+ function activate_tab(tab,all_tabs,name)
+ {
+       var tabs = all_tabs.split('|');
+       var parts = tab.split('.');
+       var last_part = parts.length-1;
+       
+       for (n = 0; n < tabs.length; n++)
+       {
+               var t = tabs[n];
+               
+               if (t.indexOf('.') < 0 && parts.length > 1) 
+               {
+                       parts[last_part] = t;
+                       t = parts.join('.');
+               }
+               document.getElementById(t).style.visibility = t == tab ? 
'visible' : 'hidden';
+               document.getElementById(t+'-tab').className = 
'etemplate_tab'+(t == tab ? '_active th' : ' row_on');
+       }
+       document.getElementByName(name).value = tab;
+ }
  </script>
! ";
                        }
                        return $js;





reply via email to

[Prev in Thread] Current Thread [Next in Thread]