diff options
Diffstat (limited to 'Zotlabs')
-rw-r--r-- | Zotlabs/Module/Cdav.php | 5 | ||||
-rw-r--r-- | Zotlabs/Module/Channel_calendar.php | 119 | ||||
-rw-r--r-- | Zotlabs/Update/_1232.php | 47 | ||||
-rw-r--r-- | Zotlabs/Update/_1233.php | 38 | ||||
-rw-r--r-- | Zotlabs/Widget/Cdav.php | 2 |
5 files changed, 142 insertions, 69 deletions
diff --git a/Zotlabs/Module/Cdav.php b/Zotlabs/Module/Cdav.php index 6b935deff..5888356d7 100644 --- a/Zotlabs/Module/Cdav.php +++ b/Zotlabs/Module/Cdav.php @@ -965,7 +965,7 @@ class Cdav extends Controller { foreach($calendars as $calendar) { $editable = (($calendar['share-access'] == 2) ? 'false' : 'true'); // false/true must be string since we're passing it to javascript - $color = (($calendar['{http://apple.com/ns/ical/}calendar-color']) ? $calendar['{http://apple.com/ns/ical/}calendar-color'] : '#3a87ad'); + $color = (($calendar['{http://apple.com/ns/ical/}calendar-color']) ? $calendar['{http://apple.com/ns/ical/}calendar-color'] : '#6cad39'); $sharer = (($calendar['share-access'] == 3) ? $calendar['{urn:ietf:params:xml:ns:caldav}calendar-description'] : ''); $switch = get_pconfig(local_channel(), 'cdav_calendar', $calendar['id'][0]); if($switch) { @@ -1399,12 +1399,13 @@ class Cdav extends Controller { $caldavBackend = new \Sabre\CalDAV\Backend\PDO($pdo); $properties = [ '{DAV:}displayname' => t('Default Calendar'), - '{http://apple.com/ns/ical/}calendar-color' => '#3a87ad', + '{http://apple.com/ns/ical/}calendar-color' => '#6cad39', '{urn:ietf:params:xml:ns:caldav}calendar-description' => $channel['channel_name'] ]; $id = $caldavBackend->createCalendar($uri, 'default', $properties); set_pconfig(local_channel(), 'cdav_calendar' , $id[0], 1); + set_pconfig(local_channel(), 'cdav_calendar' , 'channel_calendar', 1); //create default addressbook $carddavBackend = new \Sabre\CardDAV\Backend\PDO($pdo); diff --git a/Zotlabs/Module/Channel_calendar.php b/Zotlabs/Module/Channel_calendar.php index 67e6557f9..e6c5e6e54 100644 --- a/Zotlabs/Module/Channel_calendar.php +++ b/Zotlabs/Module/Channel_calendar.php @@ -72,8 +72,6 @@ class Channel_calendar extends \Zotlabs\Web\Controller { $finish = NULL_DATE; } - - if($adjust) { $start = datetime_convert($tz,'UTC',$start); if(! $nofinish) @@ -86,12 +84,10 @@ class Channel_calendar extends \Zotlabs\Web\Controller { } - // Don't allow the event to finish before it begins. // It won't hurt anything, but somebody will file a bug report // and we'll waste a bunch of time responding to it. Time that // could've been spent doing something else. - $summary = escape_tags(trim($_POST['summary'])); $desc = escape_tags(trim($_POST['desc'])); @@ -102,28 +98,20 @@ class Channel_calendar extends \Zotlabs\Web\Controller { linkify_tags($desc, local_channel()); linkify_tags($location, local_channel()); - //$action = ($event_hash == '') ? 'new' : "event/" . $event_hash; - - //fixme: this url gives a wsod if there is a linebreak detected in one of the variables ($desc or $location) - //$onerror_url = z_root() . "/events/" . $action . "?summary=$summary&description=$desc&location=$location&start=$start_text&finish=$finish_text&adjust=$adjust&nofinish=$nofinish&type=$type"; - //$onerror_url = z_root() . "/events"; - if(strcmp($finish,$start) < 0 && !$nofinish) { notice( t('Event can not end before it has started.') . EOL); if(intval($_REQUEST['preview'])) { echo( t('Unable to generate preview.')); - killme(); } - //goaway($onerror_url); + killme(); } if((! $summary) || (! $start)) { notice( t('Event title and start time are required.') . EOL); if(intval($_REQUEST['preview'])) { echo( t('Unable to generate preview.')); - killme(); } - //goaway($onerror_url); + killme(); } $channel = \App::get_channel(); @@ -275,8 +263,9 @@ class Channel_calendar extends \Zotlabs\Web\Controller { $channel = \App::get_channel(); $mode = 'view'; - $y = 0; - $m = 0; + $export = false; + //$y = 0; + //$m = 0; $ignored = ((x($_REQUEST,'ignored')) ? " and dismissed = " . intval($_REQUEST['ignored']) . " " : ''); if(argc() > 1) { @@ -288,10 +277,13 @@ class Channel_calendar extends \Zotlabs\Web\Controller { $mode = 'drop'; $event_id = argv(2); } + if(argc() <= 2 && argv(1) === 'export') { + $export = true; + } if(argc() > 2 && intval(argv(1)) && intval(argv(2))) { $mode = 'view'; - $y = intval(argv(1)); - $m = intval(argv(2)); + //$y = intval(argv(1)); + //$m = intval(argv(2)); } if(argc() <= 2) { $mode = 'view'; @@ -317,7 +309,8 @@ class Channel_calendar extends \Zotlabs\Web\Controller { } $channel = \App::get_channel(); - + +/* // Passed parameters overrides anything found in the DB if(!x($orig_event)) $orig_event = array(); @@ -370,10 +363,7 @@ class Channel_calendar extends \Zotlabs\Web\Controller { if(! $m) $m = intval($thismonth); - $export = false; - if(argc() === 4 && argv(3) === 'export') - $export = true; - + // Put some limits on dates. The PHP date functions don't seem to do so well before 1900. // An upper limit was chosen to keep search engines from exploring links millions of years in the future. @@ -400,7 +390,7 @@ class Channel_calendar extends \Zotlabs\Web\Controller { $dim = get_dim($y,$m); $start = sprintf('%d-%d-%d %d:%d:%d',$y,$m,1,0,0,0); $finish = sprintf('%d-%d-%d %d:%d:%d',$y,$m,$dim,23,59,59); - +*/ if (argv(1) === 'json'){ if (x($_GET,'start')) $start = $_GET['start']; @@ -414,20 +404,16 @@ class Channel_calendar extends \Zotlabs\Web\Controller { $adjust_finish = datetime_convert('UTC', date_default_timezone_get(), $finish); if (x($_GET,'id')){ - $r = q("SELECT event.*, item.plink, item.item_flags, item.author_xchan, item.owner_xchan - from event left join item on resource_id = event_hash where resource_type = 'event' and event.uid = %d and event.id = %d limit 1", + $r = q("SELECT event.*, item.plink, item.item_flags, item.author_xchan, item.owner_xchan, item.id as item_id + from event left join item on item.resource_id = event.event_hash + where item.resource_type = 'event' and event.uid = %d and event.id = %d limit 1", intval(local_channel()), intval($_GET['id']) ); - } elseif($export) { - $r = q("SELECT * from event where uid = %d - AND (( adjust = 0 AND ( dtend >= '%s' or nofinish = 1 ) AND dtstart <= '%s' ) - OR ( adjust = 1 AND ( dtend >= '%s' or nofinish = 1 ) AND dtstart <= '%s' )) ", - intval(local_channel()), - dbesc($start), - dbesc($finish), - dbesc($adjust_start), - dbesc($adjust_finish) + } + elseif($export) { + $r = q("SELECT * from event where uid = %d", + intval(local_channel()) ); } else { @@ -437,10 +423,10 @@ class Channel_calendar extends \Zotlabs\Web\Controller { // Ultimately the finish date shouldn't be involved in the query. $r = q("SELECT event.*, item.plink, item.item_flags, item.author_xchan, item.owner_xchan, item.id as item_id - from event left join item on event_hash = resource_id - where resource_type = 'event' and event.uid = %d and event.uid = item.uid $ignored - AND (( adjust = 0 AND ( dtend >= '%s' or nofinish = 1 ) AND dtstart <= '%s' ) - OR ( adjust = 1 AND ( dtend >= '%s' or nofinish = 1 ) AND dtstart <= '%s' )) ", + from event left join item on event.event_hash = item.resource_id + where item.resource_type = 'event' and event.uid = %d and event.uid = item.uid $ignored + AND (( event.adjust = 0 AND ( event.dtend >= '%s' or event.nofinish = 1 ) AND event.dtstart <= '%s' ) + OR ( event.adjust = 1 AND ( event.dtend >= '%s' or event.nofinish = 1 ) AND event.dtstart <= '%s' )) ", intval(local_channel()), dbesc($start), dbesc($finish), @@ -448,10 +434,9 @@ class Channel_calendar extends \Zotlabs\Web\Controller { dbesc($adjust_finish) ); - } - $links = array(); + //$links = []; if($r && ! $export) { xchan_query($r); @@ -459,7 +444,8 @@ class Channel_calendar extends \Zotlabs\Web\Controller { $r = sort_by_date($r); } - + +/* if($r) { foreach($r as $rr) { $j = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['dtstart'], 'j') : datetime_convert('UTC','UTC',$rr['dtstart'],'j')); @@ -467,18 +453,19 @@ class Channel_calendar extends \Zotlabs\Web\Controller { $links[$j] = z_root() . '/' . \App::$cmd . '#link-' . $j; } } +*/ - $events=array(); + $events = []; - $last_date = ''; - $fmt = t('l, F j'); + //$last_date = ''; + //$fmt = t('l, F j'); if($r) { foreach($r as $rr) { - $j = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['dtstart'], 'j') : datetime_convert('UTC','UTC',$rr['dtstart'],'j')); - $d = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['dtstart'], $fmt) : datetime_convert('UTC','UTC',$rr['dtstart'],$fmt)); - $d = day_translate($d); + //$j = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['dtstart'], 'j') : datetime_convert('UTC','UTC',$rr['dtstart'],'j')); + //$d = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['dtstart'], $fmt) : datetime_convert('UTC','UTC',$rr['dtstart'],$fmt)); + //$d = day_translate($d); $start = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['dtstart'], 'c') : datetime_convert('UTC','UTC',$rr['dtstart'],'c')); if ($rr['nofinish']){ @@ -514,23 +501,23 @@ class Channel_calendar extends \Zotlabs\Web\Controller { if(strpos($start, 'T00:00:00') && strpos($end, 'T00:00:00')) $allDay = true; - $is_first = ($d !== $last_date); + //$is_first = ($d !== $last_date); - $last_date = $d; + //$last_date = $d; $edit = ((local_channel() && $rr['author_xchan'] == get_observer_hash()) ? array(z_root().'/events/'.$rr['event_hash'].'?expandform=1',t('Edit event'),'','') : false); $drop = array(z_root().'/events/drop/'.$rr['event_hash'],t('Delete event'),'',''); - $title = strip_tags(html_entity_decode(zidify_links(bbcode($rr['summary'])),ENT_QUOTES,'UTF-8')); - if(! $title) { - list($title, $_trash) = explode("<br",bbcode($rr['desc']),2); - $title = strip_tags(html_entity_decode($title,ENT_QUOTES,'UTF-8')); - } - $html = format_event_html($rr); - $rr['desc'] = zidify_links(smilies(bbcode($rr['desc']))); - $rr['description'] = htmlentities(html2plain(bbcode($rr['description'])),ENT_COMPAT,'UTF-8',false); - $rr['location'] = zidify_links(smilies(bbcode($rr['location']))); + //$title = strip_tags(html_entity_decode(zidify_links(bbcode($rr['summary'])),ENT_QUOTES,'UTF-8')); + //if(! $title) { + // list($title, $_trash) = explode("<br",bbcode($rr['desc']),2); + // $title = strip_tags(html_entity_decode($title,ENT_QUOTES,'UTF-8')); + //} + //$html = format_event_html($rr); + //$rr['desc'] = zidify_links(smilies(bbcode($rr['desc']))); + //$rr['description'] = htmlentities(html2plain(bbcode($rr['description'])),ENT_COMPAT,'UTF-8',false); + //$rr['location'] = zidify_links(smilies(bbcode($rr['location']))); $events[] = array( 'calendar_id' => 'channel_calendar', 'rw' => true, @@ -541,20 +528,20 @@ class Channel_calendar extends \Zotlabs\Web\Controller { 'end' => $end, 'drop' => $drop, 'allDay' => $allDay, - 'title' => $title, + 'title' => htmlentities($rr['summary'], ENT_COMPAT, 'UTF-8'), - 'j' => $j, - 'd' => $d, + //'j' => $j, + //'d' => $d, 'editable' => $edit ? true : false, - 'is_first'=>$is_first, + //'is_first'=>$is_first, 'item'=>$rr, - 'html'=>$html, + //'html'=>$html, 'plink' => [$rr['plink'], t('Link to source')], - 'description' => $rr['description'], - 'location' => $rr['location'], + 'description' => htmlentities($rr['description'], ENT_COMPAT, 'UTF-8'), + 'location' => htmlentities($rr['location'], ENT_COMPAT, 'UTF-8'), 'allow_cid' => expand_acl($rr['allow_cid']), 'allow_gid' => expand_acl($rr['allow_gid']), diff --git a/Zotlabs/Update/_1232.php b/Zotlabs/Update/_1232.php new file mode 100644 index 000000000..d1e3d75b5 --- /dev/null +++ b/Zotlabs/Update/_1232.php @@ -0,0 +1,47 @@ +<?php + +namespace Zotlabs\Update; + +class _1232 { + + function run() { + + if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) { + return UPDATE_SUCCESS; + } + else { + q("START TRANSACTION"); + + $r = q("ALTER TABLE channel + DROP channel_r_stream, + DROP channel_r_profile, + DROP channel_r_photos, + DROP channel_r_abook, + DROP channel_w_stream, + DROP channel_w_wall, + DROP channel_w_tagwall, + DROP channel_w_comment, + DROP channel_w_mail, + DROP channel_w_photos, + DROP channel_w_chat, + DROP channel_a_delegate, + DROP channel_r_storage, + DROP channel_w_storage, + DROP channel_r_pages, + DROP channel_w_pages, + DROP channel_a_republish, + DROP channel_w_like" + ); + } + + if($r) { + q("COMMIT"); + return UPDATE_SUCCESS; + } + + q("ROLLBACK"); + return UPDATE_FAILED; + + } + +} diff --git a/Zotlabs/Update/_1233.php b/Zotlabs/Update/_1233.php new file mode 100644 index 000000000..bd85aa379 --- /dev/null +++ b/Zotlabs/Update/_1233.php @@ -0,0 +1,38 @@ +<?php + +namespace Zotlabs\Update; + +class _1233 { + + function run() { + + q("START TRANSACTION"); + + if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) { + $r1 = q("DROP INDEX item_uid_mid"); + + $r2 = q("create index item_uid_mid on item (uid, mid)"); + $r3 = q("create index xchan_photo_m on xchan (xchan_photo_m)"); + + $r = ($r1 && $r2 && $r3); + } + else { + $r1 = q("ALTER TABLE item DROP INDEX uid_mid"); + + $r2 = q("ALTER TABLE item ADD INDEX uid_mid (uid, mid)"); + $r3 = q("ALTER TABLE xchan ADD INDEX xchan_photo_m (xchan_photo_m)"); + + $r = ($r1 && $r2 && $r3); + } + + if($r) { + q("COMMIT"); + return UPDATE_SUCCESS; + } + + q("ROLLBACK"); + return UPDATE_FAILED; + + } + +} diff --git a/Zotlabs/Widget/Cdav.php b/Zotlabs/Widget/Cdav.php index 20c70903f..7794d7617 100644 --- a/Zotlabs/Widget/Cdav.php +++ b/Zotlabs/Widget/Cdav.php @@ -57,7 +57,7 @@ class Cdav { $switch = get_pconfig(local_channel(), 'cdav_calendar', $sabrecal['id'][0]); - $color = (($sabrecal['{http://apple.com/ns/ical/}calendar-color']) ? $sabrecal['{http://apple.com/ns/ical/}calendar-color'] : '#3a87ad'); + $color = (($sabrecal['{http://apple.com/ns/ical/}calendar-color']) ? $sabrecal['{http://apple.com/ns/ical/}calendar-color'] : '#6cad39'); $editable = (($sabrecal['share-access'] == 2) ? 'false' : 'true'); // false/true must be string since we're passing it to javascript |