Merge pull request #11888 from MrPetovan/bug/11861-frio-filerm

[frio] Add support for asynchronous call to /filerm module for post categories and folders
This commit is contained in:
Philipp 2022-09-11 10:35:34 +02:00 committed by GitHub
commit 7c64ab890a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 236 additions and 183 deletions

View file

@ -323,12 +323,12 @@ class System
* After finishing the process is getting killed. * After finishing the process is getting killed.
* *
* @param string $content * @param string $content
* @param [type] $responce * @param string $type
* @param string|null $content_type * @param string|null $content_type
* @return void * @return void
*/ */
public static function httpExit(string $content, string $responce = Response::TYPE_HTML, ?string $content_type = null) { public static function httpExit(string $content, string $type = Response::TYPE_HTML, ?string $content_type = null) {
DI::apiResponse()->setType($responce, $content_type); DI::apiResponse()->setType($type, $content_type);
DI::apiResponse()->addContent($content); DI::apiResponse()->addContent($content);
DI::page()->exit(DI::apiResponse()->generate()); DI::page()->exit(DI::apiResponse()->generate());

View file

@ -21,30 +21,68 @@
namespace Friendica\Module\Filer; namespace Friendica\Module\Filer;
use Friendica\App;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Post; use Friendica\Model\Post;
use Friendica\Module\Response;
use Friendica\Navigation\SystemMessages;
use Friendica\Network\HTTPException; use Friendica\Network\HTTPException;
use Friendica\Util\XML; use Friendica\Util\Profiler;
use Psr\Log\LoggerInterface;
/** /**
* Remove a tag from a file * Remove a tag from a file
*/ */
class RemoveTag extends BaseModule class RemoveTag extends BaseModule
{ {
/** @var SystemMessages */
private $systemMessages;
public function __construct(SystemMessages $systemMessages, 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);
$this->systemMessages = $systemMessages;
}
protected function post(array $request = [])
{
System::httpError($this->removeTag($request));
}
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!local_user()) { if (!local_user()) {
throw new HTTPException\ForbiddenException(); throw new HTTPException\ForbiddenException();
} }
$logger = DI::logger(); $this->removeTag($request, $type, $term);
if ($type == Post\Category::FILE) {
$this->baseUrl->redirect('filed?file=' . rawurlencode($term));
}
return '';
}
/**
* @param array $request The $_REQUEST array
* @param string|null $type Output parameter with the computed type
* @param string|null $term Output parameter with the computed term
*
* @return int The relevant HTTP code
*
* @throws \Exception
*/
private function removeTag(array $request, string &$type = null, string &$term = null): int
{
$item_id = $this->parameters['id'] ?? 0; $item_id = $this->parameters['id'] ?? 0;
$term = XML::unescape(trim($_GET['term'] ?? '')); $term = trim($request['term'] ?? '');
$cat = XML::unescape(trim($_GET['cat'] ?? '')); $cat = trim($request['cat'] ?? '');
if (!empty($cat)) { if (!empty($cat)) {
$type = Post\Category::CATEGORY; $type = Post\Category::CATEGORY;
@ -53,28 +91,27 @@ class RemoveTag extends BaseModule
$type = Post\Category::FILE; $type = Post\Category::FILE;
} }
$logger->info('Filer - Remove Tag', [ $this->logger->info('Filer - Remove Tag', [
'term' => $term, 'term' => $term,
'item' => $item_id, 'item' => $item_id,
'type' => $type 'type' => $type
]); ]);
if ($item_id && strlen($term)) { if (!$item_id || !strlen($term)) {
$this->systemMessages->addNotice($this->l10n->t('Item was not deleted'));
return 401;
}
$item = Post::selectFirst(['uri-id'], ['id' => $item_id]); $item = Post::selectFirst(['uri-id'], ['id' => $item_id]);
if (!DBA::isResult($item)) { if (!DBA::isResult($item)) {
return ''; return 404;
} }
if (!Post\Category::deleteFileByURIId($item['uri-id'], local_user(), $type, $term)) { if (!Post\Category::deleteFileByURIId($item['uri-id'], local_user(), $type, $term)) {
notice(DI::l10n()->t('Item was not removed')); $this->systemMessages->addNotice($this->l10n->t('Item was not removed'));
} return 500;
} else {
notice(DI::l10n()->t('Item was not deleted'));
} }
if ($type == Post\Category::FILE) { return 200;
DI::baseUrl()->redirect('filed?file=' . rawurlencode($term));
}
return '';
} }
} }

View file

