fix for bug #658: Custom Fields - added user in list comes up as ID (number)

Unfortunatetly this bugfix requires some corrections in the way the customfield widget is called in the templates of other apps
This commit is contained in:
Ralf Becker 2007-07-11 15:43:09 +00:00
parent d18508da58
commit 1e3627ad51
15 changed files with 143 additions and 137 deletions

View File

@ -940,7 +940,7 @@ class uicontacts extends bocontacts
{ {
foreach($this->customfields as $name => $data) foreach($this->customfields as $name => $data)
{ {
$row['customfields'][] = $customfields[$row['id']][$name] ? $customfields[$row['id']][$name] : ' '; $row['#'.$name] = $customfields[$row['id']][$name];
} }
} }
if ($this->prefs['home_column'] != 'never' && !$homeaddress) if ($this->prefs['home_column'] != 'never' && !$homeaddress)

File diff suppressed because one or more lines are too long

View File

@ -71,4 +71,10 @@ fieldset.emailGroup {
} }
.noWrap{ .noWrap{
white-space: nowrap; white-space: nowrap;
}
.customfields{
}
.customfields td{
white-space: nowrap;
line-height: 12px;
} }

View File

@ -314,7 +314,7 @@
</rows> </rows>
</grid> </grid>
</template> </template>
<template id="addressbook.edit.custom" template="" lang="" group="0" version="1.3.004"> <template id="addressbook.edit.custom" template="" lang="" group="0" version="1.4.001">
<grid width="100%" height="258" class="row_on" spacing="0" padding="0" overflow="auto"> <grid width="100%" height="258" class="row_on" spacing="0" padding="0" overflow="auto">
<columns> <columns>
<column/> <column/>
@ -324,7 +324,7 @@
<description value="Custom fields"/> <description value="Custom fields"/>
</row> </row>
<row height="100%"> <row height="100%">
<customfields id="customfields"/> <customfields/>
</row> </row>
</rows> </rows>
</grid> </grid>

View File

@ -14,7 +14,7 @@
</hbox> </hbox>
<styles>.rightPadAdd { width: 30px; }</styles> <styles>.rightPadAdd { width: 30px; }</styles>
</template> </template>
<template id="addressbook.index.rows" template="" lang="" group="0" version="1.4.001"> <template id="addressbook.index.rows" template="" lang="" group="0" version="1.4.002">
<grid width="100%"> <grid width="100%">
<columns> <columns>
<column/> <column/>
@ -145,16 +145,7 @@
<description options=",@${row}[email_link],,,_blank,$row_cont[email_popup]" class="fixedHeight" id="${row}[email]" no_lang="1"/> <description options=",@${row}[email_link],,,_blank,$row_cont[email_popup]" class="fixedHeight" id="${row}[email]" no_lang="1"/>
<description options=",@${row}[email_home_link],,,_blank,$row_cont[email_home_popup]" class="fixedHeight" id="${row}[email_home]" no_lang="1"/> <description options=",@${row}[email_home_link],,,_blank,$row_cont[email_home_popup]" class="fixedHeight" id="${row}[email_home]" no_lang="1"/>
</vbox> </vbox>
<grid height="48" border="0" spacing="0" padding="0" overflow="auto" id="${row}[customfields]"> <customfields-list rows="1" cols="1" id="$row" class="customfields"/>
<columns>
<column/>
</columns>
<rows>
<row>
<description class="fixedHeight" no_lang="1" id="$row"/>
</row>
</rows>
</grid>
<vbox options="0,0"> <vbox options="0,0">
<date-time id="${row}[created]" readonly="true" class="noWrap"/> <date-time id="${row}[created]" readonly="true" class="noWrap"/>
<menulist> <menulist>

View File

