diff --git a/database.sql b/database.sql
index 3e7e65e72..e91c8b2f6 100644
--- a/database.sql
+++ b/database.sql
@@ -1,6 +1,6 @@
-- ------------------------------------------
-- Friendica 2021.12-dev (Siberian Iris)
--- DB_UPDATE_VERSION 1435
+-- DB_UPDATE_VERSION 1436
-- ------------------------------------------
@@ -565,7 +565,6 @@ CREATE TABLE IF NOT EXISTS `event` (
`location` text COMMENT 'event location',
`type` varchar(20) NOT NULL DEFAULT '' COMMENT 'event or birthday',
`nofinish` boolean NOT NULL DEFAULT '0' COMMENT 'if event does have no end this is 1',
- `adjust` boolean NOT NULL DEFAULT '1' COMMENT 'adjust to timezone of the recipient (0 or 1)',
`ignore` boolean NOT NULL DEFAULT '0' COMMENT '0 or 1',
`allow_cid` mediumtext COMMENT 'Access Control - list of allowed contact.id \'<19><78>\'',
`allow_gid` mediumtext COMMENT 'Access Control - list of allowed groups',
@@ -1699,7 +1698,6 @@ CREATE VIEW `post-user-view` AS SELECT
`event`.`location` AS `event-location`,
`event`.`type` AS `event-type`,
`event`.`nofinish` AS `event-nofinish`,
- `event`.`adjust` AS `event-adjust`,
`event`.`ignore` AS `event-ignore`,
`diaspora-interaction`.`interaction` AS `signed_text`,
`parent-item-uri`.`guid` AS `parent-guid`,
@@ -1860,7 +1858,6 @@ CREATE VIEW `post-thread-user-view` AS SELECT
`event`.`location` AS `event-location`,
`event`.`type` AS `event-type`,
`event`.`nofinish` AS `event-nofinish`,
- `event`.`adjust` AS `event-adjust`,
`event`.`ignore` AS `event-ignore`,
`diaspora-interaction`.`interaction` AS `signed_text`,
`parent-item-uri`.`guid` AS `parent-guid`,
diff --git a/doc/API-Entities.md b/doc/API-Entities.md
index e369cb4ff..6a851014e 100644
--- a/doc/API-Entities.md
+++ b/doc/API-Entities.md
@@ -439,12 +439,6 @@ Ex: Wed May 23 06:01:13 +0000 2007
Optional. Location. |
-
-adjust |
-Boolean |
-??? |
-
-
ignore |
Boolean |
diff --git a/doc/database/db_event.md b/doc/database/db_event.md
index 5550d1a1a..ff89b6ba2 100644
--- a/doc/database/db_event.md
+++ b/doc/database/db_event.md
@@ -23,7 +23,6 @@ Fields
| location | event location | text | YES | | NULL | |
| type | event or birthday | varchar(20) | NO | | | |
| nofinish | if event does have no end this is 1 | boolean | NO | | 0 | |
-| adjust | adjust to timezone of the recipient (0 or 1) | boolean | NO | | 1 | |
| ignore | 0 or 1 | boolean | NO | | 0 | |
| allow_cid | Access Control - list of allowed contact.id '<19><78>' | mediumtext | YES | | NULL | |
| allow_gid | Access Control - list of allowed groups | mediumtext | YES | | NULL | |
diff --git a/doc/events.md b/doc/events.md
index be0040d29..58a3b3326 100644
--- a/doc/events.md
+++ b/doc/events.md
@@ -36,11 +36,6 @@ The finishing date/time has to be after the beginning date/time of the event.
But you don't have to specify it.
If the event is open-ended or the finishing date/time does not matter, just select the box below the two first fields.
-* **Adjust for viewer timezone**: If you check this box, the beginning and finishing times will automatically converted to the local time according to the timezone setting
-
-This might prevent early birthday wishes, or the panic that you have forgotten the birthday from your buddy at the other side of the world.
-And similar events.
-
* **Title**: a title for the event
* **Description**: a longer description for the event
* **Location**: the location the event will took place
diff --git a/mod/cal.php b/mod/cal.php
index ac12d69b9..75fe87e74 100644
--- a/mod/cal.php
+++ b/mod/cal.php
@@ -185,16 +185,11 @@ function cal_content(App $a)
$start = DateTimeFormat::utc($start);
$finish = DateTimeFormat::utc($finish);
- $adjust_start = DateTimeFormat::local($start);
- $adjust_finish = DateTimeFormat::local($finish);
-
// put the event parametes in an array so we can better transmit them
$event_params = [
'event_id' => intval($_GET['id'] ?? 0),
'start' => $start,
'finish' => $finish,
- 'adjust_start' => $adjust_start,
- 'adjust_finish' => $adjust_finish,
'ignore' => $ignored,
];
@@ -210,7 +205,7 @@ function cal_content(App $a)
if (DBA::isResult($r)) {
$r = Event::sortByDate($r);
foreach ($r as $rr) {
- $j = $rr['adjust'] ? DateTimeFormat::local($rr['start'], 'j') : DateTimeFormat::utc($rr['start'], 'j');
+ $j = DateTimeFormat::local($rr['start'], 'j');
if (empty($links[$j])) {
$links[$j] = DI::baseUrl() . '/' . DI::args()->getCommand() . '#link-' . $j;
}
@@ -229,11 +224,7 @@ function cal_content(App $a)
if (!empty($_GET['id'])) {
$tpl = Renderer::getMarkupTemplate("event.tpl");
} else {
-// if (DI::config()->get('experimentals','new_calendar')==1){
$tpl = Renderer::getMarkupTemplate("events_js.tpl");
-// } else {
-// $tpl = Renderer::getMarkupTemplate("events.tpl");
-// }
}
// Get rid of dashes in key names, Smarty3 can't handle them
diff --git a/mod/events.php b/mod/events.php
index 89da0c2c0..1b8a509b7 100644
--- a/mod/events.php
+++ b/mod/events.php
@@ -49,12 +49,6 @@ function events_init(App $a)
return;
}
- // If it's a json request abort here because we don't
- // need the widget data
- if (DI::args()->getArgc() > 1 && DI::args()->getArgv()[1] === 'json') {
- return;
- }
-
if (empty(DI::page()['aside'])) {
DI::page()['aside'] = '';
}
@@ -80,7 +74,6 @@ function events_post(App $a)
$start_text = Strings::escapeHtml($_REQUEST['start_text'] ?? '');
$finish_text = Strings::escapeHtml($_REQUEST['finish_text'] ?? '');
- $adjust = intval($_POST['adjust'] ?? 0);
$nofinish = intval($_POST['nofinish'] ?? 0);
$share = intval($_POST['share'] ?? 0);
@@ -99,16 +92,9 @@ function events_post(App $a)
$finish = $finish_text;
}
- if ($adjust) {
- $start = DateTimeFormat::convert($start, 'UTC', date_default_timezone_get());
- if (!$nofinish) {
- $finish = DateTimeFormat::convert($finish, 'UTC', date_default_timezone_get());
- }
- } else {
- $start = DateTimeFormat::utc($start);
- if (!$nofinish) {
- $finish = DateTimeFormat::utc($finish);
- }
+ $start = DateTimeFormat::convert($start, 'UTC', $a->getTimeZone());
+ if (!$nofinish) {
+ $finish = DateTimeFormat::convert($finish, 'UTC', $a->getTimeZone());
}
// Don't allow the event to finish before it begins.
@@ -127,7 +113,6 @@ function events_post(App $a)
'location' => $location,
'start' => $start_text,
'finish' => $finish_text,
- 'adjust' => $adjust,
'nofinish' => $nofinish,
];
@@ -196,7 +181,6 @@ function events_post(App $a)
$datarray['desc'] = $desc;
$datarray['location'] = $location;
$datarray['type'] = $type;
- $datarray['adjust'] = $adjust;
$datarray['nofinish'] = $nofinish;
$datarray['uid'] = $uid;
$datarray['cid'] = $cid;
@@ -331,28 +315,11 @@ function events_content(App $a)
$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 (DI::args()->getArgc() > 1 && DI::args()->getArgv()[1] === 'json') {
- if (!empty($_GET['start'])) {
- $start = $_GET['start'];
- }
- if (!empty($_GET['end'])) {
- $finish = $_GET['end'];
- }
- }
-
- $start = DateTimeFormat::utc($start);
- $finish = DateTimeFormat::utc($finish);
-
- $adjust_start = DateTimeFormat::local($start);
- $adjust_finish = DateTimeFormat::local($finish);
-
// put the event parametes in an array so we can better transmit them
$event_params = [
'event_id' => intval($_GET['id'] ?? 0),
'start' => $start,
'finish' => $finish,
- 'adjust_start' => $adjust_start,
- 'adjust_finish' => $adjust_finish,
'ignore' => $ignored,
];
@@ -368,7 +335,7 @@ function events_content(App $a)
if (DBA::isResult($r)) {
$r = Event::sortByDate($r);
foreach ($r as $rr) {
- $j = $rr['adjust'] ? DateTimeFormat::local($rr['start'], 'j') : DateTimeFormat::utc($rr['start'], 'j');
+ $j = DateTimeFormat::local($rr['start'], 'j');
if (empty($links[$j])) {
$links[$j] = DI::baseUrl() . '/' . DI::args()->getCommand() . '#link-' . $j;
}
@@ -383,12 +350,6 @@ function events_content(App $a)
$events = Event::prepareListForTemplate($r);
}
- if (DI::args()->getArgc() > 1 && DI::args()->getArgv()[1] === 'json') {
- header('Content-Type: application/json');
- echo json_encode($events);
- exit();
- }
-
if (!empty($_GET['id'])) {
$tpl = Renderer::getMarkupTemplate("event.tpl");
} else {
@@ -457,7 +418,6 @@ function events_content(App $a)
// In case of an error the browser is redirected back here, with these parameters filled in with the previous values
if (!empty($_REQUEST['nofinish'])) {$orig_event['nofinish'] = $_REQUEST['nofinish'];}
- if (!empty($_REQUEST['adjust'])) {$orig_event['adjust'] = $_REQUEST['adjust'];}
if (!empty($_REQUEST['summary'])) {$orig_event['summary'] = $_REQUEST['summary'];}
if (!empty($_REQUEST['desc'])) {$orig_event['desc'] = $_REQUEST['desc'];}
if (!empty($_REQUEST['location'])) {$orig_event['location'] = $_REQUEST['location'];}
@@ -465,7 +425,6 @@ function events_content(App $a)
if (!empty($_REQUEST['finish'])) {$orig_event['finish'] = $_REQUEST['finish'];}
$n_checked = (!empty($orig_event['nofinish']) ? ' checked="checked" ' : '');
- $a_checked = (!empty($orig_event['adjust']) ? ' checked="checked" ' : '');
$t_orig = $orig_event['summary'] ?? '';
$d_orig = $orig_event['desc'] ?? '';
@@ -481,24 +440,19 @@ function events_content(App $a)
$sdt = $orig_event['start'] ?? 'now';
$fdt = $orig_event['finish'] ?? 'now';
- $tz = date_default_timezone_get();
- if (isset($orig_event['adjust'])) {
- $tz = ($orig_event['adjust'] ? date_default_timezone_get() : 'UTC');
- }
+ $syear = DateTimeFormat::local($sdt, 'Y');
+ $smonth = DateTimeFormat::local($sdt, 'm');
+ $sday = DateTimeFormat::local($sdt, 'd');
- $syear = DateTimeFormat::convert($sdt, $tz, 'UTC', 'Y');
- $smonth = DateTimeFormat::convert($sdt, $tz, 'UTC', 'm');
- $sday = DateTimeFormat::convert($sdt, $tz, 'UTC', 'd');
+ $shour = !empty($orig_event) ? DateTimeFormat::local($sdt, 'H') : '00';
+ $sminute = !empty($orig_event) ? DateTimeFormat::local($sdt, 'i') : '00';
- $shour = !empty($orig_event) ? DateTimeFormat::convert($sdt, $tz, 'UTC', 'H') : '00';
- $sminute = !empty($orig_event) ? DateTimeFormat::convert($sdt, $tz, 'UTC', 'i') : '00';
+ $fyear = DateTimeFormat::local($fdt, 'Y');
+ $fmonth = DateTimeFormat::local($fdt, 'm');
+ $fday = DateTimeFormat::local($fdt, 'd');
- $fyear = DateTimeFormat::convert($fdt, $tz, 'UTC', 'Y');
- $fmonth = DateTimeFormat::convert($fdt, $tz, 'UTC', 'm');
- $fday = DateTimeFormat::convert($fdt, $tz, 'UTC', 'd');
-
- $fhour = !empty($orig_event) ? DateTimeFormat::convert($fdt, $tz, 'UTC', 'H') : '00';
- $fminute = !empty($orig_event) ? DateTimeFormat::convert($fdt, $tz, 'UTC', 'i') : '00';
+ $fhour = !empty($orig_event) ? DateTimeFormat::local($fdt, 'H') : '00';
+ $fminute = !empty($orig_event) ? DateTimeFormat::local($fdt, 'i') : '00';
if (!$cid && in_array($mode, ['new', 'copy'])) {
$acl = ACL::getFullSelectorHTML(DI::page(), $a->getLoggedInUserId(), false, ACL::getDefaultUserPermissions($orig_event));
@@ -549,8 +503,6 @@ function events_content(App $a)
true,
'start_text'
),
- '$a_text' => DI::l10n()->t('Adjust for viewer timezone'),
- '$a_checked' => $a_checked,
'$d_text' => DI::l10n()->t('Description:'),
'$d_orig' => $d_orig,
'$l_text' => DI::l10n()->t('Location:'),
@@ -562,7 +514,6 @@ function events_content(App $a)
'$share' => ['share', DI::l10n()->t('Share this event'), $share_checked, '', $share_disabled],
'$sh_checked' => $share_checked,
'$nofinish' => ['nofinish', DI::l10n()->t('Finish date/time is not known or not relevant'), $n_checked],
- '$adjust' => ['adjust', DI::l10n()->t('Adjust for viewer timezone'), $a_checked],
'$preview' => DI::l10n()->t('Preview'),
'$acl' => $acl,
'$submit' => DI::l10n()->t('Submit'),
diff --git a/mod/item.php b/mod/item.php
index f40f6ad45..bfb865b79 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -686,7 +686,7 @@ function item_post(App $a) {
Hook::callAll('post_local',$datarray);
if (!empty($_REQUEST['scheduled_at'])) {
- $scheduled_at = DateTimeFormat::convert($_REQUEST['scheduled_at'], 'UTC', $a->getTimezone());
+ $scheduled_at = DateTimeFormat::convert($_REQUEST['scheduled_at'], 'UTC', $a->getTimeZone());
if ($scheduled_at > DateTimeFormat::utcNow()) {
unset($datarray['created']);
unset($datarray['edited']);
diff --git a/mod/ping.php b/mod/ping.php
index 2036b8ec4..216c883c6 100644
--- a/mod/ping.php
+++ b/mod/ping.php
@@ -214,7 +214,7 @@ function ping_init(App $a)
$ev = DI::cache()->get($cachekey);
if (is_null($ev)) {
$ev = q(
- "SELECT type, start, adjust FROM `event`
+ "SELECT type, start FROM `event`
WHERE `event`.`uid` = %d AND `start` < '%s' AND `finish` > '%s' and `ignore` = 0
ORDER BY `start` ASC ",
intval(local_user()),
@@ -230,7 +230,7 @@ function ping_init(App $a)
$all_events = count($ev);
if ($all_events) {
- $str_now = DateTimeFormat::timezoneNow($a->getTimeZone(), 'Y-m-d');
+ $str_now = DateTimeFormat::localNow('Y-m-d');
foreach ($ev as $x) {
$bd = false;
if ($x['type'] === 'birthday') {
@@ -239,7 +239,7 @@ function ping_init(App $a)
} else {
$events ++;
}
- if (DateTimeFormat::convert($x['start'], ((intval($x['adjust'])) ? $a->getTimeZone() : 'UTC'), 'UTC', 'Y-m-d') === $str_now) {
+ if (DateTimeFormat::local($x['start'], 'Y-m-d') === $str_now) {
$all_events_today ++;
if ($bd) {
$birthdays_today ++;
diff --git a/mod/settings.php b/mod/settings.php
index 9ea99789d..e84917c35 100644
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -333,7 +333,7 @@ function settings_post(App $a)
}
if (($timezone != $user['timezone']) && strlen($timezone)) {
- date_default_timezone_set($timezone);
+ $a->setTimeZone($timezone);
}
$aclFormatter = DI::aclFormatter();
@@ -601,7 +601,7 @@ function settings_content(App $a)
$expire_network_only = DI::pConfig()->get(local_user(), 'expire', 'network_only', false);
if (!strlen($user['timezone'])) {
- $timezone = date_default_timezone_get();
+ $timezone = $a->getTimeZone();
}
// Set the account type to "Community" when the page is a community page but the account type doesn't fit
diff --git a/src/App.php b/src/App.php
index 7c7496c3b..5c85c9f26 100644
--- a/src/App.php
+++ b/src/App.php
@@ -40,6 +40,7 @@ use Friendica\Model\Profile;
use Friendica\Module\Special\HTTPException as ModuleHTTPException;
use Friendica\Network\HTTPException;
use Friendica\Util\ConfigFileLoader;
+use Friendica\Util\DateTimeFormat;
use Friendica\Util\HTTPSignature;
use Friendica\Util\Profiler;
use Friendica\Util\Strings;
@@ -217,12 +218,13 @@ class App
/**
* Set the timezone
*
- * @param int $timezone
+ * @param string $timezone A valid time zone identifier, see https://www.php.net/manual/en/timezones.php
* @return void
*/
public function setTimeZone(string $timezone)
{
- $this->timezone = $timezone;
+ $this->timezone = (new \DateTimeZone($timezone))->getName();
+ DateTimeFormat::setLocalTimeZone($this->timezone);
}
/**
@@ -338,6 +340,9 @@ class App
{
set_time_limit(0);
+ // Ensure that all "strtotime" operations do run timezone independent
+ date_default_timezone_set('UTC');
+
// This has to be quite large to deal with embedded private photos
ini_set('pcre.backtrack_limit', 500000);
@@ -372,15 +377,13 @@ class App
private function loadDefaultTimezone()
{
if ($this->config->get('system', 'default_timezone')) {
- $this->timezone = $this->config->get('system', 'default_timezone');
+ $timezone = $this->config->get('system', 'default_timezone', 'UTC');
} else {
global $default_timezone;
- $this->timezone = !empty($default_timezone) ? $default_timezone : 'UTC';
+ $timezone = $default_timezone ?? '' ?: 'UTC';
}
- if ($this->timezone) {
- date_default_timezone_set($this->timezone);
- }
+ $this->setTimeZone($timezone);
}
/**
diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php
index ae7ace234..87db9fb06 100644
--- a/src/Content/Text/BBCode.php
+++ b/src/Content/Text/BBCode.php
@@ -1857,7 +1857,6 @@ class BBCode
$text = preg_replace("/\[event\-start\](.*?)\[\/event\-start\]/ism", $sub, $text);
$text = preg_replace("/\[event\-finish\](.*?)\[\/event\-finish\]/ism", '', $text);
$text = preg_replace("/\[event\-location\](.*?)\[\/event\-location\]/ism", '', $text);
- $text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/ism", '', $text);
$text = preg_replace("/\[event\-id\](.*?)\[\/event\-id\]/ism", '', $text);
}
diff --git a/src/Core/Worker.php b/src/Core/Worker.php
index 307451c05..3d3e11d8d 100644
--- a/src/Core/Worker.php
+++ b/src/Core/Worker.php
@@ -61,9 +61,6 @@ class Worker
*/
public static function processQueue($run_cron = true)
{
- // Ensure that all "strtotime" operations do run timezone independent
- date_default_timezone_set('UTC');
-
self::$up_start = microtime(true);
// At first check the maximum load. We shouldn't continue with a high load
diff --git a/src/Model/Event.php b/src/Model/Event.php
index 331a77e3f..ef2b55b68 100644
--- a/src/Model/Event.php
+++ b/src/Model/Event.php
@@ -51,16 +51,10 @@ class Event
$bd_format = DI::l10n()->t('l F d, Y \@ g:i A'); // Friday January 18, 2011 @ 8 AM.
- $event_start = DI::l10n()->getDay(
- !empty($event['adjust']) ?
- DateTimeFormat::local($event['start'], $bd_format) : DateTimeFormat::utc($event['start'], $bd_format)
- );
+ $event_start = DI::l10n()->getDay(DateTimeFormat::local($event['start'], $bd_format));
if (!empty($event['finish'])) {
- $event_end = DI::l10n()->getDay(
- !empty($event['adjust']) ?
- DateTimeFormat::local($event['finish'], $bd_format) : DateTimeFormat::utc($event['finish'], $bd_format)
- );
+ $event_end = DI::l10n()->getDay(DateTimeFormat::local($event['finish'], $bd_format));
} else {
$event_end = '';
}
@@ -94,13 +88,13 @@ class Event
$o .= '' . BBCode::convertForUriId($uriid, Strings::escapeHtml($event['summary']), $simple) . '
' . "\r\n";
$o .= '' . DI::l10n()->t('Starts:') . ' ' . $event_start
. '
' . "\r\n";
if (!$event['nofinish']) {
$o .= '' . DI::l10n()->t('Finishes:') . ' ' . $event_end
. '
' . "\r\n";
}
@@ -157,10 +151,6 @@ class Event
$o .= '[event-location]' . $event['location'] . '[/event-location]';
}
- if ($event['adjust']) {
- $o .= '[event-adjust]' . $event['adjust'] . '[/event-adjust]';
- }
-
return $o;
}
@@ -200,11 +190,6 @@ class Event
$ev['location'] = $match[1];
}
- $match = [];
- if (preg_match("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is", $text, $match)) {
- $ev['adjust'] = $match[1];
- }
-
$ev['nofinish'] = !empty($ev['start']) && empty($ev['finish']) ? 1 : 0;
return $ev;
@@ -218,8 +203,8 @@ class Event
private static function compareDatesCallback($event_a, $event_b)
{
- $date_a = (($event_a['adjust']) ? DateTimeFormat::local($event_a['start']) : $event_a['start']);
- $date_b = (($event_b['adjust']) ? DateTimeFormat::local($event_b['start']) : $event_b['start']);
+ $date_a = DateTimeFormat::local($event_a['start']);
+ $date_b = DateTimeFormat::local($event_b['start']);
if ($date_a === $date_b) {
return strcasecmp($event_a['desc'], $event_b['desc']);
@@ -274,7 +259,6 @@ class Event
$event['allow_gid'] = $arr['allow_gid'] ?? '';
$event['deny_cid'] = $arr['deny_cid'] ?? '';
$event['deny_gid'] = $arr['deny_gid'] ?? '';
- $event['adjust'] = intval($arr['adjust'] ?? 0);
$event['nofinish'] = intval($arr['nofinish'] ?? (!empty($event['start']) && empty($event['finish'])));
$event['created'] = DateTimeFormat::utc(($arr['created'] ?? '') ?: 'now');
@@ -305,7 +289,6 @@ class Event
'desc' => $event['desc'],
'location' => $event['location'],
'type' => $event['type'],
- 'adjust' => $event['adjust'],
'nofinish' => $event['nofinish'],
];
@@ -547,8 +530,6 @@ class Event
* int 'ignore' =>
* string 'start' => Start time of the timeframe.
* string 'finish' => Finish time of the timeframe.
- * string 'adjust_start' =>
- * string 'adjust_finish' =>
*
* @param string $sql_extra Additional sql conditions (e.g. permission request).
*
@@ -568,11 +549,11 @@ class Event
$events = DBA::toArray(DBA::p("SELECT `event`.*, `post-user`.`id` AS `itemid` FROM `event`
LEFT JOIN `post-user` ON `post-user`.`event-id` = `event`.`id` AND `post-user`.`uid` = `event`.`uid`
WHERE `event`.`uid` = ? AND `event`.`ignore` = ?
- AND ((NOT `adjust` AND (`finish` >= ? OR (`nofinish` AND `start` >= ?)) AND `start` <= ?)
- OR (`adjust` AND (`finish` >= ? OR (`nofinish` AND `start` >= ?)) AND `start` <= ?))" . $sql_extra,
- $owner_uid, $event_params["ignore"],
- $event_params["start"], $event_params["start"], $event_params["finish"],
- $event_params["adjust_start"], $event_params["adjust_start"], $event_params["adjust_finish"]));
+ AND (`finish` >= ? OR (`nofinish` AND `start` >= ?)) AND `start` <= ?
+ " . $sql_extra,
+ $owner_uid, $event_params['ignore'],
+ $event_params['start'], $event_params['start'], $event_params['finish']
+ ));
if (DBA::isResult($events)) {
$return = self::removeDuplicates($events);
@@ -604,15 +585,15 @@ class Event
$event = array_merge($event, $item);
- $start = $event['adjust'] ? DateTimeFormat::local($event['start'], 'c') : DateTimeFormat::utc($event['start'], 'c');
- $j = $event['adjust'] ? DateTimeFormat::local($event['start'], 'j') : DateTimeFormat::utc($event['start'], 'j');
- $day = $event['adjust'] ? DateTimeFormat::local($event['start'], $fmt) : DateTimeFormat::utc($event['start'], $fmt);
+ $start = DateTimeFormat::local($event['start'], 'c');
+ $j = DateTimeFormat::local($event['start'], 'j');
+ $day = DateTimeFormat::local($event['start'], $fmt);
$day = DI::l10n()->getDay($day);
if ($event['nofinish']) {
$end = null;
} else {
- $end = $event['adjust'] ? DateTimeFormat::local($event['finish'], 'c') : DateTimeFormat::utc($event['finish'], 'c');
+ $end = DateTimeFormat::local($event['finish'], 'c');
}
$is_first = ($day !== $last_date);
@@ -720,23 +701,14 @@ class Event
// but test your solution against http://icalvalid.cloudapp.net/
// also long lines SHOULD be split at 75 characters length
foreach ($events as $event) {
- if ($event['adjust'] == 1) {
- $UTC = 'Z';
- } else {
- $UTC = '';
- }
$o .= 'BEGIN:VEVENT' . PHP_EOL;
if ($event['start']) {
- $tmp = strtotime($event['start']);
- $dtformat = "%Y%m%dT%H%M%S" . $UTC;
- $o .= 'DTSTART:' . strftime($dtformat, $tmp) . PHP_EOL;
+ $o .= 'DTSTART:' . DateTimeFormat::utc($event['start'], 'Ymd\THis\Z') . PHP_EOL;
}
if (!$event['nofinish']) {
- $tmp = strtotime($event['finish']);
- $dtformat = "%Y%m%dT%H%M%S" . $UTC;
- $o .= 'DTEND:' . strftime($dtformat, $tmp) . PHP_EOL;
+ $o .= 'DTEND:' . DateTimeFormat::utc($event['finish'], 'Ymd\THis\Z') . PHP_EOL;
}
if ($event['summary']) {
@@ -793,7 +765,7 @@ class Event
return $return;
}
- $fields = ['start', 'finish', 'adjust', 'summary', 'desc', 'location', 'nofinish'];
+ $fields = ['start', 'finish', 'summary', 'desc', 'location', 'nofinish'];
$conditions = ['uid' => $uid, 'cid' => 0];
@@ -883,48 +855,22 @@ class Event
$tformat = DI::l10n()->t('g:i A'); // 8:01 AM.
// Convert the time to different formats.
- $dtstart_dt = DI::l10n()->getDay(
- $item['event-adjust'] ?
- DateTimeFormat::local($item['event-start'], $dformat)
- : DateTimeFormat::utc($item['event-start'], $dformat)
- );
- $dtstart_title = DateTimeFormat::utc($item['event-start'], $item['event-adjust'] ? DateTimeFormat::ATOM : 'Y-m-d\TH:i:s');
+ $dtstart_dt = DI::l10n()->getDay(DateTimeFormat::local($item['event-start'], $dformat));
+ $dtstart_title = DateTimeFormat::utc($item['event-start'], DateTimeFormat::ATOM);
// Format: Jan till Dec.
- $month_short = DI::l10n()->getDayShort(
- $item['event-adjust'] ?
- DateTimeFormat::local($item['event-start'], 'M')
- : DateTimeFormat::utc($item['event-start'], 'M')
- );
+ $month_short = DI::l10n()->getDayShort(DateTimeFormat::local($item['event-start'], 'M'));
// Format: 1 till 31.
- $date_short = $item['event-adjust'] ?
- DateTimeFormat::local($item['event-start'], 'j')
- : DateTimeFormat::utc($item['event-start'], 'j');
- $start_time = $item['event-adjust'] ?
- DateTimeFormat::local($item['event-start'], $tformat)
- : DateTimeFormat::utc($item['event-start'], $tformat);
- $start_short = DI::l10n()->getDayShort(
- $item['event-adjust'] ?
- DateTimeFormat::local($item['event-start'], $dformat_short)
- : DateTimeFormat::utc($item['event-start'], $dformat_short)
- );
+ $date_short = DateTimeFormat::local($item['event-start'], 'j');
+ $start_time = DateTimeFormat::local($item['event-start'], $tformat);
+ $start_short = DI::l10n()->getDayShort(DateTimeFormat::local($item['event-start'], $dformat_short));
// If the option 'nofinisch' isn't set, we need to format the finish date/time.
if (!$item['event-nofinish']) {
$finish = true;
- $dtend_dt = DI::l10n()->getDay(
- $item['event-adjust'] ?
- DateTimeFormat::local($item['event-finish'], $dformat)
- : DateTimeFormat::utc($item['event-finish'], $dformat)
- );
- $dtend_title = DateTimeFormat::utc($item['event-finish'], $item['event-adjust'] ? DateTimeFormat::ATOM : 'Y-m-d\TH:i:s');
- $end_short = DI::l10n()->getDayShort(
- $item['event-adjust'] ?
- DateTimeFormat::local($item['event-finish'], $dformat_short)
- : DateTimeFormat::utc($item['event-finish'], $dformat_short)
- );
- $end_time = $item['event-adjust'] ?
- DateTimeFormat::local($item['event-finish'], $tformat)
- : DateTimeFormat::utc($item['event-finish'], $tformat);
+ $dtend_dt = DI::l10n()->getDay(DateTimeFormat::local($item['event-finish'], $dformat));
+ $dtend_title = DateTimeFormat::utc($item['event-finish'], DateTimeFormat::ATOM);
+ $end_short = DI::l10n()->getDayShort(DateTimeFormat::utc($item['event-finish'], $dformat_short));
+ $end_time = DateTimeFormat::local($item['event-finish'], $tformat);
// Check if start and finish time is at the same day.
if (substr($dtstart_title, 0, 10) === substr($dtend_title, 0, 10)) {
$same_date = true;
@@ -1063,7 +1009,6 @@ class Event
'summary' => DI::l10n()->t('%s\'s birthday', $contact['name']),
'desc' => DI::l10n()->t('Happy Birthday %s', ' [url=' . $contact['url'] . ']' . $contact['name'] . '[/url]'),
'type' => 'birthday',
- 'adjust' => 0
];
self::store($values);
diff --git a/src/Model/Item.php b/src/Model/Item.php
index fbbd2eb67..db1d08888 100644
--- a/src/Model/Item.php
+++ b/src/Model/Item.php
@@ -88,7 +88,7 @@ class Item
'writable', 'self', 'cid', 'alias',
'event-created', 'event-edited', 'event-start', 'event-finish',
'event-summary', 'event-desc', 'event-location', 'event-type',
- 'event-nofinish', 'event-adjust', 'event-ignore', 'event-id',
+ 'event-nofinish', 'event-ignore', 'event-id',
'delivery_queue_count', 'delivery_queue_done', 'delivery_queue_failed'
];
@@ -103,7 +103,7 @@ class Item
'thr-parent-id', 'parent-uri-id', 'postopts', 'pubmail',
'event-created', 'event-edited', 'event-start', 'event-finish',
'event-summary', 'event-desc', 'event-location', 'event-type',
- 'event-nofinish', 'event-adjust', 'event-ignore', 'event-id'];
+ 'event-nofinish', 'event-ignore', 'event-id'];
// All fields in the item table
const ITEM_FIELDLIST = ['id', 'uid', 'parent', 'uri', 'parent-uri', 'thr-parent',
diff --git a/src/Model/Profile.php b/src/Model/Profile.php
index 4e984baa6..361f1a7e4 100644
--- a/src/Model/Profile.php
+++ b/src/Model/Profile.php
@@ -555,7 +555,7 @@ class Profile
$rr['link'] = Contact::magicLinkById($rr['cid']);
$rr['title'] = $rr['name'];
- $rr['date'] = DI::l10n()->getDay(DateTimeFormat::convert($rr['start'], $a->getTimeZone(), 'UTC', $rr['adjust'] ? $bd_format : $bd_short)) . (($today) ? ' ' . DI::l10n()->t('[today]') : '');
+ $rr['date'] = DI::l10n()->getDay(DateTimeFormat::local($rr['start'], $bd_short)) . (($today) ? ' ' . DI::l10n()->t('[today]') : '');
$rr['startime'] = null;
$rr['today'] = $today;
}
@@ -614,8 +614,8 @@ class Profile
$total++;
}
- $strt = DateTimeFormat::convert($rr['start'], $rr['adjust'] ? $a->getTimeZone() : 'UTC', 'UTC', 'Y-m-d');
- if ($strt === DateTimeFormat::timezoneNow($a->getTimeZone(), 'Y-m-d')) {
+ $strt = DateTimeFormat::local($rr['start'], 'Y-m-d');
+ if ($strt === DateTimeFormat::localNow('Y-m-d')) {
$istoday = true;
}
@@ -630,17 +630,17 @@ class Profile
$description = DI::l10n()->t('[No description]');
}
- $strt = DateTimeFormat::convert($rr['start'], $rr['adjust'] ? $a->getTimeZone() : 'UTC');
+ $strt = DateTimeFormat::local($rr['start']);
- if (substr($strt, 0, 10) < DateTimeFormat::timezoneNow($a->getTimeZone(), 'Y-m-d')) {
+ if (substr($strt, 0, 10) < DateTimeFormat::localNow('Y-m-d')) {
continue;
}
- $today = ((substr($strt, 0, 10) === DateTimeFormat::timezoneNow($a->getTimeZone(), 'Y-m-d')) ? true : false);
+ $today = substr($strt, 0, 10) === DateTimeFormat::localNow('Y-m-d');
$rr['title'] = $title;
$rr['description'] = $description;
- $rr['date'] = DI::l10n()->getDay(DateTimeFormat::convert($rr['start'], $rr['adjust'] ? $a->getTimeZone() : 'UTC', 'UTC', $bd_format)) . (($today) ? ' ' . DI::l10n()->t('[today]') : '');
+ $rr['date'] = DI::l10n()->getDay(DateTimeFormat::local($rr['start'], $bd_format)) . (($today) ? ' ' . DI::l10n()->t('[today]') : '');
$rr['startime'] = $strt;
$rr['today'] = $today;
diff --git a/src/Module/Api/Friendica/Events/Index.php b/src/Module/Api/Friendica/Events/Index.php
index febbdea48..7103d1dff 100644
--- a/src/Module/Api/Friendica/Events/Index.php
+++ b/src/Module/Api/Friendica/Events/Index.php
@@ -61,7 +61,7 @@ class Index extends BaseApi
'type' => $event['type'],
'nofinish' => $event['nofinish'],
'place' => $event['location'],
- 'adjust' => $event['adjust'],
+ 'adjust' => 1,
'ignore' => $event['ignore'],
'allow_cid' => $event['allow_cid'],
'allow_gid' => $event['allow_gid'],
diff --git a/src/Module/Conversation/Network.php b/src/Module/Conversation/Network.php
index 405e3772d..f2dc1fae1 100644
--- a/src/Module/Conversation/Network.php
+++ b/src/Module/Conversation/Network.php
@@ -372,10 +372,10 @@ class Network extends BaseModule
}
if (self::$dateFrom) {
- $conditionStrings = DBA::mergeConditions($conditionStrings, ["`received` <= ? ", DateTimeFormat::convert(self::$dateFrom, 'UTC', date_default_timezone_get())]);
+ $conditionStrings = DBA::mergeConditions($conditionStrings, ["`received` <= ? ", DateTimeFormat::convert(self::$dateFrom, 'UTC', DI::app()->getTimeZone())]);
}
if (self::$dateTo) {
- $conditionStrings = DBA::mergeConditions($conditionStrings, ["`received` >= ? ", DateTimeFormat::convert(self::$dateTo, 'UTC', date_default_timezone_get())]);
+ $conditionStrings = DBA::mergeConditions($conditionStrings, ["`received` >= ? ", DateTimeFormat::convert(self::$dateTo, 'UTC', DI::app()->getTimeZone())]);
}
if (self::$groupId) {
diff --git a/src/Module/Events/Json.php b/src/Module/Events/Json.php
new file mode 100644
index 000000000..50e468a9c
--- /dev/null
+++ b/src/Module/Events/Json.php
@@ -0,0 +1,104 @@
+ intval($_GET['id'] ?? 0),
+ 'start' => $start,
+ 'finish' => $finish,
+ 'ignore' => 0,
+ ];
+
+ // get events by id or by date
+ if ($event_params['event_id']) {
+ $r = Event::getListById(local_user(), $event_params['event_id']);
+ } else {
+ $r = Event::getListByDate(local_user(), $event_params);
+ }
+
+ $links = [];
+
+ if (DBA::isResult($r)) {
+ $r = Event::sortByDate($r);
+ foreach ($r as $rr) {
+ $j = DateTimeFormat::utc($rr['start'], 'j');
+ if (empty($links[$j])) {
+ $links[$j] = DI::baseUrl() . '/' . DI::args()->getCommand() . '#link-' . $j;
+ }
+ }
+ }
+
+ $events = [];
+
+ // transform the event in a usable array
+ if (DBA::isResult($r)) {
+ $events = Event::sortByDate($r);
+
+ $events = self::map($events);
+ }
+
+ header('Content-Type: application/json');
+ echo json_encode($events);
+ exit();
+ }
+
+ private static function map(array $events): array
+ {
+ return array_map(function ($event) {
+ $item = Post::selectFirst(['plink', 'author-name', 'author-avatar', 'author-link', 'private', 'uri-id'], ['id' => $event['itemid']]);
+ if (!DBA::isResult($item)) {
+ // Using default values when no item had been found
+ $item = ['plink' => '', 'author-name' => '', 'author-avatar' => '', 'author-link' => '', 'private' => Item::PUBLIC, 'uri-id' => ($event['uri-id'] ?? 0)];
+ }
+
+ return [
+ 'id' => $event['id'],
+ 'title' => $event['summary'],
+ 'start' => DateTimeFormat::local($event['start']),
+ 'end' => DateTimeFormat::local($event['finish']),
+ 'nofinish' => $event['nofinish'],
+ 'desc' => $event['desc'],
+ 'location' => $event['location'],
+ 'item' => $item,
+ ];
+ }, $events);
+ }
+}
diff --git a/src/Module/Profile/Status.php b/src/Module/Profile/Status.php
index 3c1ed8c5a..8235c3265 100644
--- a/src/Module/Profile/Status.php
+++ b/src/Module/Profile/Status.php
@@ -151,10 +151,10 @@ class Status extends BaseProfile
}
if (!empty($datequery)) {
- $condition = DBA::mergeConditions($condition, ["`received` <= ?", DateTimeFormat::convert($datequery, 'UTC', date_default_timezone_get())]);
+ $condition = DBA::mergeConditions($condition, ["`received` <= ?", DateTimeFormat::convert($datequery, 'UTC', $a->getTimeZone())]);
}
if (!empty($datequery2)) {
- $condition = DBA::mergeConditions($condition, ["`received` >= ?", DateTimeFormat::convert($datequery2, 'UTC', date_default_timezone_get())]);
+ $condition = DBA::mergeConditions($condition, ["`received` >= ?", DateTimeFormat::convert($datequery2, 'UTC', $a->getTimeZone())]);
}
// Does the profile page belong to a forum?
diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php
index 47ea6a1bd..51a7ede2f 100644
--- a/src/Protocol/ActivityPub/Processor.php
+++ b/src/Protocol/ActivityPub/Processor.php
@@ -408,7 +408,6 @@ class Processor
$event['finish'] = $activity['end-time'];
$event['nofinish'] = empty($event['finish']);
$event['location'] = $activity['location'];
- $event['adjust'] = $activity['adjust'] ?? true;
$event['cid'] = $item['contact-id'];
$event['uid'] = $item['uid'];
$event['uri'] = $item['uri'];
diff --git a/src/Protocol/ActivityPub/Receiver.php b/src/Protocol/ActivityPub/Receiver.php
index f09483306..431b6739f 100644
--- a/src/Protocol/ActivityPub/Receiver.php
+++ b/src/Protocol/ActivityPub/Receiver.php
@@ -1389,7 +1389,6 @@ class Receiver
$object_data = self::getSource($object, $object_data);
$object_data['start-time'] = JsonLD::fetchElement($object, 'as:startTime', '@value');
$object_data['end-time'] = JsonLD::fetchElement($object, 'as:endTime', '@value');
- $object_data['adjust'] = JsonLD::fetchElement($object, 'dfrn:adjust', '@value');
$object_data['location'] = $location;
$object_data['latitude'] = JsonLD::fetchElement($object, 'as:location', 'as:latitude', '@type', 'as:Place');
$object_data['latitude'] = JsonLD::fetchElement($object_data, 'latitude', '@value');
diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php
index 375036d1c..5c9142a5d 100644
--- a/src/Protocol/ActivityPub/Transmitter.php
+++ b/src/Protocol/ActivityPub/Transmitter.php
@@ -1476,10 +1476,10 @@ class Transmitter
$event = [];
$event['name'] = $item['event-summary'];
$event['content'] = BBCode::convertForUriId($item['uri-id'], $item['event-desc'], BBCode::ACTIVITYPUB);
- $event['startTime'] = DateTimeFormat::utc($item['event-start'] . '+00:00', DateTimeFormat::ATOM);
+ $event['startTime'] = DateTimeFormat::utc($item['event-start'], 'c');
if (!$item['event-nofinish']) {
- $event['endTime'] = DateTimeFormat::utc($item['event-finish'] . '+00:00', DateTimeFormat::ATOM);
+ $event['endTime'] = DateTimeFormat::utc($item['event-finish'], 'c');
}
if (!empty($item['event-location'])) {
@@ -1487,7 +1487,8 @@ class Transmitter
$event['location'] = self::createLocation($item);
}
- $event['dfrn:adjust'] = (bool)$item['event-adjust'];
+ // 2021.12: Backward compatibility value, all the events now "adjust" to the viewer timezone
+ $event['dfrn:adjust'] = true;
return $event;
}
diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php
index 6c692b21f..d73eabc2d 100644
--- a/src/Protocol/DFRN.php
+++ b/src/Protocol/DFRN.php
@@ -488,10 +488,7 @@ class DFRN
XML::addElement($doc, $author, "poco:note", $profile["about"]);
XML::addElement($doc, $author, "poco:preferredUsername", $profile["nickname"]);
- $savetz = date_default_timezone_get();
- date_default_timezone_set($profile["timezone"]);
- XML::addElement($doc, $author, "poco:utcOffset", date("P"));
- date_default_timezone_set($savetz);
+ XML::addElement($doc, $author, "poco:utcOffset", DateTimeFormat::timezoneNow($profile["timezone"], "P"));
if (trim($profile["homepage"]) != "") {
$urls = $doc->createElement("poco:urls");
diff --git a/src/Protocol/Diaspora.php b/src/Protocol/Diaspora.php
index ff1b1cb6a..84f0c6de8 100644
--- a/src/Protocol/Diaspora.php
+++ b/src/Protocol/Diaspora.php
@@ -3314,15 +3314,12 @@ class Diaspora
$eventdata["all_day"] = "false";
$eventdata['timezone'] = 'UTC';
- if (!$event['adjust'] && $owner['timezone']) {
- $eventdata['timezone'] = $owner['timezone'];
- }
if ($event['start']) {
- $eventdata['start'] = DateTimeFormat::convert($event['start'], "UTC", $eventdata['timezone'], $mask);
+ $eventdata['start'] = DateTimeFormat::utc($event['start'], $mask);
}
if ($event['finish'] && !$event['nofinish']) {
- $eventdata['end'] = DateTimeFormat::convert($event['finish'], "UTC", $eventdata['timezone'], $mask);
+ $eventdata['end'] = DateTimeFormat::utc($event['finish'], $mask);
}
if ($event['summary']) {
$eventdata['summary'] = html_entity_decode(BBCode::toMarkdown($event['summary']));
diff --git a/src/Security/Authentication.php b/src/Security/Authentication.php
index e894c6dda..c0dc1e9aa 100644
--- a/src/Security/Authentication.php
+++ b/src/Security/Authentication.php
@@ -305,7 +305,6 @@ class Authentication
$this->session->set('new_member', time() < ($member_since + (60 * 60 * 24 * 14)));
if (strlen($user_record['timezone'])) {
- date_default_timezone_set($user_record['timezone']);
$a->setTimeZone($user_record['timezone']);
}
diff --git a/src/Util/DateTimeFormat.php b/src/Util/DateTimeFormat.php
index a1eb74994..fdb49dabd 100644
--- a/src/Util/DateTimeFormat.php
+++ b/src/Util/DateTimeFormat.php
@@ -36,6 +36,13 @@ class DateTimeFormat
const HTTP = 'D, d M Y H:i:s \G\M\T';
const JSON = 'Y-m-d\TH:i:s.v\Z';
+ static $localTimezone = 'UTC';
+
+ public static function setLocalTimeZone(string $timezone)
+ {
+ self::$localTimezone = $timezone;
+ }
+
/**
* convert() shorthand for UTC.
*
@@ -59,7 +66,7 @@ class DateTimeFormat
*/
public static function local($time, $format = self::MYSQL)
{
- return self::convert($time, date_default_timezone_get(), 'UTC', $format);
+ return self::convert($time, self::$localTimezone, 'UTC', $format);
}
/**
@@ -160,7 +167,7 @@ class DateTimeFormat
$to_obj = new DateTimeZone('UTC');
}
- $d->setTimeZone($to_obj);
+ $d->setTimezone($to_obj);
return $d->format($format);
}
diff --git a/src/Util/Temporal.php b/src/Util/Temporal.php
index b5619cf49..a49995a03 100644
--- a/src/Util/Temporal.php
+++ b/src/Util/Temporal.php
@@ -271,7 +271,11 @@ class Temporal
$id,
$label,
$input_text,
- '',
+ DI::l10n()->t(
+ 'Time zone: %s Change in Settings',
+ str_replace('_', ' ', DI::app()->getTimeZone()) . ' (GMT ' . DateTimeFormat::localNow('P') . ')',
+ DI::baseUrl() . '/settings'
+ ),
$required ? '*' : '',
'placeholder="' . $readable_format . '"'
],
@@ -284,7 +288,7 @@ class Temporal
'lang' => $lang,
'minfrom' => $minfrom,
'maxfrom' => $maxfrom,
- ]
+ ],
]);
return $o;
@@ -360,23 +364,19 @@ class Temporal
* Returns the age in years, given a date of birth and the timezone of the person
* whose date of birth is provided.
*
- * @param string $dob Date of Birth
- * @param string $owner_tz (optional) Timezone of the person of interest
+ * @param string $dob Date of Birth
+ * @param string $timezone Timezone of the person of interest
*
* @return int Age in years
* @throws \Exception
*/
- public static function getAgeByTimezone($dob, $owner_tz = ''): int
+ public static function getAgeByTimezone(string $dob, string $timezone): int
{
if (!intval($dob)) {
return 0;
}
- if (!$owner_tz) {
- $owner_tz = date_default_timezone_get();
- }
-
- $birthdate = new DateTime($dob . ' 00:00:00', new DateTimeZone($owner_tz));
+ $birthdate = new DateTime($dob . ' 00:00:00', new DateTimeZone($timezone));
$currentDate = new DateTime('now', new DateTimeZone('UTC'));
$interval = $birthdate->diff($currentDate);
diff --git a/static/dbstructure.config.php b/static/dbstructure.config.php
index ef97c54f6..8ea4ea1d0 100644
--- a/static/dbstructure.config.php
+++ b/static/dbstructure.config.php
@@ -55,7 +55,7 @@
use Friendica\Database\DBA;
if (!defined('DB_UPDATE_VERSION')) {
- define('DB_UPDATE_VERSION', 1435);
+ define('DB_UPDATE_VERSION', 1436);
}
return [
@@ -629,7 +629,6 @@ return [
"location" => ["type" => "text", "comment" => "event location"],
"type" => ["type" => "varchar(20)", "not null" => "1", "default" => "", "comment" => "event or birthday"],
"nofinish" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "if event does have no end this is 1"],
- "adjust" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => "adjust to timezone of the recipient (0 or 1)"],
"ignore" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "0 or 1"],
"allow_cid" => ["type" => "mediumtext", "comment" => "Access Control - list of allowed contact.id '<19><78>'"],
"allow_gid" => ["type" => "mediumtext", "comment" => "Access Control - list of allowed groups"],
diff --git a/static/dbview.config.php b/static/dbview.config.php
index 5b3e8b582..63215968b 100644
--- a/static/dbview.config.php
+++ b/static/dbview.config.php
@@ -186,7 +186,6 @@
"event-location" => ["event", "location"],
"event-type" => ["event", "type"],
"event-nofinish" => ["event", "nofinish"],
- "event-adjust" => ["event", "adjust"],
"event-ignore" => ["event", "ignore"],
"signed_text" => ["diaspora-interaction", "interaction"],
"parent-guid" => ["parent-item-uri", "guid"],
@@ -345,7 +344,6 @@
"event-location" => ["event", "location"],
"event-type" => ["event", "type"],
"event-nofinish" => ["event", "nofinish"],
- "event-adjust" => ["event", "adjust"],
"event-ignore" => ["event", "ignore"],
"signed_text" => ["diaspora-interaction", "interaction"],
"parent-guid" => ["parent-item-uri", "guid"],
diff --git a/static/routes.config.php b/static/routes.config.php
index 1bcae4a7d..2f20d5177 100644
--- a/static/routes.config.php
+++ b/static/routes.config.php
@@ -259,6 +259,8 @@ return [
'/dirfind' => [Module\Search\Directory::class, [R::GET]],
'/directory' => [Module\Directory::class, [R::GET]],
+ '/events/json' => [Module\Events\Json::class, [R::GET]],
+
'/feed' => [
'/{nickname}' => [Module\Feed::class, [R::GET]],
'/{nickname}/posts' => [Module\Feed::class, [R::GET]],
diff --git a/view/lang/C/messages.po b/view/lang/C/messages.po
index dc445b732..42cddfb96 100644
--- a/view/lang/C/messages.po
+++ b/view/lang/C/messages.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 2021.12-dev\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-02 17:52-0400\n"
+"POT-Creation-Date: 2021-10-03 13:45-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -37,9 +37,9 @@ msgstr[1] ""
msgid "Monthly posting limit of %d post reached. The post was rejected."
msgstr ""
-#: include/api.php:4431 mod/photos.php:89 mod/photos.php:198 mod/photos.php:621
-#: mod/photos.php:1032 mod/photos.php:1049 mod/photos.php:1598
-#: src/Model/User.php:1169 src/Model/User.php:1177 src/Model/User.php:1185
+#: include/api.php:4422 mod/photos.php:89 mod/photos.php:198 mod/photos.php:617
+#: mod/photos.php:1028 mod/photos.php:1045 mod/photos.php:1594
+#: src/Model/User.php:1160 src/Model/User.php:1168 src/Model/User.php:1176
#: src/Module/Settings/Profile/Photo/Crop.php:101
#: src/Module/Settings/Profile/Photo/Crop.php:117
#: src/Module/Settings/Profile/Photo/Crop.php:133
@@ -299,16 +299,16 @@ msgstr ""
msgid "%s %s shared a new post"
msgstr ""
-#: mod/api.php:30 mod/editpost.php:38 mod/events.php:236 mod/follow.php:56
+#: mod/api.php:30 mod/editpost.php:38 mod/events.php:220 mod/follow.php:56
#: mod/follow.php:130 mod/item.php:185 mod/item.php:190 mod/item.php:936
#: mod/message.php:69 mod/message.php:111 mod/notes.php:44
-#: mod/ostatus_subscribe.php:32 mod/photos.php:163 mod/photos.php:912
+#: mod/ostatus_subscribe.php:32 mod/photos.php:163 mod/photos.php:908
#: mod/repair_ostatus.php:31 mod/settings.php:47 mod/settings.php:57
-#: mod/settings.php:417 mod/suggest.php:34 mod/uimport.php:32
+#: mod/settings.php:409 mod/suggest.php:34 mod/uimport.php:33
#: mod/unfollow.php:35 mod/unfollow.php:50 mod/unfollow.php:82
-#: mod/wall_attach.php:78 mod/wall_attach.php:81 mod/wall_upload.php:99
-#: mod/wall_upload.php:102 mod/wallmessage.php:35 mod/wallmessage.php:59
-#: mod/wallmessage.php:96 mod/wallmessage.php:120 src/Module/Attach.php:55
+#: mod/wall_attach.php:68 mod/wall_attach.php:71 mod/wall_upload.php:90
+#: mod/wall_upload.php:93 mod/wallmessage.php:36 mod/wallmessage.php:55
+#: mod/wallmessage.php:89 mod/wallmessage.php:109 src/Module/Attach.php:55
#: src/Module/BaseApi.php:79 src/Module/BaseApi.php:88
#: src/Module/BaseApi.php:97 src/Module/BaseApi.php:106
#: src/Module/BaseNotifications.php:88 src/Module/Contact.php:328
@@ -343,7 +343,7 @@ msgid "Access denied."
msgstr ""
#: mod/cal.php:61 mod/cal.php:78 mod/photos.php:69 mod/photos.php:143
-#: mod/photos.php:819 src/Model/Profile.php:228 src/Module/HCard.php:52
+#: mod/photos.php:815 src/Model/Profile.php:228 src/Module/HCard.php:52
#: src/Module/Profile/Common.php:41 src/Module/Profile/Common.php:52
#: src/Module/Profile/Contacts.php:40 src/Module/Profile/Contacts.php:50
#: src/Module/Profile/Media.php:38 src/Module/Profile/Status.php:58
@@ -357,68 +357,68 @@ msgstr ""
msgid "Access to this profile has been restricted."
msgstr ""
-#: mod/cal.php:251 mod/events.php:416 src/Content/Nav.php:194
+#: mod/cal.php:242 mod/events.php:377 src/Content/Nav.php:194
#: src/Content/Nav.php:258 src/Module/BaseProfile.php:84
#: src/Module/BaseProfile.php:95 view/theme/frio/theme.php:230
#: view/theme/frio/theme.php:234
msgid "Events"
msgstr ""
-#: mod/cal.php:252 mod/events.php:417
+#: mod/cal.php:243 mod/events.php:378
msgid "View"
msgstr ""
-#: mod/cal.php:253 mod/events.php:419
+#: mod/cal.php:244 mod/events.php:380
msgid "Previous"
msgstr ""
-#: mod/cal.php:254 mod/events.php:420 src/Module/Install.php:207
+#: mod/cal.php:245 mod/events.php:381 src/Module/Install.php:207
msgid "Next"
msgstr ""
-#: mod/cal.php:257 mod/events.php:425 src/Model/Event.php:474
+#: mod/cal.php:248 mod/events.php:386 src/Model/Event.php:457
msgid "today"
msgstr ""
-#: mod/cal.php:258 mod/events.php:426 src/Model/Event.php:475
-#: src/Util/Temporal.php:330
+#: mod/cal.php:249 mod/events.php:387 src/Model/Event.php:458
+#: src/Util/Temporal.php:334
msgid "month"
msgstr ""
-#: mod/cal.php:259 mod/events.php:427 src/Model/Event.php:476
-#: src/Util/Temporal.php:331
+#: mod/cal.php:250 mod/events.php:388 src/Model/Event.php:459
+#: src/Util/Temporal.php:335
msgid "week"
msgstr ""
-#: mod/cal.php:260 mod/events.php:428 src/Model/Event.php:477
-#: src/Util/Temporal.php:332
+#: mod/cal.php:251 mod/events.php:389 src/Model/Event.php:460
+#: src/Util/Temporal.php:336
msgid "day"
msgstr ""
-#: mod/cal.php:261 mod/events.php:429
+#: mod/cal.php:252 mod/events.php:390
msgid "list"
msgstr ""
-#: mod/cal.php:274 src/Console/User.php:182 src/Model/User.php:680
+#: mod/cal.php:265 src/Console/User.php:182 src/Model/User.php:680
#: src/Module/Admin/Users/Active.php:73 src/Module/Admin/Users/Blocked.php:74
#: src/Module/Admin/Users/Index.php:80 src/Module/Admin/Users/Pending.php:71
#: src/Module/Api/Twitter/ContactEndpoint.php:71
msgid "User not found"
msgstr ""
-#: mod/cal.php:283
+#: mod/cal.php:274
msgid "This calendar format is not supported"
msgstr ""
-#: mod/cal.php:285
+#: mod/cal.php:276
msgid "No exportable data found"
msgstr ""
-#: mod/cal.php:302
+#: mod/cal.php:293
msgid "calendar"
msgstr ""
-#: mod/display.php:165 mod/photos.php:823
+#: mod/display.php:165 mod/photos.php:819
#: src/Module/Conversation/Community.php:176 src/Module/Debug/Probe.php:39
#: src/Module/Debug/WebFinger.php:38 src/Module/Directory.php:49
#: src/Module/Search/Index.php:50 src/Module/Search/Index.php:55
@@ -446,13 +446,13 @@ msgstr ""
msgid "Save"
msgstr ""
-#: mod/editpost.php:92 mod/photos.php:1374 src/Content/Conversation.php:326
+#: mod/editpost.php:92 mod/photos.php:1370 src/Content/Conversation.php:326
#: src/Module/Contact/Poke.php:157 src/Object/Post.php:964
msgid "Loading..."
msgstr ""
#: mod/editpost.php:93 mod/message.php:198 mod/message.php:362
-#: mod/wallmessage.php:153 src/Content/Conversation.php:327
+#: mod/wallmessage.php:139 src/Content/Conversation.php:327
msgid "Upload photo"
msgstr ""
@@ -469,7 +469,7 @@ msgid "attach file"
msgstr ""
#: mod/editpost.php:97 mod/message.php:199 mod/message.php:363
-#: mod/wallmessage.php:154
+#: mod/wallmessage.php:140
msgid "Insert web link"
msgstr ""
@@ -511,7 +511,7 @@ msgid "clear location"
msgstr ""
#: mod/editpost.php:107 mod/message.php:200 mod/message.php:365
-#: mod/photos.php:1525 mod/wallmessage.php:155 src/Content/Conversation.php:355
+#: mod/photos.php:1521 mod/wallmessage.php:141 src/Content/Conversation.php:355
#: src/Content/Conversation.php:689 src/Module/Item/Compose.php:165
#: src/Object/Post.php:502
msgid "Please wait"
@@ -543,14 +543,14 @@ msgstr ""
msgid "Example: bob@example.com, mary@example.com"
msgstr ""
-#: mod/editpost.php:128 mod/events.php:566 mod/photos.php:1373
-#: mod/photos.php:1429 mod/photos.php:1503 src/Content/Conversation.php:370
+#: mod/editpost.php:128 mod/events.php:517 mod/photos.php:1369
+#: mod/photos.php:1425 mod/photos.php:1499 src/Content/Conversation.php:370
#: src/Module/Item/Compose.php:160 src/Object/Post.php:974
msgid "Preview"
msgstr ""
-#: mod/editpost.php:130 mod/fbrowser.php:105 mod/fbrowser.php:134
-#: mod/follow.php:144 mod/photos.php:1021 mod/photos.php:1130 mod/tagrm.php:37
+#: mod/editpost.php:130 mod/fbrowser.php:100 mod/fbrowser.php:127
+#: mod/follow.php:144 mod/photos.php:1017 mod/photos.php:1126 mod/tagrm.php:37
#: mod/tagrm.php:129 mod/unfollow.php:97 src/Content/Conversation.php:373
#: src/Module/Contact/Revoke.php:99 src/Module/RemoteFollow.php:116
msgid "Cancel"
@@ -567,8 +567,8 @@ msgstr ""
msgid "Browser"
msgstr ""
-#: mod/editpost.php:136 mod/events.php:571 mod/photos.php:960
-#: mod/photos.php:1327 src/Content/Conversation.php:357
+#: mod/editpost.php:136 mod/events.php:522 mod/photos.php:956
+#: mod/photos.php:1323 src/Content/Conversation.php:357
msgid "Permissions"
msgstr ""
@@ -576,31 +576,31 @@ msgstr ""
msgid "Open Compose page"
msgstr ""
-#: mod/events.php:138 mod/events.php:140
+#: mod/events.php:123 mod/events.php:125
msgid "Event can not end before it has started."
msgstr ""
-#: mod/events.php:147 mod/events.php:149
+#: mod/events.php:132 mod/events.php:134
msgid "Event title and start time are required."
msgstr ""
-#: mod/events.php:418
+#: mod/events.php:379
msgid "Create New Event"
msgstr ""
-#: mod/events.php:524 src/Module/Admin/Logs/View.php:96
+#: mod/events.php:478 src/Module/Admin/Logs/View.php:96
msgid "Event details"
msgstr ""
-#: mod/events.php:525
+#: mod/events.php:479
msgid "Starting date and Title are required."
msgstr ""
-#: mod/events.php:526 mod/events.php:531
+#: mod/events.php:480 mod/events.php:485
msgid "Event Starts:"
msgstr ""
-#: mod/events.php:526 mod/events.php:558
+#: mod/events.php:480 mod/events.php:510
#: src/Module/Admin/Blocklist/Server.php:79
#: src/Module/Admin/Blocklist/Server.php:80
#: src/Module/Admin/Blocklist/Server.php:99
@@ -618,42 +618,38 @@ msgstr ""
msgid "Required"
msgstr ""
-#: mod/events.php:539 mod/events.php:564
+#: mod/events.php:493 mod/events.php:516
msgid "Finish date/time is not known or not relevant"
msgstr ""
-#: mod/events.php:541 mod/events.php:546
+#: mod/events.php:495 mod/events.php:500
msgid "Event Finishes:"
msgstr ""
-#: mod/events.php:552 mod/events.php:565
-msgid "Adjust for viewer timezone"
-msgstr ""
-
-#: mod/events.php:554 src/Module/Profile/Profile.php:172
+#: mod/events.php:506 src/Module/Profile/Profile.php:172
#: src/Module/Settings/Profile/Index.php:236
msgid "Description:"
msgstr ""
-#: mod/events.php:556 src/Content/Widget/VCard.php:98 src/Model/Event.php:86
-#: src/Model/Event.php:113 src/Model/Event.php:483 src/Model/Event.php:969
+#: mod/events.php:508 src/Content/Widget/VCard.php:98 src/Model/Event.php:80
+#: src/Model/Event.php:107 src/Model/Event.php:466 src/Model/Event.php:915
#: src/Model/Profile.php:367 src/Module/Contact.php:565
#: src/Module/Directory.php:150 src/Module/Notifications/Introductions.php:165
#: src/Module/Profile/Profile.php:194
msgid "Location:"
msgstr ""
-#: mod/events.php:558 mod/events.php:560
+#: mod/events.php:510 mod/events.php:512
msgid "Title:"
msgstr ""
-#: mod/events.php:561 mod/events.php:562
+#: mod/events.php:513 mod/events.php:514
msgid "Share this event"
msgstr ""
-#: mod/events.php:568 mod/message.php:201 mod/message.php:364
-#: mod/photos.php:942 mod/photos.php:1043 mod/photos.php:1331
-#: mod/photos.php:1372 mod/photos.php:1428 mod/photos.php:1502
+#: mod/events.php:519 mod/message.php:201 mod/message.php:364
+#: mod/photos.php:938 mod/photos.php:1039 mod/photos.php:1327
+#: mod/photos.php:1368 mod/photos.php:1424 mod/photos.php:1498
#: src/Module/Admin/Item/Source.php:65 src/Module/Contact.php:523
#: src/Module/Contact/Advanced.php:133 src/Module/Contact/Poke.php:158
#: src/Module/Debug/ActivityPubConversion.php:141
@@ -669,16 +665,16 @@ msgstr ""
msgid "Submit"
msgstr ""
-#: mod/events.php:569 src/Module/Profile/Profile.php:248
+#: mod/events.php:520 src/Module/Profile/Profile.php:248
msgid "Basic"
msgstr ""
-#: mod/events.php:570 src/Module/Admin/Site.php:505 src/Module/Contact.php:880
+#: mod/events.php:521 src/Module/Admin/Site.php:505 src/Module/Contact.php:880
#: src/Module/Profile/Profile.php:249
msgid "Advanced"
msgstr ""
-#: mod/events.php:587
+#: mod/events.php:538
msgid "Failed to remove event"
msgstr ""
@@ -687,12 +683,12 @@ msgstr ""
msgid "Photos"
msgstr ""
-#: mod/fbrowser.php:107 mod/fbrowser.php:136
+#: mod/fbrowser.php:102 mod/fbrowser.php:129
#: src/Module/Settings/Profile/Photo/Index.php:129
msgid "Upload"
msgstr ""
-#: mod/fbrowser.php:131
+#: mod/fbrowser.php:124
msgid "Files"
msgstr ""
@@ -941,7 +937,7 @@ msgstr ""
msgid "New Message"
msgstr ""
-#: mod/message.php:83 mod/wallmessage.php:76
+#: mod/message.php:83 mod/wallmessage.php:69
msgid "No recipient selected."
msgstr ""
@@ -949,11 +945,11 @@ msgstr ""
msgid "Unable to locate contact information."
msgstr ""
-#: mod/message.php:90 mod/wallmessage.php:82
+#: mod/message.php:90 mod/wallmessage.php:75
msgid "Message could not be sent."
msgstr ""
-#: mod/message.php:93 mod/wallmessage.php:85
+#: mod/message.php:93 mod/wallmessage.php:78
msgid "Message collection failure."
msgstr ""
@@ -979,23 +975,23 @@ msgstr ""
msgid "Conversation was not removed."
msgstr ""
-#: mod/message.php:180 mod/message.php:293 mod/wallmessage.php:137
+#: mod/message.php:180 mod/message.php:293 mod/wallmessage.php:123
msgid "Please enter a link URL:"
msgstr ""
-#: mod/message.php:189 mod/wallmessage.php:142
+#: mod/message.php:189 mod/wallmessage.php:128
msgid "Send Private Message"
msgstr ""
-#: mod/message.php:190 mod/message.php:354 mod/wallmessage.php:144
+#: mod/message.php:190 mod/message.php:354 mod/wallmessage.php:130
msgid "To:"
msgstr ""
-#: mod/message.php:191 mod/message.php:355 mod/wallmessage.php:145
+#: mod/message.php:191 mod/message.php:355 mod/wallmessage.php:131
msgid "Subject:"
msgstr ""
-#: mod/message.php:195 mod/message.php:358 mod/wallmessage.php:151
+#: mod/message.php:195 mod/message.php:358 mod/wallmessage.php:137
#: src/Module/Invite.php:170
msgid "Your message:"
msgstr ""
@@ -1088,7 +1084,7 @@ msgstr ""
msgid "Unsupported network"
msgstr ""
-#: mod/ostatus_subscribe.php:102 mod/repair_ostatus.php:65
+#: mod/ostatus_subscribe.php:102 mod/repair_ostatus.php:51
msgid "Done"
msgstr ""
@@ -1104,7 +1100,7 @@ msgstr ""
msgid "ignored"
msgstr ""
-#: mod/ostatus_subscribe.php:126 mod/repair_ostatus.php:71
+#: mod/ostatus_subscribe.php:126 mod/repair_ostatus.php:57
msgid "Keep this window open until done."
msgstr ""
@@ -1112,11 +1108,11 @@ msgstr ""
msgid "Photo Albums"
msgstr ""
-#: mod/photos.php:112 mod/photos.php:1627
+#: mod/photos.php:112 mod/photos.php:1623
msgid "Recent Photos"
msgstr ""
-#: mod/photos.php:114 mod/photos.php:1094 mod/photos.php:1629
+#: mod/photos.php:114 mod/photos.php:1090 mod/photos.php:1625
msgid "Upload New Photos"
msgstr ""
@@ -1132,231 +1128,231 @@ msgstr ""
msgid "Album not found."
msgstr ""
-#: mod/photos.php:262
+#: mod/photos.php:258
msgid "Album successfully deleted"
msgstr ""
-#: mod/photos.php:264
+#: mod/photos.php:260
msgid "Album was empty."
msgstr ""
-#: mod/photos.php:296
+#: mod/photos.php:292
msgid "Failed to delete the photo."
msgstr ""
-#: mod/photos.php:571
+#: mod/photos.php:567
msgid "a photo"
msgstr ""
-#: mod/photos.php:571
+#: mod/photos.php:567
#, php-format
msgid "%1$s was tagged in %2$s by %3$s"
msgstr ""
-#: mod/photos.php:654 mod/photos.php:657 mod/photos.php:684
-#: mod/wall_upload.php:216 src/Module/Settings/Profile/Photo/Index.php:60
+#: mod/photos.php:650 mod/photos.php:653 mod/photos.php:680
+#: mod/wall_upload.php:207 src/Module/Settings/Profile/Photo/Index.php:60
#, php-format
msgid "Image exceeds size limit of %s"
msgstr ""
-#: mod/photos.php:660
+#: mod/photos.php:656
msgid "Image upload didn't complete, please try again"
msgstr ""
-#: mod/photos.php:663
+#: mod/photos.php:659
msgid "Image file is missing"
msgstr ""
-#: mod/photos.php:668
+#: mod/photos.php:664
msgid ""
"Server can't accept new file upload at this time, please contact your "
"administrator"
msgstr ""
-#: mod/photos.php:692
+#: mod/photos.php:688
msgid "Image file is empty."
msgstr ""
-#: mod/photos.php:707 mod/wall_upload.php:175
+#: mod/photos.php:703 mod/wall_upload.php:166
#: src/Module/Settings/Profile/Photo/Index.php:69
msgid "Unable to process image."
msgstr ""
-#: mod/photos.php:736 mod/wall_upload.php:241
+#: mod/photos.php:732 mod/wall_upload.php:232
#: src/Module/Settings/Profile/Photo/Index.php:96
msgid "Image upload failed."
msgstr ""
-#: mod/photos.php:828
+#: mod/photos.php:824
msgid "No photos selected"
msgstr ""
-#: mod/photos.php:897
+#: mod/photos.php:893
msgid "Access to this item is restricted."
msgstr ""
-#: mod/photos.php:952
+#: mod/photos.php:948
msgid "Upload Photos"
msgstr ""
-#: mod/photos.php:956 mod/photos.php:1039
+#: mod/photos.php:952 mod/photos.php:1035
msgid "New album name: "
msgstr ""
-#: mod/photos.php:957
+#: mod/photos.php:953
msgid "or select existing album:"
msgstr ""
-#: mod/photos.php:958
+#: mod/photos.php:954
msgid "Do not show a status post for this upload"
msgstr ""
-#: mod/photos.php:1019
+#: mod/photos.php:1015
msgid "Do you really want to delete this photo album and all its photos?"
msgstr ""
-#: mod/photos.php:1020 mod/photos.php:1044
+#: mod/photos.php:1016 mod/photos.php:1040
msgid "Delete Album"
msgstr ""
-#: mod/photos.php:1050
+#: mod/photos.php:1046
msgid "Edit Album"
msgstr ""
-#: mod/photos.php:1051
+#: mod/photos.php:1047
msgid "Drop Album"
msgstr ""
-#: mod/photos.php:1056
+#: mod/photos.php:1052
msgid "Show Newest First"
msgstr ""
-#: mod/photos.php:1058
+#: mod/photos.php:1054
msgid "Show Oldest First"
msgstr ""
-#: mod/photos.php:1079 mod/photos.php:1612
+#: mod/photos.php:1075 mod/photos.php:1608
msgid "View Photo"
msgstr ""
-#: mod/photos.php:1116
+#: mod/photos.php:1112
msgid "Permission denied. Access to this item may be restricted."
msgstr ""
-#: mod/photos.php:1118
+#: mod/photos.php:1114
msgid "Photo not available"
msgstr ""
-#: mod/photos.php:1128
+#: mod/photos.php:1124
msgid "Do you really want to delete this photo?"
msgstr ""
-#: mod/photos.php:1129 mod/photos.php:1332
+#: mod/photos.php:1125 mod/photos.php:1328
msgid "Delete Photo"
msgstr ""
-#: mod/photos.php:1223
+#: mod/photos.php:1219
msgid "View photo"
msgstr ""
-#: mod/photos.php:1225
+#: mod/photos.php:1221
msgid "Edit photo"
msgstr ""
-#: mod/photos.php:1226
+#: mod/photos.php:1222
msgid "Delete photo"
msgstr ""
-#: mod/photos.php:1227
+#: mod/photos.php:1223
msgid "Use as profile photo"
msgstr ""
-#: mod/photos.php:1234
+#: mod/photos.php:1230
msgid "Private Photo"
msgstr ""
-#: mod/photos.php:1240
+#: mod/photos.php:1236
msgid "View Full Size"
msgstr ""
-#: mod/photos.php:1300
+#: mod/photos.php:1296
msgid "Tags: "
msgstr ""
-#: mod/photos.php:1303
+#: mod/photos.php:1299
msgid "[Select tags to remove]"
msgstr ""
-#: mod/photos.php:1318
+#: mod/photos.php:1314
msgid "New album name"
msgstr ""
-#: mod/photos.php:1319
+#: mod/photos.php:1315
msgid "Caption"
msgstr ""
-#: mod/photos.php:1320
+#: mod/photos.php:1316
msgid "Add a Tag"
msgstr ""
-#: mod/photos.php:1320
+#: mod/photos.php:1316
msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
msgstr ""
-#: mod/photos.php:1321
+#: mod/photos.php:1317
msgid "Do not rotate"
msgstr ""
-#: mod/photos.php:1322
+#: mod/photos.php:1318
msgid "Rotate CW (right)"
msgstr ""
-#: mod/photos.php:1323
+#: mod/photos.php:1319
msgid "Rotate CCW (left)"
msgstr ""
-#: mod/photos.php:1369 mod/photos.php:1425 mod/photos.php:1499
+#: mod/photos.php:1365 mod/photos.php:1421 mod/photos.php:1495
#: src/Module/Contact.php:1010 src/Module/Item/Compose.php:148
#: src/Object/Post.php:960
msgid "This is you"
msgstr ""
-#: mod/photos.php:1371 mod/photos.php:1427 mod/photos.php:1501
+#: mod/photos.php:1367 mod/photos.php:1423 mod/photos.php:1497
#: src/Object/Post.php:496 src/Object/Post.php:962
msgid "Comment"
msgstr ""
-#: mod/photos.php:1460 src/Content/Conversation.php:615 src/Object/Post.php:227
+#: mod/photos.php:1456 src/Content/Conversation.php:615 src/Object/Post.php:227
msgid "Select"
msgstr ""
-#: mod/photos.php:1461 mod/settings.php:573 src/Content/Conversation.php:616
+#: mod/photos.php:1457 mod/settings.php:563 src/Content/Conversation.php:616
#: src/Module/Admin/Users/Active.php:139 src/Module/Admin/Users/Blocked.php:140
#: src/Module/Admin/Users/Index.php:153
msgid "Delete"
msgstr ""
-#: mod/photos.php:1522 src/Object/Post.php:349
+#: mod/photos.php:1518 src/Object/Post.php:349
msgid "Like"
msgstr ""
-#: mod/photos.php:1523 src/Object/Post.php:349
+#: mod/photos.php:1519 src/Object/Post.php:349
msgid "I like this (toggle)"
msgstr ""
-#: mod/photos.php:1524 src/Object/Post.php:350
+#: mod/photos.php:1520 src/Object/Post.php:350
msgid "Dislike"
msgstr ""
-#: mod/photos.php:1526 src/Object/Post.php:350
+#: mod/photos.php:1522 src/Object/Post.php:350
msgid "I don't like this (toggle)"
msgstr ""
-#: mod/photos.php:1548
+#: mod/photos.php:1544
msgid "Map"
msgstr ""
-#: mod/photos.php:1618
+#: mod/photos.php:1614
msgid "View Album"
msgstr ""
@@ -1417,82 +1413,82 @@ msgstr ""
msgid "Resubscribing to OStatus contacts"
msgstr ""
-#: mod/repair_ostatus.php:50 src/Module/Debug/ActivityPubConversion.php:130
+#: mod/repair_ostatus.php:46 src/Module/Debug/ActivityPubConversion.php:130
#: src/Module/Debug/Babel.php:293 src/Module/Security/TwoFactor/Verify.php:97
msgid "Error"
msgid_plural "Errors"
msgstr[0] ""
msgstr[1] ""
-#: mod/settings.php:136
+#: mod/settings.php:128
msgid "Failed to connect with email account using the settings provided."
msgstr ""
-#: mod/settings.php:165
+#: mod/settings.php:157
msgid "Contact CSV file upload error"
msgstr ""
-#: mod/settings.php:184
+#: mod/settings.php:176
msgid "Importing Contacts done"
msgstr ""
-#: mod/settings.php:197
+#: mod/settings.php:189
msgid "Relocate message has been send to your contacts"
msgstr ""
-#: mod/settings.php:209
+#: mod/settings.php:201
msgid "Passwords do not match."
msgstr ""
-#: mod/settings.php:217 src/Console/User.php:210
+#: mod/settings.php:209 src/Console/User.php:210
msgid "Password update failed. Please try again."
msgstr ""
-#: mod/settings.php:220 src/Console/User.php:213
+#: mod/settings.php:212 src/Console/User.php:213
msgid "Password changed."
msgstr ""
-#: mod/settings.php:223
+#: mod/settings.php:215
msgid "Password unchanged."
msgstr ""
-#: mod/settings.php:311
+#: mod/settings.php:303
msgid "Please use a shorter name."
msgstr ""
-#: mod/settings.php:314
+#: mod/settings.php:306
msgid "Name too short."
msgstr ""
-#: mod/settings.php:321
+#: mod/settings.php:313
msgid "Wrong Password."
msgstr ""
-#: mod/settings.php:326
+#: mod/settings.php:318
msgid "Invalid email."
msgstr ""
-#: mod/settings.php:332
+#: mod/settings.php:324
msgid "Cannot change to that email."
msgstr ""
-#: mod/settings.php:373
+#: mod/settings.php:365
msgid "Private forum has no privacy permissions. Using default privacy group."
msgstr ""
-#: mod/settings.php:376
+#: mod/settings.php:368
msgid "Private forum has no privacy permissions and no default privacy group."
msgstr ""
-#: mod/settings.php:395
+#: mod/settings.php:387
msgid "Settings were not updated."
msgstr ""
-#: mod/settings.php:436
+#: mod/settings.php:428
msgid "Connected Apps"
msgstr ""
-#: mod/settings.php:437 src/Module/Admin/Blocklist/Contact.php:90
+#: mod/settings.php:429 src/Module/Admin/Blocklist/Contact.php:90
#: src/Module/Admin/Users/Active.php:129 src/Module/Admin/Users/Blocked.php:130
#: src/Module/Admin/Users/Create.php:71 src/Module/Admin/Users/Deleted.php:88
#: src/Module/Admin/Users/Index.php:142 src/Module/Admin/Users/Index.php:162
@@ -1500,31 +1496,31 @@ msgstr ""
msgid "Name"
msgstr ""
-#: mod/settings.php:438 src/Content/Nav.php:212
+#: mod/settings.php:430 src/Content/Nav.php:212
msgid "Home Page"
msgstr ""
-#: mod/settings.php:439 src/Module/Admin/Queue.php:78
+#: mod/settings.php:431 src/Module/Admin/Queue.php:78
msgid "Created"
msgstr ""
-#: mod/settings.php:440
+#: mod/settings.php:432
msgid "Remove authorization"
msgstr ""
-#: mod/settings.php:458
+#: mod/settings.php:450
msgid "Addon Settings"
msgstr ""
-#: mod/settings.php:459
+#: mod/settings.php:451
msgid "No Addon settings configured"
msgstr ""
-#: mod/settings.php:480
+#: mod/settings.php:472
msgid "Additional Features"
msgstr ""
-#: mod/settings.php:482 mod/settings.php:575 mod/settings.php:712
+#: mod/settings.php:474 mod/settings.php:565 mod/settings.php:702
#: src/Module/Admin/Addons/Index.php:69 src/Module/Admin/Features.php:87
#: src/Module/Admin/Logs/Settings.php:82 src/Module/Admin/Site.php:500
#: src/Module/Admin/Themes/Index.php:113 src/Module/Admin/Tos.php:66
@@ -1532,48 +1528,48 @@ msgstr ""
msgid "Save Settings"
msgstr ""
-#: mod/settings.php:504
+#: mod/settings.php:496
msgid "Diaspora (Socialhome, Hubzilla)"
msgstr ""
-#: mod/settings.php:504 mod/settings.php:505
+#: mod/settings.php:496 mod/settings.php:497
msgid "enabled"
msgstr ""
-#: mod/settings.php:504 mod/settings.php:505
+#: mod/settings.php:496 mod/settings.php:497
msgid "disabled"
msgstr ""
-#: mod/settings.php:504 mod/settings.php:505
+#: mod/settings.php:496 mod/settings.php:497
#, php-format
msgid "Built-in support for %s connectivity is %s"
msgstr ""
-#: mod/settings.php:505
+#: mod/settings.php:497
msgid "OStatus (GNU Social)"
msgstr ""
-#: mod/settings.php:533
+#: mod/settings.php:523
msgid "Email access is disabled on this site."
msgstr ""
-#: mod/settings.php:538 mod/settings.php:573
+#: mod/settings.php:528 mod/settings.php:563
msgid "None"
msgstr ""
-#: mod/settings.php:544 src/Module/BaseSettings.php:80
+#: mod/settings.php:534 src/Module/BaseSettings.php:80
msgid "Social Networks"
msgstr ""
-#: mod/settings.php:549
+#: mod/settings.php:539
msgid "General Social Media Settings"
msgstr ""
-#: mod/settings.php:550
+#: mod/settings.php:540
msgid "Accept only top level posts by contacts you follow"
msgstr ""
-#: mod/settings.php:550
+#: mod/settings.php:540
msgid ""
"The system does an auto completion of threads when a comment arrives. This "
"has got the side effect that you can receive posts that had been started by "
@@ -1582,11 +1578,11 @@ msgid ""
"posts from people you really do follow."
msgstr ""
-#: mod/settings.php:551
+#: mod/settings.php:541
msgid "Enable Content Warning"
msgstr ""
-#: mod/settings.php:551
+#: mod/settings.php:541
msgid ""
"Users on networks like Mastodon or Pleroma are able to set a content warning "
"field which collapse their post by default. This enables the automatic "
@@ -1594,222 +1590,222 @@ msgid ""
"affect any other content filtering you eventually set up."
msgstr ""
-#: mod/settings.php:552
+#: mod/settings.php:542
msgid "Enable intelligent shortening"
msgstr ""
-#: mod/settings.php:552
+#: mod/settings.php:542
msgid ""
"Normally the system tries to find the best link to add to shortened posts. "
"If disabled, every shortened post will always point to the original "
"friendica post."
msgstr ""
-#: mod/settings.php:553
+#: mod/settings.php:543
msgid "Enable simple text shortening"
msgstr ""
-#: mod/settings.php:553
+#: mod/settings.php:543
msgid ""
"Normally the system shortens posts at the next line feed. If this option is "
"enabled then the system will shorten the text at the maximum character limit."
msgstr ""
-#: mod/settings.php:554
+#: mod/settings.php:544
msgid "Attach the link title"
msgstr ""
-#: mod/settings.php:554
+#: mod/settings.php:544
msgid ""
"When activated, the title of the attached link will be added as a title on "
"posts to Diaspora. This is mostly helpful with \"remote-self\" contacts that "
"share feed content."
msgstr ""
-#: mod/settings.php:555
+#: mod/settings.php:545
msgid "Your legacy ActivityPub/GNU Social account"
msgstr ""
-#: mod/settings.php:555
+#: mod/settings.php:545
msgid ""
"If you enter your old account name from an ActivityPub based system or your "
"GNU Social/Statusnet account name here (in the format user@domain.tld), your "
"contacts will be added automatically. The field will be emptied when done."
msgstr ""
-#: mod/settings.php:558
+#: mod/settings.php:548
msgid "Repair OStatus subscriptions"
msgstr ""
-#: mod/settings.php:562
+#: mod/settings.php:552
msgid "Email/Mailbox Setup"
msgstr ""
-#: mod/settings.php:563
+#: mod/settings.php:553
msgid ""
"If you wish to communicate with email contacts using this service "
"(optional), please specify how to connect to your mailbox."
msgstr ""
-#: mod/settings.php:564
+#: mod/settings.php:554
msgid "Last successful email check:"
msgstr ""
-#: mod/settings.php:566
+#: mod/settings.php:556
msgid "IMAP server name:"
msgstr ""
-#: mod/settings.php:567
+#: mod/settings.php:557
msgid "IMAP port:"
msgstr ""
-#: mod/settings.php:568
+#: mod/settings.php:558
msgid "Security:"
msgstr ""
-#: mod/settings.php:569
+#: mod/settings.php:559
msgid "Email login name:"
msgstr ""
-#: mod/settings.php:570
+#: mod/settings.php:560
msgid "Email password:"
msgstr ""
-#: mod/settings.php:571
+#: mod/settings.php:561
msgid "Reply-to address:"
msgstr ""
-#: mod/settings.php:572
+#: mod/settings.php:562
msgid "Send public posts to all email contacts:"
msgstr ""
-#: mod/settings.php:573
+#: mod/settings.php:563
msgid "Action after import:"
msgstr ""
-#: mod/settings.php:573 src/Content/Nav.php:280
+#: mod/settings.php:563 src/Content/Nav.php:280
msgid "Mark as seen"
msgstr ""
-#: mod/settings.php:573
+#: mod/settings.php:563
msgid "Move to folder"
msgstr ""
-#: mod/settings.php:574
+#: mod/settings.php:564
msgid "Move to folder:"
msgstr ""
-#: mod/settings.php:588
+#: mod/settings.php:578
msgid "Unable to find your profile. Please contact your admin."
msgstr ""
-#: mod/settings.php:626 src/Content/Widget.php:533
+#: mod/settings.php:616 src/Content/Widget.php:533
msgid "Account Types"
msgstr ""
-#: mod/settings.php:627
+#: mod/settings.php:617
msgid "Personal Page Subtypes"
msgstr ""
-#: mod/settings.php:628
+#: mod/settings.php:618
msgid "Community Forum Subtypes"
msgstr ""
-#: mod/settings.php:635 src/Module/Admin/BaseUsers.php:106
+#: mod/settings.php:625 src/Module/Admin/BaseUsers.php:106
msgid "Personal Page"
msgstr ""
-#: mod/settings.php:636
+#: mod/settings.php:626
msgid "Account for a personal profile."
msgstr ""
-#: mod/settings.php:639 src/Module/Admin/BaseUsers.php:107
+#: mod/settings.php:629 src/Module/Admin/BaseUsers.php:107
msgid "Organisation Page"
msgstr ""
-#: mod/settings.php:640
+#: mod/settings.php:630
msgid ""
"Account for an organisation that automatically approves contact requests as "
"\"Followers\"."
msgstr ""
-#: mod/settings.php:643 src/Module/Admin/BaseUsers.php:108
+#: mod/settings.php:633 src/Module/Admin/BaseUsers.php:108
msgid "News Page"
msgstr ""
-#: mod/settings.php:644
+#: mod/settings.php:634
msgid ""
"Account for a news reflector that automatically approves contact requests as "
"\"Followers\"."
msgstr ""
-#: mod/settings.php:647 src/Module/Admin/BaseUsers.php:109
+#: mod/settings.php:637 src/Module/Admin/BaseUsers.php:109
msgid "Community Forum"
msgstr ""
-#: mod/settings.php:648
+#: mod/settings.php:638
msgid "Account for community discussions."
msgstr ""
-#: mod/settings.php:651 src/Module/Admin/BaseUsers.php:99
+#: mod/settings.php:641 src/Module/Admin/BaseUsers.php:99
msgid "Normal Account Page"
msgstr ""
-#: mod/settings.php:652
+#: mod/settings.php:642
msgid ""
"Account for a regular personal profile that requires manual approval of "
"\"Friends\" and \"Followers\"."
msgstr ""
-#: mod/settings.php:655 src/Module/Admin/BaseUsers.php:100
+#: mod/settings.php:645 src/Module/Admin/BaseUsers.php:100
msgid "Soapbox Page"
msgstr ""
-#: mod/settings.php:656
+#: mod/settings.php:646
msgid ""
"Account for a public profile that automatically approves contact requests as "
"\"Followers\"."
msgstr ""
-#: mod/settings.php:659 src/Module/Admin/BaseUsers.php:101
+#: mod/settings.php:649 src/Module/Admin/BaseUsers.php:101
msgid "Public Forum"
msgstr ""
-#: mod/settings.php:660
+#: mod/settings.php:650
msgid "Automatically approves all contact requests."
msgstr ""
-#: mod/settings.php:663 src/Module/Admin/BaseUsers.php:102
+#: mod/settings.php:653 src/Module/Admin/BaseUsers.php:102
msgid "Automatic Friend Page"
msgstr ""
-#: mod/settings.php:664
+#: mod/settings.php:654
msgid ""
"Account for a popular profile that automatically approves contact requests "
"as \"Friends\"."
msgstr ""
-#: mod/settings.php:667
+#: mod/settings.php:657
msgid "Private Forum [Experimental]"
msgstr ""
-#: mod/settings.php:668
+#: mod/settings.php:658
msgid "Requires manual approval of contact requests."
msgstr ""
-#: mod/settings.php:679
+#: mod/settings.php:669
msgid "OpenID:"
msgstr ""
-#: mod/settings.php:679
+#: mod/settings.php:669
msgid "(Optional) Allow this OpenID to login to this account."
msgstr ""
-#: mod/settings.php:687
+#: mod/settings.php:677
msgid "Publish your profile in your local site directory?"
msgstr ""
-#: mod/settings.php:687
+#: mod/settings.php:677
#, php-format
msgid ""
"Your profile will be published in this node's local "
@@ -1817,115 +1813,115 @@ msgid ""
"system settings."
msgstr ""
-#: mod/settings.php:693
+#: mod/settings.php:683
#, php-format
msgid ""
"Your profile will also be published in the global friendica directories (e."
"g. %s)."
msgstr ""
-#: mod/settings.php:699
+#: mod/settings.php:689
#, php-format
msgid "Your Identity Address is '%s' or '%s'."
msgstr ""
-#: mod/settings.php:710
+#: mod/settings.php:700
msgid "Account Settings"
msgstr ""
-#: mod/settings.php:718
+#: mod/settings.php:708
msgid "Password Settings"
msgstr ""
-#: mod/settings.php:719 src/Module/Register.php:151
+#: mod/settings.php:709 src/Module/Register.php:151
msgid "New Password:"
msgstr ""
-#: mod/settings.php:719
+#: mod/settings.php:709
msgid ""
"Allowed characters are a-z, A-Z, 0-9 and special characters except white "
"spaces, accentuated letters and colon (:)."
msgstr ""
-#: mod/settings.php:720 src/Module/Register.php:152
+#: mod/settings.php:710 src/Module/Register.php:152
msgid "Confirm:"
msgstr ""
-#: mod/settings.php:720
+#: mod/settings.php:710
msgid "Leave password fields blank unless changing"
msgstr ""
-#: mod/settings.php:721
+#: mod/settings.php:711
msgid "Current Password:"
msgstr ""
-#: mod/settings.php:721
+#: mod/settings.php:711
msgid "Your current password to confirm the changes"
msgstr ""
-#: mod/settings.php:722
+#: mod/settings.php:712
msgid "Password:"
msgstr ""
-#: mod/settings.php:722
+#: mod/settings.php:712
msgid "Your current password to confirm the changes of the email address"
msgstr ""
-#: mod/settings.php:725
+#: mod/settings.php:715
msgid "Delete OpenID URL"
msgstr ""
-#: mod/settings.php:727
+#: mod/settings.php:717
msgid "Basic Settings"
msgstr ""
-#: mod/settings.php:728 src/Module/Profile/Profile.php:144
+#: mod/settings.php:718 src/Module/Profile/Profile.php:144
msgid "Full Name:"
msgstr ""
-#: mod/settings.php:729
+#: mod/settings.php:719
msgid "Email Address:"
msgstr ""
-#: mod/settings.php:730
+#: mod/settings.php:720
msgid "Your Timezone:"
msgstr ""
-#: mod/settings.php:731
+#: mod/settings.php:721
msgid "Your Language:"
msgstr ""
-#: mod/settings.php:731
+#: mod/settings.php:721
msgid ""
"Set the language we use to show you friendica interface and to send you "
"emails"
msgstr ""
-#: mod/settings.php:732
+#: mod/settings.php:722
msgid "Default Post Location:"
msgstr ""
-#: mod/settings.php:733
+#: mod/settings.php:723
msgid "Use Browser Location:"
msgstr ""
-#: mod/settings.php:735
+#: mod/settings.php:725
msgid "Security and Privacy Settings"
msgstr ""
-#: mod/settings.php:737
+#: mod/settings.php:727
msgid "Maximum Friend Requests/Day:"
msgstr ""
-#: mod/settings.php:737 mod/settings.php:747
+#: mod/settings.php:727 mod/settings.php:737
msgid "(to prevent spam abuse)"
msgstr ""
-#: mod/settings.php:739
+#: mod/settings.php:729
msgid "Allow your profile to be searchable globally?"
msgstr ""
-#: mod/settings.php:739
+#: mod/settings.php:729
msgid ""
"Activate this setting if you want others to easily find and follow you. Your "
"profile will be searchable on remote systems. This setting also determines "
@@ -1933,43 +1929,43 @@ msgid ""
"indexed or not."
msgstr ""
-#: mod/settings.php:740
+#: mod/settings.php:730
msgid "Hide your contact/friend list from viewers of your profile?"
msgstr ""
-#: mod/settings.php:740
+#: mod/settings.php:730
msgid ""
"A list of your contacts is displayed on your profile page. Activate this "
"option to disable the display of your contact list."
msgstr ""
-#: mod/settings.php:741
+#: mod/settings.php:731
msgid "Hide your profile details from anonymous viewers?"
msgstr ""
-#: mod/settings.php:741
+#: mod/settings.php:731
msgid ""
"Anonymous visitors will only see your profile picture, your display name and "
"the nickname you are using on your profile page. Your public posts and "
"replies will still be accessible by other means."
msgstr ""
-#: mod/settings.php:742
+#: mod/settings.php:732
msgid "Make public posts unlisted"
msgstr ""
-#: mod/settings.php:742
+#: mod/settings.php:732
msgid ""
"Your public posts will not appear on the community pages or in search "
"results, nor be sent to relay servers. However they can still appear on "
"public feeds on remote servers."
msgstr ""
-#: mod/settings.php:743
+#: mod/settings.php:733
msgid "Make all posted pictures accessible"
msgstr ""
-#: mod/settings.php:743
+#: mod/settings.php:733
msgid ""
"This option makes every posted picture accessible via the direct link. This "
"is a workaround for the problem that most other networks can't handle "
@@ -1977,221 +1973,221 @@ msgid ""
"public on your photo albums though."
msgstr ""
-#: mod/settings.php:744
+#: mod/settings.php:734
msgid "Allow friends to post to your profile page?"
msgstr ""
-#: mod/settings.php:744
+#: mod/settings.php:734
msgid ""
"Your contacts may write posts on your profile wall. These posts will be "
"distributed to your contacts"
msgstr ""
-#: mod/settings.php:745
+#: mod/settings.php:735
msgid "Allow friends to tag your posts?"
msgstr ""
-#: mod/settings.php:745
+#: mod/settings.php:735
msgid "Your contacts can add additional tags to your posts."
msgstr ""
-#: mod/settings.php:746
+#: mod/settings.php:736
msgid "Permit unknown people to send you private mail?"
msgstr ""
-#: mod/settings.php:746
+#: mod/settings.php:736
msgid ""
"Friendica network users may send you private messages even if they are not "
"in your contact list."
msgstr ""
-#: mod/settings.php:747
+#: mod/settings.php:737
msgid "Maximum private messages per day from unknown people:"
msgstr ""
-#: mod/settings.php:749
+#: mod/settings.php:739
msgid "Default Post Permissions"
msgstr ""
-#: mod/settings.php:753
+#: mod/settings.php:743
msgid "Expiration settings"
msgstr ""
-#: mod/settings.php:754
+#: mod/settings.php:744
msgid "Automatically expire posts after this many days:"
msgstr ""
-#: mod/settings.php:754
+#: mod/settings.php:744
msgid "If empty, posts will not expire. Expired posts will be deleted"
msgstr ""
-#: mod/settings.php:755
+#: mod/settings.php:745
msgid "Expire posts"
msgstr ""
-#: mod/settings.php:755
+#: mod/settings.php:745
msgid "When activated, posts and comments will be expired."
msgstr ""
-#: mod/settings.php:756
+#: mod/settings.php:746
msgid "Expire personal notes"
msgstr ""
-#: mod/settings.php:756
+#: mod/settings.php:746
msgid ""
"When activated, the personal notes on your profile page will be expired."
msgstr ""
-#: mod/settings.php:757
+#: mod/settings.php:747
msgid "Expire starred posts"
msgstr ""
-#: mod/settings.php:757
+#: mod/settings.php:747
msgid ""
"Starring posts keeps them from being expired. That behaviour is overwritten "
"by this setting."
msgstr ""
-#: mod/settings.php:758
+#: mod/settings.php:748
msgid "Expire photos"
msgstr ""
-#: mod/settings.php:758
+#: mod/settings.php:748
msgid "When activated, photos will be expired."
msgstr ""
-#: mod/settings.php:759
+#: mod/settings.php:749
msgid "Only expire posts by others"
msgstr ""
-#: mod/settings.php:759
+#: mod/settings.php:749
msgid ""
"When activated, your own posts never expire. Then the settings above are "
"only valid for posts you received."
msgstr ""
-#: mod/settings.php:762
+#: mod/settings.php:752
msgid "Notification Settings"
msgstr ""
-#: mod/settings.php:763
+#: mod/settings.php:753
msgid "Send a notification email when:"
msgstr ""
-#: mod/settings.php:764
+#: mod/settings.php:754
msgid "You receive an introduction"
msgstr ""
-#: mod/settings.php:765
+#: mod/settings.php:755
msgid "Your introductions are confirmed"
msgstr ""
-#: mod/settings.php:766
+#: mod/settings.php:756
msgid "Someone writes on your profile wall"
msgstr ""
-#: mod/settings.php:767
+#: mod/settings.php:757
msgid "Someone writes a followup comment"
msgstr ""
-#: mod/settings.php:768
+#: mod/settings.php:758
msgid "You receive a private message"
msgstr ""
-#: mod/settings.php:769
+#: mod/settings.php:759
msgid "You receive a friend suggestion"
msgstr ""
-#: mod/settings.php:770
+#: mod/settings.php:760
msgid "You are tagged in a post"
msgstr ""
-#: mod/settings.php:771
+#: mod/settings.php:761
msgid "You are poked/prodded/etc. in a post"
msgstr ""
-#: mod/settings.php:773
+#: mod/settings.php:763
msgid "Create a desktop notification when:"
msgstr ""
-#: mod/settings.php:774
+#: mod/settings.php:764
msgid "Someone liked your content"
msgstr ""
-#: mod/settings.php:775
+#: mod/settings.php:765
msgid "Someone shared your content"
msgstr ""
-#: mod/settings.php:777
+#: mod/settings.php:767
msgid "Activate desktop notifications"
msgstr ""
-#: mod/settings.php:777
+#: mod/settings.php:767
msgid "Show desktop popup on new notifications"
msgstr ""
-#: mod/settings.php:779
+#: mod/settings.php:769
msgid "Text-only notification emails"
msgstr ""
-#: mod/settings.php:781
+#: mod/settings.php:771
msgid "Send text only notification emails, without the html part"
msgstr ""
-#: mod/settings.php:783
+#: mod/settings.php:773
msgid "Show detailled notifications"
msgstr ""
-#: mod/settings.php:785
+#: mod/settings.php:775
msgid ""
"Per default, notifications are condensed to a single notification per item. "
"When enabled every notification is displayed."
msgstr ""
-#: mod/settings.php:787
+#: mod/settings.php:777
msgid "Show notifications of ignored contacts"
msgstr ""
-#: mod/settings.php:789
+#: mod/settings.php:779
msgid ""
"You don't see posts from ignored contacts. But you still see their comments. "
"This setting controls if you want to still receive regular notifications "
"that are caused by ignored contacts or not."
msgstr ""
-#: mod/settings.php:791
+#: mod/settings.php:781
msgid "Advanced Account/Page Type Settings"
msgstr ""
-#: mod/settings.php:792
+#: mod/settings.php:782
msgid "Change the behaviour of this account for special situations"
msgstr ""
-#: mod/settings.php:795
+#: mod/settings.php:785
msgid "Import Contacts"
msgstr ""
-#: mod/settings.php:796
+#: mod/settings.php:786
msgid ""
"Upload a CSV file that contains the handle of your followed accounts in the "
"first column you exported from the old account."
msgstr ""
-#: mod/settings.php:797
+#: mod/settings.php:787
msgid "Upload File"
msgstr ""
-#: mod/settings.php:799
+#: mod/settings.php:789
msgid "Relocate"
msgstr ""
-#: mod/settings.php:800
+#: mod/settings.php:790
msgid ""
"If you have moved this profile from another server, and some of your "
"contacts don't receive your updates, try pushing this button."
msgstr ""
-#: mod/settings.php:801
+#: mod/settings.php:791
msgid "Resend relocate message to contacts"
msgstr ""
@@ -2205,15 +2201,15 @@ msgstr ""
msgid "Friend Suggestions"
msgstr ""
-#: mod/tagger.php:90 src/Content/Item.php:346 src/Model/Item.php:2624
+#: mod/tagger.php:79 src/Content/Item.php:346 src/Model/Item.php:2624
msgid "photo"
msgstr ""
-#: mod/tagger.php:90 src/Content/Item.php:341 src/Content/Item.php:350
+#: mod/tagger.php:79 src/Content/Item.php:341 src/Content/Item.php:350
msgid "status"
msgstr ""
-#: mod/tagger.php:123 src/Content/Item.php:360
+#: mod/tagger.php:112 src/Content/Item.php:360
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr ""
@@ -2231,46 +2227,46 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: mod/uimport.php:45
+#: mod/uimport.php:46
msgid "User imports on closed servers can only be done by an administrator."
msgstr ""
-#: mod/uimport.php:54 src/Module/Register.php:86
+#: mod/uimport.php:55 src/Module/Register.php:86
msgid ""
"This site has exceeded the number of allowed daily account registrations. "
"Please try again tomorrow."
msgstr ""
-#: mod/uimport.php:61 src/Module/Register.php:162
+#: mod/uimport.php:62 src/Module/Register.php:162
msgid "Import"
msgstr ""
-#: mod/uimport.php:63
+#: mod/uimport.php:64
msgid "Move account"
msgstr ""
-#: mod/uimport.php:64
+#: mod/uimport.php:65
msgid "You can import an account from another Friendica server."
msgstr ""
-#: mod/uimport.php:65
+#: mod/uimport.php:66
msgid ""
"You need to export your account from the old server and upload it here. We "
"will recreate your old account here with all your contacts. We will try also "
"to inform your friends that you moved here."
msgstr ""
-#: mod/uimport.php:66
+#: mod/uimport.php:67
msgid ""
"This feature is experimental. We can't import contacts from the OStatus "
"network (GNU Social/Statusnet) or from Diaspora"
msgstr ""
-#: mod/uimport.php:67
+#: mod/uimport.php:68
msgid "Account file"
msgstr ""
-#: mod/uimport.php:67
+#: mod/uimport.php:68
msgid ""
"To export your account, go to \"Settings->Export your personal data\" and "
"select \"Export account\""
@@ -2306,54 +2302,54 @@ msgstr ""
msgid "Unable to unfollow this contact, please contact your administrator"
msgstr ""
-#: mod/wall_attach.php:42 mod/wall_attach.php:49 mod/wall_attach.php:87
-#: mod/wall_upload.php:52 mod/wall_upload.php:63 mod/wall_upload.php:108
-#: mod/wall_upload.php:159 mod/wall_upload.php:162
+#: mod/wall_attach.php:39 mod/wall_attach.php:46 mod/wall_attach.php:77
+#: mod/wall_upload.php:52 mod/wall_upload.php:63 mod/wall_upload.php:99
+#: mod/wall_upload.php:150 mod/wall_upload.php:153
msgid "Invalid request."
msgstr ""
-#: mod/wall_attach.php:105
+#: mod/wall_attach.php:95
msgid "Sorry, maybe your upload is bigger than the PHP configuration allows"
msgstr ""
-#: mod/wall_attach.php:105
+#: mod/wall_attach.php:95
msgid "Or - did you try to upload an empty file?"
msgstr ""
-#: mod/wall_attach.php:116
+#: mod/wall_attach.php:106
#, php-format
msgid "File exceeds size limit of %s"
msgstr ""
-#: mod/wall_attach.php:131
+#: mod/wall_attach.php:121
msgid "File upload failed."
msgstr ""
-#: mod/wall_upload.php:233 src/Model/Photo.php:1014
+#: mod/wall_upload.php:224 src/Model/Photo.php:998
msgid "Wall Photos"
msgstr ""
-#: mod/wallmessage.php:68 mod/wallmessage.php:129
+#: mod/wallmessage.php:61 mod/wallmessage.php:115
#, php-format
msgid "Number of daily wall messages for %s exceeded. Message failed."
msgstr ""
-#: mod/wallmessage.php:79
+#: mod/wallmessage.php:72
msgid "Unable to check your home location."
msgstr ""
-#: mod/wallmessage.php:103 mod/wallmessage.php:112
+#: mod/wallmessage.php:96 mod/wallmessage.php:103
msgid "No recipient."
msgstr ""
-#: mod/wallmessage.php:143
+#: mod/wallmessage.php:129
#, php-format
msgid ""
"If you wish for %s to respond, please check that the privacy settings on "
"your site allow private mail from unknown senders."
msgstr ""
-#: src/App.php:453
+#: src/App.php:456
msgid "No system theme config value set."
msgstr ""
@@ -3360,11 +3356,11 @@ msgstr ""
msgid "Encrypted content"
msgstr ""
-#: src/Content/Text/BBCode.php:1997
+#: src/Content/Text/BBCode.php:1996
msgid "Invalid source protocol"
msgstr ""
-#: src/Content/Text/BBCode.php:2012
+#: src/Content/Text/BBCode.php:2011
msgid "Invalid link protocol"
msgstr ""
@@ -3928,137 +3924,137 @@ msgstr ""
msgid "Could not connect to database."
msgstr ""
-#: src/Core/L10n.php:377 src/Model/Event.php:442
+#: src/Core/L10n.php:377 src/Model/Event.php:425
#: src/Module/Settings/Display.php:183
msgid "Monday"
msgstr ""
-#: src/Core/L10n.php:377 src/Model/Event.php:443
+#: src/Core/L10n.php:377 src/Model/Event.php:426
msgid "Tuesday"
msgstr ""
-#: src/Core/L10n.php:377 src/Model/Event.php:444
+#: src/Core/L10n.php:377 src/Model/Event.php:427
msgid "Wednesday"
msgstr ""
-#: src/Core/L10n.php:377 src/Model/Event.php:445
+#: src/Core/L10n.php:377 src/Model/Event.php:428
msgid "Thursday"
msgstr ""
-#: src/Core/L10n.php:377 src/Model/Event.php:446
+#: src/Core/L10n.php:377 src/Model/Event.php:429
msgid "Friday"
msgstr ""
-#: src/Core/L10n.php:377 src/Model/Event.php:447
+#: src/Core/L10n.php:377 src/Model/Event.php:430
msgid "Saturday"
msgstr ""
-#: src/Core/L10n.php:377 src/Model/Event.php:441
+#: src/Core/L10n.php:377 src/Model/Event.php:424
#: src/Module/Settings/Display.php:183
msgid "Sunday"
msgstr ""
-#: src/Core/L10n.php:381 src/Model/Event.php:462
+#: src/Core/L10n.php:381 src/Model/Event.php:445
msgid "January"
msgstr ""
-#: src/Core/L10n.php:381 src/Model/Event.php:463
+#: src/Core/L10n.php:381 src/Model/Event.php:446
msgid "February"
msgstr ""
-#: src/Core/L10n.php:381 src/Model/Event.php:464
+#: src/Core/L10n.php:381 src/Model/Event.php:447
msgid "March"
msgstr ""
-#: src/Core/L10n.php:381 src/Model/Event.php:465
+#: src/Core/L10n.php:381 src/Model/Event.php:448
msgid "April"
msgstr ""
-#: src/Core/L10n.php:381 src/Core/L10n.php:401 src/Model/Event.php:453
+#: src/Core/L10n.php:381 src/Core/L10n.php:401 src/Model/Event.php:436
msgid "May"
msgstr ""
-#: src/Core/L10n.php:381 src/Model/Event.php:466
+#: src/Core/L10n.php:381 src/Model/Event.php:449
msgid "June"
msgstr ""
-#: src/Core/L10n.php:381 src/Model/Event.php:467
+#: src/Core/L10n.php:381 src/Model/Event.php:450
msgid "July"
msgstr ""
-#: src/Core/L10n.php:381 src/Model/Event.php:468
+#: src/Core/L10n.php:381 src/Model/Event.php:451
msgid "August"
msgstr ""
-#: src/Core/L10n.php:381 src/Model/Event.php:469
+#: src/Core/L10n.php:381 src/Model/Event.php:452
msgid "September"
msgstr ""
-#: src/Core/L10n.php:381 src/Model/Event.php:470
+#: src/Core/L10n.php:381 src/Model/Event.php:453
msgid "October"
msgstr ""
-#: src/Core/L10n.php:381 src/Model/Event.php:471
+#: src/Core/L10n.php:381 src/Model/Event.php:454
msgid "November"
msgstr ""
-#: src/Core/L10n.php:381 src/Model/Event.php:472
+#: src/Core/L10n.php:381 src/Model/Event.php:455
msgid "December"
msgstr ""
-#: src/Core/L10n.php:397 src/Model/Event.php:434
+#: src/Core/L10n.php:397 src/Model/Event.php:417
msgid "Mon"
msgstr ""
-#: src/Core/L10n.php:397 src/Model/Event.php:435
+#: src/Core/L10n.php:397 src/Model/Event.php:418
msgid "Tue"
msgstr ""
-#: src/Core/L10n.php:397 src/Model/Event.php:436
+#: src/Core/L10n.php:397 src/Model/Event.php:419
msgid "Wed"
msgstr ""
-#: src/Core/L10n.php:397 src/Model/Event.php:437
+#: src/Core/L10n.php:397 src/Model/Event.php:420
msgid "Thu"
msgstr ""
-#: src/Core/L10n.php:397 src/Model/Event.php:438
+#: src/Core/L10n.php:397 src/Model/Event.php:421
msgid "Fri"
msgstr ""
-#: src/Core/L10n.php:397 src/Model/Event.php:439
+#: src/Core/L10n.php:397 src/Model/Event.php:422
msgid "Sat"
msgstr ""
-#: src/Core/L10n.php:397 src/Model/Event.php:433
+#: src/Core/L10n.php:397 src/Model/Event.php:416
msgid "Sun"
msgstr ""
-#: src/Core/L10n.php:401 src/Model/Event.php:449
+#: src/Core/L10n.php:401 src/Model/Event.php:432
msgid "Jan"
msgstr ""
-#: src/Core/L10n.php:401 src/Model/Event.php:450
+#: src/Core/L10n.php:401 src/Model/Event.php:433
msgid "Feb"
msgstr ""
-#: src/Core/L10n.php:401 src/Model/Event.php:451
+#: src/Core/L10n.php:401 src/Model/Event.php:434
msgid "Mar"
msgstr ""
-#: src/Core/L10n.php:401 src/Model/Event.php:452
+#: src/Core/L10n.php:401 src/Model/Event.php:435
msgid "Apr"
msgstr ""
-#: src/Core/L10n.php:401 src/Model/Event.php:454
+#: src/Core/L10n.php:401 src/Model/Event.php:437
msgid "Jun"
msgstr ""
-#: src/Core/L10n.php:401 src/Model/Event.php:455
+#: src/Core/L10n.php:401 src/Model/Event.php:438
msgid "Jul"
msgstr ""
-#: src/Core/L10n.php:401 src/Model/Event.php:456
+#: src/Core/L10n.php:401 src/Model/Event.php:439
msgid "Aug"
msgstr ""
@@ -4066,15 +4062,15 @@ msgstr ""
msgid "Sep"
msgstr ""
-#: src/Core/L10n.php:401 src/Model/Event.php:458
+#: src/Core/L10n.php:401 src/Model/Event.php:441
msgid "Oct"
msgstr ""
-#: src/Core/L10n.php:401 src/Model/Event.php:459
+#: src/Core/L10n.php:401 src/Model/Event.php:442
msgid "Nov"
msgstr ""
-#: src/Core/L10n.php:401 src/Model/Event.php:460
+#: src/Core/L10n.php:401 src/Model/Event.php:443
msgid "Dec"
msgstr ""
@@ -4388,71 +4384,71 @@ msgstr ""
msgid "Unable to retrieve contact information."
msgstr ""
-#: src/Model/Event.php:52 src/Model/Event.php:881
+#: src/Model/Event.php:52 src/Model/Event.php:853
#: src/Module/Debug/Localtime.php:38
msgid "l F d, Y \\@ g:i A"
msgstr ""
-#: src/Model/Event.php:79 src/Model/Event.php:96 src/Model/Event.php:481
-#: src/Model/Event.php:951
+#: src/Model/Event.php:73 src/Model/Event.php:90 src/Model/Event.php:464
+#: src/Model/Event.php:897
msgid "Starts:"
msgstr ""
-#: src/Model/Event.php:82 src/Model/Event.php:102 src/Model/Event.php:482
-#: src/Model/Event.php:955
+#: src/Model/Event.php:76 src/Model/Event.php:96 src/Model/Event.php:465
+#: src/Model/Event.php:901
msgid "Finishes:"
msgstr ""
-#: src/Model/Event.php:431
+#: src/Model/Event.php:414
msgid "all-day"
msgstr ""
-#: src/Model/Event.php:457
+#: src/Model/Event.php:440
msgid "Sept"
msgstr ""
-#: src/Model/Event.php:479
+#: src/Model/Event.php:462
msgid "No events to display"
msgstr ""
-#: src/Model/Event.php:597
+#: src/Model/Event.php:578
msgid "l, F j"
msgstr ""
-#: src/Model/Event.php:628
+#: src/Model/Event.php:609
msgid "Edit event"
msgstr ""
-#: src/Model/Event.php:629
+#: src/Model/Event.php:610
msgid "Duplicate event"
msgstr ""
-#: src/Model/Event.php:630
+#: src/Model/Event.php:611
msgid "Delete event"
msgstr ""
-#: src/Model/Event.php:882
+#: src/Model/Event.php:854
msgid "D g:i A"
msgstr ""
-#: src/Model/Event.php:883
+#: src/Model/Event.php:855
msgid "g:i A"
msgstr ""
-#: src/Model/Event.php:970 src/Model/Event.php:972
+#: src/Model/Event.php:916 src/Model/Event.php:918
msgid "Show map"
msgstr ""
-#: src/Model/Event.php:971
+#: src/Model/Event.php:917
msgid "Hide map"
msgstr ""
-#: src/Model/Event.php:1063
+#: src/Model/Event.php:1009
#, php-format
msgid "%s's birthday"
msgstr ""
-#: src/Model/Event.php:1064
+#: src/Model/Event.php:1010
#, php-format
msgid "Happy Birthday %s"
msgstr ""
@@ -4609,7 +4605,7 @@ msgstr ""
msgid "Enter a valid existing folder"
msgstr ""
-#: src/Model/User.php:208 src/Model/User.php:1055
+#: src/Model/User.php:208 src/Model/User.php:1046
msgid "SERIOUS ERROR: Generation of security keys failed."
msgstr ""
@@ -4640,107 +4636,107 @@ msgid ""
"The password can't contain accentuated letters, white spaces or colons (:)"
msgstr ""
-#: src/Model/User.php:935
+#: src/Model/User.php:926
msgid "Passwords do not match. Password unchanged."
msgstr ""
-#: src/Model/User.php:942
+#: src/Model/User.php:933
msgid "An invitation is required."
msgstr ""
-#: src/Model/User.php:946
+#: src/Model/User.php:937
msgid "Invitation could not be verified."
msgstr ""
-#: src/Model/User.php:954
+#: src/Model/User.php:945
msgid "Invalid OpenID url"
msgstr ""
-#: src/Model/User.php:967 src/Security/Authentication.php:223
+#: src/Model/User.php:958 src/Security/Authentication.php:223
msgid ""
"We encountered a problem while logging in with the OpenID you provided. "
"Please check the correct spelling of the ID."
msgstr ""
-#: src/Model/User.php:967 src/Security/Authentication.php:223
+#: src/Model/User.php:958 src/Security/Authentication.php:223
msgid "The error message was:"
msgstr ""
-#: src/Model/User.php:973
+#: src/Model/User.php:964
msgid "Please enter the required information."
msgstr ""
-#: src/Model/User.php:987
+#: src/Model/User.php:978
#, php-format
msgid ""
"system.username_min_length (%s) and system.username_max_length (%s) are "
"excluding each other, swapping values."
msgstr ""
-#: src/Model/User.php:994
+#: src/Model/User.php:985
#, php-format
msgid "Username should be at least %s character."
msgid_plural "Username should be at least %s characters."
msgstr[0] ""
msgstr[1] ""
-#: src/Model/User.php:998
+#: src/Model/User.php:989
#, php-format
msgid "Username should be at most %s character."
msgid_plural "Username should be at most %s characters."
msgstr[0] ""
msgstr[1] ""
-#: src/Model/User.php:1006
+#: src/Model/User.php:997
msgid "That doesn't appear to be your full (First Last) name."
msgstr ""
-#: src/Model/User.php:1011
+#: src/Model/User.php:1002
msgid "Your email domain is not among those allowed on this site."
msgstr ""
-#: src/Model/User.php:1015
+#: src/Model/User.php:1006
msgid "Not a valid email address."
msgstr ""
-#: src/Model/User.php:1018
+#: src/Model/User.php:1009
msgid "The nickname was blocked from registration by the nodes admin."
msgstr ""
-#: src/Model/User.php:1022 src/Model/User.php:1030
+#: src/Model/User.php:1013 src/Model/User.php:1021
msgid "Cannot use that email."
msgstr ""
-#: src/Model/User.php:1037
+#: src/Model/User.php:1028
msgid "Your nickname can only contain a-z, 0-9 and _."
msgstr ""
-#: src/Model/User.php:1045 src/Model/User.php:1102
+#: src/Model/User.php:1036 src/Model/User.php:1093
msgid "Nickname is already registered. Please choose another."
msgstr ""
-#: src/Model/User.php:1089 src/Model/User.php:1093
+#: src/Model/User.php:1080 src/Model/User.php:1084
msgid "An error occurred during registration. Please try again."
msgstr ""
-#: src/Model/User.php:1116
+#: src/Model/User.php:1107
msgid "An error occurred creating your default profile. Please try again."
msgstr ""
-#: src/Model/User.php:1123
+#: src/Model/User.php:1114
msgid "An error occurred creating your self contact. Please try again."
msgstr ""
-#: src/Model/User.php:1128
+#: src/Model/User.php:1119
msgid "Friends"
msgstr ""
-#: src/Model/User.php:1132
+#: src/Model/User.php:1123
msgid ""
"An error occurred creating your default contact group. Please try again."
msgstr ""
-#: src/Model/User.php:1361
+#: src/Model/User.php:1352
#, php-format
msgid ""
"\n"
@@ -4748,7 +4744,7 @@ msgid ""
"\t\t\tthe administrator of %2$s has set up an account for you."
msgstr ""
-#: src/Model/User.php:1364
+#: src/Model/User.php:1355
#, php-format
msgid ""
"\n"
@@ -4785,12 +4781,12 @@ msgid ""
"\t\tThank you and welcome to %4$s."
msgstr ""
-#: src/Model/User.php:1397 src/Model/User.php:1504
+#: src/Model/User.php:1388 src/Model/User.php:1495
#, php-format
msgid "Registration details for %s"
msgstr ""
-#: src/Model/User.php:1417
+#: src/Model/User.php:1408
#, php-format
msgid ""
"\n"
@@ -4806,12 +4802,12 @@ msgid ""
"\t\t"
msgstr ""
-#: src/Model/User.php:1436
+#: src/Model/User.php:1427
#, php-format
msgid "Registration at %s"
msgstr ""
-#: src/Model/User.php:1460
+#: src/Model/User.php:1451
#, php-format
msgid ""
"\n"
@@ -4820,7 +4816,7 @@ msgid ""
"\t\t\t"
msgstr ""
-#: src/Model/User.php:1468
+#: src/Model/User.php:1459
#, php-format
msgid ""
"\n"
@@ -8670,17 +8666,17 @@ msgstr ""
msgid "Visible to:"
msgstr ""
-#: src/Module/Photo.php:98
+#: src/Module/Photo.php:115
#, php-format
msgid "The Photo with id %s is not available."
msgstr ""
-#: src/Module/Photo.php:132
+#: src/Module/Photo.php:148
#, php-format
msgid "Invalid external resource with url %s."
msgstr ""
-#: src/Module/Photo.php:134
+#: src/Module/Photo.php:150
#, php-format
msgid "Invalid photo with id %s."
msgstr ""
@@ -10455,7 +10451,7 @@ msgstr ""
msgid "Show fewer"
msgstr ""
-#: src/Protocol/Diaspora.php:3417
+#: src/Protocol/Diaspora.php:3414
msgid "Attachments:"
msgstr ""
@@ -10565,12 +10561,12 @@ msgstr ""
msgid "Login failed. Please check your credentials."
msgstr ""
-#: src/Security/Authentication.php:349
+#: src/Security/Authentication.php:348
#, php-format
msgid "Welcome %s"
msgstr ""
-#: src/Security/Authentication.php:350
+#: src/Security/Authentication.php:349
msgid "Please upload a profile photo."
msgstr ""
@@ -10601,64 +10597,69 @@ msgstr ""
msgid "YYYY-MM-DD or MM-DD"
msgstr ""
-#: src/Util/Temporal.php:314
+#: src/Util/Temporal.php:275
+#, php-format
+msgid "Time zone: %s Change in Settings"
+msgstr ""
+
+#: src/Util/Temporal.php:318
msgid "never"
msgstr ""
-#: src/Util/Temporal.php:321
+#: src/Util/Temporal.php:325
msgid "less than a second ago"
msgstr ""
-#: src/Util/Temporal.php:329
+#: src/Util/Temporal.php:333
msgid "year"
msgstr ""
-#: src/Util/Temporal.php:329
+#: src/Util/Temporal.php:333
msgid "years"
msgstr ""
-#: src/Util/Temporal.php:330
+#: src/Util/Temporal.php:334
msgid "months"
msgstr ""
-#: src/Util/Temporal.php:331
+#: src/Util/Temporal.php:335
msgid "weeks"
msgstr ""
-#: src/Util/Temporal.php:332
+#: src/Util/Temporal.php:336
msgid "days"
msgstr ""
-#: src/Util/Temporal.php:333
+#: src/Util/Temporal.php:337
msgid "hour"
msgstr ""
-#: src/Util/Temporal.php:333
+#: src/Util/Temporal.php:337
msgid "hours"
msgstr ""
-#: src/Util/Temporal.php:334
+#: src/Util/Temporal.php:338
msgid "minute"
msgstr ""
-#: src/Util/Temporal.php:334
+#: src/Util/Temporal.php:338
msgid "minutes"
msgstr ""
-#: src/Util/Temporal.php:335
+#: src/Util/Temporal.php:339
msgid "second"
msgstr ""
-#: src/Util/Temporal.php:335
+#: src/Util/Temporal.php:339
msgid "seconds"
msgstr ""
-#: src/Util/Temporal.php:345
+#: src/Util/Temporal.php:349
#, php-format
msgid "in %1$d %2$s"
msgstr ""
-#: src/Util/Temporal.php:348
+#: src/Util/Temporal.php:352
#, php-format
msgid "%1$d %2$s ago"
msgstr ""
diff --git a/view/templates/event_form.tpl b/view/templates/event_form.tpl
index b22c3c64f..894d50fbb 100644
--- a/view/templates/event_form.tpl
+++ b/view/templates/event_form.tpl
@@ -18,8 +18,6 @@
{{include file="field_checkbox.tpl" field=$nofinish}}
-{{include file="field_checkbox.tpl" field=$adjust}}
-
{{include file="field_input.tpl" field=$summary}}
diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css
index ee99f4790..f5b526c48 100644
--- a/view/theme/duepuntozero/style.css
+++ b/view/theme/duepuntozero/style.css
@@ -2351,12 +2351,6 @@ aside input[type='text'] {
font-weight: bold;
}
-#birthday-adjust {
- float: left;
- font-size: 75%;
- margin-left: 10px;
-}
-
#birthday-title-end {
clear: both;
}
@@ -2664,14 +2658,14 @@ aside input[type='text'] {
margin-bottom: 5px;
}
-#event-nofinish-checkbox, #event-nofinish-text, #event-adjust-checkbox, #event-adjust-text {
+#event-nofinish-checkbox, #event-nofinish-text {
float: left;
}
#event-datetime-break {
margin-bottom: 10px;
}
-#event-nofinish-break, #event-adjust-break {
+#event-nofinish-break {
clear: both;
}
diff --git a/view/theme/frio/js/mod_events.js b/view/theme/frio/js/mod_events.js
index 464afc3e6..c1f22761c 100644
--- a/view/theme/frio/js/mod_events.js
+++ b/view/theme/frio/js/mod_events.js
@@ -42,7 +42,6 @@ $(document).ready(function () {
defaultView: "month",
aspectRatio: 1,
eventRender: function (event, element, view) {
- //console.log(view.name);
switch (view.name) {
case "month":
element
@@ -52,8 +51,8 @@ $(document).ready(function () {
event.item["author-avatar"],
event.item["author-name"],
event.title,
- event.item.desc,
- event.item.location,
+ event.desc,
+ event.location,
),
);
break;
@@ -65,8 +64,8 @@ $(document).ready(function () {
"{1}{2}
{3}
".format(
event.item["author-avatar"],
event.item["author-name"],
- event.item.desc,
- htmlToText(event.item.location),
+ event.desc,
+ htmlToText(event.location),
),
);
break;
@@ -78,8 +77,8 @@ $(document).ready(function () {
"{1}{2}
{3}
".format(
event.item["author-avatar"],
event.item["author-name"],
- event.item.desc,
- htmlToText(event.item.location),
+ event.desc,
+ htmlToText(event.location),
),
);
break;
@@ -252,27 +251,24 @@ function eventHoverHtmlContent(event) {
moment.locale(locale);
// format dates to different styles
- var startDate = moment(event.item.start).format("dd HH:mm");
- var endDate = moment(event.item.finsih).format("dd HH:mm");
- var monthShort = moment(event.item.start).format("MMM");
- var dayNumberStart = moment(event.item.start).format("DD");
- var dayNumberEnd = moment(event.item.finish).format("DD");
- var startTime = moment(event.item.start).format("HH:mm");
- var endTime = moment(event.item.finish).format("HH:mm");
- var monthNumber;
+ var startDate = event.start.format('dd HH:mm');
+ var monthShort = event.start.format('MMM');
+ var dayNumberStart = event.start.format('DD');
var formattedDate = startDate;
// We only need the to format the end date if the event does have
// a finish date.
- if (event.item.nofinish == 0) {
+ if (event.nofinish === 0 && event.end !== null) {
+ var dayNumberEnd = event.end.format('DD');
+ var endTime = event.end.format('HH:mm');
+
formattedDate = startDate + " - " + endTime;
// use a different Format (15. Feb - 18. Feb) if the events end date
// is not the start date
- if (dayNumberStart != dayNumberEnd) {
- formattedDate =
- moment(event.item.start).format("Do MMM") + " - " + moment(event.item.finish).format("Do MMM");
+ if (dayNumberStart !== dayNumberEnd) {
+ formattedDate = event.start.format('Do MMM') + ' - ' + event.end.format('Do MMM');
}
}
@@ -280,8 +276,8 @@ function eventHoverHtmlContent(event) {
data = eventHoverBodyTemplate();
// Get only template data if there exists location data
- if (event.item.location) {
- var eventLocationText = htmlToText(event.item.location);
+ if (event.location) {
+ var eventLocationText = htmlToText(event.location);
// Get the the html template for formatting the location
var eventLocationTemplate = eventHoverLocationTemplate();
// Format the event location data according to the the event location
diff --git a/view/theme/frio/templates/event_form.tpl b/view/theme/frio/templates/event_form.tpl
index 537f5243c..cbefa04bc 100644
--- a/view/theme/frio/templates/event_form.tpl
+++ b/view/theme/frio/templates/event_form.tpl
@@ -49,9 +49,6 @@
{{* checkbox if the the event doesn't have a finish time *}}
{{include file="field_checkbox.tpl" field=$nofinish}}
-
- {{* checkbox for adjusting the event time to the timezone of the user *}}
- {{include file="field_checkbox.tpl" field=$adjust}}
{{* checkbox to enable event sharing and the permissions tab *}}
diff --git a/view/theme/quattro/templates/event_form.tpl b/view/theme/quattro/templates/event_form.tpl
index 8054ba876..9ad1c8a39 100644
--- a/view/theme/quattro/templates/event_form.tpl
+++ b/view/theme/quattro/templates/event_form.tpl
@@ -15,8 +15,6 @@
{{$f_dsel nofilter}}
{{include file="field_checkbox.tpl" field=$nofinish}}
-
- {{include file="field_checkbox.tpl" field=$adjust}}
{{include file="field_input.tpl" field=$summary}}
{{include file="field_textarea.tpl" field=array('desc', $d_text, $d_orig, "")}}
diff --git a/view/theme/smoothly/style.css b/view/theme/smoothly/style.css
index 2ea3bd620..7698b0d3d 100644
--- a/view/theme/smoothly/style.css
+++ b/view/theme/smoothly/style.css
@@ -3682,8 +3682,6 @@ margin-left: 0px;
#event-nofinish-checkbox,
#event-nofinish-text,
-#event-adjust-checkbox,
-#event-adjust-text,
#event-share-checkbox {
float: left;
}
@@ -3693,7 +3691,6 @@ margin-left: 0px;
}
#event-nofinish-break,
-#event-adjust-break,
#event-share-break {
clear: both;
}
diff --git a/view/theme/vier/templates/event_form.tpl b/view/theme/vier/templates/event_form.tpl
index a5604d929..1581fb6a8 100644
--- a/view/theme/vier/templates/event_form.tpl
+++ b/view/theme/vier/templates/event_form.tpl
@@ -19,8 +19,6 @@
{{include file="field_checkbox.tpl" field=$nofinish}}
-{{include file="field_checkbox.tpl" field=$adjust}}
-
{{include file="field_input.tpl" field=$summary}}