tab-widget can change now between the tabs without a reload

This commit is contained in:
Ralf Becker 2005-05-19 13:16:52 +00:00
parent 3c8f31fcf7
commit e66fc40408
5 changed files with 159 additions and 153 deletions

View File

@ -15,7 +15,7 @@
/**
* eTemplate Extension: widget that shows one row of tabs and an other row with the eTemplate of the selected tab
*
* See the example in 'etemplate.tab_widget.test' (use show to view it)
* See the example in 'etemplate.tab_widget.test'
*
* This widget is independent of the UI as it only uses etemplate-widgets and has therefor no render-function
*
@ -64,106 +64,105 @@
*/
function pre_process($form_name,&$value,&$cell,&$readonlys,&$extension_data,&$tmpl)
{
$dom_enabled = 0; //$GLOBALS['phpgw_info']['etemplate']['dom_enabled'];
//echo "<p>tab_widget::pre_process('$form_name',$value,,$extension_data)</p>\n";
if (!$cell['onchange']) // onchange allows to use the old behavior (submit for each new tab)
{
$dom_enabled = isset($GLOBALS['phpgw_info']['etemplate']['dom_enabled']) ? $GLOBALS['phpgw_info']['etemplate']['dom_enabled'] : true;
}
$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
// keep the editor away from the generated tmpls
$tab->no_onclick = $tab_active->no_onclick = $tabs->no_onclick = true;
// disable tab mentioned in readonlys
foreach(is_array($readonlys) ? $readonlys : array($readonlys => true) as $name => $disable)
{
if($name && $disable && ($key = array_search($name,$names)) !== false)
{
unset($names[$key]);
$names = array_values($names);
unset($helps[$key]);
$helps = array_values($helps);
unset($labels[$key]);
$labels = array_values($labels);
}
}
$all_names = implode('|',$names);
$tab_widget = new etemplate('etemplate.tab_widget');
$tab_widget->no_onclick = true;
foreach($names as $k => $name)
{
if (!strstr($name,'.'))
{
$name = $names[$k] = $tmpl->name . '.' . $name;
}
if ($extension_data == $name)
if ($value == $name)
{
$selected_tab = $name;
}
}
if (empty($selected_tab))
{
$extension_data = $selected_tab = $names[0];
$value = $selected_tab = $names[0];
}
$tab_row = array(); // generate the tab row
while (list($k,$name) = each($names))
foreach($names as $k => $name)
{
if (!strstr($name,'.'))
{
$name = $names[$k] = $tmpl->name . '.' . $name;
}
$tcell = $tabs->empty_cell();
if ($extension_data == $name)
$tcell =& $tab_widget->empty_cell();
if ($value == $name)
{
// 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;
$tcell['span'] = ',etemplate_tab_active th';
}
else
{
$tcell['obj'] = $tab;
$tcell['name'] = $tab->name;
$tcell['span'] = ',etemplate_tab row_on';
}
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['onclick'] = "activate_tab('$name','$all_names','$form_name');";
$tcell['id'] = $name.'-tab';
}
$tcell['type'] = 'template';
$tcell['size'] = $cell['name'].'['.$name.']';
$value[$name] = array(
'name' => $name,
'label' => $labels[$k],
'help' => $helps[$k]
);
$tab_row[$tabs->num2chrs($k)] = $tcell;
elseif ($value != $name)
{
$tcell['type'] = 'button';
$tcell['onchange'] = '1';
$tcell['name'] = $cell['name'].'['.$name.']';
}
$tcell['label'] = $labels[$k];
$tcell['help'] = $helps[$k];
$tab_widget->set_cell_attribute('tabs',1+$k,$tcell);
}
// add one empty cell to take all the space of the row
$tab_row[$k = $tabs->num2chrs(sizeof($tab_row))] = $tabs->empty_cell();
$tabs->data[0][$k] = '99%'; // width
$tabs->data[0]['c1'] = ',bottom';
$tab_widget->set_cell_attribute('tabs','type','hbox');
$tab_widget->set_cell_attribute('tabs','size',count($names));
$tab_widget->set_cell_attribute('tabs','name','');
$tabs->data[1] = $tab_row;
$tabs->set_rows_cols();
$tabs->size = "$cell[width],,,0,0";
$tab_widget = new etemplate('etemplate.tab_widget');
$tab_widget->no_onclick = true;
$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 = $tab_widget->empty_cell('template',$name);
$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',$n+1,$bcell);
}
$tab_widget->set_cell_attribute('@body','name',$cell['name']);
$tab_widget->set_cell_attribute('body','type','deck');
$tab_widget->set_cell_attribute('body','size',count($names));
$tab_widget->set_cell_attribute('body','span',',tab_body');
$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','type','template');
$tab_widget->set_cell_attribute('body','size',''); // the deck has a '1' there
$tab_widget->set_cell_attribute('body','obj',$stab);
}
$tab_widget->set_cell_attribute('@body','name',$selected_tab);
$tab_widget->set_cell_attribute('body','name',$selected_tab);
$cell['type'] = 'template';
$cell['obj'] = &$tab_widget;
@ -189,20 +188,25 @@
* @param mixed &value_in the posted values (already striped of magic-quotes)
* @return boolean true if $value has valid content, on false no content will be returned!
*/
function post_process($name,&$value,&$extension_data,&$loop,&$tmpl)
function post_process($name,&$value,&$extension_data,&$loop,&$tmpl,$value_in)
{
//echo "<p>tab_widget::post_process($name): value = "; _debug_array($value);
if (is_array($value))
//echo "<p>tab_widget::post_process($name): value_in = "; _debug_array($value_in);
if (is_array($value_in))
{
reset($value);
list($tab,$button) = each($value);
list(,$button) = each($button);
if ($button)
foreach ($value_in as $tab => $button_pressed)
{
$extension_data = $tab;
$loop = True;
if ($button_pressed)
{
$value = $tab;
$loop = True;
}
}
}
else
{
$value = $value_in;
}
return True;
}
}