@ -31,25 +31,6 @@
*/ */
var $appname; var $appname;
/**
* Allowd types of customfields
*
* The additionally allowed app-names from the link-class, will be add by the edit-method only,
* as the link-class has to be called, which can NOT be instanciated by the constructor, as
* we get a loop in the instanciation.
*
* @var array
*/
var $cf_types = array(
'text' => 'Text',
'label' => 'Label',
'select' => 'Selectbox',
'radio' => 'Radiobutton',
'checkbox' => 'Checkbox',
'date' => 'Date',
'date-time'=> 'Date+Time',
'link-entry' => 'Select entry',
);
/** /**
* userdefiened types e.g. type of infolog * userdefiened types e.g. type of infolog
* *
@ -64,7 +45,6 @@
function customfields($appname='') function customfields($appname='')
{ {
// $this->tmpl =& CreateObject('etemplate.etemplate');
$this->config =& CreateObject('phpgwapi.config',$this->appname=$appname); $this->config =& CreateObject('phpgwapi.config',$this->appname=$appname);
if ($appname) if ($appname)
{ {
@ -204,12 +184,6 @@
$sel_options = array( $sel_options = array(
'type2' => $this->types2 + array('tmpl' => 'template'), 'type2' => $this->types2 + array('tmpl' => 'template'),
); );
$GLOBALS['egw']->translation->add_app('etemplate');
foreach($this->cf_types as $name => $label) $sel_options['type'][$name] = lang($label);
$link_types = ExecMethod('phpgwapi.bolink.app_list','');
ksort($link_types);
foreach($link_types as $name => $label) $sel_options['type'][$name] = '- '.$label;
$this->tmpl->exec('admin.customfields.edit',$content,$sel_options,$readonlys,array( $this->tmpl->exec('admin.customfields.edit',$content,$sel_options,$readonlys,array(
'fields' => $preserv_fields, 'fields' => $preserv_fields,
'appname' => $this->appname, 'appname' => $this->appname,

View File

@ -2,7 +2,7 @@
/** /**
* eGroupWare - eTemplates for Application admin * eGroupWare - eTemplates for Application admin
* http://www.egroupware.org * http://www.egroupware.org
* generated by soetemplate::dump4setup() 2006-10-05 10:38 * generated by soetemplate::dump4setup() 2007-07-11 11:18
* *
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package admin * @package admin
@ -21,5 +21,7 @@ $templ_data[] = array('name' => 'admin.customfields.fields','template' => '','la
$templ_data[] = array('name' => 'admin.customfields.fields','template' => '','lang' => '','group' => '0','version' => '1.2','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:3:{s:2:"c1";s:2:"th";s:2:"c2";s:7:"row,top";s:1:"C";s:8:",!@type2";}i:1;a:8:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:4:"Name";s:4:"help";s:83:"the name used internaly (<= 20 chars), changeing it makes existing data unavailible";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Label";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Subtype";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Options";s:4:"help";s:40:"each value is a line like <id>[=<label>]";}s:1:"F";a:2:{s:4:"type";s:5:"label";s:5:"label";s:14:"Length<br>Rows";}s:1:"G";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Order";}s:1:"H";a:4:{s:4:"type";s:5:"label";s:5:"label";s:6:"Action";s:5:"align";s:6:"center";s:4:"help";s:18:"deletes this field";}}i:2;a:8:{s:1:"A";a:4:{s:4:"type";s:4:"text";s:4:"size";s:5:"20,32";s:4:"name";s:12:"${row}[name]";s:4:"help";s:83:"the name used internaly (<= 20 chars), changeing it makes existing data unavailible";}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:4:",255";s:4:"name";s:13:"${row}[label]";s:4:"help";s:30:"the text displayed to the user";}i:2;a:2:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[label]";}}s:1:"C";a:4:{s:4:"type";s:6:"select";s:4:"size";s:3:"All";s:4:"name";s:13:"${row}[type2]";s:7:"no_lang";s:1:"1";}s:1:"D";a:4:{s:4:"type";s:6:"select";s:4:"name";s:12:"{$row}[type]";s:4:"help";s:19:"Type of customfield";s:7:"no_lang";s:1:"1";}s:1:"E";a:4:{s:4:"type";s:8:"textarea";s:4:"size";s:4:"2,30";s:4:"name";s:14:"${row}[values]";s:4:"help";s:36:"each value is a line like id[=label]";}s:1:"F";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:4:"name";s:11:"${row}[len]";s:4:"help";s:63:"max length of the input [, length of the inputfield (optional)]";}i:2;a:5:{s:4:"type";s:3:"int";s:4:"size";s:6:"0,10,2";s:4:"name";s:12:"${row}[rows]";s:4:"help";s:70:"number of row for a multiline inputfield or line of a multi-select-box";s:4:"blur";s:1:"1";}}s:1:"G";a:4:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,,3";s:4:"name";s:13:"${row}[order]";s:4:"help";s:45:"determines the order the fields are displayed";}s:1:"H";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:23:"delete[$row_cont[name]]";s:4:"help";s:18:"deletes this field";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Create";s:4:"name";s:21:"create$row_cont[name]";s:4:"help";s:19:"creates a new field";}}}}s:4:"rows";i:2;s:4:"cols";i:8;s:7:"options";a:0:{}}}','size' => '','style' => '','modified' => '1131454776',); $templ_data[] = array('name' => 'admin.customfields.fields','template' => '','lang' => '','group' => '0','version' => '1.2','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:3:{s:2:"c1";s:2:"th";s:2:"c2";s:7:"row,top";s:1:"C";s:8:",!@type2";}i:1;a:8:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:4:"Name";s:4:"help";s:83:"the name used internaly (<= 20 chars), changeing it makes existing data unavailible";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Label";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Subtype";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Options";s:4:"help";s:40:"each value is a line like <id>[=<label>]";}s:1:"F";a:2:{s:4:"type";s:5:"label";s:5:"label";s:14:"Length<br>Rows";}s:1:"G";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Order";}s:1:"H";a:4:{s:4:"type";s:5:"label";s:5:"label";s:6:"Action";s:5:"align";s:6:"center";s:4:"help";s:18:"deletes this field";}}i:2;a:8:{s:1:"A";a:4:{s:4:"type";s:4:"text";s:4:"size";s:5:"20,32";s:4:"name";s:12:"${row}[name]";s:4:"help";s:83:"the name used internaly (<= 20 chars), changeing it makes existing data unavailible";}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:4:",255";s:4:"name";s:13:"${row}[label]";s:4:"help";s:30:"the text displayed to the user";}i:2;a:2:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[label]";}}s:1:"C";a:4:{s:4:"type";s:6:"select";s:4:"size";s:3:"All";s:4:"name";s:13:"${row}[type2]";s:7:"no_lang";s:1:"1";}s:1:"D";a:4:{s:4:"type";s:6:"select";s:4:"name";s:12:"{$row}[type]";s:4:"help";s:19:"Type of customfield";s:7:"no_lang";s:1:"1";}s:1:"E";a:4:{s:4:"type";s:8:"textarea";s:4:"size";s:4:"2,30";s:4:"name";s:14:"${row}[values]";s:4:"help";s:36:"each value is a line like id[=label]";}s:1:"F";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:4:"name";s:11:"${row}[len]";s:4:"help";s:63:"max length of the input [, length of the inputfield (optional)]";}i:2;a:5:{s:4:"type";s:3:"int";s:4:"size";s:6:"0,10,2";s:4:"name";s:12:"${row}[rows]";s:4:"help";s:70:"number of row for a multiline inputfield or line of a multi-select-box";s:4:"blur";s:1:"1";}}s:1:"G";a:4:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,,3";s:4:"name";s:13:"${row}[order]";s:4:"help";s:45:"determines the order the fields are displayed";}s:1:"H";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:23:"delete[$row_cont[name]]";s:4:"help";s:18:"deletes this field";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Create";s:4:"name";s:21:"create$row_cont[name]";s:4:"help";s:19:"creates a new field";}}}}s:4:"rows";i:2;s:4:"cols";i:8;s:7:"options";a:0:{}}}','size' => '','style' => '','modified' => '1131454776',);
$templ_data[] = array('name' => 'admin.customfields.fields','template' => '','lang' => '','group' => '0','version' => '1.4.001','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:3:{s:2:"c1";s:2:"th";s:2:"c2";s:7:"row,top";s:1:"C";s:8:",!@type2";}i:1;a:8:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:4:"Name";s:4:"help";s:83:"the name used internaly (<= 20 chars), changeing it makes existing data unavailible";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Label";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Subtype";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"E";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Options";s:4:"help";s:40:"each value is a line like <id>[=<label>]";}s:1:"F";a:2:{s:4:"type";s:5:"label";s:5:"label";s:14:"Length<br>Rows";}s:1:"G";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Order";}s:1:"H";a:4:{s:4:"type";s:5:"label";s:5:"label";s:6:"Action";s:5:"align";s:6:"center";s:4:"help";s:18:"deletes this field";}}i:2;a:8:{s:1:"A";a:4:{s:4:"type";s:4:"text";s:4:"size";s:5:"20,32";s:4:"name";s:12:"${row}[name]";s:4:"help";s:83:"the name used internaly (<= 20 chars), changeing it makes existing data unavailible";}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:4:",255";s:4:"name";s:13:"${row}[label]";s:4:"help";s:30:"the text displayed to the user";}i:2;a:2:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[label]";}}s:1:"C";a:4:{s:4:"type";s:6:"select";s:4:"size";s:3:"All";s:4:"name";s:13:"${row}[type2]";s:7:"no_lang";s:1:"1";}s:1:"D";a:3:{s:4:"type";s:18:"customfields-types";s:4:"name";s:12:"{$row}[type]";s:4:"help";s:19:"Type of customfield";}s:1:"E";a:4:{s:4:"type";s:8:"textarea";s:4:"size";s:4:"2,30";s:4:"name";s:14:"${row}[values]";s:4:"help";s:36:"each value is a line like id[=label]";}s:1:"F";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:4:"name";s:11:"${row}[len]";s:4:"help";s:63:"max length of the input [, length of the inputfield (optional)]";}i:2;a:5:{s:4:"type";s:3:"int";s:4:"size";s:6:"0,10,2";s:4:"name";s:12:"${row}[rows]";s:4:"help";s:70:"number of row for a multiline inputfield or line of a multi-select-box";s:4:"blur";s:1:"1";}}s:1:"G";a:4:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,,3";s:4:"name";s:13:"${row}[order]";s:4:"help";s:45:"determines the order the fields are displayed";}s:1:"H";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:23:"delete[$row_cont[name]]";s:4:"help";s:18:"deletes this field";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Create";s:4:"name";s:21:"create$row_cont[name]";s:4:"help";s:19:"creates a new field";}}}}s:4:"rows";i:2;s:4:"cols";i:8;s:7:"options";a:0:{}}}','size' => '','style' => '','modified' => '1131454776',);
$templ_data[] = array('name' => 'admin.customfields.types','template' => '','lang' => '','group' => '0','version' => '1.2','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:1:{s:1:"D";s:15:",@non_deletable";}i:1;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"name";s:8:"app-name";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"- type";}s:1:"C";a:4:{s:4:"type";s:6:"select";s:4:"name";s:5:"types";s:8:"onchange";s:1:"1";s:7:"no_lang";s:1:"1";}s:1:"D";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:6:"delete";s:7:"onclick";s:110:"return confirm(\'WARNING: You are about to delete this type. Entries of this type won\\\'t be accessable then.\');";}s:1:"E";a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:4:"blur";s:8:"new name";}s:1:"F";a:3:{s:4:"type";s:6:"button";s:5:"label";s:6:"Create";s:4:"name";s:6:"create";}}}s:4:"rows";i:1;s:4:"cols";i:6;}}','size' => '','style' => '','modified' => '1139823458',); $templ_data[] = array('name' => 'admin.customfields.types','template' => '','lang' => '','group' => '0','version' => '1.2','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:1:{s:1:"D";s:15:",@non_deletable";}i:1;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"name";s:8:"app-name";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"- type";}s:1:"C";a:4:{s:4:"type";s:6:"select";s:4:"name";s:5:"types";s:8:"onchange";s:1:"1";s:7:"no_lang";s:1:"1";}s:1:"D";a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:6:"delete";s:7:"onclick";s:110:"return confirm(\'WARNING: You are about to delete this type. Entries of this type won\\\'t be accessable then.\');";}s:1:"E";a:3:{s:4:"type";s:4:"text";s:4:"name";s:4:"name";s:4:"blur";s:8:"new name";}s:1:"F";a:3:{s:4:"type";s:6:"button";s:5:"label";s:6:"Create";s:4:"name";s:6:"create";}}}s:4:"rows";i:1;s:4:"cols";i:6;}}','size' => '','style' => '','modified' => '1139823458',);

View File

@ -25,7 +25,7 @@
</rows> </rows>
</grid> </grid>
</template> </template>
<template id="admin.customfields.fields" template="" lang="" group="0" version="1.2"> <template id="admin.customfields.fields" template="" lang="" group="0" version="1.4.001">
<grid> <grid>
<columns> <columns>
<column/> <column/>
@ -57,9 +57,7 @@
<menulist> <menulist>
<menupopup options="All" id="${row}[type2]" no_lang="1"/> <menupopup options="All" id="${row}[type2]" no_lang="1"/>
</menulist> </menulist>
<menulist> <customfields-types id="{$row}[type]" statustext="Type of customfield"/>
<menupopup id="{$row}[type]" statustext="Type of customfield" no_lang="1"/>
</menulist>
<textbox multiline="true" rows="2" cols="30" id="${row}[values]" statustext="each value is a line like id[=label]"/> <textbox multiline="true" rows="2" cols="30" id="${row}[values]" statustext="each value is a line like id[=label]"/>
<vbox> <vbox>
<textbox size="5" id="${row}[len]" statustext="max length of the input [, length of the inputfield (optional)]"/> <textbox size="5" id="${row}[len]" statustext="max length of the input [, length of the inputfield (optional)]"/>

File diff suppressed because one or more lines are too long

View File

@ -163,14 +163,14 @@
</rows> </rows>
</grid> </grid>
</template> </template>
<template id="calendar.edit.custom" template="" lang="" group="0" version="1.0.1.001"> <template id="calendar.edit.custom" template="" lang="" group="0" version="1.4.001">
<grid width="100%" height="200" overflow="auto"> <grid width="100%" height="200" overflow="auto">
<columns> <columns>
<column/> <column/>
</columns> </columns>
<rows> <rows>
<row valign="top"> <row valign="top">
<customfields id="customfields"/> <customfields/>
</row> </row>
</rows> </rows>
</grid> </grid>
@ -258,7 +258,7 @@
</rows> </rows>
</grid> </grid>
</template> </template>
<template id="calendar.edit" template="" lang="" group="0" version="1.3.003"> <template id="calendar.edit" template="" lang="" group="0" version="1.3.004">
<grid width="100%"> <grid width="100%">
<columns> <columns>
<column width="100"/> <column width="100"/>

View File

@ -23,8 +23,33 @@
var $public_functions = array( var $public_functions = array(
'pre_process' => True, 'pre_process' => True,
); );
var $human_name = 'custom fields'; var $human_name = array(
'customfields' => 'custom fields',
'customfields-types' => 'custom field types',
'customfields-list' => 'custom field list',
);
/**
* Allowd types of customfields
*
* The additionally allowed app-names from the link-class, will be add by the edit-method only,
* as the link-class has to be called, which can NOT be instanciated by the constructor, as
* we get a loop in the instanciation.
*
* @var array
*/
var $cf_types = array(
'text' => 'Text',
'label' => 'Label',
'select' => 'Selectbox',
'radio' => 'Radiobutton',
'checkbox' => 'Checkbox',
'date' => 'Date',
'date-time'=> 'Date+Time',
'select-account' => 'Select account',
'link-entry' => 'Select entry', // should be last type, as the individual apps get added behind
);
/** /**
* @var $prefix string Prefix for every custiomfield name returned in $content (# for general (admin) customfields) * @var $prefix string Prefix for every custiomfield name returned in $content (# for general (admin) customfields)
*/ */
@ -38,7 +63,7 @@
$config = $this->config->read_repository(); $config = $this->config->read_repository();
//merge old config_name in egw_config table //merge old config_name in egw_config table
$config_name = isset($config['customfields']) ? 'customfields' : 'custom_fields'; $config_name = isset($config['customfields']) ? 'customfields' : 'custom_fields';
$this->customfields = $config[$config_name]; $this->customfields = $config[$config_name] ? $config[$config_name] : array('test'=>array('type'=>'label'));
$this->types = $config['types']; $this->types = $config['types'];
$this->advanced_search = $GLOBALS['egw_info']['etemplate']['advanced_search']; $this->advanced_search = $GLOBALS['egw_info']['etemplate']['advanced_search'];
@ -46,29 +71,58 @@
function pre_process($name,&$value,&$cell,&$readonlys,&$extension_data,&$tmpl) function pre_process($name,&$value,&$cell,&$readonlys,&$extension_data,&$tmpl)
{ {
$readonly = $cell['readonly'] || $readonlys[$name]; switch($type = $cell['type'])
{
case 'customfields-types':
$cell['type'] = 'select';
foreach($this->cf_types as $name => $label) $cell['sel_options'][$name] = lang($label);
$link_types = ExecMethod('phpgwapi.bolink.app_list','');
ksort($link_types);
foreach($link_types as $name => $label) $cell['sel_options'][$name] = '- '.$label;
$cell['no_lang'] = true;
return true;
case 'customfields-list':
foreach(array_reverse($this->customfields) as $name => $field)
{
if (!empty($field['type2']) && strpos(','.$field['type2'].',',','.$value.',') === false) continue; // not for our content type
if (isset($value[$this->prefix.$name]) && $value[$this->prefix.$name] !== '') break;
$stop_at_field = $name;
}
break;
}
$readonly = $cell['readonly'] || $readonlys[$name] || $type == 'customfields-list';
if(!is_array($this->customfields)) if(!is_array($this->customfields))
{ {
$cell['type'] = 'label'; $cell['type'] = 'label';
return True; return True;
} }
// making the cell an empty grid
$cell['type'] = 'grid';
$cell['data'] = array(array());
$cell['rows'] = $cell['cols'] = 0;
$tpl =& new etemplate; $n = 1;
$tpl->init('*** generated custom fields','','',0,'',0,0); // make an empty template
//echo '<pre style="text-align: left;">'; print_r($value); echo "</pre>\n";
foreach($this->customfields as $name => $field) foreach($this->customfields as $name => $field)
{ {
if ($stop_at_field && $name == $stop_at_field) break; // no further row necessary
// check if the customfield get's displayed for type $value, we can have multiple comma-separated types now // check if the customfield get's displayed for type $value, we can have multiple comma-separated types now
if (!empty($field['type2']) && strpos(','.$field['type2'].',',','.$value.',') === false) if (!empty($field['type2']) && strpos(','.$field['type2'].',',','.$value.',') === false)
{ {
continue; // not for our content type continue; // not for our content type
} }
$row_class = 'row'; $new_row = null; etemplate::add_child($cell,$new_row);
$label = &$tpl->new_cell(++$n,'label',$field['label'],'',array(
'no_lang' => substr(lang($field['label']),-1) == '*' ? 2 : 0 if ($type != 'customfields-list')
)); {
$row_class = 'row';
etemplate::add_child($cell,$label =& etemplate::empty_cell('label','',array(
'label' => $field['label'],
'no_lang' => substr(lang($field['label']),-1) == '*' ? 2 : 0
)));
}
switch ((string)$field['type']) switch ((string)$field['type'])
{ {
case 'select' : case 'select' :
@ -80,41 +134,39 @@
$field['values'][$key] = $val; $field['values'][$key] = $val;
} }
} }
$input = &$tpl->new_cell($n,'hbox'); $input =& etemplate::empty_cell('select',$this->prefix.$name,array(
if($this->advanced_search)
{
$not = &$tpl->add_child($input, $check = &$tpl->empty_cell('checkbox','!'.$this->prefix.$name,array(
'label' => 'NOT',
'no_lang' => True
)));
unset($not);
unset($check);
}
$select = &$tpl->add_child($input, $item = &$tpl->empty_cell('select',$this->prefix.$name,array(
'sel_options' => $field['values'], 'sel_options' => $field['values'],
'size' => $field['rows'], 'size' => $field['rows'],
'no_lang' => True 'no_lang' => True
))); ));
unset($select); if($this->advanced_search)
unset($item); {
$select =& $input; unset($input);
$input =& etemplate::empty_cell('hbox');
etemplate::add_child($input, $select); unset($select);
etemplate::add_child($input, etemplate::empty_cell('select',$this->prefix.$name,array(
'sel_options' => $field['values'],
'size' => $field['rows'],
'no_lang' => True
)));
}
break; break;
case 'label' : case 'label' :
$label['span'] = 'all'; $label['span'] = 'all';
$tpl->new_cell($n); // is needed even if its over-span-ed
$row_class = 'th'; $row_class = 'th';
break; break;
case 'checkbox' : case 'checkbox' :
$input = &$tpl->new_cell($n,'checkbox','',$this->prefix.$name); $input =& etemplate::empty_cell('checkbox',$this->prefix.$name);
break; break;
case 'radio' : case 'radio' :
$input = &$tpl->new_cell($n,'groupbox','','',''); $input =& etemplate::empty_cell('groupbox');
$m = 0; $m = 0;
foreach ($field['values'] as $key => $val) foreach ($field['values'] as $key => $val)
{ {
$radio = $tpl->empty_cell('radio',$this->prefix.$name); $radio = $tpl->empty_cell('radio',$this->prefix.$name);
$radio['label'] = $val; $radio['label'] = $val;
$radio['size'] = $key; $radio['size'] = $key;
$tpl->add_child($input,$radio); etemplate::add_child($input,$radio);
unset($radio); unset($radio);
} }
break; break;
@ -125,26 +177,32 @@
if($field['rows'] <= 1) if($field['rows'] <= 1)
{ {
list($max,$shown) = explode(',',$field['len']); list($max,$shown) = explode(',',$field['len']);
$input = &$tpl->new_cell($n,'text','',$this->prefix.$name,array( $input =& etemplate::empty_cell('text',$this->prefix.$name,array(
'size' => intval($shown > 0 ? $shown : $max).','.intval($max) 'size' => intval($shown > 0 ? $shown : $max).','.intval($max)
)); ));
} }
else else
{ {
$input = &$tpl->new_cell($n,'textarea','',$this->prefix.$name,array( $input =& etemplate::empty_cell('textarea',$this->prefix.$name,array(
'size' => $field['rows'].($field['len'] > 0 ? ','.(int)$field['len'] : '') 'size' => $field['rows'].($field['len'] > 0 ? ','.(int)$field['len'] : '')
)); ));
} }
break; break;
case 'date': case 'date':
case 'date-time': case 'date-time':
$input = &$tpl->new_cell($n,$field['type'],'',$this->prefix.$name,array( $input =& etemplate::empty_cell($field['type'],$this->prefix.$name,array(
'size' => $field['len'] ? $field['len'] : ($field['type'] == 'date' ? 'Y-m-d' : 'Y-m-d H:i:s'), 'size' => $field['len'] ? $field['len'] : ($field['type'] == 'date' ? 'Y-m-d' : 'Y-m-d H:i:s'),
)); ));
break; break;
case 'select-account':
list($opts) = explode('=',$field['values'][0]);
$input =& etemplate::empty_cell('select-account',$this->prefix.$name,array(
'size' => ($field['rows']>1?$field['rows']:lang('None')).','.$opts,
));
break;
case 'link-entry': case 'link-entry':
default : // link-entry to given app default : // link-entry to given app
$input = &$tpl->new_cell($n,'link-entry','',$this->prefix.$name,array( $input =& etemplate::empty_cell('link-entry',$this->prefix.$name,array(
'size' => $field['type'] == 'link-entry' ? '' : $field['type'], 'size' => $field['type'] == 'link-entry' ? '' : $field['type'],
)); ));
} }
@ -155,30 +213,17 @@
$input['help'] = $field['help']; $input['help'] = $field['help'];
$input['no_lang'] = substr(lang($help),-1) == '*' ? 2 : 0; $input['no_lang'] = substr(lang($help),-1) == '*' ? 2 : 0;
} }
$tpl->set_row_attributes($n,0,$row_class,'top'); $cell['data'][0]['c'.$n++] = $row_class.',top';
etemplate::add_child($cell,$input);
unset($input);
unset($label);
} }
// create an empty line which (should) take all the remaining height if ($type != 'customfields-list')
$tpl->new_cell(++$n,'label','','',array(
'span' => 'all'
));
$tpl->set_row_attributes($n,'99%','row');
// set width of 1. (label) column to 100
$tpl->set_column_attributes(0,'100');
$tpl->set_rows_cols(); // msie (at least 5.5 shows nothing with div overflow=auto)
$tpl->size = '100%,100%'.($tpl->html->user_agent != 'msie' ? ',,,,,auto' : '');
//echo '<pre style="text-align: left;">'; print_r($tpl); echo "</pre>\n";
if (count($tpl->data) < 2)
{ {
$cell['type'] = 'label'; $cell['data'][0]['A'] = '100';
return True;
} }
$cell['size'] = ''; // no separate namespace list($span,$class) = explode(',',$cell['span']); // msie (at least 5.5) shows nothing with div overflow=auto
$cell['type'] = 'template'; $cell['size'] = '100%,100%,0,'.$class.','.($type=='customfields-list'?',0':',').($tpl->html->user_agent != 'msie' ? ',auto' : '');
$cell['name'] = $tpl->name;
$cell['obj'] = &$tpl;
return True; // extra Label is ok return True; // extra Label is ok
} }

