[vier] Add mute author server link in photo menu
This commit is contained in:
parent
6ecc9c4cba
commit
544ce206d7
7 changed files with 101 additions and 9 deletions
|
@ -50,6 +50,7 @@ use Friendica\Protocol\Activity;
|
||||||
use Friendica\Util\ACLFormatter;
|
use Friendica\Util\ACLFormatter;
|
||||||
use Friendica\Util\DateTimeFormat;
|
use Friendica\Util\DateTimeFormat;
|
||||||
use Friendica\Util\Emailer;
|
use Friendica\Util\Emailer;
|
||||||
|
use Friendica\Util\Network;
|
||||||
use Friendica\Util\ParseUrl;
|
use Friendica\Util\ParseUrl;
|
||||||
use Friendica\Util\Profiler;
|
use Friendica\Util\Profiler;
|
||||||
use Friendica\Util\Proxy;
|
use Friendica\Util\Proxy;
|
||||||
|
@ -367,7 +368,7 @@ class Item
|
||||||
{
|
{
|
||||||
$this->profiler->startRecording('rendering');
|
$this->profiler->startRecording('rendering');
|
||||||
$sub_link = $contact_url = $pm_url = $status_link = '';
|
$sub_link = $contact_url = $pm_url = $status_link = '';
|
||||||
$photos_link = $posts_link = $block_link = $ignore_link = '';
|
$photos_link = $posts_link = $block_link = $ignore_link = $collapse_link = $ignoreserver_link = '';
|
||||||
|
|
||||||
if ($this->userSession->getLocalUserId() && $this->userSession->getLocalUserId() == $item['uid'] && $item['gravity'] == ItemModel::GRAVITY_PARENT && !$item['self'] && !$item['mention']) {
|
if ($this->userSession->getLocalUserId() && $this->userSession->getLocalUserId() == $item['uid'] && $item['gravity'] == ItemModel::GRAVITY_PARENT && !$item['self'] && !$item['mention']) {
|
||||||
$sub_link = 'javascript:doFollowThread(' . $item['id'] . '); return false;';
|
$sub_link = 'javascript:doFollowThread(' . $item['id'] . '); return false;';
|
||||||
|
@ -407,6 +408,10 @@ class Item
|
||||||
$collapse_link = $item['self'] ? '' : $contact_url . '/collapse?t=' . $formSecurityToken;
|
$collapse_link = $item['self'] ? '' : $contact_url . '/collapse?t=' . $formSecurityToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!empty($item['author-gsid'])) {
|
||||||
|
$ignoreserver_link = Network::isLocalLink($contact_url) ? '' : 'settings/server/' . $item['author-gsid'] . '/ignore';
|
||||||
|
}
|
||||||
|
|
||||||
if ($cid && !$item['self']) {
|
if ($cid && !$item['self']) {
|
||||||
$contact_url = 'contact/' . $cid;
|
$contact_url = 'contact/' . $cid;
|
||||||
$posts_link = $contact_url . '/posts';
|
$posts_link = $contact_url . '/posts';
|
||||||
|
@ -427,7 +432,8 @@ class Item
|
||||||
$this->l10n->t('Send PM') => $pm_url,
|
$this->l10n->t('Send PM') => $pm_url,
|
||||||
$this->l10n->t('Block') => $block_link,
|
$this->l10n->t('Block') => $block_link,
|
||||||
$this->l10n->t('Ignore') => $ignore_link,
|
$this->l10n->t('Ignore') => $ignore_link,
|
||||||
$this->l10n->t('Collapse') => $collapse_link
|
$this->l10n->t('Collapse') => $collapse_link,
|
||||||
|
$this->l10n->t("Ignore %s's server", $item['author-name']) => $ignoreserver_link,
|
||||||
];
|
];
|
||||||
|
|
||||||
if (!empty($item['language'])) {
|
if (!empty($item['language'])) {
|
||||||
|
|
|
@ -23,8 +23,10 @@ namespace Friendica\Module\Settings\Server;
|
||||||
|
|
||||||
use Friendica\App;
|
use Friendica\App;
|
||||||
use Friendica\Core\L10n;
|
use Friendica\Core\L10n;
|
||||||
|
use Friendica\Core\Renderer;
|
||||||
use Friendica\Core\Session\Capability\IHandleUserSessions;
|
use Friendica\Core\Session\Capability\IHandleUserSessions;
|
||||||
use Friendica\Core\System;
|
use Friendica\Core\System;
|
||||||
|
use Friendica\Federation\Repository\GServer;
|
||||||
use Friendica\Module\Response;
|
use Friendica\Module\Response;
|
||||||
use Friendica\Network\HTTPException\BadRequestException;
|
use Friendica\Network\HTTPException\BadRequestException;
|
||||||
use Friendica\User\Settings\Repository\UserGServer;
|
use Friendica\User\Settings\Repository\UserGServer;
|
||||||
|
@ -37,17 +39,60 @@ class Action extends \Friendica\BaseModule
|
||||||
private $session;
|
private $session;
|
||||||
/** @var UserGServer */
|
/** @var UserGServer */
|
||||||
private $repository;
|
private $repository;
|
||||||
|
/** @var GServer */
|
||||||
|
private $gserverRepo;
|
||||||
|
|
||||||
public function __construct(UserGServer $repository, IHandleUserSessions $session, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = [])
|
public function __construct(GServer $gserverRepo, UserGServer $repository, IHandleUserSessions $session, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = [])
|
||||||
{
|
{
|
||||||
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
|
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
|
||||||
|
|
||||||
$this->session = $session;
|
$this->session = $session;
|
||||||
$this->repository = $repository;
|
$this->repository = $repository;
|
||||||
|
$this->gserverRepo = $gserverRepo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function content(array $request = []): string
|
||||||
|
{
|
||||||
|
$GServer = $this->gserverRepo->selectOneById($this->parameters['gsid']);
|
||||||
|
|
||||||
|
switch ($this->parameters['action']) {
|
||||||
|
case 'ignore':
|
||||||
|
$action = $this->t('Do you want to ignore this server?');
|
||||||
|
$desc = $this->t("You won't see any content from this server including reshares in your Network page, the community pages and individual conversations.");
|
||||||
|
break;
|
||||||
|
case 'unignore':
|
||||||
|
$action = $this->t('Do you want to unignore this server?');
|
||||||
|
$desc = '';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new BadRequestException('Unknown user server action ' . $this->parameters['action']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$tpl = Renderer::getMarkupTemplate('settings/server/action.tpl');
|
||||||
|
return Renderer::replaceMacros($tpl, [
|
||||||
|
'$l10n' => [
|
||||||
|
'title' => $this->t('Remote server settings'),
|
||||||
|
'action' => $action,
|
||||||
|
'siteName' => $this->t('Server Name'),
|
||||||
|
'siteUrl' => $this->t('Server URL'),
|
||||||
|
'desc' => $desc,
|
||||||
|
'submit' => $this->t('Submit'),
|
||||||
|
],
|
||||||
|
|
||||||
|
'$action' => $this->args->getQueryString(),
|
||||||
|
|
||||||
|
'$GServer' => $GServer,
|
||||||
|
|
||||||
|
'$form_security_token' => self::getFormSecurityToken('settings-server'),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function post(array $request = [])
|
public function post(array $request = [])
|
||||||
{
|
{
|
||||||
|
if (!empty($request['redirect_url'])) {
|
||||||
|
self::checkFormSecurityTokenRedirectOnError($this->args->getQueryString(), 'settings-server');
|
||||||
|
}
|
||||||
|
|
||||||
$userGServer = $this->repository->getOneByUserAndServer($this->session->getLocalUserId(), $this->parameters['gsid']);
|
$userGServer = $this->repository->getOneByUserAndServer($this->session->getLocalUserId(), $this->parameters['gsid']);
|
||||||
|
|
||||||
switch ($this->parameters['action']) {
|
switch ($this->parameters['action']) {
|
||||||
|
@ -63,6 +108,10 @@ class Action extends \Friendica\BaseModule
|
||||||
|
|
||||||
$this->repository->save($userGServer);
|
$this->repository->save($userGServer);
|
||||||
|
|
||||||
|
if (!empty($request['redirect_url'])) {
|
||||||
|
$this->baseUrl->redirect($request['redirect_url']);
|
||||||
|
}
|
||||||
|
|
||||||
System::exit();
|
System::exit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -641,7 +641,7 @@ return [
|
||||||
'/settings' => [
|
'/settings' => [
|
||||||
'/server' => [
|
'/server' => [
|
||||||
'[/]' => [Module\Settings\Server\Index::class, [R::GET, R::POST]],
|
'[/]' => [Module\Settings\Server\Index::class, [R::GET, R::POST]],
|
||||||
'/{gsid:\d+}/{action}' => [Module\Settings\Server\Action::class, [ R::POST]],
|
'/{gsid:\d+}/{action}' => [Module\Settings\Server\Action::class, [R::GET, R::POST]],
|
||||||
],
|
],
|
||||||
'[/]' => [Module\Settings\Account::class, [R::GET, R::POST]],
|
'[/]' => [Module\Settings\Account::class, [R::GET, R::POST]],
|
||||||
'/account' => [
|
'/account' => [
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
{{if $c[0]['total'] > 0}}
|
{{if $c[0]['total'] > 0}}
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{$c[0]['platform']}}</th>
|
<th>{{$c[0]['platform']}}</th>
|
||||||
<th><strong>{{$c[0]['total']}}</strong></td>
|
<th><strong>{{$c[0]['total']}}</strong></th>
|
||||||
<td>{{$c[0]['network']}}</td>
|
<td>{{$c[0]['network']}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
27
view/templates/settings/server/action.tpl
Normal file
27
view/templates/settings/server/action.tpl
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
<div id="settings-server" class="generic-page-wrapper">
|
||||||
|
<h1>{{$l10n.title}}</h1>
|
||||||
|
|
||||||
|
<form action="{{$action}}" method="POST">
|
||||||
|
<input type="hidden" name="form_security_token" value="{{$form_security_token}}">
|
||||||
|
<input type="hidden" name="redirect_url" value="settings/server">
|
||||||
|
|
||||||
|
<p>{{$l10n.action}}</p>
|
||||||
|
|
||||||
|
{{if $l10n.desc}}
|
||||||
|
<p>{{$l10n.desc}}</p>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>{{$l10n.siteName}}</th>
|
||||||
|
<td>{{$GServer->siteName}}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>{{$l10n.siteUrl}}</th>
|
||||||
|
<td><a href="{{$GServer->url}}">{{$GServer->url}}</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p><button type="submit" class="btn btn-primary">{{$l10n.submit}}</button></p>
|
||||||
|
</form>
|
||||||
|
</div>
|
|
@ -13,8 +13,14 @@
|
||||||
<table class="table table-striped table-condensed table-bordered">
|
<table class="table table-striped table-condensed table-bordered">
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{$l10n.siteName}}</th>
|
<th>{{$l10n.siteName}}</th>
|
||||||
<th><span title="{{$l10n.ignored_title}}">{{$l10n.ignored}} <i class="fa fa-question-circle"></i></span></th>
|
<th><span title="{{$l10n.ignored_title}}">{{$l10n.ignored}} <i class="fa fa-question-circle icon-question-sign"></i></span></th>
|
||||||
<th><span title="{{$l10n.delete_title}}"><i class="fa fa-trash" aria-hidden="true" title="{{$l10n.delete}}"></i> <span class="sr-only">{{$l10n.delete}}</span> <i class="fa fa-question-circle"></i></span></th>
|
<th>
|
||||||
|
<span title="{{$l10n.delete_title}}">
|
||||||
|
<i class="fa fa-trash icon-trash" aria-hidden="true" title="{{$l10n.delete}}"></i>
|
||||||
|
<span class="sr-only">{{$l10n.delete}}</span>
|
||||||
|
<i class="fa fa-question-circle icon-question-sign"></i>
|
||||||
|
</span>
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
{{foreach $servers as $index => $server}}
|
{{foreach $servers as $index => $server}}
|
||||||
|
|
|
@ -3281,3 +3281,7 @@ fbrowser.photo .photo-album-image-wrapper { margin-left: 10px; }
|
||||||
#colorbox img {
|
#colorbox img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#settings-server td + td {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue