1
0
Fork 0

Merge pull request #11837 from MrPetovan/task/remove-poke

Remove poke feature
This commit is contained in:
Philipp 2022-08-11 18:17:11 +02:00 committed by GitHub
commit a145712f04
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
28 changed files with 192 additions and 769 deletions

View file

@ -765,7 +765,7 @@ Identical to [the Twitter Media Object](https://developer.twitter.com/en/docs/tw
<li>64: Unused</li>
<li>128: Mention</li>
<li>256: Tag added to a post</li>
<li>512: Poke</li>
<li>512: Poke (Obsolete)</li>
<li>1024: New post</li>
<li>16384: System email</li>
<li>32768: System event</li>

View file

@ -766,10 +766,6 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
Hook::callAll('home_init', $ret);
Hook::callAll("home_content", $content);
### mod/poke.php
Hook::callAll('post_local_end', $arr);
### mod/contacts.php
Hook::callAll('contact_edit_post', $_POST);
@ -967,10 +963,6 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
self::callSingle(self::getApp(), 'hook_fork', $fork_hook, $hookdata);
### src/Core/L10n/L10n.php
Hook::callAll('poke_verbs', $arr);
### src/Core/Worker.php
Hook::callAll("proc_run", $arr);

View file

@ -285,10 +285,6 @@ Eine komplette Liste aller Hook-Callbacks mit den zugehörigen Dateien (am 01-Ap
Hook::callAll('home_init', $ret);
Hook::callAll("home_content", $content);
### mod/poke.php
Hook::callAll('post_local_end', $arr);
### mod/contacts.php
Hook::callAll('contact_edit_post', $_POST);
@ -461,10 +457,6 @@ Eine komplette Liste aller Hook-Callbacks mit den zugehörigen Dateien (am 01-Ap
self::callSingle(self::getApp(), 'hook_fork', $fork_hook, $hookdata);
### src/Core/L10n/L10n.php
Hook::callAll('poke_verbs', $arr);
### src/Core/Worker.php
Hook::callAll("proc_run", $arr);

View file

@ -256,63 +256,6 @@ class Item
if (!empty($item['verb'])) {
$xmlhead = '<?xml version="1.0" encoding="UTF-8" ?>';
if (stristr($item['verb'], Activity::POKE)) {
$verb = urldecode(substr($item['verb'], strpos($item['verb'],'#') + 1));
if (!$verb) {
$this->profiler->stopRecording();
return;
}
if ($item['object-type'] == '' || $item['object-type'] !== Activity\ObjectType::PERSON) {
$this->profiler->stopRecording();
return;
}
$obj = XML::parseString($xmlhead . $item['object']);
$Bname = $obj->title;
$Blink = $obj->id;
$Bphoto = '';
foreach ($obj->link as $l) {
$atts = $l->attributes();
switch ($atts['rel']) {
case 'alternate': $Blink = $atts['href'];
case 'photo': $Bphoto = $atts['href'];
}
}
$author = [
'uid' => 0,
'id' => $item['author-id'],
'network' => $item['author-network'],
'url' => $item['author-link'],
];
$A = '[url=' . Contact::magicLinkByContact($author) . ']' . $item['author-name'] . '[/url]';
if (!empty($Blink)) {
$B = '[url=' . Contact::magicLink($Blink) . ']' . $Bname . '[/url]';
} else {
$B = '';
}
if ($Bphoto != '' && !empty($Blink)) {
$Bphoto = '[url=' . Contact::magicLink($Blink) . '][img=80x80]' . $Bphoto . '[/img][/url]';
}
/*
* we can't have a translation string with three positions but no distinguishable text
* So here is the translate string.
*/
$txt = $this->l10n->t('%1$s poked %2$s');
// now translate the verb
$poked_t = trim(sprintf($txt, '', ''));
$txt = str_replace($poked_t, $this->l10n->t($verb), $txt);
// then do the sprintf on the translation string
$item['body'] = sprintf($txt, $A, $B) . "\n\n\n" . $Bphoto;
}
if ($this->activity->match($item['verb'], Activity::TAG)) {
$fields = ['author-id', 'author-link', 'author-name', 'author-network',
'verb', 'object-type', 'resource-id', 'body', 'plink'];
@ -382,7 +325,7 @@ class Item
public function photoMenu(array $item, string $formSecurityToken): string
{
$this->profiler->startRecording('rendering');
$sub_link = $poke_link = $contact_url = $pm_url = $status_link = '';
$sub_link = $contact_url = $pm_url = $status_link = '';
$photos_link = $posts_link = $block_link = $ignore_link = '';
if (local_user() && local_user() == $item['uid'] && $item['gravity'] == GRAVITY_PARENT && !$item['self'] && !$item['mention']) {
@ -425,7 +368,6 @@ class Item
if ($cid && !$item['self']) {
$contact_url = 'contact/' . $cid;
$poke_link = $contact_url . '/poke';
$posts_link = $contact_url . '/posts';
if (in_array($network, [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA])) {
@ -450,10 +392,6 @@ class Item
$menu[$this->l10n->t('Languages')] = 'javascript:alert(\'' . ModelItem::getLanguageMessage($item) . '\');';
}
if ($network == Protocol::DFRN) {
$menu[$this->l10n->t('Poke')] = $poke_link;
}
if ((($cid == 0) || ($rel == Contact::FOLLOWER)) &&
in_array($item['network'], Protocol::FEDERATED)) {
$menu[$this->l10n->t('Connect/Follow')] = 'follow?url=' . urlencode($item['author-link']) . '&auto=1';

View file

@ -429,32 +429,6 @@ class L10n
return $ret;
}
/**
* Load poke verbs
*
* @return array index is present tense verb
* value is array containing past tense verb, translation of present, translation of past
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @hook poke_verbs pokes array
*/
public function getPokeVerbs(): array
{
// index is present tense verb
// value is array containing past tense verb, translation of present, translation of past
$arr = [
'poke' => ['poked', $this->t('poke'), $this->t('poked')],
'ping' => ['pinged', $this->t('ping'), $this->t('pinged')],
'prod' => ['prodded', $this->t('prod'), $this->t('prodded')],
'slap' => ['slapped', $this->t('slap'), $this->t('slapped')],
'finger' => ['fingered', $this->t('finger'), $this->t('fingered')],
'rebuff' => ['rebuffed', $this->t('rebuff'), $this->t('rebuffed')],
];
Hook::callAll('poke_verbs', $arr);
return $arr;
}
/**
* Creates a new L10n instance based on the given langauge
*

View file

@ -1041,7 +1041,6 @@ class Contact
$pm_url = '';
$status_link = '';
$photos_link = '';
$poke_link = '';
if ($uid == 0) {
$uid = local_user();
@ -1084,10 +1083,6 @@ class Contact
$pm_url = DI::baseUrl() . '/message/new/' . $contact['id'];
}
if (($contact['network'] == Protocol::DFRN) && !$contact['self'] && empty($contact['pending'])) {
$poke_link = 'contact/' . $contact['id'] . '/poke';
}
$contact_url = DI::baseUrl() . '/contact/' . $contact['id'];
$posts_link = DI::baseUrl() . '/contact/' . $contact['id'] . '/conversations';
@ -1122,7 +1117,6 @@ class Contact
'network' => [DI::l10n()->t('Network Posts') , $posts_link , false],
'edit' => [DI::l10n()->t('View Contact') , $contact_url , false],
'pm' => [DI::l10n()->t('Send PM') , $pm_url , false],
'poke' => [DI::l10n()->t('Poke') , $poke_link , false],
'follow' => [DI::l10n()->t('Connect/Follow'), $follow_link , true],
'unfollow'=> [DI::l10n()->t('UnFollow') , $unfollow_link , true],
];

View file

@ -1085,11 +1085,7 @@ class Item
// Check for hashtags in the body and repair or add hashtag links
$item['body'] = self::setHashtags($item['body']);
if (stristr($item['verb'], Activity::POKE)) {
$notify_type = Delivery::POKE;
} else {
$notify_type = Delivery::POST;
}
$notify_type = Delivery::POST;
// Filling item related side tables
if (!empty($item['attach'])) {

View file

@ -40,7 +40,7 @@ class Type
const SUGGEST = 32;
/** @var int Notification about being tagged in a post */
const TAG_SELF = 128;
/** @var int Notification about getting poked/prodded/etc. */
/** @var int Notification about getting poked/prodded/etc. (Obsolete) */
const POKE = 512;
/** @var int Notification about either a contact had posted something directly or the contact is a mentioned forum */
const SHARE = 1024;

View file

@ -1,183 +0,0 @@
<?php
/**
* @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
namespace Friendica\Module\Contact;
use Friendica\BaseModule;
use Friendica\Content\Widget;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Core\System;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model;
use Friendica\Model\Contact;
use Friendica\Network\HTTPException;
use Friendica\Protocol\Activity;
use Friendica\Util\XML;
class Poke extends BaseModule
{
protected function post(array $request = [])
{
if (!local_user() || empty($this->parameters['id'])) {
return self::postReturn(false);
}
$uid = local_user();
if (empty($_POST['verb'])) {
return self::postReturn(false);
}
$verb = $_POST['verb'];
$verbs = DI::l10n()->getPokeVerbs();
if (!array_key_exists($verb, $verbs)) {
return self::postReturn(false);
}
$activity = Activity::POKE . '#' . urlencode($verbs[$verb][0]);
$contact_id = intval($this->parameters['id']);
if (!$contact_id) {
return self::postReturn(false);
}
Logger::info('verb ' . $verb . ' contact ' . $contact_id);
$contact = DBA::selectFirst('contact', ['id', 'name', 'url', 'photo'], ['id' => $this->parameters['id'], 'uid' => local_user()]);
if (!DBA::isResult($contact)) {
return self::postReturn(false);
}
$a = DI::app();
$private = !empty($_POST['private']) ? Model\Item::PRIVATE : Model\Item::PUBLIC;
$user = Model\User::getById($a->getLoggedInUserId());
$allow_cid = ($private ? '<' . $contact['id']. '>' : $user['allow_cid']);
$allow_gid = ($private ? '' : $user['allow_gid']);
$deny_cid = ($private ? '' : $user['deny_cid']);
$deny_gid = ($private ? '' : $user['deny_gid']);
$actor = Contact::getById($a->getContactId());
$uri = Model\Item::newURI();
$arr = [];
$arr['guid'] = System::createUUID();
$arr['uid'] = $uid;
$arr['uri'] = $uri;
$arr['wall'] = 1;
$arr['contact-id'] = $actor['id'];
$arr['owner-name'] = $actor['name'];
$arr['owner-link'] = $actor['url'];
$arr['owner-avatar'] = $actor['thumb'];
$arr['author-name'] = $actor['name'];
$arr['author-link'] = $actor['url'];
$arr['author-avatar'] = $actor['thumb'];
$arr['title'] = '';
$arr['allow_cid'] = $allow_cid;
$arr['allow_gid'] = $allow_gid;
$arr['deny_cid'] = $deny_cid;
$arr['deny_gid'] = $deny_gid;
$arr['visible'] = 1;
$arr['verb'] = $activity;
$arr['private'] = $private;
$arr['object-type'] = Activity\ObjectType::PERSON;
$arr['origin'] = 1;
$arr['body'] = '@[url=' . $actor['url'] . ']' . $actor['name'] . '[/url]' . ' ' . $verbs[$verb][2] . ' ' . '@[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
$arr['object'] = '<object><type>' . Activity\ObjectType::PERSON . '</type><title>' . XML::escape($contact['name']) . '</title><id>' . XML::escape($contact['url']) . '</id>';
$arr['object'] .= '<link>' . XML::escape('<link rel="alternate" type="text/html" href="' . $contact['url'] . '" />') . "\n";
$arr['object'] .= XML::escape('<link rel="photo" type="image/jpeg" href="' . $contact['photo'] . '" />') . "\n";
$arr['object'] .= '</link></object>' . "\n";
$result = Model\Item::insert($arr);
Hook::callAll('post_local_end', $arr);
return self::postReturn($result);
}
/**
* Since post() is called before rawContent(), we need to be able to return a JSON response in post() directly.
*
* @param bool $success
* @return bool
*/
private static function postReturn(bool $success)
{
if (!$success) {
notice(DI::l10n()->t('Error while sending poke, please retry.'));
}
if (DI::mode()->isAjax()) {
System::jsonExit(['success' => $success]);
}
return $success;
}
protected function content(array $request = []): string
{
if (!local_user()) {
throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this module.'));
}
if (empty($this->parameters['id'])) {
throw new HTTPException\BadRequestException();
}
$contact = DBA::selectFirst('contact', ['id', 'url', 'name'], ['id' => $this->parameters['id'], 'uid' => local_user()]);
if (!DBA::isResult($contact)) {
throw new HTTPException\NotFoundException();
}
DI::page()['aside'] = Widget\VCard::getHTML(Model\Contact::getByURL($contact["url"], false));
$verbs = [];
foreach (DI::l10n()->getPokeVerbs() as $verb => $translations) {
if ($translations[1] !== 'NOTRANSLATION') {
$verbs[$verb] = $translations[1];
}
}
$tpl = Renderer::getMarkupTemplate('contact/poke.tpl');
$o = Renderer::replaceMacros($tpl,[
'$title' => DI::l10n()->t('Poke/Prod'),
'$desc' => DI::l10n()->t('poke, prod or do other things to somebody'),
'$id' => $contact['id'],
'$verb' => ['verb', DI::l10n()->t('Choose what you wish to do to recipient'), '', '', $verbs],
'$private' => ['private', DI::l10n()->t('Make this post private')],
'$loading' => DI::l10n()->t('Loading...'),
'$submit' => DI::l10n()->t('Submit'),
]);
return $o;
}
}

View file

@ -617,7 +617,6 @@ class Account extends BaseSettings
'$notify5' => ['notify5', DI::l10n()->t('You receive a private message'), ($notify & Notification\Type::MAIL), Notification\Type::MAIL, ''],
'$notify6' => ['notify6', DI::l10n()->t('You receive a friend suggestion'), ($notify & Notification\Type::SUGGEST), Notification\Type::SUGGEST, ''],
'$notify7' => ['notify7', DI::l10n()->t('You are tagged in a post'), ($notify & Notification\Type::TAG_SELF), Notification\Type::TAG_SELF, ''],
'$notify8' => ['notify8', DI::l10n()->t('You are poked/prodded/etc. in a post'), ($notify & Notification\Type::POKE), Notification\Type::POKE, ''],
'$lbl_notify' => DI::l10n()->t('Create a desktop notification when:'),
'$notify_tagged' => ['notify_tagged', DI::l10n()->t('Someone tagged you'), is_null($notify_type) || $notify_type & UserNotification::TYPE_EXPLICIT_TAGGED, ''],

View file

@ -358,25 +358,6 @@ class Notify extends BaseRepository
$itemlink = $params['link'];
break;
case Model\Notification\Type::POKE:
$subject = $l10n->t('%1$s %2$s poked you', $subjectPrefix, $params['source_name']);
$preamble = $l10n->t('%1$s poked you at %2$s', $params['source_name'], $sitename);
$epreamble = $l10n->t('%1$s [url=%2$s]poked you[/url].',
'[url='.$params['source_link'].']'.$params['source_name'].'[/url]',
$params['link']
);
$subject = str_replace('poked', $l10n->t($params['activity']), $subject);
$preamble = str_replace('poked', $l10n->t($params['activity']), $preamble);
$epreamble = str_replace('poked', $l10n->t($params['activity']), $epreamble);
$sitelink = $l10n->t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf($sitelink, $siteurl);
$hsitelink = sprintf($sitelink, '<a href="'.$siteurl.'">'.$sitename.'</a>');
$itemlink = $params['link'];
break;
case Model\Notification\Type::INTRO:
$itemlink = $params['link'];
$subject = $l10n->t('%s Introduction received', $subjectPrefix);

View file

@ -164,15 +164,6 @@ final class Activity
*/
const ANNOUNCE = ActivityNamespace::ACTIVITY2 . 'Announce';
/**
* Pokes an user.
*
* @see https://github.com/friendica/friendica/wiki/ActivityStreams#activity_poke
* @var string
*/
const POKE = ActivityNamespace::ZOT . '/activity/poke';
const O_UNFOLLOW = ActivityNamespace::OSTATUS . '/unfollow';
const O_UNFAVOURITE = ActivityNamespace::OSTATUS . '/unfavorite';

View file

@ -103,8 +103,6 @@ class Delivery
$success = ActivityPub\Transmitter::sendContactSuggestion($uid, $inbox, $item_id);
} elseif ($cmd == WorkerDelivery::RELOCATION) {
// @todo Implementation pending
} elseif ($cmd == WorkerDelivery::POKE) {
// Implementation not planned
} elseif ($cmd == WorkerDelivery::REMOVAL) {
$success = ActivityPub\Transmitter::sendProfileDeletion($uid, $inbox);
} elseif ($cmd == WorkerDelivery::PROFILEUPDATE) {

View file

@ -1577,61 +1577,6 @@ class DFRN
}
}
/**
* Send a "poke"
*
* @param array $item The new item record
* @param array $importer Record of the importer user mixed with contact of the content
* @return void
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @todo set proper type-hints (array?)
*/
private static function doPoke(array $item, array $importer)
{
$verb = urldecode(substr($item['verb'], strpos($item['verb'], '#')+1));
if (!$verb) {
return;
}
$xo = XML::parseString($item['object']);
if (($xo->type == Activity\ObjectType::PERSON) && ($xo->id)) {
// somebody was poked/prodded. Was it me?
$Blink = '';
foreach ($xo->link as $l) {
$atts = $l->attributes();
switch ($atts['rel']) {
case 'alternate':
$Blink = $atts['href'];
break;
default:
break;
}
}
if ($Blink && Strings::compareLink($Blink, DI::baseUrl() . '/profile/' . $importer['nickname'])) {
$author = DBA::selectFirst('contact', ['id', 'name', 'thumb', 'url'], ['id' => $item['author-id']]);
$parent = Post::selectFirst(['id'], ['uri' => $item['thr-parent'], 'uid' => $importer['importer_uid']]);
$item['parent'] = $parent['id'];
// send a notification
DI::notify()->createFromArray(
[
'type' => Notification\Type::POKE,
'otype' => Notification\ObjectType::PERSON,
'activity' => $verb,
'verb' => $item['verb'],
'uid' => $importer['importer_uid'],
'cid' => $author['id'],
'item' => $item,
'link' => DI::baseUrl() . '/display/' . urlencode($item['guid']),
]
);
}
}
}
/**
* Processes several actions, depending on the verb
*
@ -2155,11 +2100,6 @@ class DFRN
if ($item['uid'] == 0) {
Item::distribute($posted_id);
}
if (stristr($item['verb'], Activity::POKE)) {
$item['id'] = $posted_id;
self::doPoke($item, $importer);
}
}
}

View file

@ -45,7 +45,6 @@ class Delivery
const RELOCATION = 'relocate';
const DELETION = 'drop';
const POST = 'wall-new';
const POKE = 'poke';
const REMOVAL = 'removeme';
const PROFILEUPDATE = 'profileupdate';
@ -247,7 +246,7 @@ class Delivery
*/
private static function setFailedQueue(string $cmd, array $item)
{
if (!in_array($cmd, [Delivery::POST, Delivery::POKE])) {
if ($cmd != Delivery::POST) {
return;
}
@ -326,7 +325,7 @@ class Delivery
if ($public_dfrn) {
Logger::info('Relay delivery to ' . $contact["url"] . ' with guid ' . $target_item["guid"] . ' returns ' . $deliver_status);
if (in_array($cmd, [Delivery::POST, Delivery::POKE])) {
if ($cmd == Delivery::POST) {
if (($deliver_status >= 200) && ($deliver_status <= 299)) {
Model\Post\DeliveryData::incrementQueueDone($target_item['uri-id'], $protocol);
@ -356,7 +355,7 @@ class Delivery
Model\GServer::setProtocol($contact['gsid'] ?? 0, $protocol);
if (in_array($cmd, [Delivery::POST, Delivery::POKE])) {
if ($cmd == Delivery::POST) {
Model\Post\DeliveryData::incrementQueueDone($target_item['uri-id'], $protocol);
}
} else {
@ -364,7 +363,7 @@ class Delivery
Model\Contact::markForArchival($contact);
Logger::info('Delivery failed: defer message', ['id' => ($target_item['guid'] ?? '') ?: $target_item['id']]);
if (!Worker::defer() && in_array($cmd, [Delivery::POST, Delivery::POKE])) {
if (!Worker::defer() && $cmd == Delivery::POST) {
Model\Post\DeliveryData::incrementQueueFailed($target_item['uri-id']);
}
}
@ -443,7 +442,7 @@ class Delivery
Model\GServer::setProtocol($contact['gsid'] ?? 0, Model\Post\DeliveryData::DIASPORA);
if (in_array($cmd, [Delivery::POST, Delivery::POKE])) {
if ($cmd == Delivery::POST) {
Model\Post\DeliveryData::incrementQueueDone($target_item['uri-id'], Model\Post\DeliveryData::DIASPORA);
}
} else {
@ -458,10 +457,10 @@ class Delivery
if (empty($contact['contact-type']) || ($contact['contact-type'] != Model\Contact::TYPE_RELAY)) {
Logger::info('Delivery failed: defer message', ['id' => ($target_item['guid'] ?? '') ?: $target_item['id']]);
// defer message for redelivery
if (!Worker::defer() && in_array($cmd, [Delivery::POST, Delivery::POKE])) {
if (!Worker::defer() && $cmd == Delivery::POST) {
Model\Post\DeliveryData::incrementQueueFailed($target_item['uri-id']);
}
} elseif (in_array($cmd, [Delivery::POST, Delivery::POKE])) {
} elseif ($cmd == Delivery::POST) {
Model\Post\DeliveryData::incrementQueueFailed($target_item['uri-id']);
}
}
@ -490,7 +489,7 @@ class Delivery
return;
}
if (!in_array($cmd, [self::POST, self::POKE])) {
if ($cmd != self::POST) {
return;
}

View file

@ -467,7 +467,7 @@ class Notifier
Hook::callAll('notifier_end', $target_item);
// Workaround for pure connector posts
if (in_array($cmd, [Delivery::POST, Delivery::POKE])) {
if ($cmd == Delivery::POST) {
if ($delivery_queue_count == 0) {
Post\DeliveryData::incrementQueueDone($target_item['uri-id']);
$delivery_queue_count = 1;

View file

@ -372,7 +372,6 @@ return [
'/{id:\d+}/conversations' => [Module\Contact\Conversations::class, [R::GET]],
'/{id:\d+}/contacts[/{type}]' => [Module\Contact\Contacts::class, [R::GET]],
'/{id:\d+}/media' => [Module\Contact\Media::class, [R::GET]],
'/{id:\d+}/poke' => [Module\Contact\Poke::class, [R::GET, R::POST]],
'/{id:\d+}/posts' => [Module\Contact\Posts::class, [R::GET]],
'/{id:\d+}/revoke' => [Module\Contact\Revoke::class, [R::GET, R::POST]],
'/archived' => [Module\Contact::class, [R::GET]],

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 2022.09-dev\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-08 12:31-0400\n"
"POT-Creation-Date: 2022-08-09 13:22-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -45,8 +45,8 @@ msgstr ""
#: mod/cal.php:243 mod/events.php:374 src/Content/Nav.php:196
#: src/Content/Nav.php:260 src/Module/BaseProfile.php:84
#: src/Module/BaseProfile.php:95 view/theme/frio/theme.php:234
#: view/theme/frio/theme.php:238
#: src/Module/BaseProfile.php:95 view/theme/frio/theme.php:224
#: view/theme/frio/theme.php:228
msgid "Events"
msgstr ""
@ -165,7 +165,7 @@ msgid "Save"
msgstr ""
#: mod/editpost.php:92 mod/photos.php:1338 src/Content/Conversation.php:338
#: src/Module/Contact/Poke.php:176 src/Object/Post.php:993
#: src/Object/Post.php:993
msgid "Loading..."
msgstr ""
@ -408,7 +408,7 @@ msgstr ""
#: mod/photos.php:921 mod/photos.php:1025 mod/photos.php:1295
#: mod/photos.php:1336 mod/photos.php:1392 mod/photos.php:1466
#: src/Module/Admin/Item/Source.php:60 src/Module/Contact/Advanced.php:132
#: src/Module/Contact/Poke.php:177 src/Module/Contact/Profile.php:327
#: src/Module/Contact/Profile.php:327
#: src/Module/Debug/ActivityPubConversion.php:140
#: src/Module/Debug/Babel.php:313 src/Module/Debug/Localtime.php:64
#: src/Module/Debug/Probe.php:54 src/Module/Debug/WebFinger.php:51
@ -436,7 +436,7 @@ msgid "Failed to remove event"
msgstr ""
#: mod/fbrowser.php:61 src/Content/Nav.php:194 src/Module/BaseProfile.php:64
#: view/theme/frio/theme.php:232
#: view/theme/frio/theme.php:222
msgid "Photos"
msgstr ""
@ -469,8 +469,8 @@ msgstr ""
msgid "OStatus support is disabled. Contact can't be added."
msgstr ""
#: mod/follow.php:138 src/Content/Item.php:459 src/Content/Widget.php:80
#: src/Model/Contact.php:1114 src/Model/Contact.php:1126
#: mod/follow.php:138 src/Content/Item.php:397 src/Content/Widget.php:80
#: src/Model/Contact.php:1109 src/Model/Contact.php:1120
#: view/theme/vier/theme.php:181
msgid "Connect/Follow"
msgstr ""
@ -717,7 +717,7 @@ msgstr ""
msgid "Discard"
msgstr ""
#: mod/message.php:133 src/Content/Nav.php:285 view/theme/frio/theme.php:239
#: mod/message.php:133 src/Content/Nav.php:285 view/theme/frio/theme.php:229
msgid "Messages"
msgstr ""
@ -1131,7 +1131,7 @@ msgstr ""
msgid "Contact not found."
msgstr ""
#: mod/removeme.php:65 src/Navigation/Notifications/Repository/Notify.php:483
#: mod/removeme.php:65 src/Navigation/Notifications/Repository/Notify.php:464
msgid "[Friendica System Notify]"
msgstr ""
@ -1411,15 +1411,15 @@ msgstr ""
msgid "Friend Suggestions"
msgstr ""
#: mod/tagger.php:78 src/Content/Item.php:354 src/Model/Item.php:2769
#: mod/tagger.php:78 src/Content/Item.php:297 src/Model/Item.php:2765
msgid "photo"
msgstr ""
#: mod/tagger.php:78 src/Content/Item.php:348 src/Content/Item.php:358
#: mod/tagger.php:78 src/Content/Item.php:291 src/Content/Item.php:301
msgid "status"
msgstr ""
#: mod/tagger.php:111 src/Content/Item.php:368
#: mod/tagger.php:111 src/Content/Item.php:311
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr ""
@ -2292,55 +2292,50 @@ msgstr ""
msgid "show more"
msgstr ""
#: src/Content/Item.php:306
#, php-format
msgid "%1$s poked %2$s"
msgstr ""
#: src/Content/Item.php:345 src/Model/Item.php:2767
#: src/Content/Item.php:288 src/Model/Item.php:2763
msgid "event"
msgstr ""
#: src/Content/Item.php:438 view/theme/frio/theme.php:260
#: src/Content/Item.php:380 view/theme/frio/theme.php:250
msgid "Follow Thread"
msgstr ""
#: src/Content/Item.php:439 src/Model/Contact.php:1119
#: src/Content/Item.php:381 src/Model/Contact.php:1114
msgid "View Status"
msgstr ""
#: src/Content/Item.php:440 src/Content/Item.php:462 src/Model/Contact.php:1053
#: src/Model/Contact.php:1111 src/Model/Contact.php:1120
#: src/Content/Item.php:382 src/Content/Item.php:400 src/Model/Contact.php:1052
#: src/Model/Contact.php:1106 src/Model/Contact.php:1115
#: src/Module/Directory.php:158 src/Module/Settings/Profile/Index.php:225
msgid "View Profile"
msgstr ""
#: src/Content/Item.php:441 src/Model/Contact.php:1121
#: src/Content/Item.php:383 src/Model/Contact.php:1116
msgid "View Photos"
msgstr ""
#: src/Content/Item.php:442 src/Model/Contact.php:1112
#: src/Model/Contact.php:1122
#: src/Content/Item.php:384 src/Model/Contact.php:1107
#: src/Model/Contact.php:1117
msgid "Network Posts"
msgstr ""
#: src/Content/Item.php:443 src/Model/Contact.php:1113
#: src/Model/Contact.php:1123
#: src/Content/Item.php:385 src/Model/Contact.php:1108
#: src/Model/Contact.php:1118
msgid "View Contact"
msgstr ""
#: src/Content/Item.php:444 src/Model/Contact.php:1124
#: src/Content/Item.php:386 src/Model/Contact.php:1119
msgid "Send PM"
msgstr ""
#: src/Content/Item.php:445 src/Module/Admin/Blocklist/Contact.php:100
#: src/Content/Item.php:387 src/Module/Admin/Blocklist/Contact.php:100
#: src/Module/Admin/Users/Active.php:140 src/Module/Admin/Users/Index.php:154
#: src/Module/Contact.php:398 src/Module/Contact/Profile.php:348
#: src/Module/Contact/Profile.php:449
msgid "Block"
msgstr ""
#: src/Content/Item.php:446 src/Module/Contact.php:399
#: src/Content/Item.php:388 src/Module/Contact.php:399
#: src/Module/Contact/Profile.php:349 src/Module/Contact/Profile.php:457
#: src/Module/Notifications/Introductions.php:132
#: src/Module/Notifications/Introductions.php:204
@ -2348,14 +2343,10 @@ msgstr ""
msgid "Ignore"
msgstr ""
#: src/Content/Item.php:450 src/Object/Post.php:455
#: src/Content/Item.php:392 src/Object/Post.php:455
msgid "Languages"
msgstr ""
#: src/Content/Item.php:454 src/Model/Contact.php:1125
msgid "Poke"
msgstr ""
#: src/Content/Nav.php:90
msgid "Nothing new here"
msgstr ""
@ -2391,41 +2382,41 @@ msgstr ""
#: src/Content/Nav.php:192 src/Module/BaseProfile.php:56
#: src/Module/Contact.php:433 src/Module/Contact/Profile.php:380
#: src/Module/Settings/TwoFactor/Index.php:120 view/theme/frio/theme.php:230
#: src/Module/Settings/TwoFactor/Index.php:120 view/theme/frio/theme.php:220
msgid "Status"
msgstr ""
#: src/Content/Nav.php:192 src/Content/Nav.php:275
#: view/theme/frio/theme.php:230
#: view/theme/frio/theme.php:220
msgid "Your posts and conversations"
msgstr ""
#: src/Content/Nav.php:193 src/Module/BaseProfile.php:48
#: src/Module/BaseSettings.php:55 src/Module/Contact.php:457
#: src/Module/Contact/Profile.php:382 src/Module/Profile/Profile.php:241
#: src/Module/Welcome.php:57 view/theme/frio/theme.php:231
#: src/Module/Welcome.php:57 view/theme/frio/theme.php:221
msgid "Profile"
msgstr ""
#: src/Content/Nav.php:193 view/theme/frio/theme.php:231
#: src/Content/Nav.php:193 view/theme/frio/theme.php:221
msgid "Your profile page"
msgstr ""
#: src/Content/Nav.php:194 view/theme/frio/theme.php:232
#: src/Content/Nav.php:194 view/theme/frio/theme.php:222
msgid "Your photos"
msgstr ""
#: src/Content/Nav.php:195 src/Module/BaseProfile.php:72
#: src/Module/BaseProfile.php:75 src/Module/Contact.php:449
#: view/theme/frio/theme.php:233
#: view/theme/frio/theme.php:223
msgid "Media"
msgstr ""
#: src/Content/Nav.php:195 view/theme/frio/theme.php:233
#: src/Content/Nav.php:195 view/theme/frio/theme.php:223
msgid "Your postings with media"
msgstr ""
#: src/Content/Nav.php:196 view/theme/frio/theme.php:234
#: src/Content/Nav.php:196 view/theme/frio/theme.php:224
msgid "Your events"
msgstr ""
@ -2491,7 +2482,7 @@ msgstr ""
#: src/Content/Nav.php:237 src/Content/Nav.php:296
#: src/Content/Text/HTML.php:899 src/Module/BaseProfile.php:125
#: src/Module/BaseProfile.php:128 src/Module/Contact.php:370
#: src/Module/Contact.php:464 view/theme/frio/theme.php:241
#: src/Module/Contact.php:464 view/theme/frio/theme.php:231
msgid "Contacts"
msgstr ""
@ -2504,7 +2495,7 @@ msgid "Conversations on this and other servers"
msgstr ""
#: src/Content/Nav.php:260 src/Module/BaseProfile.php:87
#: src/Module/BaseProfile.php:98 view/theme/frio/theme.php:238
#: src/Module/BaseProfile.php:98 view/theme/frio/theme.php:228
msgid "Events and Calendar"
msgstr ""
@ -2534,11 +2525,11 @@ msgstr ""
msgid "Terms of Service of this Friendica instance"
msgstr ""
#: src/Content/Nav.php:273 view/theme/frio/theme.php:237
#: src/Content/Nav.php:273 view/theme/frio/theme.php:227
msgid "Network"
msgstr ""
#: src/Content/Nav.php:273 view/theme/frio/theme.php:237
#: src/Content/Nav.php:273 view/theme/frio/theme.php:227
msgid "Conversations from your friends"
msgstr ""
@ -2563,7 +2554,7 @@ msgstr ""
msgid "Mark all system notifications as seen"
msgstr ""
#: src/Content/Nav.php:285 view/theme/frio/theme.php:239
#: src/Content/Nav.php:285 view/theme/frio/theme.php:229
msgid "Private mail"
msgstr ""
@ -2585,15 +2576,15 @@ msgstr ""
#: src/Content/Nav.php:294 src/Module/Admin/Addons/Details.php:114
#: src/Module/Admin/Themes/Details.php:93 src/Module/BaseSettings.php:122
#: src/Module/Welcome.php:52 view/theme/frio/theme.php:240
#: src/Module/Welcome.php:52 view/theme/frio/theme.php:230
msgid "Settings"
msgstr ""
#: src/Content/Nav.php:294 view/theme/frio/theme.php:240
#: src/Content/Nav.php:294 view/theme/frio/theme.php:230
msgid "Account settings"
msgstr ""
#: src/Content/Nav.php:296 view/theme/frio/theme.php:241
#: src/Content/Nav.php:296 view/theme/frio/theme.php:231
msgid "Manage/edit friends and contacts"
msgstr ""
@ -2648,8 +2639,8 @@ msgid ""
"<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s"
msgstr ""
#: src/Content/Text/BBCode.php:1213 src/Model/Item.php:3343
#: src/Model/Item.php:3349 src/Model/Item.php:3350
#: src/Content/Text/BBCode.php:1213 src/Model/Item.php:3339
#: src/Model/Item.php:3345 src/Model/Item.php:3346
msgid "Link to source"
msgstr ""
@ -2804,7 +2795,7 @@ msgstr ""
msgid "Organisations"
msgstr ""
#: src/Content/Widget.php:523 src/Model/Contact.php:1547
#: src/Content/Widget.php:523 src/Model/Contact.php:1541
msgid "News"
msgstr ""
@ -3396,54 +3387,6 @@ msgstr ""
msgid "Dec"
msgstr ""
#: src/Core/L10n.php:445
msgid "poke"
msgstr ""
#: src/Core/L10n.php:445
msgid "poked"
msgstr ""
#: src/Core/L10n.php:446
msgid "ping"
msgstr ""
#: src/Core/L10n.php:446
msgid "pinged"
msgstr ""
#: src/Core/L10n.php:447
msgid "prod"
msgstr ""
#: src/Core/L10n.php:447
msgid "prodded"
msgstr ""
#: src/Core/L10n.php:448
msgid "slap"
msgstr ""
#: src/Core/L10n.php:448
msgid "slapped"
msgstr ""
#: src/Core/L10n.php:449
msgid "finger"
msgstr ""
#: src/Core/L10n.php:449
msgid "fingered"
msgstr ""
#: src/Core/L10n.php:450
msgid "rebuff"
msgstr ""
#: src/Core/L10n.php:450
msgid "rebuffed"
msgstr ""
#: src/Core/Renderer.php:89 src/Core/Renderer.php:118 src/Core/Renderer.php:145
#: src/Core/Renderer.php:179 src/Render/FriendicaSmartyEngine.php:57
msgid ""
@ -3640,81 +3583,81 @@ msgstr ""
msgid "Legacy module file not found: %s"
msgstr ""
#: src/Model/Contact.php:1115 src/Model/Contact.php:1127
#: src/Model/Contact.php:1110 src/Model/Contact.php:1121
msgid "UnFollow"
msgstr ""
#: src/Model/Contact.php:1133 src/Module/Admin/Users/Pending.php:107
#: src/Model/Contact.php:1127 src/Module/Admin/Users/Pending.php:107
#: src/Module/Notifications/Introductions.php:130
#: src/Module/Notifications/Introductions.php:202
msgid "Approve"
msgstr ""
#: src/Model/Contact.php:1543
#: src/Model/Contact.php:1537
msgid "Organisation"
msgstr ""
#: src/Model/Contact.php:1551
#: src/Model/Contact.php:1545
msgid "Forum"
msgstr ""
#: src/Model/Contact.php:2640
#: src/Model/Contact.php:2634
msgid "Disallowed profile URL."
msgstr ""
#: src/Model/Contact.php:2645 src/Module/Friendica.php:81
#: src/Model/Contact.php:2639 src/Module/Friendica.php:81
msgid "Blocked domain"
msgstr ""
#: src/Model/Contact.php:2650
#: src/Model/Contact.php:2644
msgid "Connect URL missing."
msgstr ""
#: src/Model/Contact.php:2659
#: src/Model/Contact.php:2653
msgid ""
"The contact could not be added. Please check the relevant network "
"credentials in your Settings -> Social Networks page."
msgstr ""
#: src/Model/Contact.php:2701
#: src/Model/Contact.php:2695
msgid "The profile address specified does not provide adequate information."
msgstr ""
#: src/Model/Contact.php:2703
#: src/Model/Contact.php:2697
msgid "No compatible communication protocols or feeds were discovered."
msgstr ""
#: src/Model/Contact.php:2706
#: src/Model/Contact.php:2700
msgid "An author or name was not found."
msgstr ""
#: src/Model/Contact.php:2709
#: src/Model/Contact.php:2703
msgid "No browser URL could be matched to this address."
msgstr ""
#: src/Model/Contact.php:2712
#: src/Model/Contact.php:2706
msgid ""
"Unable to match @-style Identity Address with a known protocol or email "
"contact."
msgstr ""
#: src/Model/Contact.php:2713
#: src/Model/Contact.php:2707
msgid "Use mailto: in front of address to force email check."
msgstr ""
#: src/Model/Contact.php:2719
#: src/Model/Contact.php:2713
msgid ""
"The profile address specified belongs to a network which has been disabled "
"on this site."
msgstr ""
#: src/Model/Contact.php:2724
#: src/Model/Contact.php:2718
msgid ""
"Limited profile. This person will be unable to receive direct/personal "
"notifications from you."
msgstr ""
#: src/Model/Contact.php:2783
#: src/Model/Contact.php:2777
msgid "Unable to retrieve contact information."
msgstr ""
@ -3834,66 +3777,66 @@ msgstr ""
msgid "Edit groups"
msgstr ""
#: src/Model/Item.php:1865
#: src/Model/Item.php:1861
#, php-format
msgid "Detected languages in this post:\\n%s"
msgstr ""
#: src/Model/Item.php:2771
#: src/Model/Item.php:2767
msgid "activity"
msgstr ""
#: src/Model/Item.php:2773
#: src/Model/Item.php:2769
msgid "comment"
msgstr ""
#: src/Model/Item.php:2776
#: src/Model/Item.php:2772
msgid "post"
msgstr ""
#: src/Model/Item.php:2892
#: src/Model/Item.php:2888
#, php-format
msgid "Content warning: %s"
msgstr ""
#: src/Model/Item.php:3255
#: src/Model/Item.php:3251
msgid "bytes"
msgstr ""
#: src/Model/Item.php:3286
#: src/Model/Item.php:3282
#, php-format
msgid "%2$s (%3$d%%, %1$d vote)"
msgid_plural "%2$s (%3$d%%, %1$d votes)"
msgstr[0] ""
msgstr[1] ""
#: src/Model/Item.php:3288
#: src/Model/Item.php:3284
#, php-format
msgid "%2$s (%1$d vote)"
msgid_plural "%2$s (%1$d votes)"
msgstr[0] ""
msgstr[1] ""
#: src/Model/Item.php:3293
#: src/Model/Item.php:3289
#, php-format
msgid "%d voter. Poll end: %s"
msgid_plural "%d voters. Poll end: %s"
msgstr[0] ""
msgstr[1] ""
#: src/Model/Item.php:3295
#: src/Model/Item.php:3291
#, php-format
msgid "%d voter."
msgid_plural "%d voters."
msgstr[0] ""
msgstr[1] ""
#: src/Model/Item.php:3297
#: src/Model/Item.php:3293
#, php-format
msgid "Poll end: %s"
msgstr ""
#: src/Model/Item.php:3331 src/Model/Item.php:3332
#: src/Model/Item.php:3327 src/Model/Item.php:3328
msgid "View on separate page"
msgstr ""
@ -7051,30 +6994,6 @@ msgid_plural "Contacts (%s)"
msgstr[0] ""
msgstr[1] ""
#: src/Module/Contact/Poke.php:135
msgid "Error while sending poke, please retry."
msgstr ""
#: src/Module/Contact/Poke.php:148 src/Module/Search/Acl.php:55
msgid "You must be logged in to use this module."
msgstr ""
#: src/Module/Contact/Poke.php:171
msgid "Poke/Prod"
msgstr ""
#: src/Module/Contact/Poke.php:172
msgid "poke, prod or do other things to somebody"
msgstr ""
#: src/Module/Contact/Poke.php:174
msgid "Choose what you wish to do to recipient"
msgstr ""
#: src/Module/Contact/Poke.php:175
msgid "Make this post private"
msgstr ""
#: src/Module/Contact/Profile.php:127
msgid "Failed to update contact record."
msgstr ""
@ -8694,6 +8613,10 @@ msgstr ""
msgid "Your Webfinger address or profile URL:"
msgstr ""
#: src/Module/Search/Acl.php:55
msgid "You must be logged in to use this module."
msgstr ""
#: src/Module/Search/Index.php:69
msgid "Only logged in users are permitted to perform a search."
msgstr ""
@ -9316,116 +9239,112 @@ msgstr ""
msgid "You are tagged in a post"
msgstr ""
#: src/Module/Settings/Account.php:620
msgid "You are poked/prodded/etc. in a post"
msgstr ""
#: src/Module/Settings/Account.php:622
#: src/Module/Settings/Account.php:621
msgid "Create a desktop notification when:"
msgstr ""
#: src/Module/Settings/Account.php:623
#: src/Module/Settings/Account.php:622
msgid "Someone tagged you"
msgstr ""
#: src/Module/Settings/Account.php:624
#: src/Module/Settings/Account.php:623
msgid "Someone directly commented on your post"
msgstr ""
#: src/Module/Settings/Account.php:625
#: src/Module/Settings/Account.php:624
msgid "Someone liked your content"
msgstr ""
#: src/Module/Settings/Account.php:625 src/Module/Settings/Account.php:626
#: src/Module/Settings/Account.php:624 src/Module/Settings/Account.php:625
msgid "Can only be enabled, when the direct comment notification is enabled."
msgstr ""
#: src/Module/Settings/Account.php:626
#: src/Module/Settings/Account.php:625
msgid "Someone shared your content"
msgstr ""
#: src/Module/Settings/Account.php:627
#: src/Module/Settings/Account.php:626
msgid "Someone commented in your thread"
msgstr ""
#: src/Module/Settings/Account.php:628
#: src/Module/Settings/Account.php:627
msgid "Someone commented in a thread where you commented"
msgstr ""
#: src/Module/Settings/Account.php:629
#: src/Module/Settings/Account.php:628
msgid "Someone commented in a thread where you interacted"
msgstr ""
#: src/Module/Settings/Account.php:631
#: src/Module/Settings/Account.php:630
msgid "Activate desktop notifications"
msgstr ""
#: src/Module/Settings/Account.php:631
#: src/Module/Settings/Account.php:630
msgid "Show desktop popup on new notifications"
msgstr ""
#: src/Module/Settings/Account.php:635
#: src/Module/Settings/Account.php:634
msgid "Text-only notification emails"
msgstr ""
#: src/Module/Settings/Account.php:637
#: src/Module/Settings/Account.php:636
msgid "Send text only notification emails, without the html part"
msgstr ""
#: src/Module/Settings/Account.php:641
#: src/Module/Settings/Account.php:640
msgid "Show detailled notifications"
msgstr ""
#: src/Module/Settings/Account.php:643
#: src/Module/Settings/Account.php:642
msgid ""
"Per default, notifications are condensed to a single notification per item. "
"When enabled every notification is displayed."
msgstr ""
#: src/Module/Settings/Account.php:647
#: src/Module/Settings/Account.php:646
msgid "Show notifications of ignored contacts"
msgstr ""
#: src/Module/Settings/Account.php:649
#: src/Module/Settings/Account.php:648
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 ""
#: src/Module/Settings/Account.php:652
#: src/Module/Settings/Account.php:651
msgid "Advanced Account/Page Type Settings"
msgstr ""
#: src/Module/Settings/Account.php:653
#: src/Module/Settings/Account.php:652
msgid "Change the behaviour of this account for special situations"
msgstr ""
#: src/Module/Settings/Account.php:656
#: src/Module/Settings/Account.php:655
msgid "Import Contacts"
msgstr ""
#: src/Module/Settings/Account.php:657
#: src/Module/Settings/Account.php:656
msgid ""
"Upload a CSV file that contains the handle of your followed accounts in the "
"first column you exported from the old account."
msgstr ""
#: src/Module/Settings/Account.php:658
#: src/Module/Settings/Account.php:657
msgid "Upload File"
msgstr ""
#: src/Module/Settings/Account.php:661
#: src/Module/Settings/Account.php:660
msgid "Relocate"
msgstr ""
#: src/Module/Settings/Account.php:662
#: src/Module/Settings/Account.php:661
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 ""
#: src/Module/Settings/Account.php:663
#: src/Module/Settings/Account.php:662
msgid "Resend relocate message to contacts"
msgstr ""
@ -10554,7 +10473,7 @@ msgid "%1$s commented on your thread %2$s"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:222
#: src/Navigation/Notifications/Repository/Notify.php:736
#: src/Navigation/Notifications/Repository/Notify.php:717
msgid "[Friendica:Notify]"
msgstr ""
@ -10598,7 +10517,7 @@ msgid "%1$s commented on their %2$s %3$s"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:334
#: src/Navigation/Notifications/Repository/Notify.php:770
#: src/Navigation/Notifications/Repository/Notify.php:751
#, php-format
msgid "%1$s Comment to conversation #%2$d by %3$s"
msgstr ""
@ -10610,8 +10529,7 @@ msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:340
#: src/Navigation/Notifications/Repository/Notify.php:355
#: src/Navigation/Notifications/Repository/Notify.php:374
#: src/Navigation/Notifications/Repository/Notify.php:785
#: src/Navigation/Notifications/Repository/Notify.php:766
#, php-format
msgid "Please visit %s to view and/or reply to the conversation."
msgstr ""
@ -10631,127 +10549,112 @@ msgstr ""
msgid "%1$s posted to [url=%2$s]your wall[/url]"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:362
#, php-format
msgid "%1$s %2$s poked you"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:364
#, php-format
msgid "%1$s poked you at %2$s"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:365
#, php-format
msgid "%1$s [url=%2$s]poked you[/url]."
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:382
#: src/Navigation/Notifications/Repository/Notify.php:363
#, php-format
msgid "%s Introduction received"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:384
#: src/Navigation/Notifications/Repository/Notify.php:365
#, php-format
msgid "You've received an introduction from '%1$s' at %2$s"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:385
#: src/Navigation/Notifications/Repository/Notify.php:366
#, php-format
msgid "You've received [url=%1$s]an introduction[/url] from %2$s."
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:390
#: src/Navigation/Notifications/Repository/Notify.php:436
#: src/Navigation/Notifications/Repository/Notify.php:371
#: src/Navigation/Notifications/Repository/Notify.php:417
#, php-format
msgid "You may visit their profile at %s"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:392
#: src/Navigation/Notifications/Repository/Notify.php:373
#, php-format
msgid "Please visit %s to approve or reject the introduction."
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:399
#: src/Navigation/Notifications/Repository/Notify.php:380
#, php-format
msgid "%s A new person is sharing with you"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:401
#: src/Navigation/Notifications/Repository/Notify.php:402
#: src/Navigation/Notifications/Repository/Notify.php:382
#: src/Navigation/Notifications/Repository/Notify.php:383
#, php-format
msgid "%1$s is sharing with you at %2$s"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:409
#: src/Navigation/Notifications/Repository/Notify.php:390
#, php-format
msgid "%s You have a new follower"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:411
#: src/Navigation/Notifications/Repository/Notify.php:412
#: src/Navigation/Notifications/Repository/Notify.php:392
#: src/Navigation/Notifications/Repository/Notify.php:393
#, php-format
msgid "You have a new follower at %2$s : %1$s"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:425
#: src/Navigation/Notifications/Repository/Notify.php:406
#, php-format
msgid "%s Friend suggestion received"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:427
#: src/Navigation/Notifications/Repository/Notify.php:408
#, php-format
msgid "You've received a friend suggestion from '%1$s' at %2$s"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:428
#: src/Navigation/Notifications/Repository/Notify.php:409
#, php-format
msgid "You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s."
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:434
#: src/Navigation/Notifications/Repository/Notify.php:415
msgid "Name:"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:435
#: src/Navigation/Notifications/Repository/Notify.php:416
msgid "Photo:"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:438
#: src/Navigation/Notifications/Repository/Notify.php:419
#, php-format
msgid "Please visit %s to approve or reject the suggestion."
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:446
#: src/Navigation/Notifications/Repository/Notify.php:461
#: src/Navigation/Notifications/Repository/Notify.php:427
#: src/Navigation/Notifications/Repository/Notify.php:442
#, php-format
msgid "%s Connection accepted"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:448
#: src/Navigation/Notifications/Repository/Notify.php:463
#: src/Navigation/Notifications/Repository/Notify.php:429
#: src/Navigation/Notifications/Repository/Notify.php:444
#, php-format
msgid "'%1$s' has accepted your connection request at %2$s"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:449
#: src/Navigation/Notifications/Repository/Notify.php:464
#: src/Navigation/Notifications/Repository/Notify.php:430
#: src/Navigation/Notifications/Repository/Notify.php:445
#, php-format
msgid "%2$s has accepted your [url=%1$s]connection request[/url]."
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:454
#: src/Navigation/Notifications/Repository/Notify.php:435
msgid ""
"You are now mutual friends and may exchange status updates, photos, and "
"email without restriction."
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:456
#: src/Navigation/Notifications/Repository/Notify.php:437
#, php-format
msgid "Please visit %s if you wish to make any changes to this relationship."
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:469
#: src/Navigation/Notifications/Repository/Notify.php:450
#, php-format
msgid ""
"'%1$s' has chosen to accept you a fan, which restricts some forms of "
@ -10760,33 +10663,33 @@ msgid ""
"automatically."
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:471
#: src/Navigation/Notifications/Repository/Notify.php:452
#, php-format
msgid ""
"'%1$s' may choose to extend this into a two-way or more permissive "
"relationship in the future."
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:473
#: src/Navigation/Notifications/Repository/Notify.php:454
#, php-format
msgid "Please visit %s if you wish to make any changes to this relationship."
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:483
#: src/Navigation/Notifications/Repository/Notify.php:464
msgid "registration request"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:485
#: src/Navigation/Notifications/Repository/Notify.php:466
#, php-format
msgid "You've received a registration request from '%1$s' at %2$s"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:486
#: src/Navigation/Notifications/Repository/Notify.php:467
#, php-format
msgid "You've received a [url=%1$s]registration request[/url] from %2$s."
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:491
#: src/Navigation/Notifications/Repository/Notify.php:472
#, php-format
msgid ""
"Full Name:\t%s\n"
@ -10794,17 +10697,17 @@ msgid ""
"Login Name:\t%s (%s)"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:497
#: src/Navigation/Notifications/Repository/Notify.php:478
#, php-format
msgid "Please visit %s to approve or reject the request."
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:764
#: src/Navigation/Notifications/Repository/Notify.php:745
#, php-format
msgid "%s %s tagged you"
msgstr ""
#: src/Navigation/Notifications/Repository/Notify.php:767
#: src/Navigation/Notifications/Repository/Notify.php:748
#, php-format
msgid "%s %s shared a new post"
msgstr ""
@ -11167,7 +11070,7 @@ msgstr ""
msgid "%1$d %2$s ago"
msgstr ""
#: src/Worker/Delivery.php:525
#: src/Worker/Delivery.php:524
msgid "(no subject)"
msgstr ""
@ -11365,11 +11268,11 @@ msgstr ""
msgid "Back to top"
msgstr ""
#: view/theme/frio/theme.php:212
#: view/theme/frio/theme.php:202
msgid "Guest"
msgstr ""
#: view/theme/frio/theme.php:215
#: view/theme/frio/theme.php:205
msgid "Visitor"
msgstr ""

View file

@ -1,11 +0,0 @@
<h2 class="heading">{{$title}}</h2>
<p>{{$desc nofilter}}</p>
<form id="poke-wrapper" action="contact/{{$id}}/poke" method="post">
{{include file="field_select.tpl" field=$verb}}
{{include file="field_checkbox.tpl" field=$private}}
<p class="text-right">
<button type="submit" class="btn btn-primary" name="submit" value="{{$submit}}" data-loading-text="{{$loading}}">{{$submit}}</button>
</p>
</form>

View file

@ -18,11 +18,10 @@
</div>
<div class="hover-card-actions right-aligned">
{{* here are the differnt actions like privat message, poke, delete and so on *}}
{{* here are the different actions like private message, delete and so on *}}
{{* @todo we have two different photo menus one for contacts and one for items at the network stream. We currently use the contact photo menu, so the items options are missing We need to move them *}}
<div class="hover-card-actions-social">
{{if $profile.actions.pm}}<a class="btn btn-labeled btn-primary btn-sm add-to-modal" href="{{$profile.actions.pm.1}}" aria-label="{{$profile.actions.pm.0}}"><i class="fa fa-envelope" aria-hidden="true" title="{{$profile.actions.pm.0}}"></i><span class="sr-only">{{$profile.actions.pm.0}}</span></a>{{/if}}
{{if $profile.actions.poke}}<a class="btn btn-labeled btn-primary btn-sm add-to-modal" href="{{$profile.actions.poke.1}}" aria-label="{{$profile.actions.poke.0}}"><i class="fa fa-heartbeat" aria-hidden="true" title="{{$profile.actions.poke.0}}"></i><span class="sr-only">{{$profile.actions.poke.0}}</span></a>{{/if}}
</div>
<div class="hover-card-actions-connection">
{{if $profile.actions.network}}<a class="btn btn-labeled btn-primary btn-sm" href="{{$profile.actions.network.1}}" aria-label="{{$profile.actions.network.0}}" title="{{$profile.actions.network.0}}"><i class="fa fa-cloud" aria-hidden="true"></i></a>{{/if}}

View file

@ -101,7 +101,6 @@
{{include file="field_intcheckbox.tpl" field=$notify5}}
{{include file="field_intcheckbox.tpl" field=$notify6}}
{{include file="field_intcheckbox.tpl" field=$notify7}}
{{include file="field_intcheckbox.tpl" field=$notify8}}
</div>
<div id="settings-notify-desc">{{$lbl_notify}}</div>

View file

@ -443,23 +443,6 @@ $(document).ready(function () {
});
});
$body.on("submit", ".modal-body #poke-wrapper", function (e) {
e.preventDefault();
let $form = $(this);
let $pokeSubmit = $form.find("button[type=submit]").button("loading");
$.post($form.attr("action"), $form.serialize(), "json")
.then(function (data) {
if (data.success) {
$("#modal").modal("hide");
}
})
.always(function () {
$pokeSubmit.button("reset");
});
});
if (!navigator.canShare || !navigator.canShare()) {
$('.button-browser-share').hide();
}

View file

@ -68,20 +68,20 @@ function is_modal() {
}
/**
* Array with modalpages
* Array with modal pages
*
* The array contains the page names of the pages
* which should displayed as modals
*
* @return array Pagenames as path
* @return array Page names as path
*/
function get_modalpage_list() {
//Arry of pages wich getting bootstrap modal dialogs
$modalpages = ['poke/',
'message/new',
'settings/oauth/add',
'events/new',
// 'fbrowser/image/'
//Array of pages which getting bootstrap modal dialogs
$modalpages = [
'message/new',
'settings/oauth/add',
'events/new',
// 'fbrowser/image/'
];
return $modalpages;

View file

@ -50,11 +50,6 @@
<i class="fa fa-envelope" aria-hidden="true"></i>
</button>
{{/if}}
{{if $contact.photo_menu.poke}}
<button type="button" class="contact-action-link btn-link" onclick="addToModal('{{$contact.photo_menu.poke.1}}'); return false;" data-toggle="tooltip" title="{{$contact.photo_menu.poke.0}}">
<i class="fa fa-heartbeat" aria-hidden="true"></i>
</button>
{{/if}}
{{if $contact.photo_menu.network}}
<a class="contact-action-link btn-link" href="{{$contact.photo_menu.network.1}}" data-toggle="tooltip" title="{{$contact.photo_menu.network.0}}">
<i class="fa fa-cloud" aria-hidden="true"></i>
@ -178,11 +173,6 @@ We use this part to filter the contacts with jquery.textcomplete *}}
<i class="fa fa-envelope" aria-hidden="true"></i>
</button>
{/if}
{if $photo_menu.poke}
<button type="button" class="contact-action-link btn-link" onclick="addToModal('{$photo_menu.poke.1}')" data-toggle="tooltip" title="{$photo_menu.poke.0}">
<i class="fa fa-heartbeat" aria-hidden="true"></i>
</button>
{/if}
{if $photo_menu.network}
<a class="contact-action-link btn-link" href="{$photo_menu.network.1}" data-toggle="tooltip" title="{$photo_menu.network.0}">
<i class="fa fa-cloud" aria-hidden="true"></i>

View file

@ -1,48 +0,0 @@
<div id="poke-wrapper">
<h3 class="heading">{{$title}}</h3>
<div id="poke-desc">{{$desc nofilter}}</div>
<form id="poke-form" action="poke" method="get">
<div id="poke-content-wrapper">
{{* The input field with the recipient name*}}
<div id="poke-recip-wrapper" class="form-group">
<label for="poke-recip">{{$clabel}}</label>
<input id="poke-recip" class="form-control" type="text" size="64" maxlength="255" value="{{$name}}" name="pokename" autocomplete="off" />
<input id="poke-recip-complete" type="hidden" value="{{$id}}" name="cid" />
<input id="poke-parent" type="hidden" value="{{$parent}}" name="parent" />
</div>
{{* The drop-down list with different actions *}}
<div id="poke-action-wrapper" class="form-group">
<label for="poke-verb-select">{{$choice}}</label>
<select name="verb" id="poke-verb-select" class="form-control">
{{foreach $verbs as $v}}
<option value="{{$v.0}}">{{$v.1}}</option>
{{/foreach}}
</select>
</div>
{{* The checkbox to select if the "poke message" should be private *}}
<div id="poke-private-desc" class="checkbox">
<input type="checkbox" id=poke-private-desc-checkbox" name="private" {{if $parent}}disabled="disabled"{{/if}} value="1" />
<label for="poke-private-desc-checkbox">{{$prv_desc}}</label>
</div>
</div>
<div id="poke-content-wrapper-end"></div>
<div id="poke-submit-wrapper">
<button class="btn btn-primary pull-right" type="submit" name="submit" value="{{$submit}}"><i class="fa fa-slideshare"></i>&nbsp;{{$submit}}</button>
</div>
<div id="poke-submit-wrapper-end"></div>
</form>
<div id="poke-wrapper-end"></div>
</div>

View file

@ -152,7 +152,6 @@
{{include file="field_intcheckbox.tpl" field=$notify5}}
{{include file="field_intcheckbox.tpl" field=$notify6}}
{{include file="field_intcheckbox.tpl" field=$notify7}}
{{include file="field_intcheckbox.tpl" field=$notify8}}
</div>
<div id="settings-notify-desc">{{$lbl_notify}}</div>

View file

@ -1,10 +1,26 @@
<?php
/*
/**
* @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* Name: frio
* Description: Bootstrap V3 theme. The theme is currently under construction, so it is far from finished. For further information have a look at the <a href="https://github.com/friendica/friendica/tree/develop/view/theme/frio/README.md">ReadMe</a>.
* Version: V.0.8.5
* Author: Rabuzarus <https://friendica.kommune4.de/profile/rabuzarus>
*
*/
use Friendica\App;
@ -105,7 +121,7 @@ function frio_item_photo_links(App $a, &$body_info)
/**
* Replace links of the item_photo_menu hook
*
* This function replaces the original poke and the message links
* This function replaces the original message links
* to call the addToModal javascript function so this pages can
* be loaded in a bootstrap modal
*
@ -115,7 +131,7 @@ function frio_item_photo_links(App $a, &$body_info)
function frio_item_photo_menu(App $a, &$arr)
{
foreach ($arr['menu'] as $k => $v) {
if (strpos($v, '/poke') === 0 || strpos($v, 'message/new/') === 0) {
if (strpos($v, 'message/new/') === 0) {
$v = 'javascript:addToModal(\'' . $v . '\'); return false;';
$arr['menu'][$k] = $v;
}
@ -125,7 +141,7 @@ function frio_item_photo_menu(App $a, &$arr)
/**
* Replace links of the contact_photo_menu
*
* This function replaces the original poke and the message links
* This function replaces the original message link
* to call the addToModal javascript function so this pages can
* be loaded in a bootstrap modal
* Additionally the profile, status and photo page links will be changed
@ -138,13 +154,7 @@ function frio_contact_photo_menu(App $a, &$args)
{
$cid = $args['contact']['id'];
if (!empty($args['menu']['poke'])) {
$pokelink = $args['menu']['poke'][1];
} else {
$pokelink = '';
}
if (!empty($args['menu']['poke'])) {
if (!empty($args['menu']['pm'])) {
$pmlink = $args['menu']['pm'][1];
} else {
$pmlink = '';
@ -166,13 +176,9 @@ function frio_contact_photo_menu(App $a, &$args)
}
}
// Add to pm and poke links a new key with the value 'modal'.
// Later we can make conditions in the corresponing templates (e.g.
// Add to pm link a new key with the value 'modal'.
// Later we can make conditions in the corresponding templates (e.g.
// contact_template.tpl)
if (strpos($pokelink, $cid . '/poke') !== false) {
$args['menu']['poke'][3] = 'modal';
}
if (strpos($pmlink, 'message/new/' . $cid) !== false) {
$args['menu']['pm'][3] = 'modal';
}

View file

@ -2721,13 +2721,6 @@ margin-left: 0px;
border: 1px solid #7C7D7B;
}
/* ========== */
/* = Poke = */
/* ========== */
#poke-recip {
float: none;
}
/* ================= */
/* = Notifications = */
/* ================= */