View File

@ -480,15 +480,15 @@
{
continue; // row is disabled
}
$rows[".$row"] .= $this->html->formatOptions($height,'HEIGHT');
$rows[".$row"] .= $this->html->formatOptions($height,'height');
list($cl) = explode(',',$class);
if ($cl == 'nmr' || $cl == 'row')
{
$cl = 'row_'.($nmr_alternate++ & 1 ? 'off' : 'on'); // alternate color
}
$cl = isset($this->class_conf[$cl]) ? $this->class_conf[$cl] : $cl;
$rows[".$row"] .= $this->html->formatOptions($cl,'CLASS');
$rows[".$row"] .= $this->html->formatOptions($class,',VALIGN');
$rows[".$row"] .= $this->html->formatOptions($cl,'class');
$rows[".$row"] .= $this->html->formatOptions($class,',valign');
reset ($cols);
$row_data = array();
@ -547,20 +547,16 @@
unset($row_data[$col]); // omit empty/disabled cells if only one row
continue;
}
/* TEST-RB
if ($cell['onclick']) // can only be set via source at the moment
// can only be set via source at the moment
if (strlen($cell['onclick']) > 1 && $cell['type'] != 'button')
{
$row_data[".$col"] .= ' onClick="'.$cell['onclick'].'"';
if ($cell['id'])
{
$row_data[".$col"] .= ' ID="'.$cell['id'].'"';
}
}*/
$row_data[".$col"] .= ' onclick="'.$cell['onclick'].'"' .
($cell['id'] ? ' id="'.$cell['id'].'"' : '');
}
$colspan = $span == 'all' ? $this->cols-$c : 0+$span;
if ($colspan > 1)
{
$row_data[".$col"] .= " COLSPAN=\"$colspan\"";
$row_data[".$col"] .= " colspan=\"$colspan\"";
for ($i = 1; $i < $colspan; ++$i,++$c)
{
each($cols); // skip next cell(s)
@ -571,24 +567,28 @@
list($width,$disable) = explode(',',$opts[$col]);
if ($width) // width only once for a non colspan cell
{
$row_data[".$col"] .= " WIDTH=\"$width\"";
$row_data[".$col"] .= " width=\"$width\"";
$opts[$col] = "0,$disable";
}
}
$row_data[".$col"] .= $this->html->formatOptions($cell['align']?$cell['align']:'left','ALIGN');
$row_data[".$col"] .= $this->html->formatOptions($cell['align']?$cell['align']:'left','align');
$cl = $this->expand_name(isset($this->class_conf[$cl]) ? $this->class_conf[$cl] : $cl,
$c,$r,$show_c,$show_row,$content);
$row_data[".$col"] .= $this->html->formatOptions($cl,'CLASS');
$row_data[".$col"] .= $this->html->formatOptions($cl,'class');
}
$rows[$row] = $row_data;
}
$html = $this->html->table($rows,$this->html->formatOptions($grid['size'],'WIDTH,HEIGHT,BORDER,CLASS,CELLSPACING,CELLPADDING').
$this->html->formatOptions($grid['span'],',CLASS')/*TEST-RB,$no_table_tr*/);
list($width,$height,,,,,$overflow) = $options = explode(',',$grid['size']);
if ($overflow && $height)
{
$options[1] = ''; // set height in div only
}
$html = $this->html->table($rows,$this->html->formatOptions(/*$grid['size']*/$options,'width,height,border,class,cellspacing,cellpadding').
$this->html->formatOptions($grid['span'],',class')/*TEST-RB,$no_table_tr*/);
list($width,$height,,,,,$overflow) = explode(',',$grid['size']);
if (!empty($overflow)) {
$div_style=' STYLE="'.($width?"width: $width; ":'').($height ? "height: $height; ":'')."overflow: $overflow\"";
$div_style=' style="'.($width?"width: $width; ":'').($height ? "height: $height; ":'')."overflow: $overflow;\"";
$html = $this->html->div($html,$div_style);
}
return "\n\n<!-- BEGIN grid $grid[name] -->\n$html<!-- END grid $grid[name] -->\n\n";
@ -808,7 +808,7 @@
if (!$readonly)
{
list($styles,$plugins) = explode(',',$cell_options,2);
$html .= $this->html->htmlarea($form_name,$value,$styles,'',$plugins);
$html .= $this->html->htmlarea($form_name,$value,$styles,'',$plugins,'',true);
$GLOBALS['phpgw_info']['etemplate']['to_process'][$form_name] = array(
'type' => $cell['type'],
'needed' => $cell['needed'],
@ -816,7 +816,7 @@
}
else
{
$html .= $this->html->div($this->html->activate_links($value),'style="overflow: auto; border: thin inset black;'.$cell_options.'"');
$html .= $this->html->div($this->html->activate_links($value),'style="overflow: auto; border: thin inset black;'.$styles.'"');
}
break;
case 'checkbox':
@ -1102,7 +1102,10 @@
$img = $image;
list($app) = explode('.',$this->name);
}
list($extra_link,$extra_link_target,$imagemap) = explode(',',$cell['size']);
if (!$readonly)
{
list($extra_link,$extra_link_target,$imagemap) = explode(',',$cell['size']);
}
$html .= $this->html->image($app,$img,strlen($label) > 1 && !$cell['no_lang'] ? lang($label) : $label,
'border="0"'.($imagemap?' usemap="'.$this->html->htmlspecialchars($imagemap).'"':''));
$extra_label = False;
@ -1113,7 +1116,7 @@
$html .= $this->html->input_hidden($path_name = str_replace($name,$name.'_path',$form_name),'.');
$html .= $this->html->input($form_name,'','file',$options);
$GLOBALS['phpgw_info']['etemplate']['form_options'] =
"enctype=\"multipart/form-data\" onSubmit=\"set_element2(this,'$path_name','$form_name')\"";
"enctype=\"multipart/form-data\" onsubmit=\"set_element2(this,'$path_name','$form_name')\"";
$GLOBALS['phpgw_info']['etemplate']['to_process'][$form_name] = $cell['type'];
}
break;
@ -1151,24 +1154,31 @@
$box_anz++;
if ($cell[$n]['align'])
{
$rows[$box_row]['.'.$box_col] = $this->html->formatOptions($cell[$n]['align'],'ALIGN');
$rows[$box_row]['.'.$box_col] = $this->html->formatOptions($cell[$n]['align'],'align');
$sub_cell_has_align = true;
}
$class = $this->expand_name(isset($this->class_conf[$cl]) ? $this->class_conf[$cl] : $cl,
// can only be set via source at the moment
if (strlen($cell[$n]['onclick']) > 1 && $cell[$n]['type'] != 'button')
{
$rows[$box_row]['.'.$box_col] .= ' onclick="'.$cell[$n]['onclick'].'"'.
($cell[$n]['id'] ? ' id="'.$cell[$n]['id'].'"' : '');
}
$box_item_class = $this->expand_name(isset($this->class_conf[$cl]) ? $this->class_conf[$cl] : $cl,
$show_c,$show_row,$content['.c'],$content['.row'],$content);
$rows[$box_row]['.'.$box_col] .= $this->html->formatOptions($class,'CLASS');
$rows[$box_row]['.'.$box_col] .= $this->html->formatOptions($box_item_class,'class');
}
}
if ($box_anz > 1 && $orient) // a single cell is NOT placed into a table
{
$html = $this->html->table($rows,$this->html->formatOptions($cell_options,',,CELLPADDING,CELLSPACING').
$this->html->formatOptions($cell['span'],',CLASS').
($cell['align'] && $orient != 'horizontal' || $sub_cell_has_align ? ' WIDTH="100%"' : '')); // alignment only works if table has full width
$html = $this->html->table($rows,$this->html->formatOptions($cell_options,',,cellpadding,cellspacing').
$this->html->formatOptions($cell['span'],',class').
($cell['align'] && $orient != 'horizontal' || $sub_cell_has_align ? ' width="100%"' : '')); // alignment only works if table has full width
}
// use a div to not loose the css class
elseif ($class && $orient)
{
$html = $this->html->div($html,'',$class);
//$html = $this->html->div($html,'',$class);
$class = $box_item_class;
}
if ($type == 'groupbox')
{
@ -1184,7 +1194,7 @@
$cell['height'],
$cell['width'],
$cell['class'],
),'HEIGHT,WIDTH,CLASS'));
),'height,widht,class'));
}
if ($box_anz > 1) // small docu in the html-source
{
@ -1206,24 +1216,17 @@
{
$s_height = "height: $s_height".(substr($s_height,-1) != '%' ? 'px' : '').';';
}
$html = $this->html->input_hidden($form_name,$value);
$GLOBALS['phpgw_info']['etemplate']['to_process'][$form_name] = $cell['type'];
for ($n = 1; $n <= $cell_options; ++$n)
{
$h = $this->show_cell($cell[$n],$content,$readonlys,$cname,$show_c,$show_row,$nul,$cl,$path.'/'.$n);
$vis = !empty($value) && $value == $cell_options[$n]['name'] || $n == 1 && $first ? 'visible' : 'hidden';
$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;",
$html .= $this->html->div($this->show_cell($cell[$n],$content,$readonlys,$cname,$show_c,
$show_row,$nul,$cl,$path.'/'.$n),$this->html->formatOptions(array(
'display: '.($value == $cell[$n]['name'] ? 'inline' : 'none').';',
$cell[$n]['name']
),'CLASS,STYLE,ID'));
),'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'))
@ -1295,8 +1298,8 @@
}
if ($extra_link)
{
$options = " onMouseOver=\"self.status='".addslashes(lang($help))."'; return true;\"";
$options .= " onMouseOut=\"self.status=''; return true;\"";
$options = " onmouseover=\"self.status='".addslashes(lang($help))."'; return true;\"";
$options .= " onmouseout=\"self.status=''; return true;\"";
if ($extra_link_target) $options .= ' target="'.$extra_link_target.'"';
return $this->html->a_href($html,$extra_link,'',$help != '' ? $options : '');
}