@ -410,7 +410,7 @@ return [
], ],
'/filed' => [Module\Search\Filed::class, [R::GET]], '/filed' => [Module\Search\Filed::class, [R::GET]],
'/filer[/{id:\d+}]' => [Module\Filer\SaveTag::class, [R::GET]], '/filer[/{id:\d+}]' => [Module\Filer\SaveTag::class, [R::GET]],
'/filerm/{id:\d+}' => [Module\Filer\RemoveTag::class, [R::GET]], '/filerm/{id:\d+}' => [Module\Filer\RemoveTag::class, [R::GET, R::POST]],
'/follow_confirm' => [Module\FollowConfirm::class, [R::GET, R::POST]], '/follow_confirm' => [Module\FollowConfirm::class, [R::GET, R::POST]],
'/followers/{nickname}' => [Module\ActivityPub\Followers::class, [R::GET]], '/followers/{nickname}' => [Module\ActivityPub\Followers::class, [R::GET]],
'/following/{nickname}' => [Module\ActivityPub\Following::class, [R::GET]], '/following/{nickname}' => [Module\ActivityPub\Following::class, [R::GET]],

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 2022.09-rc\n" "Project-Id-Version: 2022.09-rc\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-09-04 14:08+0000\n" "POT-Creation-Date: 2022-09-11 02:40-0400\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"
@ -138,8 +138,8 @@ msgstr ""
#: src/Module/Profile/Schedule.php:39 src/Module/Profile/Schedule.php:56 #: src/Module/Profile/Schedule.php:39 src/Module/Profile/Schedule.php:56
#: src/Module/Register.php:77 src/Module/Register.php:90 #: src/Module/Register.php:77 src/Module/Register.php:90
#: src/Module/Register.php:206 src/Module/Register.php:245 #: src/Module/Register.php:206 src/Module/Register.php:245
#: src/Module/Search/Directory.php:37 src/Module/Settings/Account.php:49 #: src/Module/Search/Directory.php:37 src/Module/Settings/Account.php:50
#: src/Module/Settings/Account.php:409 src/Module/Settings/Delegation.php:42 #: src/Module/Settings/Account.php:410 src/Module/Settings/Delegation.php:42
#: src/Module/Settings/Delegation.php:70 src/Module/Settings/Display.php:42 #: src/Module/Settings/Delegation.php:70 src/Module/Settings/Display.php:42
#: src/Module/Settings/Display.php:120 #: src/Module/Settings/Display.php:120
#: src/Module/Settings/Profile/Photo/Crop.php:166 #: src/Module/Settings/Profile/Photo/Crop.php:166
@ -1207,7 +1207,7 @@ msgstr ""
#: mod/settings.php:352 src/Module/Admin/Addons/Index.php:69 #: mod/settings.php:352 src/Module/Admin/Addons/Index.php:69
#: src/Module/Admin/Features.php:87 src/Module/Admin/Logs/Settings.php:81 #: src/Module/Admin/Features.php:87 src/Module/Admin/Logs/Settings.php:81
#: src/Module/Admin/Site.php:436 src/Module/Admin/Themes/Index.php:113 #: src/Module/Admin/Site.php:436 src/Module/Admin/Themes/Index.php:113
#: src/Module/Admin/Tos.php:83 src/Module/Settings/Account.php:562 #: src/Module/Admin/Tos.php:83 src/Module/Settings/Account.php:563
#: src/Module/Settings/Delegation.php:170 src/Module/Settings/Display.php:201 #: src/Module/Settings/Delegation.php:170 src/Module/Settings/Display.php:201
msgid "Save Settings" msgid "Save Settings"
msgstr "" msgstr ""
@ -1411,7 +1411,7 @@ msgstr ""
msgid "Friend Suggestions" msgid "Friend Suggestions"
msgstr "" msgstr ""
#: mod/tagger.php:78 src/Content/Item.php:297 src/Model/Item.php:2814 #: mod/tagger.php:78 src/Content/Item.php:297 src/Model/Item.php:2834
msgid "photo" msgid "photo"
msgstr "" msgstr ""
@ -1763,12 +1763,12 @@ msgid "Enter new password: "
msgstr "" msgstr ""
#: src/Console/User.php:210 src/Module/Security/PasswordTooLong.php:65 #: src/Console/User.php:210 src/Module/Security/PasswordTooLong.php:65
#: src/Module/Settings/Account.php:74 #: src/Module/Settings/Account.php:75
msgid "Password update failed. Please try again." msgid "Password update failed. Please try again."
msgstr "" msgstr ""
#: src/Console/User.php:213 src/Module/Security/PasswordTooLong.php:68 #: src/Console/User.php:213 src/Module/Security/PasswordTooLong.php:68
#: src/Module/Settings/Account.php:77 #: src/Module/Settings/Account.php:78
msgid "Password changed." msgid "Password changed."
msgstr "" msgstr ""
@ -2292,7 +2292,7 @@ msgstr ""
msgid "show more" msgid "show more"
msgstr "" msgstr ""
#: src/Content/Item.php:288 src/Model/Item.php:2812 #: src/Content/Item.php:288 src/Model/Item.php:2832
msgid "event" msgid "event"
msgstr "" msgstr ""
@ -2639,8 +2639,8 @@ msgid ""
"<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s" "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s"
msgstr "" msgstr ""
#: src/Content/Text/BBCode.php:1213 src/Model/Item.php:3388 #: src/Content/Text/BBCode.php:1213 src/Model/Item.php:3408
#: src/Model/Item.php:3394 src/Model/Item.php:3395 #: src/Model/Item.php:3414 src/Model/Item.php:3415
msgid "Link to source" msgid "Link to source"
msgstr "" msgstr ""
@ -2799,7 +2799,7 @@ msgstr ""
msgid "News" msgid "News"
msgstr "" msgstr ""
#: src/Content/Widget.php:527 src/Module/Settings/Account.php:455 #: src/Content/Widget.php:527 src/Module/Settings/Account.php:456
msgid "Account Types" msgid "Account Types"
msgstr "" msgstr ""
@ -3393,7 +3393,7 @@ msgid "Dec"
msgstr "" msgstr ""
#: src/Core/Renderer.php:89 src/Core/Renderer.php:118 src/Core/Renderer.php:145 #: 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 #: src/Core/Renderer.php:179 src/Render/FriendicaSmartyEngine.php:60
msgid "" msgid ""
"Friendica can't display this page at the moment, please contact the " "Friendica can't display this page at the moment, please contact the "
"administrator." "administrator."
@ -3782,66 +3782,66 @@ msgstr ""
msgid "Edit groups" msgid "Edit groups"
msgstr "" msgstr ""
#: src/Model/Item.php:1924 #: src/Model/Item.php:1944
#, php-format #, php-format
msgid "Detected languages in this post:\\n%s" msgid "Detected languages in this post:\\n%s"
msgstr "" msgstr ""
#: src/Model/Item.php:2816 #: src/Model/Item.php:2836
msgid "activity" msgid "activity"
msgstr "" msgstr ""
#: src/Model/Item.php:2818 #: src/Model/Item.php:2838
msgid "comment" msgid "comment"
msgstr "" msgstr ""
#: src/Model/Item.php:2821 #: src/Model/Item.php:2841
msgid "post" msgid "post"
msgstr "" msgstr ""
#: src/Model/Item.php:2937 #: src/Model/Item.php:2957
#, php-format #, php-format
msgid "Content warning: %s" msgid "Content warning: %s"
msgstr "" msgstr ""
#: src/Model/Item.php:3300 #: src/Model/Item.php:3320
msgid "bytes" msgid "bytes"
msgstr "" msgstr ""
#: src/Model/Item.php:3331 #: src/Model/Item.php:3351
#, php-format #, php-format
msgid "%2$s (%3$d%%, %1$d vote)" msgid "%2$s (%3$d%%, %1$d vote)"
msgid_plural "%2$s (%3$d%%, %1$d votes)" msgid_plural "%2$s (%3$d%%, %1$d votes)"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Model/Item.php:3333 #: src/Model/Item.php:3353
#, php-format #, php-format
msgid "%2$s (%1$d vote)" msgid "%2$s (%1$d vote)"
msgid_plural "%2$s (%1$d votes)" msgid_plural "%2$s (%1$d votes)"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Model/Item.php:3338 #: src/Model/Item.php:3358
#, php-format #, php-format
msgid "%d voter. Poll end: %s" msgid "%d voter. Poll end: %s"
msgid_plural "%d voters. Poll end: %s" msgid_plural "%d voters. Poll end: %s"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Model/Item.php:3340 #: src/Model/Item.php:3360
#, php-format #, php-format
msgid "%d voter." msgid "%d voter."
msgid_plural "%d voters." msgid_plural "%d voters."
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Model/Item.php:3342 #: src/Model/Item.php:3362
#, php-format #, php-format
msgid "Poll end: %s" msgid "Poll end: %s"
msgstr "" msgstr ""
#: src/Model/Item.php:3376 src/Model/Item.php:3377 #: src/Model/Item.php:3396 src/Model/Item.php:3397
msgid "View on separate page" msgid "View on separate page"
msgstr "" msgstr ""
@ -4383,19 +4383,19 @@ msgstr ""
msgid "List of pending user deletions" msgid "List of pending user deletions"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:100 src/Module/Settings/Account.php:493 #: src/Module/Admin/BaseUsers.php:100 src/Module/Settings/Account.php:494
msgid "Normal Account Page" msgid "Normal Account Page"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:101 src/Module/Settings/Account.php:500 #: src/Module/Admin/BaseUsers.php:101 src/Module/Settings/Account.php:501
msgid "Soapbox Page" msgid "Soapbox Page"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:102 src/Module/Settings/Account.php:507 #: src/Module/Admin/BaseUsers.php:102 src/Module/Settings/Account.php:508
msgid "Public Forum" msgid "Public Forum"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:103 src/Module/Settings/Account.php:514 #: src/Module/Admin/BaseUsers.php:103 src/Module/Settings/Account.php:515
msgid "Automatic Friend Page" msgid "Automatic Friend Page"
msgstr "" msgstr ""
@ -4403,19 +4403,19 @@ msgstr ""
msgid "Private Forum" msgid "Private Forum"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:107 src/Module/Settings/Account.php:465 #: src/Module/Admin/BaseUsers.php:107 src/Module/Settings/Account.php:466
msgid "Personal Page" msgid "Personal Page"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:108 src/Module/Settings/Account.php:472 #: src/Module/Admin/BaseUsers.php:108 src/Module/Settings/Account.php:473
msgid "Organisation Page" msgid "Organisation Page"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:109 src/Module/Settings/Account.php:479 #: src/Module/Admin/BaseUsers.php:109 src/Module/Settings/Account.php:480
msgid "News Page" msgid "News Page"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:110 src/Module/Settings/Account.php:486 #: src/Module/Admin/BaseUsers.php:110 src/Module/Settings/Account.php:487
msgid "Community Forum" msgid "Community Forum"
msgstr "" msgstr ""
@ -7661,12 +7661,12 @@ msgstr ""
msgid "Site Directory" msgid "Site Directory"
msgstr "" msgstr ""
#: src/Module/Filer/RemoveTag.php:68 #: src/Module/Filer/RemoveTag.php:101
msgid "Item was not removed" msgid "Item was not deleted"
msgstr "" msgstr ""
#: src/Module/Filer/RemoveTag.php:71 #: src/Module/Filer/RemoveTag.php:111
msgid "Item was not deleted" msgid "Item was not removed"
msgstr "" msgstr ""
#: src/Module/Filer/SaveTag.php:72 #: src/Module/Filer/SaveTag.php:72
@ -8357,7 +8357,7 @@ msgid ""
"\"btn btn-sm pull-right\">Cancel</a>" "\"btn btn-sm pull-right\">Cancel</a>"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:144 src/Module/Settings/Account.php:578 #: src/Module/Profile/Profile.php:144 src/Module/Settings/Account.php:579
msgid "Full Name:" msgid "Full Name:"
msgstr "" msgstr ""
@ -8488,7 +8488,7 @@ msgid "Please repeat your e-mail address:"
msgstr "" msgstr ""
#: src/Module/Register.php:162 src/Module/Security/PasswordTooLong.php:97 #: src/Module/Register.php:162 src/Module/Security/PasswordTooLong.php:97
#: src/Module/Settings/Account.php:569 #: src/Module/Settings/Account.php:570
msgid "New Password:" msgid "New Password:"
msgstr "" msgstr ""
@ -8497,7 +8497,7 @@ msgid "Leave empty for an auto generated password."
msgstr "" msgstr ""
#: src/Module/Register.php:163 src/Module/Security/PasswordTooLong.php:98 #: src/Module/Register.php:163 src/Module/Security/PasswordTooLong.php:98
#: src/Module/Settings/Account.php:570 #: src/Module/Settings/Account.php:571
msgid "Confirm:" msgid "Confirm:"
msgstr "" msgstr ""
@ -8718,7 +8718,7 @@ msgid ""
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:53 #: src/Module/Security/PasswordTooLong.php:53
#: src/Module/Settings/Account.php:66 #: src/Module/Settings/Account.php:67
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "" msgstr ""
@ -8727,7 +8727,7 @@ msgid "Password does not need changing."
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:73 #: src/Module/Security/PasswordTooLong.php:73
#: src/Module/Settings/Account.php:80 #: src/Module/Settings/Account.php:81
msgid "Password unchanged." msgid "Password unchanged."
msgstr "" msgstr ""
@ -8747,24 +8747,24 @@ msgid "Update Password"
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:96 #: src/Module/Security/PasswordTooLong.php:96
#: src/Module/Settings/Account.php:571 #: src/Module/Settings/Account.php:572
msgid "Current Password:" msgid "Current Password:"
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:96 #: src/Module/Security/PasswordTooLong.php:96
#: src/Module/Settings/Account.php:571 #: src/Module/Settings/Account.php:572
msgid "Your current password to confirm the changes" msgid "Your current password to confirm the changes"
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:97 #: src/Module/Security/PasswordTooLong.php:97
#: src/Module/Settings/Account.php:554 #: src/Module/Settings/Account.php:555
msgid "" msgid ""
"Allowed characters are a-z, A-Z, 0-9 and special characters except white " "Allowed characters are a-z, A-Z, 0-9 and special characters except white "
"spaces, accentuated letters and colon (:)." "spaces, accentuated letters and colon (:)."
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:97 #: src/Module/Security/PasswordTooLong.php:97
#: src/Module/Settings/Account.php:555 #: src/Module/Settings/Account.php:556
msgid "Password length is limited to 72 characters." msgid "Password length is limited to 72 characters."
msgstr "" msgstr ""
@ -8869,119 +8869,119 @@ msgstr ""
msgid "Verify code and complete login" msgid "Verify code and complete login"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:95 #: src/Module/Settings/Account.php:96
msgid "Please use a shorter name." msgid "Please use a shorter name."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:98 #: src/Module/Settings/Account.php:99
msgid "Name too short." msgid "Name too short."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:107 #: src/Module/Settings/Account.php:108
msgid "Wrong Password." msgid "Wrong Password."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:112 #: src/Module/Settings/Account.php:113
msgid "Invalid email." msgid "Invalid email."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:118 #: src/Module/Settings/Account.php:119
msgid "Cannot change to that email." msgid "Cannot change to that email."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:148 src/Module/Settings/Account.php:200 #: src/Module/Settings/Account.php:149 src/Module/Settings/Account.php:201
#: src/Module/Settings/Account.php:220 src/Module/Settings/Account.php:304 #: src/Module/Settings/Account.php:221 src/Module/Settings/Account.php:305
#: src/Module/Settings/Account.php:353 #: src/Module/Settings/Account.php:354
msgid "Settings were not updated." msgid "Settings were not updated."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:365 #: src/Module/Settings/Account.php:366
msgid "Contact CSV file upload error" msgid "Contact CSV file upload error"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:384 #: src/Module/Settings/Account.php:385
msgid "Importing Contacts done" msgid "Importing Contacts done"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:397 #: src/Module/Settings/Account.php:398
msgid "Relocate message has been send to your contacts" msgid "Relocate message has been send to your contacts"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:414 #: src/Module/Settings/Account.php:415
msgid "Unable to find your profile. Please contact your admin." msgid "Unable to find your profile. Please contact your admin."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:456 #: src/Module/Settings/Account.php:457
msgid "Personal Page Subtypes" msgid "Personal Page Subtypes"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:457 #: src/Module/Settings/Account.php:458
msgid "Community Forum Subtypes" msgid "Community Forum Subtypes"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:467 #: src/Module/Settings/Account.php:468
msgid "Account for a personal profile." msgid "Account for a personal profile."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:474 #: src/Module/Settings/Account.php:475
msgid "" msgid ""
"Account for an organisation that automatically approves contact requests as " "Account for an organisation that automatically approves contact requests as "
"\"Followers\"." "\"Followers\"."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:481 #: src/Module/Settings/Account.php:482
msgid "" msgid ""
"Account for a news reflector that automatically approves contact requests as " "Account for a news reflector that automatically approves contact requests as "
"\"Followers\"." "\"Followers\"."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:488 #: src/Module/Settings/Account.php:489
msgid "Account for community discussions." msgid "Account for community discussions."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:495 #: src/Module/Settings/Account.php:496
msgid "" msgid ""
"Account for a regular personal profile that requires manual approval of " "Account for a regular personal profile that requires manual approval of "
"\"Friends\" and \"Followers\"." "\"Friends\" and \"Followers\"."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:502 #: src/Module/Settings/Account.php:503
msgid "" msgid ""
"Account for a public profile that automatically approves contact requests as " "Account for a public profile that automatically approves contact requests as "
"\"Followers\"." "\"Followers\"."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:509 #: src/Module/Settings/Account.php:510
msgid "Automatically approves all contact requests." msgid "Automatically approves all contact requests."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:516 #: src/Module/Settings/Account.php:517
msgid "" msgid ""
"Account for a popular profile that automatically approves contact requests " "Account for a popular profile that automatically approves contact requests "
"as \"Friends\"." "as \"Friends\"."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:521 #: src/Module/Settings/Account.php:522
msgid "Private Forum [Experimental]" msgid "Private Forum [Experimental]"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:523 #: src/Module/Settings/Account.php:524
msgid "Requires manual approval of contact requests." msgid "Requires manual approval of contact requests."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:532 #: src/Module/Settings/Account.php:533
msgid "OpenID:" msgid "OpenID:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:532 #: src/Module/Settings/Account.php:533
msgid "(Optional) Allow this OpenID to login to this account." msgid "(Optional) Allow this OpenID to login to this account."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:540 #: src/Module/Settings/Account.php:541
msgid "Publish your profile in your local site directory?" msgid "Publish your profile in your local site directory?"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:540 #: src/Module/Settings/Account.php:541
#, php-format #, php-format
msgid "" msgid ""
"Your profile will be published in this node's <a href=\"%s\">local " "Your profile will be published in this node's <a href=\"%s\">local "
@ -8989,89 +8989,89 @@ msgid ""
"system settings." "system settings."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:546 #: src/Module/Settings/Account.php:547
#, php-format #, php-format
msgid "" msgid ""
"Your profile will also be published in the global friendica directories (e." "Your profile will also be published in the global friendica directories (e."
"g. <a href=\"%s\">%s</a>)." "g. <a href=\"%s\">%s</a>)."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:559 #: src/Module/Settings/Account.php:560
msgid "Account Settings" msgid "Account Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:560 #: src/Module/Settings/Account.php:561
#, php-format #, php-format
msgid "Your Identity Address is <strong>'%s'</strong> or '%s'." msgid "Your Identity Address is <strong>'%s'</strong> or '%s'."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:568 #: src/Module/Settings/Account.php:569
msgid "Password Settings" msgid "Password Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:570 #: src/Module/Settings/Account.php:571
msgid "Leave password fields blank unless changing" msgid "Leave password fields blank unless changing"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:572 #: src/Module/Settings/Account.php:573
msgid "Password:" msgid "Password:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:572 #: src/Module/Settings/Account.php:573
msgid "Your current password to confirm the changes of the email address" msgid "Your current password to confirm the changes of the email address"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:575 #: src/Module/Settings/Account.php:576
msgid "Delete OpenID URL" msgid "Delete OpenID URL"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:577 #: src/Module/Settings/Account.php:578
msgid "Basic Settings" msgid "Basic Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:579 #: src/Module/Settings/Account.php:580
msgid "Email Address:" msgid "Email Address:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:580 #: src/Module/Settings/Account.php:581
msgid "Your Timezone:" msgid "Your Timezone:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:581 #: src/Module/Settings/Account.php:582
msgid "Your Language:" msgid "Your Language:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:581 #: src/Module/Settings/Account.php:582
msgid "" msgid ""
"Set the language we use to show you friendica interface and to send you " "Set the language we use to show you friendica interface and to send you "
"emails" "emails"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:582 #: src/Module/Settings/Account.php:583
msgid "Default Post Location:" msgid "Default Post Location:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:583 #: src/Module/Settings/Account.php:584
msgid "Use Browser Location:" msgid "Use Browser Location:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:585 #: src/Module/Settings/Account.php:586
msgid "Security and Privacy Settings" msgid "Security and Privacy Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:587 #: src/Module/Settings/Account.php:588
msgid "Maximum Friend Requests/Day:" msgid "Maximum Friend Requests/Day:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:587 src/Module/Settings/Account.php:597 #: src/Module/Settings/Account.php:588 src/Module/Settings/Account.php:598
msgid "(to prevent spam abuse)" msgid "(to prevent spam abuse)"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:589 #: src/Module/Settings/Account.php:590
msgid "Allow your profile to be searchable globally?" msgid "Allow your profile to be searchable globally?"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:589 #: src/Module/Settings/Account.php:590
msgid "" msgid ""
"Activate this setting if you want others to easily find and follow you. Your " "Activate this setting if you want others to easily find and follow you. Your "
"profile will be searchable on remote systems. This setting also determines " "profile will be searchable on remote systems. This setting also determines "
@ -9079,43 +9079,43 @@ msgid ""
"indexed or not." "indexed or not."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:590 #: src/Module/Settings/Account.php:591
msgid "Hide your contact/friend list from viewers of your profile?" msgid "Hide your contact/friend list from viewers of your profile?"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:590 #: src/Module/Settings/Account.php:591
msgid "" msgid ""
"A list of your contacts is displayed on your profile page. Activate this " "A list of your contacts is displayed on your profile page. Activate this "
"option to disable the display of your contact list." "option to disable the display of your contact list."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:591 #: src/Module/Settings/Account.php:592
msgid "Hide your profile details from anonymous viewers?" msgid "Hide your profile details from anonymous viewers?"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:591 #: src/Module/Settings/Account.php:592
msgid "" msgid ""
"Anonymous visitors will only see your profile picture, your display name and " "Anonymous visitors will only see your profile picture, your display name and "
"the nickname you are using on your profile page. Your public posts and " "the nickname you are using on your profile page. Your public posts and "
"replies will still be accessible by other means." "replies will still be accessible by other means."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:592 #: src/Module/Settings/Account.php:593
msgid "Make public posts unlisted" msgid "Make public posts unlisted"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:592 #: src/Module/Settings/Account.php:593
msgid "" msgid ""
"Your public posts will not appear on the community pages or in search " "Your public posts will not appear on the community pages or in search "
"results, nor be sent to relay servers. However they can still appear on " "results, nor be sent to relay servers. However they can still appear on "
"public feeds on remote servers." "public feeds on remote servers."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:593 #: src/Module/Settings/Account.php:594
msgid "Make all posted pictures accessible" msgid "Make all posted pictures accessible"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:593 #: src/Module/Settings/Account.php:594
msgid "" msgid ""
"This option makes every posted picture accessible via the direct link. This " "This option makes every posted picture accessible via the direct link. This "
"is a workaround for the problem that most other networks can't handle " "is a workaround for the problem that most other networks can't handle "
@ -9123,233 +9123,233 @@ msgid ""
"public on your photo albums though." "public on your photo albums though."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:594 #: src/Module/Settings/Account.php:595
msgid "Allow friends to post to your profile page?" msgid "Allow friends to post to your profile page?"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:594 #: src/Module/Settings/Account.php:595
msgid "" msgid ""
"Your contacts may write posts on your profile wall. These posts will be " "Your contacts may write posts on your profile wall. These posts will be "
"distributed to your contacts" "distributed to your contacts"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:595 #: src/Module/Settings/Account.php:596
msgid "Allow friends to tag your posts?" msgid "Allow friends to tag your posts?"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:595 #: src/Module/Settings/Account.php:596
msgid "Your contacts can add additional tags to your posts." msgid "Your contacts can add additional tags to your posts."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:596 #: src/Module/Settings/Account.php:597
msgid "Permit unknown people to send you private mail?" msgid "Permit unknown people to send you private mail?"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:596 #: src/Module/Settings/Account.php:597
msgid "" msgid ""
"Friendica network users may send you private messages even if they are not " "Friendica network users may send you private messages even if they are not "
"in your contact list." "in your contact list."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:597 #: src/Module/Settings/Account.php:598
msgid "Maximum private messages per day from unknown people:" msgid "Maximum private messages per day from unknown people:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:599 #: src/Module/Settings/Account.php:600
msgid "Default Post Permissions" msgid "Default Post Permissions"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:603 #: src/Module/Settings/Account.php:604
msgid "Expiration settings" msgid "Expiration settings"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:604 #: src/Module/Settings/Account.php:605
msgid "Automatically expire posts after this many days:" msgid "Automatically expire posts after this many days:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:604 #: src/Module/Settings/Account.php:605
msgid "If empty, posts will not expire. Expired posts will be deleted" msgid "If empty, posts will not expire. Expired posts will be deleted"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:605 #: src/Module/Settings/Account.php:606
msgid "Expire posts" msgid "Expire posts"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:605 #: src/Module/Settings/Account.php:606
msgid "When activated, posts and comments will be expired." msgid "When activated, posts and comments will be expired."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:606 #: src/Module/Settings/Account.php:607
msgid "Expire personal notes" msgid "Expire personal notes"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:606 #: src/Module/Settings/Account.php:607
msgid "" msgid ""
"When activated, the personal notes on your profile page will be expired." "When activated, the personal notes on your profile page will be expired."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:607 #: src/Module/Settings/Account.php:608
msgid "Expire starred posts" msgid "Expire starred posts"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:607 #: src/Module/Settings/Account.php:608
msgid "" msgid ""
"Starring posts keeps them from being expired. That behaviour is overwritten " "Starring posts keeps them from being expired. That behaviour is overwritten "
"by this setting." "by this setting."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:608 #: src/Module/Settings/Account.php:609
msgid "Only expire posts by others" msgid "Only expire posts by others"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:608 #: src/Module/Settings/Account.php:609
msgid "" msgid ""
"When activated, your own posts never expire. Then the settings above are " "When activated, your own posts never expire. Then the settings above are "
"only valid for posts you received." "only valid for posts you received."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:611 #: src/Module/Settings/Account.php:612
msgid "Notification Settings" msgid "Notification Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:612 #: src/Module/Settings/Account.php:613
msgid "Send a notification email when:" msgid "Send a notification email when:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:613 #: src/Module/Settings/Account.php:614
msgid "You receive an introduction" msgid "You receive an introduction"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:614 #: src/Module/Settings/Account.php:615
msgid "Your introductions are confirmed" msgid "Your introductions are confirmed"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:615 #: src/Module/Settings/Account.php:616
msgid "Someone writes on your profile wall" msgid "Someone writes on your profile wall"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:616 #: src/Module/Settings/Account.php:617
msgid "Someone writes a followup comment" msgid "Someone writes a followup comment"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:617 #: src/Module/Settings/Account.php:618
msgid "You receive a private message" msgid "You receive a private message"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:618 #: src/Module/Settings/Account.php:619
msgid "You receive a friend suggestion" msgid "You receive a friend suggestion"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:619 #: src/Module/Settings/Account.php:620
msgid "You are tagged in a post" msgid "You are tagged in a post"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:621 #: src/Module/Settings/Account.php:622
msgid "Create a desktop notification when:" msgid "Create a desktop notification when:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:622 #: src/Module/Settings/Account.php:623
msgid "Someone tagged you" msgid "Someone tagged you"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:623 #: src/Module/Settings/Account.php:624
msgid "Someone directly commented on your post" msgid "Someone directly commented on your post"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:624 #: src/Module/Settings/Account.php:625
msgid "Someone liked your content" msgid "Someone liked your content"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:624 src/Module/Settings/Account.php:625 #: src/Module/Settings/Account.php:625 src/Module/Settings/Account.php:626
msgid "Can only be enabled, when the direct comment notification is enabled." msgid "Can only be enabled, when the direct comment notification is enabled."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:625 #: src/Module/Settings/Account.php:626
msgid "Someone shared your content" msgid "Someone shared your content"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:626 #: src/Module/Settings/Account.php:627
msgid "Someone commented in your thread" msgid "Someone commented in your thread"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:627 #: src/Module/Settings/Account.php:628
msgid "Someone commented in a thread where you commented" msgid "Someone commented in a thread where you commented"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:628 #: src/Module/Settings/Account.php:629
msgid "Someone commented in a thread where you interacted" msgid "Someone commented in a thread where you interacted"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:630 #: src/Module/Settings/Account.php:631
msgid "Activate desktop notifications" msgid "Activate desktop notifications"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:630 #: src/Module/Settings/Account.php:631
msgid "Show desktop popup on new notifications" msgid "Show desktop popup on new notifications"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:634 #: src/Module/Settings/Account.php:635
msgid "Text-only notification emails" msgid "Text-only notification emails"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:636 #: src/Module/Settings/Account.php:637
msgid "Send text only notification emails, without the html part" msgid "Send text only notification emails, without the html part"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:640 #: src/Module/Settings/Account.php:641
msgid "Show detailled notifications" msgid "Show detailled notifications"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:642 #: src/Module/Settings/Account.php:643
msgid "" msgid ""
"Per default, notifications are condensed to a single notification per item. " "Per default, notifications are condensed to a single notification per item. "
"When enabled every notification is displayed." "When enabled every notification is displayed."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:646 #: src/Module/Settings/Account.php:647
msgid "Show notifications of ignored contacts" msgid "Show notifications of ignored contacts"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:648 #: src/Module/Settings/Account.php:649
msgid "" msgid ""
"You don't see posts from ignored contacts. But you still see their comments. " "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 " "This setting controls if you want to still receive regular notifications "
"that are caused by ignored contacts or not." "that are caused by ignored contacts or not."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:651 #: src/Module/Settings/Account.php:652
msgid "Advanced Account/Page Type Settings" msgid "Advanced Account/Page Type Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:652 #: src/Module/Settings/Account.php:653
msgid "Change the behaviour of this account for special situations" msgid "Change the behaviour of this account for special situations"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:655 #: src/Module/Settings/Account.php:656
msgid "Import Contacts" msgid "Import Contacts"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:656 #: src/Module/Settings/Account.php:657
msgid "" msgid ""
"Upload a CSV file that contains the handle of your followed accounts in the " "Upload a CSV file that contains the handle of your followed accounts in the "
"first column you exported from the old account." "first column you exported from the old account."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:657 #: src/Module/Settings/Account.php:658
msgid "Upload File" msgid "Upload File"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:660 #: src/Module/Settings/Account.php:661
msgid "Relocate" msgid "Relocate"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:661 #: src/Module/Settings/Account.php:662
msgid "" msgid ""
"If you have moved this profile from another server, and some of your " "If you have moved this profile from another server, and some of your "
"contacts don't receive your updates, try pushing this button." "contacts don't receive your updates, try pushing this button."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:662 #: src/Module/Settings/Account.php:663
msgid "Resend relocate message to contacts" msgid "Resend relocate message to contacts"
msgstr "" msgstr ""
@ -10959,7 +10959,7 @@ msgstr ""
msgid "stopped following" msgid "stopped following"
msgstr "" msgstr ""
#: src/Render/FriendicaSmartyEngine.php:53 #: src/Render/FriendicaSmartyEngine.php:56
#, php-format #, php-format
msgid "The folder %s must be writable by webserver." msgid "The folder %s must be writable by webserver."
msgstr "" msgstr ""

