mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-26 16:48:49 +01:00
Placeholder dialog: Add placeholders for projectmanager, timesheet, tracker
This commit is contained in:
parent
66cf807cdd
commit
a0a89a6b74
@ -93,6 +93,15 @@ class Placeholder extends Etemplate\Widget
|
|||||||
{
|
{
|
||||||
$list = array_intersect_key($list, $group);
|
$list = array_intersect_key($list, $group);
|
||||||
}
|
}
|
||||||
|
// Remove if empty
|
||||||
|
foreach($list as $p_group => $p_list)
|
||||||
|
{
|
||||||
|
if(count($p_list) == 0)
|
||||||
|
{
|
||||||
|
unset($list[$p_group]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if($list)
|
if($list)
|
||||||
{
|
{
|
||||||
$placeholders[$appname] = $list;
|
$placeholders[$appname] = $list;
|
||||||
|
@ -968,7 +968,7 @@ abstract class Merge
|
|||||||
}
|
}
|
||||||
if ($this->report_memory_usage) error_log(__METHOD__."() $n: $id ".Api\Vfs::hsize(memory_get_usage(true)));
|
if ($this->report_memory_usage) error_log(__METHOD__."() $n: $id ".Api\Vfs::hsize(memory_get_usage(true)));
|
||||||
// some general replacements: current user, date and time
|
// some general replacements: current user, date and time
|
||||||
if (strpos($content,'$$user/') !== null && ($user = $GLOBALS['egw']->accounts->id2name($GLOBALS['egw_info']['user']['account_id'],'person_id')))
|
if(strpos($content, '$$user/') !== false && ($user = $GLOBALS['egw']->accounts->id2name($GLOBALS['egw_info']['user']['account_id'], 'person_id')))
|
||||||
{
|
{
|
||||||
$replacements += $this->contact_replacements($user, 'user', false, $content);
|
$replacements += $this->contact_replacements($user, 'user', false, $content);
|
||||||
$replacements['$$user/primary_group$$'] = $GLOBALS['egw']->accounts->id2name($GLOBALS['egw']->accounts->id2name($GLOBALS['egw_info']['user']['account_id'], 'account_primary_group'));
|
$replacements['$$user/primary_group$$'] = $GLOBALS['egw']->accounts->id2name($GLOBALS['egw']->accounts->id2name($GLOBALS['egw_info']['user']['account_id'], 'account_primary_group'));
|
||||||
@ -2828,7 +2828,7 @@ abstract class Merge
|
|||||||
* Here we adjust the group name, and add the group to the end of the placeholder list
|
* Here we adjust the group name, and add the group to the end of the placeholder list
|
||||||
* @param array $placeholder_list Our placeholder list
|
* @param array $placeholder_list Our placeholder list
|
||||||
* @param string $base_name Name of the entry (eg: Contact, custom field name)
|
* @param string $base_name Name of the entry (eg: Contact, custom field name)
|
||||||
* @param array $add_placeholder_groups Placeholder list from the other app
|
* @param array $add_placeholder_groups Placeholder list from the other app. Placeholders should include any needed prefix
|
||||||
*/
|
*/
|
||||||
protected function add_linked_placeholders(&$placeholder_list, $base_name, $add_placeholder_groups) : void
|
protected function add_linked_placeholders(&$placeholder_list, $base_name, $add_placeholder_groups) : void
|
||||||
{
|
{
|
||||||
|
@ -217,4 +217,49 @@ class timesheet_merge extends Api\Storage\Merge
|
|||||||
|
|
||||||
echo $GLOBALS['egw']->framework->footer();
|
echo $GLOBALS['egw']->framework->footer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a list of placeholders provided.
|
||||||
|
*
|
||||||
|
* Placeholders are grouped logically. Group key should have a user-friendly translation.
|
||||||
|
*/
|
||||||
|
public function get_placeholder_list($prefix = '')
|
||||||
|
{
|
||||||
|
$placeholders = array(
|
||||||
|
'timesheet' => [],
|
||||||
|
lang('Project') => []
|
||||||
|
) + parent::get_placeholder_list($prefix);
|
||||||
|
|
||||||
|
$fields = array('ts_id' => lang('Timesheet ID')) + $this->bo->field2label + array(
|
||||||
|
'ts_total' => lang('total'),
|
||||||
|
'ts_created' => lang('Created'),
|
||||||
|
'ts_modified' => lang('Modified'),
|
||||||
|
);
|
||||||
|
$group = 'timesheet';
|
||||||
|
foreach($fields as $name => $label)
|
||||||
|
{
|
||||||
|
if(in_array($name, array('custom')))
|
||||||
|
{
|
||||||
|
// dont show them
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$marker = $this->prefix($prefix, $name, '{');
|
||||||
|
if(!array_filter($placeholders, function ($a) use ($marker)
|
||||||
|
{
|
||||||
|
return array_key_exists($marker, $a);
|
||||||
|
}))
|
||||||
|
{
|
||||||
|
$placeholders[$group][] = [
|
||||||
|
'value' => $marker,
|
||||||
|
'label' => $label
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add project placeholders
|
||||||
|
$pm_merge = new projectmanager_merge();
|
||||||
|
$this->add_linked_placeholders($placeholders, lang('Project'), $pm_merge->get_placeholder_list('ts_project'));
|
||||||
|
|
||||||
|
return $placeholders;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user