Merge remote-tracking branch 'upstream/develop' into reduce-update-contacts

This commit is contained in:
Michael 2022-12-28 16:06:08 +00:00
commit 088a3b6bc4
10 changed files with 160 additions and 121 deletions

View File

@ -243,6 +243,14 @@ abstract class BaseModule implements ICanHandleRequests
$this->response->addContent($arr['content']); $this->response->addContent($arr['content']);
$this->response->addContent($this->content($request)); $this->response->addContent($this->content($request));
} catch (HTTPException $e) { } catch (HTTPException $e) {
// In case of System::externalRedirects(), we don't want to prettyprint the exception
// just redirect to the new location
if (($e instanceof HTTPException\FoundException) ||
($e instanceof HTTPException\MovedPermanentlyException) ||
($e instanceof HTTPException\TemporaryRedirectException)) {
throw $e;
}
$this->response->addContent($httpException->content($e)); $this->response->addContent($httpException->content($e));
} finally { } finally {
$this->profiler->set(microtime(true) - $timestamp, 'content'); $this->profiler->set(microtime(true) - $timestamp, 'content');

View File

@ -234,32 +234,32 @@ class Conversation
$likers .= ' ' . $this->l10n->t('and %d other people', $total - $this->config->get('system', 'max_likers')); $likers .= ' ' . $this->l10n->t('and %d other people', $total - $this->config->get('system', 'max_likers'));
} }
$spanatts = "class=\"fakelink\" onclick=\"openClose('{$verb}list-$id');\""; $spanatts = "class=\"btn btn-link fakelink\" onclick=\"openClose('{$verb}list-$id');\"";
$explikers = ''; $explikers = '';
switch ($verb) { switch ($verb) {
case 'like': case 'like':
$phrase = $this->l10n->t('<span %1$s>%2$d people</span> like this', $spanatts, $total); $phrase = $this->l10n->t('<button type="button" %1$s>%2$d people</button> like this', $spanatts, $total);
$explikers = $this->l10n->t('%s like this.', $likers); $explikers = $this->l10n->t('%s like this.', $likers);
break; break;
case 'dislike': case 'dislike':
$phrase = $this->l10n->t('<span %1$s>%2$d people</span> don\'t like this', $spanatts, $total); $phrase = $this->l10n->t('<button type="button" %1$s>%2$d people</button> don\'t like this', $spanatts, $total);
$explikers = $this->l10n->t('%s don\'t like this.', $likers); $explikers = $this->l10n->t('%s don\'t like this.', $likers);
break; break;
case 'attendyes': case 'attendyes':
$phrase = $this->l10n->t('<span %1$s>%2$d people</span> attend', $spanatts, $total); $phrase = $this->l10n->t('<button type="button" %1$s>%2$d people</button> attend', $spanatts, $total);
$explikers = $this->l10n->t('%s attend.', $likers); $explikers = $this->l10n->t('%s attend.', $likers);
break; break;
case 'attendno': case 'attendno':
$phrase = $this->l10n->t('<span %1$s>%2$d people</span> don\'t attend', $spanatts, $total); $phrase = $this->l10n->t('<button type="button" %1$s>%2$d people</button> don\'t attend', $spanatts, $total);
$explikers = $this->l10n->t('%s don\'t attend.', $likers); $explikers = $this->l10n->t('%s don\'t attend.', $likers);
break; break;
case 'attendmaybe': case 'attendmaybe':
$phrase = $this->l10n->t('<span %1$s>%2$d people</span> attend maybe', $spanatts, $total); $phrase = $this->l10n->t('<button type="button" %1$s>%2$d people</button> attend maybe', $spanatts, $total);
$explikers = $this->l10n->t('%s attend maybe.', $likers); $explikers = $this->l10n->t('%s attend maybe.', $likers);
break; break;
case 'announce': case 'announce':
$phrase = $this->l10n->t('<span %1$s>%2$d people</span> reshared this', $spanatts, $total); $phrase = $this->l10n->t('<button type="button" %1$s>%2$d people</button> reshared this', $spanatts, $total);
$explikers = $this->l10n->t('%s reshared this.', $likers); $explikers = $this->l10n->t('%s reshared this.', $likers);
break; break;
} }

View File

@ -137,7 +137,7 @@ abstract class BaseUsers extends BaseModeration
$user['account_type'] = ($user['page_flags_raw'] == 0) ? $account_types[$user['account-type']] : ''; $user['account_type'] = ($user['page_flags_raw'] == 0) ? $account_types[$user['account-type']] : '';
$user['register_date'] = Temporal::getRelativeDate($user['register_date']); $user['register_date'] = Temporal::getRelativeDate($user['register_date']);
$user['login_date'] = Temporal::getRelativeDate($user['last-activity'], null, false); $user['login_date'] = Temporal::getRelativeDate($user['last-activity'], false);
$user['lastitem_date'] = Temporal::getRelativeDate($user['last-item']); $user['lastitem_date'] = Temporal::getRelativeDate($user['last-item']);
$user['is_admin'] = in_array($user['email'], $adminlist); $user['is_admin'] = in_array($user['email'], $adminlist);
$user['is_deletable'] = !$user['account_removed'] && intval($user['uid']) != $this->session->getLocalUserId(); $user['is_deletable'] = !$user['account_removed'] && intval($user['uid']) != $this->session->getLocalUserId();