View File

@ -18,21 +18,6 @@ class uicustomfields
var $public_functions = array( var $public_functions = array(
'edit' => True 'edit' => True
); );
/**
* Customfield types, without the link app-names
*
* @var array
*/
var $cf_types = array(
'text' => 'Text',
'label' => 'Label',
'select' => 'Selectbox',
'radio' => 'Radiobutton',
'checkbox' => 'Checkbox',
'date' => 'Date',
'date-time'=> 'Date+Time',
'link-entry' => 'Select entry',
);
/** /**
* Instance of the infolog BO class * Instance of the infolog BO class
* *
@ -67,12 +52,6 @@ class uicustomfields
$this->config = &$this->bo->config; $this->config = &$this->bo->config;
$this->fields = &$this->bo->customfields; $this->fields = &$this->bo->customfields;
$this->group_owners =& $this->bo->group_owners; $this->group_owners =& $this->bo->group_owners;
$GLOBALS['egw']->translation->add_app('etemplate');
foreach($this->cf_types as $name => $label) $this->cf_types[$name] = lang($label);
$link_types = $this->bo->link->app_list();
ksort($link_types);
foreach($link_types as $name => $label) $this->cf_types[$name] = '- '.$label;
} }
/** /**
@ -176,7 +155,6 @@ class uicustomfields
$this->tmpl->read('infolog.customfields'); $this->tmpl->read('infolog.customfields');
$this->tmpl->exec('infolog.uicustomfields.edit',$content,array( $this->tmpl->exec('infolog.uicustomfields.edit',$content,array(
'type2' => $this->types, 'type2' => $this->types,
'type' => $this->cf_types,
),$readonlys,array( ),$readonlys,array(
'status' => $preserv_status, 'status' => $preserv_status,
'fields' => $preserv_fields, 'fields' => $preserv_fields,

View File

@ -2,7 +2,7 @@
/** /**
* eGroupWare - eTemplates for Application infolog * eGroupWare - eTemplates for Application infolog
* http://www.egroupware.org * http://www.egroupware.org
* generated by soetemplate::dump4setup() 2007-06-13 23:32 * generated by soetemplate::dump4setup() 2007-07-11 17:20
* *
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package infolog * @package infolog
@ -20,7 +20,9 @@ $templ_data[] = array('name' => 'infolog.customfields','template' => '','lang' =
$templ_data[] = array('name' => 'infolog.customfields.fields','template' => '','lang' => '','group' => '0','version' => '1.2.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:2:"th";s:2:"c2";s:7:"row,top";}i:1;a:7:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"Typ";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Name";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Label";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:20:"Values for selectbox";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:14:"Length<br>Rows";}s:1:"F";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Order";}s:1:"G";a:4:{s:4:"type";s:5:"label";s:5:"label";s:6:"Action";s:5:"align";s:6:"center";s:4:"help";s:18:"deletes this field";}}i:2;a:7:{s:1:"A";a:4:{s:4:"type";s:6:"select";s:4:"size";s:3:"All";s:4:"name";s:11:"${row}[typ]";s:4:"help";s:41:"for which types should this field be used";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:5:"20,32";s:4:"name";s:12:"${row}[name]";s:4:"help";s:83:"the name used internaly (<= 20 chars), changeing it makes existing data unavailible";}s:1:"C";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:4:",255";s:4:"name";s:13:"${row}[label]";s:4:"help";s:30:"the text displayed to the user";}i:2;a:2:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[label]";}}s:1:"D";a:4:{s:4:"type";s:8:"textarea";s:4:"size";s:4:"2,30";s:4:"name";s:14:"${row}[values]";s:4:"help";s:40:"each value is a line like <id>[=<label>]";}s:1:"E";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:4:"name";s:11:"${row}[len]";s:4:"help";s:63:"max length of the input [, length of the inputfield (optional)]";}i:2;a:5:{s:4:"type";s:3:"int";s:4:"size";s:6:"0,10,2";s:4:"name";s:12:"${row}[rows]";s:4:"help";s:70:"number of row for a multiline inputfield or line of a multi-select-box";s:4:"blur";s:1:"1";}}s:1:"F";a:4:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,,3";s:4:"name";s:13:"${row}[order]";s:4:"help";s:45:"determines the order the fields are displayed";}s:1:"G";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:23:"delete[$row_cont[name]]";s:4:"help";s:18:"deletes this field";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Create";s:4:"name";s:21:"create$row_cont[name]";s:4:"help";s:19:"creates a new field";}}}}s:4:"rows";i:2;s:4:"cols";i:7;}}','size' => '','style' => '','modified' => '1061734964',); $templ_data[] = array('name' => 'infolog.customfields.fields','template' => '','lang' => '','group' => '0','version' => '1.2.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:2:"th";s:2:"c2";s:7:"row,top";}i:1;a:7:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"Typ";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Name";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Label";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:20:"Values for selectbox";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:14:"Length<br>Rows";}s:1:"F";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Order";}s:1:"G";a:4:{s:4:"type";s:5:"label";s:5:"label";s:6:"Action";s:5:"align";s:6:"center";s:4:"help";s:18:"deletes this field";}}i:2;a:7:{s:1:"A";a:4:{s:4:"type";s:6:"select";s:4:"size";s:3:"All";s:4:"name";s:11:"${row}[typ]";s:4:"help";s:41:"for which types should this field be used";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:5:"20,32";s:4:"name";s:12:"${row}[name]";s:4:"help";s:83:"the name used internaly (<= 20 chars), changeing it makes existing data unavailible";}s:1:"C";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:4:",255";s:4:"name";s:13:"${row}[label]";s:4:"help";s:30:"the text displayed to the user";}i:2;a:2:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[label]";}}s:1:"D";a:4:{s:4:"type";s:8:"textarea";s:4:"size";s:4:"2,30";s:4:"name";s:14:"${row}[values]";s:4:"help";s:40:"each value is a line like <id>[=<label>]";}s:1:"E";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:4:"name";s:11:"${row}[len]";s:4:"help";s:63:"max length of the input [, length of the inputfield (optional)]";}i:2;a:5:{s:4:"type";s:3:"int";s:4:"size";s:6:"0,10,2";s:4:"name";s:12:"${row}[rows]";s:4:"help";s:70:"number of row for a multiline inputfield or line of a multi-select-box";s:4:"blur";s:1:"1";}}s:1:"F";a:4:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,,3";s:4:"name";s:13:"${row}[order]";s:4:"help";s:45:"determines the order the fields are displayed";}s:1:"G";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:23:"delete[$row_cont[name]]";s:4:"help";s:18:"deletes this field";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Create";s:4:"name";s:21:"create$row_cont[name]";s:4:"help";s:19:"creates a new field";}}}}s:4:"rows";i:2;s:4:"cols";i:7;}}','size' => '','style' => '','modified' => '1061734964',);
$templ_data[] = array('name' => 'infolog.customfields.fields','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:2:"th";s:2:"c2";s:7:"row,top";}i:1;a:8:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"Typ";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Name";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Label";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:20:"Values for selectbox";}s:1:"F";a:2:{s:4:"type";s:5:"label";s:5:"label";s:14:"Length<br>Rows";}s:1:"G";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Order";}s:1:"H";a:4:{s:4:"type";s:5:"label";s:5:"label";s:6:"Action";s:5:"align";s:6:"center";s:4:"help";s:18:"deletes this field";}}i:2;a:8:{s:1:"A";a:5:{s:4:"type";s:6:"select";s:4:"size";s:1:"3";s:4:"name";s:13:"${row}[type2]";s:4:"help";s:41:"for which types should this field be used";s:7:"no_lang";s:1:"1";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:5:"20,32";s:4:"name";s:12:"${row}[name]";s:4:"help";s:83:"the name used internaly (<= 20 chars), changeing it makes existing data unavailible";}s:1:"C";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:4:",255";s:4:"name";s:13:"${row}[label]";s:4:"help";s:30:"the text displayed to the user";}i:2;a:2:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[label]";}}s:1:"D";a:4:{s:4:"type";s:6:"select";s:4:"name";s:12:"${row}[type]";s:4:"help";s:19:"Type of customfield";s:7:"no_lang";s:1:"1";}s:1:"E";a:4:{s:4:"type";s:8:"textarea";s:4:"size";s:4:"2,30";s:4:"name";s:14:"${row}[values]";s:4:"help";s:40:"each value is a line like <id>[=<label>]";}s:1:"F";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:4:"name";s:11:"${row}[len]";s:4:"help";s:63:"max length of the input [, length of the inputfield (optional)]";}i:2;a:5:{s:4:"type";s:3:"int";s:4:"size";s:6:"0,10,2";s:4:"name";s:12:"${row}[rows]";s:4:"help";s:70:"number of row for a multiline inputfield or line of a multi-select-box";s:4:"blur";s:1:"1";}}s:1:"G";a:4:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,,3";s:4:"name";s:13:"${row}[order]";s:4:"help";s:45:"determines the order the fields are displayed";}s:1:"H";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:23:"delete[$row_cont[name]]";s:4:"help";s:18:"deletes this field";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Create";s:4:"name";s:21:"create$row_cont[name]";s:4:"help";s:19:"creates a new field";}}}}s:4:"rows";i:2;s:4:"cols";i:8;}}','size' => '','style' => '','modified' => '1061734964',); $templ_data[] = array('name' => 'infolog.customfields.fields','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:2:"th";s:2:"c2";s:7:"row,top";}i:1;a:8:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"Typ";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Name";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Label";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:20:"Values for selectbox";}s:1:"F";a:2:{s:4:"type";s:5:"label";s:5:"label";s:14:"Length<br>Rows";}s:1:"G";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Order";}s:1:"H";a:4:{s:4:"type";s:5:"label";s:5:"label";s:6:"Action";s:5:"align";s:6:"center";s:4:"help";s:18:"deletes this field";}}i:2;a:8:{s:1:"A";a:5:{s:4:"type";s:6:"select";s:4:"size";s:1:"3";s:4:"name";s:13:"${row}[type2]";s:4:"help";s:41:"for which types should this field be used";s:7:"no_lang";s:1:"1";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:5:"20,32";s:4:"name";s:12:"${row}[name]";s:4:"help";s:83:"the name used internaly (<= 20 chars), changeing it makes existing data unavailible";}s:1:"C";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:4:",255";s:4:"name";s:13:"${row}[label]";s:4:"help";s:30:"the text displayed to the user";}i:2;a:2:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[label]";}}s:1:"D";a:3:{s:4:"type";s:18:"customfields-types";s:4:"name";s:12:"${row}[type]";s:4:"help";s:19:"Type of customfield";}s:1:"E";a:4:{s:4:"type";s:8:"textarea";s:4:"size";s:4:"2,30";s:4:"name";s:14:"${row}[values]";s:4:"help";s:40:"each value is a line like <id>[=<label>]";}s:1:"F";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:4:"name";s:11:"${row}[len]";s:4:"help";s:63:"max length of the input [, length of the inputfield (optional)]";}i:2;a:5:{s:4:"type";s:3:"int";s:4:"size";s:6:"0,10,2";s:4:"name";s:12:"${row}[rows]";s:4:"help";s:70:"number of row for a multiline inputfield or line of a multi-select-box";s:4:"blur";s:1:"1";}}s:1:"G";a:4:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,,3";s:4:"name";s:13:"${row}[order]";s:4:"help";s:45:"determines the order the fields are displayed";}s:1:"H";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:23:"delete[$row_cont[name]]";s:4:"help";s:18:"deletes this field";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Create";s:4:"name";s:21:"create$row_cont[name]";s:4:"help";s:19:"creates a new field";}}}}s:4:"rows";i:2;s:4:"cols";i:8;}}','size' => '','style' => '','modified' => '1061734964',);
$templ_data[] = array('name' => 'infolog.customfields.fields','template' => '','lang' => '','group' => '0','version' => '1.4.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:2:"th";s:2:"c2";s:7:"row,top";}i:1;a:8:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"Typ";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Name";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Label";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:20:"Values for selectbox";}s:1:"F";a:2:{s:4:"type";s:5:"label";s:5:"label";s:14:"Length<br>Rows";}s:1:"G";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Order";}s:1:"H";a:4:{s:4:"type";s:5:"label";s:5:"label";s:6:"Action";s:5:"align";s:6:"center";s:4:"help";s:18:"deletes this field";}}i:2;a:8:{s:1:"A";a:5:{s:4:"type";s:6:"select";s:4:"size";s:1:"3";s:4:"name";s:13:"${row}[type2]";s:4:"help";s:41:"for which types should this field be used";s:7:"no_lang";s:1:"1";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:5:"20,32";s:4:"name";s:12:"${row}[name]";s:4:"help";s:83:"the name used internaly (<= 20 chars), changeing it makes existing data unavailible";}s:1:"C";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:4:",255";s:4:"name";s:13:"${row}[label]";s:4:"help";s:30:"the text displayed to the user";}i:2;a:2:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[label]";}}s:1:"D";a:3:{s:4:"type";s:18:"customfields-types";s:4:"name";s:12:"${row}[type]";s:4:"help";s:19:"Type of customfield";}s:1:"E";a:4:{s:4:"type";s:8:"textarea";s:4:"size";s:4:"2,30";s:4:"name";s:14:"${row}[values]";s:4:"help";s:40:"each value is a line like <id>[=<label>]";}s:1:"F";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:4:"text";s:4:"size";s:1:"5";s:4:"name";s:11:"${row}[len]";s:4:"help";s:63:"max length of the input [, length of the inputfield (optional)]";}i:2;a:5:{s:4:"type";s:3:"int";s:4:"size";s:6:"0,10,2";s:4:"name";s:12:"${row}[rows]";s:4:"help";s:70:"number of row for a multiline inputfield or line of a multi-select-box";s:4:"blur";s:1:"1";}}s:1:"G";a:4:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,,3";s:4:"name";s:13:"${row}[order]";s:4:"help";s:45:"determines the order the fields are displayed";}s:1:"H";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:23:"delete[$row_cont[name]]";s:4:"help";s:18:"deletes this field";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Create";s:4:"name";s:21:"create$row_cont[name]";s:4:"help";s:19:"creates a new field";}}}}s:4:"rows";i:2;s:4:"cols";i:8;}}','size' => '','style' => '','modified' => '1061734964',);
$templ_data[] = array('name' => 'infolog.customfields.status','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:3:{s:1:"E";s:2:",1";s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";}i:1;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Name";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Label";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:11:"Translation";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Default";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Disabled";}s:1:"F";a:3:{s:4:"type";s:5:"label";s:5:"label";s:6:"Action";s:5:"align";s:6:"center";}}i:2;a:6:{s:1:"A";a:4:{s:4:"type";s:4:"text";s:4:"size";s:5:"10,10";s:4:"name";s:12:"${row}[name]";s:4:"help";s:83:"the name used internaly (<= 10 chars), changeing it makes existing data unavailible";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"40";s:4:"name";s:13:"${row}[label]";s:4:"help";s:30:"the text displayed to the user";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[label]";}s:1:"D";a:5:{s:4:"type";s:5:"radio";s:4:"size";s:15:"$row_cont[name]";s:5:"align";s:6:"center";s:4:"name";s:7:"default";s:4:"help";s:34:"default status for a new log entry";}s:1:"E";a:4:{s:4:"type";s:8:"checkbox";s:5:"align";s:6:"center";s:4:"name";s:16:"${row}[disabled]";s:4:"help";s:37:"disables a status without deleting it";}s:1:"F";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:23:"delete[$row_cont[name]]";s:4:"help";s:19:"deletes this status";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Create";s:4:"name";s:21:"create$row_cont[name]";s:4:"help";s:42:"creates a new status with the given values";}}}}s:4:"rows";i:2;s:4:"cols";i:6;}}','size' => '','style' => '','modified' => '1061730032',); $templ_data[] = array('name' => 'infolog.customfields.status','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:3:{s:1:"E";s:2:",1";s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";}i:1;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Name";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Label";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:11:"Translation";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Default";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Disabled";}s:1:"F";a:3:{s:4:"type";s:5:"label";s:5:"label";s:6:"Action";s:5:"align";s:6:"center";}}i:2;a:6:{s:1:"A";a:4:{s:4:"type";s:4:"text";s:4:"size";s:5:"10,10";s:4:"name";s:12:"${row}[name]";s:4:"help";s:83:"the name used internaly (<= 10 chars), changeing it makes existing data unavailible";}s:1:"B";a:4:{s:4:"type";s:4:"text";s:4:"size";s:2:"40";s:4:"name";s:13:"${row}[label]";s:4:"help";s:30:"the text displayed to the user";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[label]";}s:1:"D";a:5:{s:4:"type";s:5:"radio";s:4:"size";s:15:"$row_cont[name]";s:5:"align";s:6:"center";s:4:"name";s:7:"default";s:4:"help";s:34:"default status for a new log entry";}s:1:"E";a:4:{s:4:"type";s:8:"checkbox";s:5:"align";s:6:"center";s:4:"name";s:16:"${row}[disabled]";s:4:"help";s:37:"disables a status without deleting it";}s:1:"F";a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:23:"delete[$row_cont[name]]";s:4:"help";s:19:"deletes this status";}i:2;a:4:{s:4:"type";s:6:"button";s:5:"label";s:6:"Create";s:4:"name";s:21:"create$row_cont[name]";s:4:"help";s:42:"creates a new status with the given values";}}}}s:4:"rows";i:2;s:4:"cols";i:6;}}','size' => '','style' => '','modified' => '1061730032',);
@ -38,7 +40,7 @@ $templ_data[] = array('name' => 'infolog.edit','template' => '','lang' => '','gr
$templ_data[] = array('name' => 'infolog.edit.customfields','template' => '','lang' => '','group' => '0','version' => '1.0.0.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:2:{s:4:"type";s:12:"customfields";s:4:"name";s:12:"customfields";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:15:"100%,100%,,,0,0";}}','size' => '100%,100%,,,0,0','style' => '','modified' => '1061732462',); $templ_data[] = array('name' => 'infolog.edit.customfields','template' => '','lang' => '','group' => '0','version' => '1.0.0.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:2:{s:4:"type";s:12:"customfields";s:4:"name";s:12:"customfields";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:15:"100%,100%,,,0,0";}}','size' => '100%,100%,,,0,0','style' => '','modified' => '1061732462',);
$templ_data[] = array('name' => 'infolog.edit.customfields','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:3:{s:2:"c1";s:2:"th";s:2:"h2";s:4:"100%";s:2:"h1";s:2:"20";}i:1;a:1:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:13:"Custom fields";}}i:2;a:1:{s:1:"A";a:2:{s:4:"type";s:12:"customfields";s:4:"name";s:12:"customfields";}}}s:4:"rows";i:2;s:4:"cols";i:1;s:4:"size";s:25:"100%,245,,row_on,0,0,auto";s:7:"options";a:6:{i:3;s:6:"row_on";i:0;s:4:"100%";i:1;s:3:"245";i:6;s:4:"auto";i:4;s:1:"0";i:5;s:1:"0";}}}','size' => '100%,245,,row_on,0,0,auto','style' => '','modified' => '1061732462',); $templ_data[] = array('name' => 'infolog.edit.customfields','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:3:{s:2:"c1";s:2:"th";s:2:"h2";s:4:"100%";s:2:"h1";s:2:"20";}i:1;a:1:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:13:"Custom fields";}}i:2;a:1:{s:1:"A";a:1:{s:4:"type";s:12:"customfields";}}}s:4:"rows";i:2;s:4:"cols";i:1;s:4:"size";s:25:"100%,245,,row_on,0,0,auto";s:7:"options";a:6:{i:3;s:6:"row_on";i:0;s:4:"100%";i:1;s:3:"245";i:6;s:4:"auto";i:4;s:1:"0";i:5;s:1:"0";}}}','size' => '100%,245,,row_on,0,0,auto','style' => '','modified' => '1061732462',);
$templ_data[] = array('name' => 'infolog.edit.delegation','template' => '','lang' => '','group' => '0','version' => '1.2.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:7:{i:0;a:8:{s:1:"A";s:3:"100";s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";s:2:"c4";s:2:"th";s:2:"c5";s:7:"row,top";s:2:"c6";s:3:"row";s:2:"h6";s:2:",1";s:2:"c3";s:3:"row";}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";s:5:"label";s:7:"General";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:8:"Priority";s:4:"size";s:16:",,,info_priority";}s:1:"B";a:3:{s:4:"type";s:6:"select";s:4:"name";s:13:"info_priority";s:4:"help";s:31:"select a priority for this task";}}i:3;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:16:",,,info_location";s:5:"label";s:8:"Location";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:13:"info_location";s:4:"size";s:6:"80,255";}}i:4;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";s:5:"label";s:10:"Delegation";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:5;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:11:"Responsible";s:4:"size";s:19:",,,info_responsible";}s:1:"B";a:4:{s:4:"type";s:14:"select-account";s:4:"size";s:2:"10";s:4:"name";s:16:"info_responsible";s:4:"help";s:66:"select a responsible user: a person you want to delegate this task";}}i:6;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Confirm";s:4:"size";s:15:",,,info_confirm";}s:1:"B";a:3:{s:4:"type";s:6:"select";s:4:"name";s:12:"info_confirm";s:4:"help";s:87:"do you want a confirmation of the responsible on: accepting, finishing the task or both";}}}s:4:"rows";i:6;s:4:"cols";i:2;s:4:"size";s:8:"100%,245";s:7:"options";a:2:{i:0;s:4:"100%";i:1;s:3:"245";}}}','size' => '100%,245','style' => '','modified' => '1075972977',); $templ_data[] = array('name' => 'infolog.edit.delegation','template' => '','lang' => '','group' => '0','version' => '1.2.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:7:{i:0;a:8:{s:1:"A";s:3:"100";s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";s:2:"c4";s:2:"th";s:2:"c5";s:7:"row,top";s:2:"c6";s:3:"row";s:2:"h6";s:2:",1";s:2:"c3";s:3:"row";}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";s:5:"label";s:7:"General";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:8:"Priority";s:4:"size";s:16:",,,info_priority";}s:1:"B";a:3:{s:4:"type";s:6:"select";s:4:"name";s:13:"info_priority";s:4:"help";s:31:"select a priority for this task";}}i:3;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:16:",,,info_location";s:5:"label";s:8:"Location";}s:1:"B";a:3:{s:4:"type";s:4:"text";s:4:"name";s:13:"info_location";s:4:"size";s:6:"80,255";}}i:4;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"span";s:3:"all";s:5:"label";s:10:"Delegation";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:5;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:11:"Responsible";s:4:"size";s:19:",,,info_responsible";}s:1:"B";a:4:{s:4:"type";s:14:"select-account";s:4:"size";s:2:"10";s:4:"name";s:16:"info_responsible";s:4:"help";s:66:"select a responsible user: a person you want to delegate this task";}}i:6;a:2:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Confirm";s:4:"size";s:15:",,,info_confirm";}s:1:"B";a:3:{s:4:"type";s:6:"select";s:4:"name";s:12:"info_confirm";s:4:"help";s:87:"do you want a confirmation of the responsible on: accepting, finishing the task or both";}}}s:4:"rows";i:6;s:4:"cols";i:2;s:4:"size";s:8:"100%,245";s:7:"options";a:2:{i:0;s:4:"100%";i:1;s:3:"245";}}}','size' => '100%,245','style' => '','modified' => '1075972977',);

View File

@ -2,7 +2,7 @@
<!-- $Id$ --> <!-- $Id$ -->
<overlay> <overlay>
<template id="infolog.customfields.status" template="" lang="" group="0" version="1.2.001"> <template id="infolog.customfields.status" template="" lang="" group="0" version="1.2.001">
<grid width="100%" border="0" spacing="0" padding="0"> <grid>
<columns> <columns>
<column/> <column/>
<column/> <column/>
@ -34,7 +34,7 @@
</rows> </rows>
</grid> </grid>
</template> </template>
<template id="infolog.customfields.fields" template="" lang="" group="0" version="1.3.001"> <template id="infolog.customfields.fields" template="" lang="" group="0" version="1.4.001">
<grid> <grid>
<columns> <columns>
<column/> <column/>
@ -64,9 +64,7 @@
<textbox maxlength="255" id="${row}[label]" statustext="the text displayed to the user"/> <textbox maxlength="255" id="${row}[label]" statustext="the text displayed to the user"/>
<description id="${row}[label]"/> <description id="${row}[label]"/>
</vbox> </vbox>
<menulist> <customfields-types id="${row}[type]" statustext="Type of customfield"/>
<menupopup id="${row}[type]" statustext="Type of customfield" no_lang="1"/>
</menulist>
<textbox multiline="true" rows="2" cols="30" id="${row}[values]" statustext="each value is a line like &lt;id&gt;[=&lt;label&gt;]"/> <textbox multiline="true" rows="2" cols="30" id="${row}[values]" statustext="each value is a line like &lt;id&gt;[=&lt;label&gt;]"/>
<vbox options="0,0"> <vbox options="0,0">
<textbox size="5" id="${row}[len]" statustext="max length of the input [, length of the inputfield (optional)]"/> <textbox size="5" id="${row}[len]" statustext="max length of the input [, length of the inputfield (optional)]"/>

View File

@ -121,7 +121,7 @@
<description value="Custom fields"/> <description value="Custom fields"/>
</row> </row>
<row height="100%"> <row height="100%">
<customfields id="customfields"/> <customfields/>
</row> </row>
</rows> </rows>
</grid> </grid>