mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-25 09:23:28 +01:00
Merge branch 'master' into web-components
This commit is contained in:
commit
f4ad6c6dbc
@ -291,7 +291,7 @@ class admin_config
|
|||||||
// make everything readonly and remove save/apply button, if user has not rights to store config
|
// make everything readonly and remove save/apply button, if user has not rights to store config
|
||||||
if ($GLOBALS['egw']->acl->check('site_config_acce',2,'admin'))
|
if ($GLOBALS['egw']->acl->check('site_config_acce',2,'admin'))
|
||||||
{
|
{
|
||||||
$readonlys[__ALL__] = true;
|
$readonlys['__ALL__'] = true;
|
||||||
$readonlys['cancel'] = false;
|
$readonlys['cancel'] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -612,6 +612,20 @@ class Accounts
|
|||||||
$account['account_firstname'] , $account['account_lastname'], $account_id);
|
$account['account_firstname'] , $account['account_lastname'], $account_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return formatted username for Links, does NOT throw if $account_id is not int
|
||||||
|
*
|
||||||
|
* @param $account_id
|
||||||
|
*/
|
||||||
|
static function title($account_id)
|
||||||
|
{
|
||||||
|
if (empty($account_id) || !is_numeric($account_id) && !($id = self::getInstance()->name2id($account_id)))
|
||||||
|
{
|
||||||
|
return '#'.$account_id;
|
||||||
|
}
|
||||||
|
return self::username($id ?? $account_id);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Format an email address according to the system standard
|
* Format an email address according to the system standard
|
||||||
*
|
*
|
||||||
|
@ -154,7 +154,7 @@ class Link extends Link\Storage
|
|||||||
'name' => 'Accounts',
|
'name' => 'Accounts',
|
||||||
'icon' => 'addressbook/accounts',
|
'icon' => 'addressbook/accounts',
|
||||||
'query' => 'EGroupware\\Api\\Accounts::link_query',
|
'query' => 'EGroupware\\Api\\Accounts::link_query',
|
||||||
'title' => 'EGroupware\\Api\\Accounts::username',
|
'title' => 'EGroupware\\Api\\Accounts::title',
|
||||||
'view' => array('menuaction'=>'addressbook.addressbook_ui.view','ajax'=>'true'),
|
'view' => array('menuaction'=>'addressbook.addressbook_ui.view','ajax'=>'true'),
|
||||||
'view_id' => 'account_id'
|
'view_id' => 'account_id'
|
||||||
),
|
),
|
||||||
@ -914,7 +914,12 @@ class Link extends Link\Storage
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$title = self::title($app,$id); // no titles method --> fallback to query each link separate
|
try {
|
||||||
|
$title = self::title($app, $id); // no titles method --> fallback to query each link separate
|
||||||
|
}
|
||||||
|
catch (\Throwable $e) {
|
||||||
|
$title = lang('Error').': '.$e->getMessage();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$titles[$id] = $title;
|
$titles[$id] = $title;
|
||||||
|
@ -396,7 +396,7 @@ class Sharing
|
|||||||
$class = strpos($status, '404') === 0 ? 'EGroupware\Api\Exception\NotFound' :
|
$class = strpos($status, '404') === 0 ? 'EGroupware\Api\Exception\NotFound' :
|
||||||
(strpos($status, '401') === 0 ? 'EGroupware\Api\Exception\NoPermission' :
|
(strpos($status, '401') === 0 ? 'EGroupware\Api\Exception\NoPermission' :
|
||||||
'EGroupware\Api\Exception');
|
'EGroupware\Api\Exception');
|
||||||
throw new $class($message, $status);
|
throw new $class($message, (int)$status);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1663,6 +1663,14 @@ ORDER BY cal_user_type, cal_usre_id
|
|||||||
// check if recurrence enddate was adjusted
|
// check if recurrence enddate was adjusted
|
||||||
if(isset($event['recur_enddate']))
|
if(isset($event['recur_enddate']))
|
||||||
{
|
{
|
||||||
|
if (is_object($event['recur_enddate']))
|
||||||
|
{
|
||||||
|
$event['recur_enddate'] = Api\DateTime::user2server($event['recur_enddate'], 'ts');
|
||||||
|
}
|
||||||
|
if (is_object($old_repeats['recur_enddate']))
|
||||||
|
{
|
||||||
|
$old_repeats['recur_enddate'] = Api\DateTime::user2server($old_repeats['recur_enddate'], 'ts');
|
||||||
|
}
|
||||||
// recurrences need to be truncated
|
// recurrences need to be truncated
|
||||||
if((int)$event['recur_enddate'] > 0 &&
|
if((int)$event['recur_enddate'] > 0 &&
|
||||||
((int)$old_repeats['recur_enddate'] == 0 || (int)$old_repeats['recur_enddate'] > (int)$event['recur_enddate'])
|
((int)$old_repeats['recur_enddate'] == 0 || (int)$old_repeats['recur_enddate'] > (int)$event['recur_enddate'])
|
||||||
|
@ -55,7 +55,7 @@ class calendar_uiforms extends calendar_ui
|
|||||||
/**
|
/**
|
||||||
* default locking time for entries, that are opened by another user
|
* default locking time for entries, that are opened by another user
|
||||||
*
|
*
|
||||||
* @var locktime in seconds
|
* @var int lock time in seconds
|
||||||
*/
|
*/
|
||||||
var $locktime_default=1;
|
var $locktime_default=1;
|
||||||
|
|
||||||
@ -262,7 +262,7 @@ class calendar_uiforms extends calendar_ui
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return array(
|
$ret = array(
|
||||||
'participant_types' => $participant_types,
|
'participant_types' => $participant_types,
|
||||||
'participants' => $participants,
|
'participants' => $participants,
|
||||||
'owner' => $owner,
|
'owner' => $owner,
|
||||||
@ -278,6 +278,7 @@ class calendar_uiforms extends calendar_ui
|
|||||||
'videoconference' => !empty($_GET['videoconference']),
|
'videoconference' => !empty($_GET['videoconference']),
|
||||||
'##notify_externals' => !empty($_GET['videoconference']) ? 'yes' : $this->cal_prefs['notify_externals'],
|
'##notify_externals' => !empty($_GET['videoconference']) ? 'yes' : $this->cal_prefs['notify_externals'],
|
||||||
);
|
);
|
||||||
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1872,7 +1873,7 @@ class calendar_uiforms extends calendar_ui
|
|||||||
|
|
||||||
if ($event['recur_type'] != MCAL_RECUR_NONE)
|
if ($event['recur_type'] != MCAL_RECUR_NONE)
|
||||||
{
|
{
|
||||||
$readonlys['recur_exception'] = !count($content['recur_exception']); // otherwise we get a delete button
|
$readonlys['recur_exception'] = empty($content['recur_exception']); // otherwise we get a delete button
|
||||||
//$onclick =& $etpl->get_cell_attribute('button[delete]','onclick');
|
//$onclick =& $etpl->get_cell_attribute('button[delete]','onclick');
|
||||||
//$onclick = str_replace('Delete this event','Delete this series of recuring events',$onclick);
|
//$onclick = str_replace('Delete this event','Delete this series of recuring events',$onclick);
|
||||||
}
|
}
|
||||||
@ -2843,7 +2844,7 @@ class calendar_uiforms extends calendar_ui
|
|||||||
#error_log(__METHOD__.print_r($content,true));
|
#error_log(__METHOD__.print_r($content,true));
|
||||||
if (is_numeric($cal_id = $content ? $content : $_REQUEST['cal_id']))
|
if (is_numeric($cal_id = $content ? $content : $_REQUEST['cal_id']))
|
||||||
{
|
{
|
||||||
if (!($ical =& $boical->exportVCal(array($cal_id),'2.0','PUBLISH',false)))
|
if (!($ical = $boical->exportVCal(array($cal_id),'2.0','PUBLISH',false)))
|
||||||
{
|
{
|
||||||
$msg = lang('Permission denied');
|
$msg = lang('Permission denied');
|
||||||
|
|
||||||
@ -2872,7 +2873,7 @@ class calendar_uiforms extends calendar_ui
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$ical =& $boical->exportVCal($events,'2.0','PUBLISH',false);
|
$ical = $boical->exportVCal($events,'2.0','PUBLISH',false);
|
||||||
Api\Header\Content::type($content['file'] ? $content['file'] : 'event.ics','text/calendar',bytes($ical));
|
Api\Header\Content::type($content['file'] ? $content['file'] : 'event.ics','text/calendar',bytes($ical));
|
||||||
echo $ical;
|
echo $ical;
|
||||||
exit();
|
exit();
|
||||||
|
@ -387,18 +387,16 @@ class importexport_export_csv implements importexport_iface_export_record
|
|||||||
$record->$name = '';
|
$record->$name = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach($fields['select-account'] ?? [] as $name) {
|
foreach($fields['select-account'] ?? [] as $name)
|
||||||
|
{
|
||||||
// Compare against null to deal with empty arrays
|
// Compare against null to deal with empty arrays
|
||||||
if ($record->$name !== null) {
|
if ($record->$name !== null)
|
||||||
if(is_array($record->$name)) {
|
{
|
||||||
$names = array();
|
$names = array();
|
||||||
foreach($record->$name as $_name) {
|
foreach((array)$record->$name as $_name) {
|
||||||
$names[] = Api\Accounts::username($_name);
|
$names[] = Api\Accounts::title((int)$_name ?: $_name);
|
||||||
}
|
|
||||||
$record->$name = implode(', ', $names);
|
|
||||||
} else {
|
|
||||||
$record->$name = Api\Accounts::username($record->$name);
|
|
||||||
}
|
}
|
||||||
|
$record->$name = implode(', ', $names);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user