aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Module/Cdav.php
diff options
context:
space:
mode:
authorMario Vavti <mario@mariovavti.com>2019-05-20 12:26:33 +0200
committerMario Vavti <mario@mariovavti.com>2019-05-20 12:26:33 +0200
commit34d1f797778c71357989d793a6356ed9f8aeefed (patch)
tree989446171dcd230aeac1f242323ec677a14ca53d /Zotlabs/Module/Cdav.php
parentaa120e0478b8a7e0eabcbd7b8d7eefd515ff5347 (diff)
downloadvolse-hubzilla-34d1f797778c71357989d793a6356ed9f8aeefed.tar.gz
volse-hubzilla-34d1f797778c71357989d793a6356ed9f8aeefed.tar.bz2
volse-hubzilla-34d1f797778c71357989d793a6356ed9f8aeefed.zip
calendar merge: initial commit for timezone support
Diffstat (limited to 'Zotlabs/Module/Cdav.php')
-rw-r--r--Zotlabs/Module/Cdav.php50
1 files changed, 33 insertions, 17 deletions
diff --git a/Zotlabs/Module/Cdav.php b/Zotlabs/Module/Cdav.php
index 6b4f57ea5..275873db5 100644
--- a/Zotlabs/Module/Cdav.php
+++ b/Zotlabs/Module/Cdav.php
@@ -271,11 +271,14 @@ class Cdav extends Controller {
if(!cdav_perms($id[0],$calendars,true))
return;
+ $timezone = ((x($_POST,'timezone_select')) ? escape_tags(trim($_POST['timezone_select'])) : '');
+ $tz = (($timezone) ? $timezone : date_default_timezone_get());
+
$title = $_REQUEST['title'];
- $start = datetime_convert(App::$timezone, 'UTC', $_REQUEST['dtstart']);
+ $start = datetime_convert($tz, 'UTC', $_REQUEST['dtstart']);
$dtstart = new \DateTime($start);
if($_REQUEST['dtend']) {
- $end = datetime_convert(App::$timezone, 'UTC', $_REQUEST['dtend']);
+ $end = datetime_convert($tz, 'UTC', $_REQUEST['dtend']);
$dtend = new \DateTime($end);
}
$description = $_REQUEST['description'];
@@ -303,14 +306,14 @@ class Cdav extends Controller {
]);
if($dtend) {
$vcalendar->VEVENT->add('DTEND', $dtend);
- $vcalendar->VEVENT->DTEND['TZID'] = App::$timezone;
+ $vcalendar->VEVENT->DTEND['TZID'] = $tz;
}
if($description)
$vcalendar->VEVENT->add('DESCRIPTION', $description);
if($location)
$vcalendar->VEVENT->add('LOCATION', $location);
- $vcalendar->VEVENT->DTSTART['TZID'] = App::$timezone;
+ $vcalendar->VEVENT->DTSTART['TZID'] = $tz;
$calendarData = $vcalendar->serialize();
@@ -348,12 +351,15 @@ class Cdav extends Controller {
if(!cdav_perms($id[0],$calendars,true))
return;
+ $timezone = ((x($_POST,'timezone_select')) ? escape_tags(trim($_POST['timezone_select'])) : '');
+ $tz = (($timezone) ? $timezone : date_default_timezone_get());
+
$uri = $_REQUEST['uri'];
$title = $_REQUEST['title'];
- $start = datetime_convert(App::$timezone, 'UTC', $_REQUEST['dtstart']);
+ $start = datetime_convert($tz, 'UTC', $_REQUEST['dtstart']);
$dtstart = new \DateTime($start);
if($_REQUEST['dtend']) {
- $end = datetime_convert(App::$timezone, 'UTC', $_REQUEST['dtend']);
+ $end = datetime_convert($tz, 'UTC', $_REQUEST['dtend']);
$dtend = new \DateTime($end);
}
$description = $_REQUEST['description'];
@@ -406,11 +412,14 @@ class Cdav extends Controller {
if(!cdav_perms($id[0],$calendars,true))
return;
+ $timezone = ((x($_POST,'timezone_select')) ? escape_tags(trim($_POST['timezone_select'])) : '');
+ $tz = (($timezone) ? $timezone : date_default_timezone_get());
+
$uri = $_REQUEST['uri'];
- $start = datetime_convert(App::$timezone, 'UTC', $_REQUEST['dtstart']);
+ $start = datetime_convert($tz, 'UTC', $_REQUEST['dtstart']);
$dtstart = new \DateTime($start);
if($_REQUEST['dtend']) {
- $end = datetime_convert(App::$timezone, 'UTC', $_REQUEST['dtend']);
+ $end = datetime_convert($tz, 'UTC', $_REQUEST['dtend']);
$dtend = new \DateTime($end);
}
@@ -915,8 +924,13 @@ class Cdav extends Controller {
xchan_query($r);
$r = fetch_post_tags($r,true);
- $r[0]['dtstart'] = (($r[0]['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$r[0]['dtstart'], 'c') : datetime_convert('UTC','UTC',$r[0]['dtstart'],'c'));
- $r[0]['dtend'] = (($r[0]['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$r[0]['dtend'], 'c') : datetime_convert('UTC','UTC',$r[0]['dtend'],'c'));
+ $tz = get_iconfig($r[0], 'event', 'timezone');
+ if(! $tz)
+ $tz = 'UTC';
+
+ $r[0]['timezone'] = $tz;
+ $r[0]['dtstart'] = (($r[0]['adjust']) ? datetime_convert('UTC', date_default_timezone_get(), $r[0]['dtstart'], 'c') : datetime_convert('UTC', 'UTC', $r[0]['dtstart'], 'c'));
+ $r[0]['dtend'] = (($r[0]['adjust']) ? datetime_convert('UTC', date_default_timezone_get(), $r[0]['dtend'], 'c') : datetime_convert('UTC', 'UTC' ,$r[0]['dtend'], 'c'));
$r[0]['plink'] = [$r[0]['plink'], t('Link to source')];
@@ -984,7 +998,7 @@ class Cdav extends Controller {
$first_day = feature_enabled(local_channel(), 'cal_first_day');
$first_day = (($first_day) ? $first_day : 0);
- $title = ['title', t('Event title')];
+ $title = ['title', t('Event title') ];
$dtstart = ['dtstart', t('Start date and time')];
$dtend = ['dtend', t('End date and time')];
$description = ['description', t('Description')];
@@ -1000,14 +1014,13 @@ class Cdav extends Controller {
//$acl = (($orig_event['event_xchan']) ? '' : populate_acl(((x($orig_event)) ? $orig_event : $perm_defaults), false, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_stream')));
$acl = populate_acl($perm_defaults, false, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_stream'));
- //$permissions = ((x($orig_event)) ? $orig_event : $perm_defaults);
- $permissions = $perm_defaults;
+ $permissions = (($resource_id) ? $resource : $perm_defaults);
$o .= replace_macros(get_markup_template('cdav_calendar.tpl'), [
'$sources' => $sources,
'$color' => $color,
'$lang' => App::$language,
- '$timezone' => App::$timezone,
+ '$timezone' => date_default_timezone_get(),
'$first_day' => $first_day,
'$prev' => t('Previous'),
'$next' => t('Next'),
@@ -1047,7 +1060,9 @@ class Cdav extends Controller {
'$categories_label' => t('Categories'),
'$resource' => json_encode($resource),
- '$categories' => $categories
+ '$categories' => $categories,
+ '$timezone_select' => ((feature_enabled(local_channel(),'event_tz_select')) ? ['timezone_select' , t('Timezone:'), date_default_timezone_get(), '', get_timezones()] : [])
+
]);
return $o;
@@ -1118,8 +1133,9 @@ class Cdav extends Controller {
'calendar_id' => $id,
'uri' => $object['uri'],
'title' => $title,
- 'start' => datetime_convert($timezone, $timezone, $dtstart, 'c'),
- 'end' => (($dtend) ? datetime_convert($timezone, $timezone, $dtend, 'c') : ''),
+ 'timezone' => $timezone,
+ 'start' => datetime_convert($timezone, date_default_timezone_get(), $dtstart, 'c'),
+ 'end' => (($dtend) ? datetime_convert($timezone, date_default_timezone_get(), $dtend, 'c') : ''),
'description' => $description,
'location' => $location,
'allDay' => $allDay,