From e66fc404083672b17cb7c14d15fd83c271d83c3c Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Thu, 19 May 2005 13:16:52 +0000 Subject: [PATCH] tab-widget can change now between the tabs without a reload --- etemplate/inc/class.tab_widget.inc.php | 136 +++++++++++---------- etemplate/inc/class.uietemplate.inc.php | 99 +++++++-------- etemplate/js/etemplate.js | 8 +- etemplate/setup/etemplates.inc.php | 30 ++--- etemplate/templates/default/tab_widget.xet | 39 +++--- 5 files changed, 159 insertions(+), 153 deletions(-) diff --git a/etemplate/inc/class.tab_widget.inc.php b/etemplate/inc/class.tab_widget.inc.php index 3108c0cada..8a9aa02881 100644 --- a/etemplate/inc/class.tab_widget.inc.php +++ b/etemplate/inc/class.tab_widget.inc.php @@ -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 "

tab_widget::pre_process('$form_name',$value,,$extension_data)

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

tab_widget::post_process($name): value = "; _debug_array($value); - if (is_array($value)) + //echo "

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; } } diff --git a/etemplate/inc/class.uietemplate.inc.php b/etemplate/inc/class.uietemplate.inc.php index 2a56fad343..e62ab0a7f8 100644 --- a/etemplate/inc/class.uietemplate.inc.php +++ b/etemplate/inc/class.uietemplate.inc.php @@ -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\n$html\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 : ''); } diff --git a/etemplate/js/etemplate.js b/etemplate/js/etemplate.js index acd4f6cf19..754b8f4842 100644 --- a/etemplate/js/etemplate.js +++ b/etemplate/js/etemplate.js @@ -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); + } } diff --git a/etemplate/setup/etemplates.inc.php b/etemplate/setup/etemplates.inc.php index 0bf9eef74a..bdadc60e9e 100644 --- a/etemplate/setup/etemplates.inc.php +++ b/etemplate/setup/etemplates.inc.php @@ -1,5 +1,5 @@ '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',); diff --git a/etemplate/templates/default/tab_widget.xet b/etemplate/templates/default/tab_widget.xet index 063d1b7a4f..f55f20a68c 100644 --- a/etemplate/templates/default/tab_widget.xet +++ b/etemplate/templates/default/tab_widget.xet @@ -1,22 +1,29 @@ - - - - - - - - - - - - + \ No newline at end of file