View File

@ -26,7 +26,9 @@ function set_element(form,name,value)
{
if (form.elements[i].name == name)
{
//alert('set_element: '+name+'='+value);
form.elements[i].value = value;
//alert(name+'='+form.elements[i].value);
}
}
}
@ -66,8 +68,10 @@ function activate_tab(tab,all_tabs,name)
parts[last_part] = t;
t = parts.join('.');
}
document.getElementById(t).style.visibility = t == tab ? 'visible' : 'hidden';
document.getElementById(t).style.display = t == tab ? 'inline' : 'none';
document.getElementById(t+'-tab').className = 'etemplate_tab'+(t == tab ? '_active th' : ' row_on');
}
document.getElementByName(name).value = tab;
if (name) {
set_element(document.eTemplate,name,tab);
}
}

View File

@ -1,5 +1,5 @@
<?php
// eTemplates for Application 'etemplate', generated by soetemplate::dump4setup() 2005-05-08 08:57
// eTemplates for Application 'etemplate', generated by soetemplate::dump4setup() 2005-05-19 15:10
/* $Id$ */
@ -97,34 +97,22 @@ $templ_data[] = array('name' => 'etemplate.nextmatch_widget.nm_row','template' =
$templ_data[] = array('name' => 'etemplate.stack-test','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:4:{s:4:"type";s:4:"deck";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:5:"label";s:5:"label";s:10:"Hallo Ralf";s:4:"name";s:4:"ralf";}i:2;a:3:{s:4:"type";s:5:"label";s:5:"label";s:10:"Hallo Welt";s:4:"name";s:4:"welt";}}}}s:4:"rows";i:1;s:4:"cols";i:1;}}','size' => '','style' => '','modified' => '1047754314',);
$templ_data[] = array('name' => 'etemplate.tab_widget','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:1:{s:2:"c1";s:7:",bottom";}i:1;a:1:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:5:"@tabs";}}i:2;a:1:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:5:"@body";}}}s:4:"rows";i:2;s:4:"cols";i:1;s:4:"size";s:7:",,,,0,0";}}','size' => ',,,,0,0','style' => '.etemplate_tab { border-style:solid; border-width:2px 2px 0px; border-color:black; padding:4px; }
.tab_body { border-style: solid; border-color: black; border-width: 2px; }','modified' => '1034103680',);
$templ_data[] = array('name' => 'etemplate.tab_widget','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:7:",bottom";s:2:"c2";s:7:"row_off";}i:1;a:1:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:5:"@tabs";}}i:2;a:1:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:5:"@body";}}}s:4:"rows";i:2;s:4:"cols";i:1;s:4:"size";s:7:",,,,0,0";}}','size' => ',,,,0,0','style' => '.etemplate_tab { border-style:solid; border-width:1px 1px 0px; border-color:black; padding:4px; width: 60px;}
.etemplate_tab_active { border-style:solid; border-width:1px 1px 0px; border-color:black;padding:6px; width: 60px;}
.tab_body { border-style: solid; border-color: black; border-width: 1px; width: 1000px; height: 300px; }','modified' => '1047804667',);
$templ_data[] = array('name' => 'etemplate.tab_widget','template' => '','lang' => '','group' => '0','version' => '0.9.15.002','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:7:",bottom";s:2:"c2";s:7:"row_off";}i:1;a:1:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:5:"@tabs";}}i:2;a:1:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:5:"@body";}}}s:4:"rows";i:2;s:4:"cols";i:1;s:4:"size";s:11:"100%,,,,0,0";}}','size' => '100%,,,,0,0','style' => '.etemplate_tab { border-style:solid; border-width:1px 1px 0px; border-color:black; padding:4px; width: 60px;}
.etemplate_tab_active { border-style:solid; border-width:1px 1px 0px; border-color:black;padding:6px; width: 60px;}
$templ_data[] = array('name' => 'etemplate.tab_widget','template' => '','lang' => '','group' => '0','version' => '0.9.15.002','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:7:",bottom";s:2:"c2";s:7:"row_off";}i:1;a:1:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:5:"@tabs";}}i:2;a:1:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:5:"@body";}}}s:4:"rows";i:2;s:4:"cols";i:1;s:4:"size";s:11:"100%,,,,0,0";}}','size' => '100%,,,,0,0','style' => '.etemplate_tab { border-style:solid; border-width:1px 1px 0px; border-color:black; padding:3px; padding-left: 6px; padding-right: 6px; width: 60px; cursor: pointer; cursor: hand; }
.etemplate_tab_active { border-style:solid; border-width:2px 2px 0px; border-color:black; padding:3px; padding-left: 6px; padding-right: 6px; width: 60px;}
.tab_body { border-style: solid; border-color: black; border-width: 1px; }','modified' => '1054320131',);
$templ_data[] = array('name' => 'etemplate.tab_widget.tab','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:6:{s:4:"type";s:6:"button";s:4:"span";s:14:",etemplate_tab";s:5:"label";s:6:"@label";s:4:"name";s:3:"tab";s:8:"onchange";s:1:"1";s:4:"help";s:5:"@help";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:6:",,,,,0";}}','size' => ',,,,,0','style' => '.etemplate_tab { border-style:solid; border-width:2px 2px 0px; border-color:black; padding:4px; }','modified' => '1033480039',);
$templ_data[] = array('name' => 'etemplate.tab_widget','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:1:{s:2:"c2";s:7:"row_off";}i:1;a:1:{s:1:"A";a:4:{s:4:"name";s:4:"tabs";s:4:"type";s:4:"hbox";s:4:"size";s:1:"1";i:1;a:1:{s:4:"type";s:5:"label";}}}i:2;a:1:{s:1:"A";a:6:{s:5:"class";s:8:"tab_body";s:4:"name";s:4:"body";s:4:"type";s:4:"deck";s:4:"size";s:1:"1";i:1;a:1:{s:4:"type";s:5:"label";}s:4:"span";s:9:",tab_body";}}}s:4:"cols";i:1;s:4:"rows";i:2;s:4:"size";s:11:"100%,,,,0,0";}}','size' => '100%,,,,0,0','style' => '.etemplate_tab,.etemplate_tab_active { border-style:solid; border-width:1px 1px 0px; border-color:black; padding:3px; padding-left: 6px; padding-right: 6px; width: 60px; white-space: nowrap; }
.etemplate_tab { cursor: pointer; cursor: hand; }
.etemplate_tab_active { border-width:2px 2px 0px; }
.tab_body { border: black solid 2px; }','modified' => '1116190462',);
$templ_data[] = array('name' => 'etemplate.tab_widget.tab','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:6:{s:4:"type";s:6:"button";s:4:"span";s:21:",etemplate_tab row_on";s:5:"label";s:6:"@label";s:4:"name";s:3:"tab";s:8:"onchange";s:1:"1";s:4:"help";s:5:"@help";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:6:",,,,,0";}}','size' => ',,,,,0','style' => '','modified' => '1050260954',);
$templ_data[] = array('name' => 'etemplate.tab_widget.tab_active','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:1:{s:2:"c1";s:3:"nmh";}i:1;a:1:{s:1:"A";a:4:{s:4:"type";s:5:"label";s:4:"span";s:21:",etemplate_tab_active";s:5:"label";s:6:"@label";s:4:"help";s:5:"@help";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:7:",,,,0,0";}}','size' => ',,,,0,0','style' => '.etemplate_tab_active { border-style:solid; border-width:2px 2px 0px; border-color:black; padding:6px; }','modified' => '1032907904',);
$templ_data[] = array('name' => 'etemplate.tab_widget.tab_active','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:24:",etemplate_tab_active th";s:5:"label";s:6:"@label";s:4:"name";s:3:"tab";s:4:"help";s:5:"@help";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:7:",,,,0,0";}}','size' => ',,,,0,0','style' => '','modified' => '1047802812',);
$templ_data[] = array('name' => 'etemplate.tab_widget.tab_dom','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:6:{s:4:"type";s:5:"label";s:4:"span";s:21:",etemplate_tab row_on";s:5:"label";s:6:"@label";s:4:"name";s:3:"tab";s:8:"onchange";s:1:"1";s:4:"help";s:5:"@help";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:7:",,,,0,0";}}','size' => ',,,,0,0','style' => '','modified' => '1050260920',);
$templ_data[] = array('name' => 'etemplate.tab_widget.test','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:3:{s:1:"A";s:3:"120";s:2:"c1";s:6:"row_on";s:2:"c2";s:7:"row_off";}i:1;a:3:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Surname";s:4:"size";s:10:",,,surname";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:7:"surname";s:4:"help";s:7:"Surname";}s:1:"C";a:4:{s:4:"type";s:4:"text";s:5:"label";s:10:"Familyname";s:4:"name";s:10:"familyname";s:4:"help";s:10:"Familyname";}}i:2;a:3:{s:1:"A";a:5:{s:4:"type";s:3:"tab";s:4:"span";s:3:"all";s:5:"label";s:16:"Privat|Work|Note";s:4:"name";s:16:"privat|work|note";s:4:"help";s:42:"privat address|work address|free note-text";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:4:"save";s:4:"help";s:12:"Save changes";}s:1:"B";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Cancel";s:4:"name";s:6:"cancel";s:4:"help";s:26:"Cancel, discarding changes";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:4;s:4:"cols";i:3;}}','size' => '','style' => '','modified' => '1108424730',);
$templ_data[] = array('name' => 'etemplate.tab_widget.test','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:3:{s:1:"A";s:3:"120";s:2:"c1";s:6:"row_on";s:2:"c2";s:7:"row_off";}i:1;a:3:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Surname";s:4:"size";s:10:",,,surname";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:7:"surname";s:4:"help";s:7:"Surname";}s:1:"C";a:4:{s:4:"type";s:4:"text";s:5:"label";s:10:"Familyname";s:4:"name";s:10:"familyname";s:4:"help";s:10:"Familyname";}}i:2;a:3:{s:1:"A";a:5:{s:4:"type";s:3:"tab";s:4:"span";s:3:"all";s:5:"label";s:16:"Privat|Work|Note";s:4:"name";s:16:"privat|work|note";s:4:"help";s:42:"privat address|work address|free note-text";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:4:"save";s:4:"help";s:12:"Save changes";}s:1:"B";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Cancel";s:4:"name";s:6:"cancel";s:4:"help";s:26:"Cancel, discarding changes";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:4;s:4:"cols";i:3;s:4:"size";s:4:"100%";}}','size' => '100%','style' => '','modified' => '1108424730',);
$templ_data[] = array('name' => 'etemplate.tab_widget.test.note','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:2:{s:1:"A";s:3:"115";s:2:"c1";s:7:"nmr,top";}i:1;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Note";}s:1:"B";a:4:{s:4:"type";s:8:"textarea";s:4:"size";s:5:"10,80";s:4:"name";s:4:"note";s:4:"help";s:34:"You can enter some free text here.";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"size";s:4:"100%";}}','size' => '100%','style' => '','modified' => '1032907904',);
$templ_data[] = array('name' => 'etemplate.tab_widget.test.privat','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:6:{s:1:"A";s:3:"100";s:2:"c1";s:3:"nmr";s:2:"c2";s:3:"nmr";s:2:"c3";s:3:"nmr";s:2:"c4";s:3:"nmr";s:2:"c5";s:3:"nmr";}i:1;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Street";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"40";s:4:"name";s:5:"p_str";s:4:"help";s:6:"Street";}}i:2;a:2:{s:1:"A";a:5:{s:4:"type";s:4:"text";s:4:"size";s:1:"8";s:5:"label";s:4:"city";s:4:"name";s:5:"p_zip";s:4:"help";s:8:"ZIP Code";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"40";s:4:"name";s:6:"p_city";s:4:"help";s:4:"City";}}i:3;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Telefon";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:9:"p_telefon";s:4:"help";s:13:"Telefonnumber";}}i:4;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"Fax";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:5:"p_fax";s:4:"help";s:9:"Faxnumber";}}i:5;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Birthday";}s:1:"B";a:4:{s:4:"type";s:4:"date";s:4:"size";s:7:"Y-m-d,1";s:4:"name";s:8:"geb_date";s:4:"help";s:7:"Birtday";}}}s:4:"rows";i:5;s:4:"cols";i:2;s:4:"size";s:4:"100%";}}','size' => '100%','style' => '','modified' => '1046598712',);
$templ_data[] = array('name' => 'etemplate.tab_widget.test.privat','template' => '','lang' => '','group' => '0','version' => '1','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:6:{s:1:"A";s:3:"115";s:2:"c1";s:3:"nmr";s:2:"c2";s:3:"nmr";s:2:"c3";s:3:"nmr";s:2:"c4";s:3:"nmr";s:2:"c5";s:3:"nmr";}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:6:"Street";s:4:"size";s:8:",,,p_str";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"40";s:4:"name";s:5:"p_str";s:4:"help";s:6:"Street";}}i:2;a:2:{s:1:"A";a:5:{s:4:"type";s:4:"text";s:4:"size";s:1:"8";s:5:"label";s:4:"city";s:4:"name";s:5:"p_zip";s:4:"help";s:8:"ZIP Code";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"40";s:4:"name";s:6:"p_city";s:4:"help";s:4:"City";}}i:3;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Telefon";s:4:"size";s:12:",,,p_telefon";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:9:"p_telefon";s:4:"help";s:13:"Telefonnumber";}}i:4;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:3:"Fax";s:4:"size";s:8:",,,p_fax";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:5:"p_fax";s:4:"help";s:9:"Faxnumber";}}i:5;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Birthday";}s:1:"B";a:4:{s:4:"type";s:4:"date";s:4:"size";s:7:"Y-m-d,1";s:4:"name";s:8:"geb_date";s:4:"help";s:7:"Birtday";}}}s:4:"rows";i:5;s:4:"cols";i:2;}}','size' => '','style' => '','modified' => '1108424742',);
$templ_data[] = array('name' => 'etemplate.tab_widget.test.privat','template' => '','lang' => '','group' => '0','version' => '1','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:6:{s:1:"A";s:3:"115";s:2:"c1";s:3:"nmr";s:2:"c2";s:3:"nmr";s:2:"c3";s:3:"nmr";s:2:"c4";s:3:"nmr";s:2:"c5";s:3:"nmr";}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:6:"Street";s:4:"size";s:8:",,,p_str";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"40";s:4:"name";s:5:"p_str";s:4:"help";s:6:"Street";}}i:2;a:2:{s:1:"A";a:5:{s:4:"type";s:4:"text";s:4:"size";s:1:"8";s:5:"label";s:4:"city";s:4:"name";s:5:"p_zip";s:4:"help";s:8:"ZIP Code";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"40";s:4:"name";s:6:"p_city";s:4:"help";s:4:"City";}}i:3;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Telefon";s:4:"size";s:12:",,,p_telefon";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:9:"p_telefon";s:4:"help";s:13:"Telefonnumber";}}i:4;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:3:"Fax";s:4:"size";s:8:",,,p_fax";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:5:"p_fax";s:4:"help";s:9:"Faxnumber";}}i:5;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Birthday";}s:1:"B";a:4:{s:4:"type";s:4:"date";s:4:"size";s:7:"Y-m-d,1";s:4:"name";s:8:"geb_date";s:4:"help";s:7:"Birtday";}}}s:4:"rows";i:5;s:4:"cols";i:2;s:4:"size";s:4:"100%";}}','size' => '100%','style' => '','modified' => '1108424742',);
$templ_data[] = array('name' => 'etemplate.tab_widget.test.work','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:7:{i:0;a:7:{s:1:"A";s:3:"115";s:2:"c1";s:3:"nmr";s:2:"c2";s:3:"nmr";s:2:"c3";s:3:"nmr";s:2:"c4";s:3:"nmr";s:2:"c5";s:3:"nmr";s:2:"c6";s:3:"nmr";}i:1;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:11:"Companyname";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"size";s:2:"40";s:4:"name";s:7:"company";}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Street";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"40";s:4:"name";s:5:"w_str";s:4:"help";s:6:"Street";}}i:3;a:2:{s:1:"A";a:5:{s:4:"type";s:4:"text";s:4:"size";s:1:"8";s:5:"label";s:4:"city";s:4:"name";s:5:"w_zip";s:4:"help";s:8:"ZIP Code";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"40";s:4:"name";s:6:"w_city";s:4:"help";s:4:"City";}}i:4;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Telefon";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:9:"w_telefon";s:4:"help";s:13:"Telefonnumber";}}i:5;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"Fax";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:5:"w_fax";s:4:"help";s:9:"Faxnumber";}}i:6;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Founded";}s:1:"B";a:4:{s:4:"type";s:4:"date";s:4:"size";s:7:"Y-m-d,1";s:4:"name";s:7:"founded";s:4:"help";s:28:"when was the company founded";}}}s:4:"rows";i:6;s:4:"cols";i:2;s:4:"size";s:4:"100%";}}','size' => '100%','style' => '','modified' => '1046598820',);

View File

@ -1,22 +1,29 @@
<?xml version="1.0"?>
<!-- $Id$ -->
<overlay>
<grid id="etemplate.tab_widget" template="" lang="" group="" version="0.9.15.002" width="100%" spacing="0" padding="0">
<columns>
<column/>
</columns>
<rows>
<row valign="bottom">
<grid id="@tabs"/>
</row>
<row class="row_off">
<grid id="@body"/>
</row>
</rows>
<template id="etemplate.tab_widget" template="" lang="" group="0" version="1.0.1.001">
<grid width="100%" spacing="0" padding="0">
<columns>
<column/>
</columns>
<rows>
<row>
<hbox id="tabs">
<description/>
</hbox>
</row>
<row class="row_off">
<deck class="tab_body" id="body">
<description/>
</deck>
</row>
</rows>
</grid>
<styles>
.etemplate_tab { border-style:solid; border-width:1px 1px 0px; border-color:black; padding:4px; width: 60px;}
.etemplate_tab_active { border-style:solid; border-width:1px 1px 0px; border-color:black;padding:6px; width: 60px;}
.tab_body { border-style: solid; border-color: black; border-width: 1px; }
.etemplate_tab,.etemplate_tab_active { border-style:solid; border-width:1px 1px 0px; border-color:black; padding:3px; padding-left: 6px; padding-right: 6px; width: 60px; white-space: nowrap; }
.etemplate_tab { cursor: pointer; cursor: hand; }
.etemplate_tab_active { border-width:2px 2px 0px; }
.tab_body { border: black solid 2px; }
</styles>
</grid>
</template>
</overlay>