mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-03 04:29:28 +01:00
WIP allowing to speard custom fields optionally to dynamic generated tabs
This commit is contained in:
parent
91f70e354d
commit
5352972e2a
@ -186,11 +186,7 @@ export class Et2Tabs extends Et2InputWidget(SlTabGroup) implements et2_IResizeab
|
|||||||
{
|
{
|
||||||
let tab = this.extraTabs[i];
|
let tab = this.extraTabs[i];
|
||||||
let tab_id = tab.id || tab.template;
|
let tab_id = tab.id || tab.template;
|
||||||
let tab_options = {id: tab_id, template: tab.template, url: tab.url, content: undefined};
|
let tab_options = {id: tab_id, template: tab.template, url: tab.url, content: tab.content};
|
||||||
if(tab.id)
|
|
||||||
{
|
|
||||||
tab_options.content = tab.id;
|
|
||||||
}
|
|
||||||
tabData[tab.prepend ? 'unshift' : 'push'].call(tabData, {
|
tabData[tab.prepend ? 'unshift' : 'push'].call(tabData, {
|
||||||
"id": tab_id,
|
"id": tab_id,
|
||||||
"label": this.egw().lang(tab.label),
|
"label": this.egw().lang(tab.label),
|
||||||
|
@ -165,17 +165,17 @@ export class et2_customfields_list extends et2_valueWidget implements et2_IDetac
|
|||||||
if(jQuery.inArray(types[i],this.options.type_filter) > -1)
|
if(jQuery.inArray(types[i],this.options.type_filter) > -1)
|
||||||
{
|
{
|
||||||
this.options.fields[field_name] = true;
|
this.options.fields[field_name] = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// filter fields by tab attribute
|
// tab === "panel" --> use label of tab panel
|
||||||
if (this.options.tab === 'panel')
|
if (this.options.tab === 'panel')
|
||||||
{
|
{
|
||||||
this.options.tab = Et2Tabs.getTabPanel(this, true);
|
this.options.tab = Et2Tabs.getTabPanel(this, true);
|
||||||
}
|
}
|
||||||
|
// filter fields additionally by tab attribute
|
||||||
if (typeof this.options.fields === "undefined" || !Object.keys(this.options.fields).length)
|
if (typeof this.options.fields === "undefined" || !Object.keys(this.options.fields).length)
|
||||||
{
|
{
|
||||||
this.options.fields = {};
|
this.options.fields = {};
|
||||||
@ -193,7 +193,11 @@ export class et2_customfields_list extends et2_valueWidget implements et2_IDetac
|
|||||||
{
|
{
|
||||||
if (this.options.customfields[field_name].tab !== this.options.tab)
|
if (this.options.customfields[field_name].tab !== this.options.tab)
|
||||||
{
|
{
|
||||||
delete this.options.fields[field_name];
|
this.options.fields[field_name] = false;
|
||||||
|
}
|
||||||
|
else if (this.options.tab)
|
||||||
|
{
|
||||||
|
this.options.fields[field_name] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -481,9 +481,9 @@ class Customfields extends Transformer
|
|||||||
{
|
{
|
||||||
foreach(array_keys($value_in) as $field)
|
foreach(array_keys($value_in) as $field)
|
||||||
{
|
{
|
||||||
$field_settings = $customfields[$fname = substr($field, strlen($this->attrs['prefix']))];
|
$field_settings = $customfields[$fname = substr($field, strlen($this->attrs['prefix']))] ?? null;
|
||||||
|
|
||||||
if((string)$use_private !== '' && // are only (non-)private fields requested
|
if(!isset($field_settings) || (string)$use_private !== '' && // are only (non-)private fields requested
|
||||||
(boolean)$field_settings['private'] != ($use_private != '0'))
|
(boolean)$field_settings['private'] != ($use_private != '0'))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
|
@ -451,6 +451,7 @@ class preferences_settings
|
|||||||
$tab = 'tab'.(1+count($tabs));
|
$tab = 'tab'.(1+count($tabs));
|
||||||
$tabs[] = array(
|
$tabs[] = array(
|
||||||
'id' => $tab,
|
'id' => $tab,
|
||||||
|
'content' => $tab,
|
||||||
'template' => 'preferences.settings.tab1',
|
'template' => 'preferences.settings.tab1',
|
||||||
'label' => $setting['title'],
|
'label' => $setting['title'],
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user