View File

@ -26,6 +26,8 @@ use DateTimeZone;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Util\Clock\SystemClock;
use Psr\Clock\ClockInterface;
/** /**
* Temporal class * Temporal class
@ -305,19 +307,21 @@ class Temporal
* Results relative to current timezone. * Results relative to current timezone.
* Limited to range of timestamps. * Limited to range of timestamps.
* *
* @param string $posted_date MySQL-formatted date string (YYYY-MM-DD HH:MM:SS) * @param string|null $posted_date MySQL-formatted date string (YYYY-MM-DD HH:MM:SS)
* @param string $format (optional) Parsed with sprintf() * @param bool $compare_time Compare date (false) or date and time (true). "true" is default.
* @param bool $compare_time Compare date (false) or date and time (true). "true" is default. * @param ClockInterface|null $clock
* <tt>%1$d %2$s ago</tt>, e.g. 22 hours ago, 1 minute ago * <tt>%1$d %2$s ago</tt>, e.g. 22 hours ago, 1 minute ago
* *
* @return string with relative date * @return string with relative date
*/ */
public static function getRelativeDate(string $posted_date = null, string $format = null, bool $compare_time = true): string public static function getRelativeDate(string $posted_date = null, bool $compare_time = true, ClockInterface $clock = null): string
{ {
if (empty($posted_date) || $posted_date <= DBA::NULL_DATETIME) { if (empty($posted_date) || $posted_date <= DBA::NULL_DATETIME) {
return DI::l10n()->t('never'); return DI::l10n()->t('never');
} }
$clock = $clock ?? new SystemClock();
$localtime = $posted_date . ' UTC'; $localtime = $posted_date . ' UTC';
$abs = strtotime($localtime); $abs = strtotime($localtime);
@ -325,8 +329,8 @@ class Temporal
return DI::l10n()->t('never'); return DI::l10n()->t('never');
} }
$now = time(); $now = $clock->now()->getTimestamp();
if (!$compare_time) { if (!$compare_time) {
$now = mktime(0, 0, 0, date('m', $now), date('d', $now), date('Y', $now)); $now = mktime(0, 0, 0, date('m', $now), date('d', $now), date('Y', $now));
$abs = mktime(0, 0, 0, date('m', $abs), date('d', $abs), date('Y', $abs)); $abs = mktime(0, 0, 0, date('m', $abs), date('d', $abs), date('Y', $abs));
@ -335,7 +339,7 @@ class Temporal
$isfuture = false; $isfuture = false;
$etime = $now - $abs; $etime = $now - $abs;
if ($etime < 1 && $etime >= 0) { if ($etime >= 0 && $etime < 1) {
return $compare_time ? DI::l10n()->t('less than a second ago') : DI::l10n()->t('today'); return $compare_time ? DI::l10n()->t('less than a second ago') : DI::l10n()->t('today');
} }
@ -357,15 +361,13 @@ class Temporal
foreach ($a as $secs => $str) { foreach ($a as $secs => $str) {
$d = $etime / $secs; $d = $etime / $secs;
if ($d >= 1) { if ($d >= 1) {
$r = round($d); $r = floor($d);
// translators - e.g. 22 hours ago, 1 minute ago // translators - e.g. 22 hours ago, 1 minute ago
if (!$format) { if($isfuture){
if($isfuture){ $format = DI::l10n()->t('in %1$d %2$s');
$format = DI::l10n()->t('in %1$d %2$s'); }
} else {
else { $format = DI::l10n()->t('%1$d %2$s ago');
$format = DI::l10n()->t('%1$d %2$s ago');
}
} }
return sprintf($format, $r, (($r == 1) ? $str[0] : $str[1])); return sprintf($format, $r, (($r == 1) ? $str[0] : $str[1]));

View File

@ -22,6 +22,8 @@
namespace Friendica\Test\src\Util; namespace Friendica\Test\src\Util;
use Friendica\DI; use Friendica\DI;
use Friendica\Util\Clock\FrozenClock;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Temporal; use Friendica\Util\Temporal;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
@ -35,27 +37,46 @@ class TemporalTest extends TestCase
*/ */
public function testGetRelativeDate() public function testGetRelativeDate()
{ {
// "never" would should be returned $clock = new FrozenClock();
// "never" should be returned
self::assertEquals( self::assertEquals(
Temporal::getRelativeDate(''), Temporal::getRelativeDate('', true, $clock),
DI::l10n()->t('never') DI::l10n()->t('never')
); );
// Format current date/time into "MySQL" format // Format current date/time into "MySQL" format
$now = date('Y-m-d H:i:s');
self::assertEquals( self::assertEquals(
Temporal::getRelativeDate($now), Temporal::getRelativeDate($clock->now()->format(DateTimeFormat::MYSQL), true, $clock),
DI::l10n()->t('less than a second ago') DI::l10n()->t('less than a second ago')
); );
// Format current date/time - 1 minute into "MySQL" format // Format current date/time - 1 minute into "MySQL" format
$minuteAgo = date('Y-m-d H:i:s', time() - 60); $minuteAgo = date('Y-m-d H:i:s', $clock->now()->getTimestamp() - 60);
$format = DI::l10n()->t('%1$d %2$s ago'); $format = DI::l10n()->t('%1$d %2$s ago');
// Should be both equal // Should be both equal
self::assertEquals( self::assertEquals(
Temporal::getRelativeDate($minuteAgo), Temporal::getRelativeDate($minuteAgo, true, $clock),
sprintf($format, 1, DI::l10n()->t('minute')) sprintf($format, 1, DI::l10n()->t('minute'))
); );
$almostAnHourAgoInterval = new \DateInterval('PT59M59S');
$almostAnHourAgoInterval->invert = 1;
$almostAnHourAgo = (clone $clock->now())->add($almostAnHourAgoInterval);
self::assertEquals(
Temporal::getRelativeDate($almostAnHourAgo->format(DateTimeFormat::MYSQL), true, $clock),
sprintf($format, 59, DI::l10n()->t('minutes'))
);
$anHourAgoInterval = new \DateInterval('PT1H');
$anHourAgoInterval->invert = 1;
$anHourAgo = (clone $clock->now())->add($anHourAgoInterval);
self::assertEquals(
Temporal::getRelativeDate($anHourAgo->format(DateTimeFormat::MYSQL), true, $clock),
sprintf($format, 1, DI::l10n()->t('hour'))
);
} }
} }

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 2023.03-dev\n" "Project-Id-Version: 2023.03-dev\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-12-23 02:32+0100\n" "POT-Creation-Date: 2022-12-28 00:37-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -24,7 +24,7 @@ msgstr ""
#: mod/item.php:179 mod/item.php:184 mod/item.php:855 mod/message.php:69 #: mod/item.php:179 mod/item.php:184 mod/item.php:855 mod/message.php:69
#: mod/message.php:114 mod/notes.php:44 mod/photos.php:157 mod/photos.php:674 #: mod/message.php:114 mod/notes.php:44 mod/photos.php:157 mod/photos.php:674
#: src/Model/Event.php:522 src/Module/Attach.php:55 src/Module/BaseApi.php:94 #: src/Model/Event.php:522 src/Module/Attach.php:55 src/Module/BaseApi.php:95
#: src/Module/BaseNotifications.php:98 src/Module/BaseSettings.php:52 #: src/Module/BaseNotifications.php:98 src/Module/BaseSettings.php:52
#: src/Module/Calendar/Event/API.php:88 src/Module/Calendar/Event/Form.php:84 #: src/Module/Calendar/Event/API.php:88 src/Module/Calendar/Event/Form.php:84
#: src/Module/Calendar/Export.php:62 src/Module/Calendar/Show.php:82 #: src/Module/Calendar/Export.php:62 src/Module/Calendar/Show.php:82
@ -377,7 +377,7 @@ msgstr ""
msgid "Personal notes are visible only by yourself." msgid "Personal notes are visible only by yourself."
msgstr "" msgstr ""
#: mod/notes.php:56 src/Content/Text/HTML.php:882 #: mod/notes.php:56 src/Content/Text/HTML.php:883
#: src/Module/Admin/Storage.php:142 src/Module/Filer/SaveTag.php:74 #: src/Module/Admin/Storage.php:142 src/Module/Filer/SaveTag.php:74
#: src/Module/Post/Edit.php:126 #: src/Module/Post/Edit.php:126
msgid "Save" msgid "Save"
@ -649,11 +649,11 @@ msgstr ""
msgid "Map" msgid "Map"
msgstr "" msgstr ""
#: src/App.php:500 #: src/App.php:472
msgid "No system theme config value set." msgid "No system theme config value set."
msgstr "" msgstr ""
#: src/App.php:621 #: src/App.php:594
msgid "Apologies but the website is unavailable at the moment." msgid "Apologies but the website is unavailable at the moment."
msgstr "" msgstr ""
@ -684,31 +684,31 @@ msgstr ""
msgid "You must be logged in to use addons. " msgid "You must be logged in to use addons. "
msgstr "" msgstr ""
#: src/BaseModule.php:392 #: src/BaseModule.php:400
msgid "" msgid ""
"The form security token was not correct. This probably happened because the " "The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before submitting it." "form has been opened for too long (>3 hours) before submitting it."
msgstr "" msgstr ""
#: src/BaseModule.php:419 #: src/BaseModule.php:427
msgid "All contacts" msgid "All contacts"
msgstr "" msgstr ""
#: src/BaseModule.php:424 src/Content/Widget.php:235 src/Core/ACL.php:194 #: src/BaseModule.php:432 src/Content/Widget.php:235 src/Core/ACL.php:194
#: src/Module/Contact.php:371 src/Module/PermissionTooltip.php:122 #: src/Module/Contact.php:371 src/Module/PermissionTooltip.php:122
#: src/Module/PermissionTooltip.php:144 #: src/Module/PermissionTooltip.php:144
msgid "Followers" msgid "Followers"
msgstr "" msgstr ""
#: src/BaseModule.php:429 src/Content/Widget.php:236 src/Module/Contact.php:372 #: src/BaseModule.php:437 src/Content/Widget.php:236 src/Module/Contact.php:372
msgid "Following" msgid "Following"
msgstr "" msgstr ""
#: src/BaseModule.php:434 src/Content/Widget.php:237 src/Module/Contact.php:373 #: src/BaseModule.php:442 src/Content/Widget.php:237 src/Module/Contact.php:373
msgid "Mutual friends" msgid "Mutual friends"
msgstr "" msgstr ""
#: src/BaseModule.php:442 #: src/BaseModule.php:450
msgid "Common" msgid "Common"
msgstr "" msgstr ""
@ -1076,7 +1076,7 @@ msgstr ""
#: src/Content/Conversation.php:242 #: src/Content/Conversation.php:242
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> like this" msgid "<button type=\"button\" %1$s>%2$d people</button> like this"
msgstr "" msgstr ""
#: src/Content/Conversation.php:243 #: src/Content/Conversation.php:243
@ -1086,7 +1086,7 @@ msgstr ""
#: src/Content/Conversation.php:246 #: src/Content/Conversation.php:246
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> don't like this" msgid "<button type=\"button\" %1$s>%2$d people</button> don't like this"
msgstr "" msgstr ""
#: src/Content/Conversation.php:247 #: src/Content/Conversation.php:247
@ -1096,7 +1096,7 @@ msgstr ""
#: src/Content/Conversation.php:250 #: src/Content/Conversation.php:250
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> attend" msgid "<button type=\"button\" %1$s>%2$d people</button> attend"
msgstr "" msgstr ""
#: src/Content/Conversation.php:251 #: src/Content/Conversation.php:251
@ -1106,7 +1106,7 @@ msgstr ""
#: src/Content/Conversation.php:254 #: src/Content/Conversation.php:254
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> don't attend" msgid "<button type=\"button\" %1$s>%2$d people</button> don't attend"
msgstr "" msgstr ""
#: src/Content/Conversation.php:255 #: src/Content/Conversation.php:255
@ -1116,7 +1116,7 @@ msgstr ""
#: src/Content/Conversation.php:258 #: src/Content/Conversation.php:258
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> attend maybe" msgid "<button type=\"button\" %1$s>%2$d people</button> attend maybe"
msgstr "" msgstr ""
#: src/Content/Conversation.php:259 #: src/Content/Conversation.php:259
@ -1126,7 +1126,7 @@ msgstr ""
#: src/Content/Conversation.php:262 #: src/Content/Conversation.php:262
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> reshared this" msgid "<button type=\"button\" %1$s>%2$d people</button> reshared this"
msgstr "" msgstr ""
#: src/Content/Conversation.php:310 #: src/Content/Conversation.php:310
@ -1499,7 +1499,7 @@ msgid ""
msgstr "" msgstr ""
#: src/Content/ForumManager.php:151 src/Content/Nav.php:242 #: src/Content/ForumManager.php:151 src/Content/Nav.php:242
#: src/Content/Text/HTML.php:903 src/Content/Widget.php:524 #: src/Content/Text/HTML.php:904 src/Content/Widget.php:524
msgid "Forums" msgid "Forums"
msgstr "" msgstr ""
@ -1597,7 +1597,7 @@ msgstr ""
msgid "Nothing new here" msgid "Nothing new here"
msgstr "" msgstr ""
#: src/Content/Nav.php:94 src/Module/Special/HTTPException.php:50 #: src/Content/Nav.php:94 src/Module/Special/HTTPException.php:77
msgid "Go back" msgid "Go back"
msgstr "" msgstr ""
@ -1605,7 +1605,7 @@ msgstr ""
msgid "Clear notifications" msgid "Clear notifications"
msgstr "" msgstr ""
#: src/Content/Nav.php:96 src/Content/Text/HTML.php:890 #: src/Content/Nav.php:96 src/Content/Text/HTML.php:891
msgid "@name, !forum, #tags, content" msgid "@name, !forum, #tags, content"
msgstr "" msgstr ""
@ -1724,7 +1724,7 @@ msgstr ""
msgid "Addon applications, utilities, games" msgid "Addon applications, utilities, games"
msgstr "" msgstr ""
#: src/Content/Nav.php:233 src/Content/Text/HTML.php:888 #: src/Content/Nav.php:233 src/Content/Text/HTML.php:889
#: src/Module/Admin/Logs/View.php:87 src/Module/Search/Index.php:111 #: src/Module/Admin/Logs/View.php:87 src/Module/Search/Index.php:111
msgid "Search" msgid "Search"
msgstr "" msgstr ""
@ -1733,17 +1733,17 @@ msgstr ""
msgid "Search site content" msgid "Search site content"
msgstr "" msgstr ""
#: src/Content/Nav.php:236 src/Content/Text/HTML.php:897 #: src/Content/Nav.php:236 src/Content/Text/HTML.php:898
msgid "Full Text" msgid "Full Text"
msgstr "" msgstr ""
#: src/Content/Nav.php:237 src/Content/Text/HTML.php:898 #: src/Content/Nav.php:237 src/Content/Text/HTML.php:899
#: src/Content/Widget/TagCloud.php:68 #: src/Content/Widget/TagCloud.php:68
msgid "Tags" msgid "Tags"
msgstr "" msgstr ""
#: src/Content/Nav.php:238 src/Content/Nav.php:293 #: src/Content/Nav.php:238 src/Content/Nav.php:293
#: src/Content/Text/HTML.php:899 src/Module/BaseProfile.php:127 #: src/Content/Text/HTML.php:900 src/Module/BaseProfile.php:127
#: src/Module/BaseProfile.php:130 src/Module/Contact.php:374 #: src/Module/BaseProfile.php:130 src/Module/Contact.php:374
#: src/Module/Contact.php:468 view/theme/frio/theme.php:250 #: src/Module/Contact.php:468 view/theme/frio/theme.php:250
msgid "Contacts" msgid "Contacts"
@ -1925,7 +1925,7 @@ msgstr ""
msgid "Link to source" msgid "Link to source"
msgstr "" msgstr ""
#: src/Content/Text/BBCode.php:1795 src/Content/Text/HTML.php:927 #: src/Content/Text/BBCode.php:1795 src/Content/Text/HTML.php:928
msgid "Click to open/close" msgid "Click to open/close"
msgstr "" msgstr ""
@ -1945,15 +1945,15 @@ msgstr ""
msgid "Invalid link protocol" msgid "Invalid link protocol"
msgstr "" msgstr ""
#: src/Content/Text/HTML.php:805 #: src/Content/Text/HTML.php:806
msgid "Loading more entries..." msgid "Loading more entries..."
msgstr "" msgstr ""
#: src/Content/Text/HTML.php:806 #: src/Content/Text/HTML.php:807
msgid "The end" msgid "The end"
msgstr "" msgstr ""
#: src/Content/Text/HTML.php:882 src/Content/Widget/VCard.php:109 #: src/Content/Text/HTML.php:883 src/Content/Widget/VCard.php:109
#: src/Model/Profile.php:463 src/Module/Contact/Profile.php:427 #: src/Model/Profile.php:463 src/Module/Contact/Profile.php:427
msgid "Follow" msgid "Follow"
msgstr "" msgstr ""
@ -3301,7 +3301,7 @@ msgstr ""
msgid "Contact information and Social Networks" msgid "Contact information and Social Networks"
msgstr "" msgstr ""
#: src/Model/User.php:213 src/Model/User.php:1103 #: src/Model/User.php:213 src/Model/User.php:1119
msgid "SERIOUS ERROR: Generation of security keys failed." msgid "SERIOUS ERROR: Generation of security keys failed."
msgstr "" msgstr ""
@ -3336,111 +3336,111 @@ msgid ""
"The password can't contain accentuated letters, white spaces or colons (:)" "The password can't contain accentuated letters, white spaces or colons (:)"
msgstr "" msgstr ""
#: src/Model/User.php:986 #: src/Model/User.php:1002
msgid "Passwords do not match. Password unchanged." msgid "Passwords do not match. Password unchanged."
msgstr "" msgstr ""
#: src/Model/User.php:993 #: src/Model/User.php:1009
msgid "An invitation is required." msgid "An invitation is required."
msgstr "" msgstr ""
#: src/Model/User.php:997 #: src/Model/User.php:1013
msgid "Invitation could not be verified." msgid "Invitation could not be verified."
msgstr "" msgstr ""
#: src/Model/User.php:1005 #: src/Model/User.php:1021
msgid "Invalid OpenID url" msgid "Invalid OpenID url"
msgstr "" msgstr ""
#: src/Model/User.php:1018 src/Security/Authentication.php:241 #: src/Model/User.php:1034 src/Security/Authentication.php:241
msgid "" msgid ""
"We encountered a problem while logging in with the OpenID you provided. " "We encountered a problem while logging in with the OpenID you provided. "
"Please check the correct spelling of the ID." "Please check the correct spelling of the ID."
msgstr "" msgstr ""
#: src/Model/User.php:1018 src/Security/Authentication.php:241 #: src/Model/User.php:1034 src/Security/Authentication.php:241
msgid "The error message was:" msgid "The error message was:"
msgstr "" msgstr ""
#: src/Model/User.php:1024 #: src/Model/User.php:1040
msgid "Please enter the required information." msgid "Please enter the required information."
msgstr "" msgstr ""
#: src/Model/User.php:1038 #: src/Model/User.php:1054
#, php-format #, php-format
msgid "" msgid ""
"system.username_min_length (%s) and system.username_max_length (%s) are " "system.username_min_length (%s) and system.username_max_length (%s) are "
"excluding each other, swapping values." "excluding each other, swapping values."
msgstr "" msgstr ""
#: src/Model/User.php:1045 #: src/Model/User.php:1061
#, php-format #, php-format
msgid "Username should be at least %s character." msgid "Username should be at least %s character."
msgid_plural "Username should be at least %s characters." msgid_plural "Username should be at least %s characters."
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Model/User.php:1049 #: src/Model/User.php:1065
#, php-format #, php-format
msgid "Username should be at most %s character." msgid "Username should be at most %s character."
msgid_plural "Username should be at most %s characters." msgid_plural "Username should be at most %s characters."
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Model/User.php:1057 #: src/Model/User.php:1073
msgid "That doesn't appear to be your full (First Last) name." msgid "That doesn't appear to be your full (First Last) name."
msgstr "" msgstr ""
#: src/Model/User.php:1062 #: src/Model/User.php:1078
msgid "Your email domain is not among those allowed on this site." msgid "Your email domain is not among those allowed on this site."
msgstr "" msgstr ""
#: src/Model/User.php:1066 #: src/Model/User.php:1082
msgid "Not a valid email address." msgid "Not a valid email address."
msgstr "" msgstr ""
#: src/Model/User.php:1069 #: src/Model/User.php:1085
msgid "The nickname was blocked from registration by the nodes admin." msgid "The nickname was blocked from registration by the nodes admin."
msgstr "" msgstr ""
#: src/Model/User.php:1073 src/Model/User.php:1079 #: src/Model/User.php:1089 src/Model/User.php:1095
msgid "Cannot use that email." msgid "Cannot use that email."
msgstr "" msgstr ""
#: src/Model/User.php:1085 #: src/Model/User.php:1101
msgid "Your nickname can only contain a-z, 0-9 and _." msgid "Your nickname can only contain a-z, 0-9 and _."
msgstr "" msgstr ""
#: src/Model/User.php:1093 src/Model/User.php:1150 #: src/Model/User.php:1109 src/Model/User.php:1166
msgid "Nickname is already registered. Please choose another." msgid "Nickname is already registered. Please choose another."
msgstr "" msgstr ""
#: src/Model/User.php:1137 src/Model/User.php:1141 #: src/Model/User.php:1153 src/Model/User.php:1157
msgid "An error occurred during registration. Please try again." msgid "An error occurred during registration. Please try again."
msgstr "" msgstr ""
#: src/Model/User.php:1164 #: src/Model/User.php:1180
msgid "An error occurred creating your default profile. Please try again." msgid "An error occurred creating your default profile. Please try again."
msgstr "" msgstr ""
#: src/Model/User.php:1171 #: src/Model/User.php:1187
msgid "An error occurred creating your self contact. Please try again." msgid "An error occurred creating your self contact. Please try again."
msgstr "" msgstr ""
#: src/Model/User.php:1176 #: src/Model/User.php:1192
msgid "Friends" msgid "Friends"
msgstr "" msgstr ""
#: src/Model/User.php:1180 #: src/Model/User.php:1196
msgid "" msgid ""
"An error occurred creating your default contact group. Please try again." "An error occurred creating your default contact group. Please try again."
msgstr "" msgstr ""
#: src/Model/User.php:1219 #: src/Model/User.php:1235
msgid "Profile Photos" msgid "Profile Photos"
msgstr "" msgstr ""
#: src/Model/User.php:1412 #: src/Model/User.php:1428
#, php-format #, php-format
msgid "" msgid ""
"\n" "\n"
@ -3448,7 +3448,7 @@ msgid ""
"\t\t\tthe administrator of %2$s has set up an account for you." "\t\t\tthe administrator of %2$s has set up an account for you."
msgstr "" msgstr ""
#: src/Model/User.php:1415 #: src/Model/User.php:1431
#, php-format #, php-format
msgid "" msgid ""
"\n" "\n"
@ -3486,12 +3486,12 @@ msgid ""
"\t\tThank you and welcome to %4$s." "\t\tThank you and welcome to %4$s."
msgstr "" msgstr ""
#: src/Model/User.php:1448 src/Model/User.php:1555 #: src/Model/User.php:1464 src/Model/User.php:1571
#, php-format #, php-format
msgid "Registration details for %s" msgid "Registration details for %s"
msgstr "" msgstr ""
#: src/Model/User.php:1468 #: src/Model/User.php:1484
#, php-format #, php-format
msgid "" msgid ""
"\n" "\n"
@ -3507,12 +3507,12 @@ msgid ""
"\t\t" "\t\t"
msgstr "" msgstr ""
#: src/Model/User.php:1487 #: src/Model/User.php:1503
#, php-format #, php-format
msgid "Registration at %s" msgid "Registration at %s"
msgstr "" msgstr ""
#: src/Model/User.php:1511 #: src/Model/User.php:1527
#, php-format #, php-format
msgid "" msgid ""
"\n" "\n"
@ -3521,7 +3521,7 @@ msgid ""
"\t\t\t" "\t\t\t"
msgstr "" msgstr ""
#: src/Model/User.php:1519 #: src/Model/User.php:1535
#, php-format #, php-format
msgid "" msgid ""
"\n" "\n"
@ -5214,7 +5214,7 @@ msgid ""
"The API endpoint is currently not implemented but might be in the future." "The API endpoint is currently not implemented but might be in the future."
msgstr "" msgstr ""
#: src/Module/Api/Mastodon/Apps.php:63 #: src/Module/Api/Mastodon/Apps.php:64
msgid "Missing parameters" msgid "Missing parameters"
msgstr "" msgstr ""
@ -5335,26 +5335,26 @@ msgstr ""
msgid "User registrations waiting for confirmation" msgid "User registrations waiting for confirmation"
msgstr "" msgstr ""
#: src/Module/BaseApi.php:254 src/Module/BaseApi.php:270 #: src/Module/BaseApi.php:255 src/Module/BaseApi.php:271
#: src/Module/BaseApi.php:286 #: src/Module/BaseApi.php:287
msgid "Too Many Requests" msgid "Too Many Requests"
msgstr "" msgstr ""
#: src/Module/BaseApi.php:255 #: src/Module/BaseApi.php:256
#, php-format #, php-format
msgid "Daily posting limit of %d post reached. The post was rejected." msgid "Daily posting limit of %d post reached. The post was rejected."
msgid_plural "Daily posting limit of %d posts reached. The post was rejected." msgid_plural "Daily posting limit of %d posts reached. The post was rejected."
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/BaseApi.php:271 #: src/Module/BaseApi.php:272
#, php-format #, php-format
msgid "Weekly posting limit of %d post reached. The post was rejected." msgid "Weekly posting limit of %d post reached. The post was rejected."
msgid_plural "Weekly posting limit of %d posts reached. The post was rejected." msgid_plural "Weekly posting limit of %d posts reached. The post was rejected."
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/BaseApi.php:287 #: src/Module/BaseApi.php:288
#, php-format #, php-format
msgid "Monthly posting limit of %d post reached. The post was rejected." msgid "Monthly posting limit of %d post reached. The post was rejected."
msgid_plural "" msgid_plural ""
@ -6155,7 +6155,7 @@ msgstr ""
#: src/Module/Contact/Revoke.php:108 #: src/Module/Contact/Revoke.php:108
#: src/Module/Notifications/Introductions.php:144 #: src/Module/Notifications/Introductions.php:144
#: src/Module/OAuth/Acknowledge.php:53 src/Module/Register.php:130 #: src/Module/OAuth/Acknowledge.php:54 src/Module/Register.php:130
#: src/Module/Settings/TwoFactor/Trusted.php:126 #: src/Module/Settings/TwoFactor/Trusted.php:126
msgid "Yes" msgid "Yes"
msgstr "" msgstr ""
@ -6765,7 +6765,7 @@ msgstr ""
msgid "No profile" msgid "No profile"
msgstr "" msgstr ""
#: src/Module/HTTPException/MethodNotAllowed.php:32 #: src/Module/HTTPException/MethodNotAllowed.php:31
msgid "Method Not Allowed." msgid "Method Not Allowed."
msgstr "" msgstr ""
@ -7904,7 +7904,7 @@ msgid "Claims to be known to you: "
msgstr "" msgstr ""
#: src/Module/Notifications/Introductions.php:144 #: src/Module/Notifications/Introductions.php:144
#: src/Module/OAuth/Acknowledge.php:54 src/Module/Register.php:131 #: src/Module/OAuth/Acknowledge.php:55 src/Module/Register.php:131
#: src/Module/Settings/TwoFactor/Trusted.php:126 #: src/Module/Settings/TwoFactor/Trusted.php:126
msgid "No" msgid "No"
msgstr "" msgstr ""
@ -7978,11 +7978,11 @@ msgstr ""
msgid "{0} and %d others requested registration" msgid "{0} and %d others requested registration"
msgstr "" msgstr ""
#: src/Module/OAuth/Acknowledge.php:50 #: src/Module/OAuth/Acknowledge.php:51
msgid "Authorize application connection" msgid "Authorize application connection"
msgstr "" msgstr ""
#: src/Module/OAuth/Acknowledge.php:52 #: src/Module/OAuth/Acknowledge.php:53
msgid "" msgid ""
"Do you want to authorize this application to access your posts and contacts, " "Do you want to authorize this application to access your posts and contacts, "
"and/or create new posts for you?" "and/or create new posts for you?"
@ -7992,7 +7992,7 @@ msgstr ""
msgid "Unsupported or missing response type" msgid "Unsupported or missing response type"
msgstr "" msgstr ""
#: src/Module/OAuth/Authorize.php:59 src/Module/OAuth/Token.php:72 #: src/Module/OAuth/Authorize.php:59 src/Module/OAuth/Token.php:73
msgid "Incomplete request data" msgid "Incomplete request data"
msgstr "" msgstr ""
@ -8003,7 +8003,7 @@ msgid ""
"close this window: %s" "close this window: %s"
msgstr "" msgstr ""
#: src/Module/OAuth/Token.php:96 #: src/Module/OAuth/Token.php:97
msgid "Unsupported or missing grant type" msgid "Unsupported or missing grant type"
msgstr "" msgstr ""
@ -10278,11 +10278,11 @@ msgid ""
"e.g. Mastodon." "e.g. Mastodon."
msgstr "" msgstr ""
#: src/Module/Special/HTTPException.php:51 #: src/Module/Special/HTTPException.php:78
msgid "Stack trace:" msgid "Stack trace:"
msgstr "" msgstr ""
#: src/Module/Special/HTTPException.php:55 #: src/Module/Special/HTTPException.php:83
#, php-format #, php-format
msgid "Exception thrown in %s:%d" msgid "Exception thrown in %s:%d"
msgstr "" msgstr ""
@ -10793,7 +10793,7 @@ msgid "%1$s commented on their %2$s %3$s"
msgstr "" msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:341 #: src/Navigation/Notifications/Repository/Notify.php:341
#: src/Navigation/Notifications/Repository/Notify.php:796 #: src/Navigation/Notifications/Repository/Notify.php:786
#, php-format #, php-format
msgid "%1$s Comment to conversation #%2$d by %3$s" msgid "%1$s Comment to conversation #%2$d by %3$s"
msgstr "" msgstr ""
@ -11008,12 +11008,12 @@ msgstr ""
msgid "%s %s shared a new post" msgid "%s %s shared a new post"
msgstr "" msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:789 #: src/Navigation/Notifications/Repository/Notify.php:791
#, php-format #, php-format
msgid "%1$s %2$s liked your post #%3$d" msgid "%1$s %2$s liked your post #%3$d"
msgstr "" msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:792 #: src/Navigation/Notifications/Repository/Notify.php:794
#, php-format #, php-format
msgid "%1$s %2$s liked your comment on #%3$d" msgid "%1$s %2$s liked your comment on #%3$d"
msgstr "" msgstr ""
@ -11376,7 +11376,7 @@ msgstr ""
msgid "%1$d %2$s ago" msgid "%1$d %2$s ago"
msgstr "" msgstr ""
#: src/Worker/Delivery.php:533 #: src/Worker/Delivery.php:535
msgid "(no subject)" msgid "(no subject)"
msgstr "" msgstr ""

View File

@ -76,6 +76,13 @@ blockquote {
.fakelink { .fakelink {
cursor: pointer; cursor: pointer;
} }
.btn.btn-link.fakelink {
box-shadow: none;
padding: 0 2px;
vertical-align: baseline;
outline-offset: 0;
}
.hidden { .hidden {
display: none !important; display: none !important;
} }
@ -1740,6 +1747,10 @@ aside .panel-body {
border-top: none; border-top: none;
color: inherit; color: inherit;
} }
.preferences .plink {
margin-left: 5px;
}
blockquote.shared_content { blockquote.shared_content {
padding: 0px; padding: 0px;
margin-inline-start: 0px; margin-inline-start: 0px;

View File

@ -140,12 +140,6 @@
<p class="wall-item-actions"> <p class="wall-item-actions">
{{* Action buttons to interact with the item (like: like, dislike, share and so on *}} {{* Action buttons to interact with the item (like: like, dislike, share and so on *}}
<span class="wall-item-actions-left"> <span class="wall-item-actions-left">
<!--comment this out to try something different {{if $item.threaded}}{{if $item.comment_html}}
<div id="button-reply" class="pull-left">
<button type="button" class="btn-link" id="comment-{{$item.id}}" onclick="openClose('item-comments-{{$item.id}}'); commentExpand({{$item.id}});"><i class="fa fa-reply" title="{{$item.switchcomment}}"></i> </span>
</div>
{{/if}}{{/if}}-->
{{if $item.threaded}}{{/if}} {{if $item.threaded}}{{/if}}
{{* Buttons for like and dislike *}} {{* Buttons for like and dislike *}}

View File

@ -140,14 +140,13 @@ as the value of $top_child_total (this is done at the end of this file)
<span class="wall-item-network" title="{{$item.app}}">{{$item.network_name}}</span> <span class="wall-item-network" title="{{$item.app}}">{{$item.network_name}}</span>
{{/if}} {{/if}}
{{if $item.plink}} {{*link to the original source of the item *}} {{if $item.plink}} {{*link to the original source of the item *}}
&nbsp;
<a href="{{$item.plink.href}}" class="plink u-url" aria-label="{{$item.plink.title}}" title="{{$item.plink.title}}"> <a href="{{$item.plink.href}}" class="plink u-url" aria-label="{{$item.plink.title}}" title="{{$item.plink.title}}">
<i class="fa fa-external-link"></i> <i class="fa fa-external-link"></i>
</a> </a>
{{/if}} {{/if}}
</div> </div>
{{if $item.thread_level==1}} {{if $item.thread_level==1}}
<div class="contact-info hidden-sm hidden-xs media-body"><!-- <= For computer --> <div class="hidden-sm hidden-xs media-body"><!-- <= For computer -->
<h4 class="media-heading"> <h4 class="media-heading">
<a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link userinfo hover-card"> <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link userinfo hover-card">
<span class="wall-item-name {{$item.sparkle}}">{{$item.name}}</span> <span class="wall-item-name {{$item.sparkle}}">{{$item.name}}</span>

View File

@ -312,17 +312,21 @@ a:hover {
} }
.fakelink { .fakelink {
color: #36c; color: #36c;
/* color: #3e3e8c; */
/* color: #3465A4; */
/* color: #3E3E8C; */
text-decoration: none; text-decoration: none;
cursor: pointer; cursor: pointer;
} }
.fakelink:hover { .fakelink:hover {
/* color: blue;*/
/* color: #005c94; */
text-decoration: underline; text-decoration: underline;
} }
.btn.btn-link.fakelink {
background: none;
border: none;
box-shadow: none;
padding: 0 2px;
vertical-align: baseline;
outline-offset: 0;
}
pre code { pre code {
font-family: Courier, monospace; font-family: Courier, monospace;
white-space: pre; white-space: pre;