View file

@ -56,7 +56,6 @@
jotTextOpenUI(document.getElementById("profile-jot-text")); jotTextOpenUI(document.getElementById("profile-jot-text"));
}); });
/* show images / file browser window /* show images / file browser window
* *
**/ **/
@ -125,6 +124,24 @@
Dialog.doFileBrowser("main"); Dialog.doFileBrowser("main");
jotActive(); jotActive();
}); });
$('body').on('click', '.p-category .filerm', function(e){
e.preventDefault();
let $href = $(e.target).attr('href');
// Prevents arbitrary Ajax requests
if ($href.substr(0, 7) === 'filerm/') {
$(e.target).parent().removeClass('btn-success btn-danger');
$.post($href)
.done(function() {
liking = 1;
force_update = true;
})
.always(function () {
NavUpdate();
});
}
});
}); });
function deleteCheckedItems() { function deleteCheckedItems() {
@ -281,7 +298,6 @@
return false; return false;
}); });
}); });
} }
function jotClearLocation() { function jotClearLocation() {

View file

@ -278,12 +278,12 @@ as the value of $top_child_total (this is done at the end of this file)
<span class="mention label label-default sm">{{$tag nofilter}} <i class="fa fa-eye-slash" aria-hidden="true"></i></span> <span class="mention label label-default sm">{{$tag nofilter}} <i class="fa fa-eye-slash" aria-hidden="true"></i></span>
{{/foreach*}} {{/foreach*}}
{{/if}} {{/if}}
{{foreach $item.folders as $cat}} {{foreach $item.folders as $folder}}
<span class="folder label btn-danger sm p-category">{{$cat.name}}{{if $cat.removeurl}} (<a href="{{$cat.removeurl}}" title="{{$remove}}">x</a>) {{/if}} </span> <span class="folder label btn-danger sm p-category">{{$folder.name}}{{if $folder.removeurl}} (<a href="{{$folder.removeurl}}" class="filerm" title="{{$remove}}">x</a>){{/if}}</span>
{{/foreach}} {{/foreach}}
{{foreach $item.categories as $cat}} {{foreach $item.categories as $cat}}
<span class="category label btn-success sm p-category"><a href="{{$cat.url}}">{{$cat.name}}</a>{{if $cat.removeurl}} (<a href="{{$cat.removeurl}}" title="{{$remove}}">x</a>) {{/if}} </span> <span class="category label btn-success sm p-category"><a href="{{$cat.url}}">{{$cat.name}}</a>{{if $cat.removeurl}} (<a href="{{$cat.removeurl}}" class="filerm" title="{{$remove}}">x</a>){{/if}}</span>
{{/foreach}} {{/foreach}}
</div> </div>
{{if $item.edited}}<div class="itemedited text-muted">{{$item.edited['label']}} (<span title="{{$item.edited['date']}}">{{$item.edited['relative']}}</span>)</div>{{/if}} {{if $item.edited}}<div class="itemedited text-muted">{{$item.edited['label']}} (<span title="{{$item.edited['date']}}">{{$item.edited['relative']}}</span>)</div>{{/if}}