mirror of
https://github.com/YGGverse/YGGtracker.git
synced 2025-02-09 05:24:22 +00:00
implement torrent statuses management #28
This commit is contained in:
parent
3cbc6ea90f
commit
989f2f3311
2
.env
2
.env
@ -48,7 +48,7 @@ MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0
|
||||
# YGGtracker
|
||||
|
||||
# Application version, used for API and media cache
|
||||
APP_VERSION='2.2.0'
|
||||
APP_VERSION='2.2.1'
|
||||
|
||||
# Application name
|
||||
APP_NAME=YGGtracker
|
||||
|
37
migrations/Version20231026163131.php
Normal file
37
migrations/Version20231026163131.php
Normal file
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace DoctrineMigrations;
|
||||
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
|
||||
/**
|
||||
* Auto-generated Migration: Please modify to your needs!
|
||||
*/
|
||||
final class Version20231026163131 extends AbstractMigration
|
||||
{
|
||||
public function getDescription(): string
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
public function up(Schema $schema): void
|
||||
{
|
||||
// this up() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('ALTER TABLE torrent ADD COLUMN status BOOLEAN DEFAULT 1');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
// this down() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('CREATE TEMPORARY TABLE __temp__torrent AS SELECT id, user_id, added, scraped, locales, sensitive, approved, md5file, keywords, seeders, peers, leechers FROM torrent');
|
||||
$this->addSql('DROP TABLE torrent');
|
||||
$this->addSql('CREATE TABLE torrent (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, user_id INTEGER NOT NULL, added INTEGER NOT NULL, scraped INTEGER DEFAULT NULL, locales CLOB NOT NULL --(DC2Type:simple_array)
|
||||
, sensitive BOOLEAN NOT NULL, approved BOOLEAN NOT NULL, md5file VARCHAR(32) NOT NULL, keywords CLOB DEFAULT NULL --(DC2Type:simple_array)
|
||||
, seeders INTEGER DEFAULT NULL, peers INTEGER DEFAULT NULL, leechers INTEGER DEFAULT NULL)');
|
||||
$this->addSql('INSERT INTO torrent (id, user_id, added, scraped, locales, sensitive, approved, md5file, keywords, seeders, peers, leechers) SELECT id, user_id, added, scraped, locales, sensitive, approved, md5file, keywords, seeders, peers, leechers FROM __temp__torrent');
|
||||
$this->addSql('DROP TABLE __temp__torrent');
|
||||
}
|
||||
}
|
@ -208,6 +208,14 @@ a.button-green:hover {
|
||||
border-top: 1px #5d627d solid;
|
||||
}
|
||||
|
||||
.border-bottom-dashed {
|
||||
border-bottom: 1px #5d627d dashed;
|
||||
}
|
||||
|
||||
.border-top-dashed {
|
||||
border-top: 1px #5d627d dashed;
|
||||
}
|
||||
|
||||
.border-width-2-px {
|
||||
border-width: 2px;
|
||||
}
|
||||
@ -367,6 +375,10 @@ a:visited.background-color-hover-night-light:hover {
|
||||
padding-bottom: 24px;
|
||||
}
|
||||
|
||||
.margin-t-4-px {
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.margin-l-4-px {
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
@ -560,6 +560,7 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName()
|
||||
@ -606,6 +607,7 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName()
|
||||
@ -652,6 +654,7 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName()
|
||||
@ -699,6 +702,7 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName()
|
||||
@ -745,6 +749,7 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName()
|
||||
@ -783,6 +788,102 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName()
|
||||
],
|
||||
'session' =>
|
||||
[
|
||||
'user' =>
|
||||
[
|
||||
'id' => $user->getId(),
|
||||
'sensitive' => $user->isSensitive(),
|
||||
'moderator' => $user->isModerator(),
|
||||
'owner' => $user->getId() === $torrent->getUserId(),
|
||||
]
|
||||
]
|
||||
]
|
||||
);
|
||||
|
||||
break;
|
||||
|
||||
// Torrent Status
|
||||
case $activity::EVENT_TORRENT_STATUS_ADD:
|
||||
|
||||
// Init torrent
|
||||
if (!$torrent = $torrentService->getTorrent($activity->getTorrentId()))
|
||||
{
|
||||
throw $this->createNotFoundException();
|
||||
}
|
||||
|
||||
return $this->render(
|
||||
'default/activity/event/torrent/status/add' . $extension,
|
||||
[
|
||||
'id' => $activity->getId(),
|
||||
'added' => $activity->getAdded(),
|
||||
'user' =>
|
||||
[
|
||||
'id' => $activity->getUserId(),
|
||||
'identicon' => $userService->identicon(
|
||||
$userService->getUser(
|
||||
$activity->getUserId()
|
||||
)->getAddress()
|
||||
)
|
||||
],
|
||||
'torrent' =>
|
||||
[
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName()
|
||||
],
|
||||
'session' =>
|
||||
[
|
||||
'user' =>
|
||||
[
|
||||
'id' => $user->getId(),
|
||||
'sensitive' => $user->isSensitive(),
|
||||
'moderator' => $user->isModerator(),
|
||||
'owner' => $user->getId() === $torrent->getUserId(),
|
||||
]
|
||||
]
|
||||
]
|
||||
);
|
||||
|
||||
break;
|
||||
|
||||
case $activity::EVENT_TORRENT_STATUS_DELETE:
|
||||
|
||||
// Init torrent
|
||||
if (!$torrent = $torrentService->getTorrent($activity->getTorrentId()))
|
||||
{
|
||||
throw $this->createNotFoundException();
|
||||
}
|
||||
|
||||
return $this->render(
|
||||
'default/activity/event/torrent/status/delete' . $extension,
|
||||
[
|
||||
'id' => $activity->getId(),
|
||||
'added' => $activity->getAdded(),
|
||||
'user' =>
|
||||
[
|
||||
'id' => $activity->getUserId(),
|
||||
'identicon' => $userService->identicon(
|
||||
$userService->getUser(
|
||||
$activity->getUserId()
|
||||
)->getAddress()
|
||||
)
|
||||
],
|
||||
'torrent' =>
|
||||
[
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName()
|
||||
@ -830,6 +931,7 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName(),
|
||||
@ -882,6 +984,7 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName(),
|
||||
@ -934,6 +1037,7 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName(),
|
||||
@ -986,6 +1090,7 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName(),
|
||||
@ -1039,6 +1144,7 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName(),
|
||||
@ -1091,6 +1197,7 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName(),
|
||||
@ -1143,6 +1250,7 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName(),
|
||||
@ -1195,6 +1303,7 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName(),
|
||||
@ -1248,6 +1357,7 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName()
|
||||
@ -1294,6 +1404,7 @@ class ActivityController extends AbstractController
|
||||
'id' => $torrent->getId(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'name' => $torrentService->readTorrentFileByTorrentId(
|
||||
$torrent->getId()
|
||||
)->getName()
|
||||
|
@ -62,8 +62,9 @@ class TorrentController extends AbstractController
|
||||
throw $this->createNotFoundException();
|
||||
}
|
||||
|
||||
// Approved filter
|
||||
if (!$user->isModerator() && $user->getId() != $torrent->getUserId() && !$torrent->isApproved())
|
||||
// Access filter
|
||||
if (!$user->isModerator() && $user->getId() != $torrent->getUserId() &&
|
||||
(!$torrent->isStatus() || !$torrent->isApproved()))
|
||||
{
|
||||
throw $this->createNotFoundException();
|
||||
}
|
||||
@ -110,9 +111,10 @@ class TorrentController extends AbstractController
|
||||
[
|
||||
'session' =>
|
||||
[
|
||||
'user' => $user,
|
||||
'user' => $user,
|
||||
'id' => $user->getId(),
|
||||
'moderator' => $user->isModerator()
|
||||
'moderator' => $user->isModerator(),
|
||||
'owner' => $user->getId() === $torrent->getUserId(),
|
||||
],
|
||||
'torrent' =>
|
||||
[
|
||||
@ -129,6 +131,7 @@ class TorrentController extends AbstractController
|
||||
'locales' => $torrent->getLocales(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'download' =>
|
||||
[
|
||||
'file' =>
|
||||
@ -226,24 +229,30 @@ class TorrentController extends AbstractController
|
||||
$activityService
|
||||
);
|
||||
|
||||
//
|
||||
|
||||
// Init request
|
||||
$query = $request->get('query') ? explode(' ', urldecode($request->get('query'))) : [];
|
||||
$page = $request->get('page') ? (int) $request->get('page') : 1;
|
||||
|
||||
// Get total torrents
|
||||
$total = $torrentService->findTorrentsTotal(
|
||||
$user->getId(),
|
||||
$query,
|
||||
$user->getLocales(),
|
||||
!$user->isModerator() && $user->isSensitive() ? false : null, // hide on sensitive mode enabled or show all
|
||||
!$user->isModerator() ? true : null, // show approved content only for regular users
|
||||
!$user->isModerator() && $user->isSensitive() ? false : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
);
|
||||
|
||||
$torrents = [];
|
||||
foreach ($torrentService->findTorrents(
|
||||
$user->getId(),
|
||||
$query,
|
||||
$user->getLocales(),
|
||||
!$user->isModerator() && $user->isSensitive() ? false : null, // hide on sensitive mode enabled or show all
|
||||
!$user->isModerator() ? true : null, // show approved content only for regular users
|
||||
!$user->isModerator() && $user->isSensitive() ? false : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
$this->getParameter('app.pagination'),
|
||||
($page - 1) * $this->getParameter('app.pagination')
|
||||
) as $torrent)
|
||||
@ -254,18 +263,6 @@ class TorrentController extends AbstractController
|
||||
throw $this->createNotFoundException(); // @TODO exception
|
||||
}
|
||||
|
||||
// Generate keywords
|
||||
/* @TODO deprecated, based on active search result
|
||||
$keywords = [];
|
||||
foreach ($torrent->getKeywords() as $keyword)
|
||||
{
|
||||
if (in_array($keyword, $query))
|
||||
{
|
||||
$keywords[] = $keyword;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
// Generate keywords by extension
|
||||
$keywords = [];
|
||||
|
||||
@ -296,6 +293,7 @@ class TorrentController extends AbstractController
|
||||
'added' => $torrent->getAdded(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'file' =>
|
||||
[
|
||||
'name' => $file->getName(),
|
||||
@ -401,19 +399,23 @@ class TorrentController extends AbstractController
|
||||
|
||||
// Get total torrents
|
||||
$total = $torrentService->findTorrentsTotal(
|
||||
$user->getId(),
|
||||
[],
|
||||
$user->getLocales(),
|
||||
!$user->isModerator() && $user->isSensitive() ? false : null, // hide on sensitive mode enabled or show all
|
||||
!$user->isModerator() ? true : null, // show approved content only for regular users
|
||||
!$user->isModerator() && $user->isSensitive() ? false : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
);
|
||||
|
||||
// Create torrents list
|
||||
$torrents = [];
|
||||
foreach ($torrentService->findTorrents(
|
||||
$user->getId(),
|
||||
[],
|
||||
$user->getLocales(),
|
||||
!$user->isModerator() && $user->isSensitive() ? false : null, // hide on sensitive mode enabled or show all
|
||||
!$user->isModerator() ? true : null, // show approved content only for regular users
|
||||
!$user->isModerator() && $user->isSensitive() ? false : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
$this->getParameter('app.pagination'),
|
||||
($page - 1) * $this->getParameter('app.pagination')
|
||||
) as $torrent)
|
||||
@ -454,6 +456,7 @@ class TorrentController extends AbstractController
|
||||
'added' => $torrent->getAdded(),
|
||||
'approved' => $torrent->isApproved(),
|
||||
'sensitive' => $torrent->isSensitive(),
|
||||
'status' => $torrent->isStatus(),
|
||||
'file' =>
|
||||
[
|
||||
'name' => $file->getName(),
|
||||
@ -558,19 +561,23 @@ class TorrentController extends AbstractController
|
||||
|
||||
// Get total torrents
|
||||
$total = $torrentService->findTorrentsTotal(
|
||||
$user->getId(),
|
||||
$query,
|
||||
$user->getLocales(),
|
||||
!$user->isModerator() && $user->isSensitive() ? false : null, // hide on sensitive mode enabled or show all
|
||||
!$user->isModerator() ? true : null // show approved content only for regular users
|
||||
!$user->isModerator() && $user->isSensitive() ? false : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
);
|
||||
|
||||
// Create torrents list
|
||||
$torrents = [];
|
||||
foreach ($torrentService->findTorrents(
|
||||
$user->getId(),
|
||||
$query,
|
||||
$user->getLocales(),
|
||||
!$user->isModerator() && $user->isSensitive() ? false : null, // hide on sensitive mode enabled or show all
|
||||
!$user->isModerator() ? true : null, // show approved content only for regular users
|
||||
!$user->isModerator() && $user->isSensitive() ? false : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
$this->getParameter('app.pagination'),
|
||||
($page - 1) * $this->getParameter('app.pagination')
|
||||
) as $torrent)
|
||||
@ -583,9 +590,9 @@ class TorrentController extends AbstractController
|
||||
|
||||
$torrents[] =
|
||||
[
|
||||
'id' => $torrent->getId(),
|
||||
'added' => $torrent->getAdded(),
|
||||
'file' =>
|
||||
'id' => $torrent->getId(),
|
||||
'added' => $torrent->getAdded(),
|
||||
'file' =>
|
||||
[
|
||||
'name' => $file->getName(),
|
||||
],
|
||||
@ -624,6 +631,13 @@ class TorrentController extends AbstractController
|
||||
ActivityService $activityService
|
||||
): Response
|
||||
{
|
||||
// Init user
|
||||
$user = $this->initUser(
|
||||
$request,
|
||||
$userService,
|
||||
$activityService
|
||||
);
|
||||
|
||||
// Init request
|
||||
$query = $request->get('query') ? explode(' ', urldecode($request->get('query'))) : [];
|
||||
$page = $request->get('page') ? (int) $request->get('page') : 1;
|
||||
@ -638,19 +652,23 @@ class TorrentController extends AbstractController
|
||||
|
||||
// Get total torrents
|
||||
$total = $torrentService->findTorrentsTotal(
|
||||
$user->getId(),
|
||||
$query,
|
||||
$locales,
|
||||
$sensitive,
|
||||
true, // approved only
|
||||
!$user->isModerator() ? $sensitive : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
);
|
||||
|
||||
// Create torrents list
|
||||
$torrents = [];
|
||||
foreach ($torrentService->findTorrents(
|
||||
$user->getId(),
|
||||
$query,
|
||||
$locales,
|
||||
$sensitive,
|
||||
true, // approved only
|
||||
!$user->isModerator() ? $sensitive : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
!$user->isModerator() ? true : null,
|
||||
$this->getParameter('app.pagination'),
|
||||
($page - 1) * $this->getParameter('app.pagination')
|
||||
) as $torrent)
|
||||
@ -867,7 +885,8 @@ class TorrentController extends AbstractController
|
||||
time(),
|
||||
(array) $locales,
|
||||
(bool) $request->get('sensitive'),
|
||||
$user->isApproved()
|
||||
$user->isApproved(),
|
||||
$user->isStatus()
|
||||
);
|
||||
|
||||
// Add activity event
|
||||
@ -898,7 +917,7 @@ class TorrentController extends AbstractController
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// Torrent moderation
|
||||
#[Route(
|
||||
'/{_locale}/torrent/{torrentId}/approve/toggle',
|
||||
name: 'torrent_approve_toggle',
|
||||
@ -975,6 +994,82 @@ class TorrentController extends AbstractController
|
||||
);
|
||||
}
|
||||
|
||||
#[Route(
|
||||
'/{_locale}/torrent/{torrentId}/status/toggle',
|
||||
name: 'torrent_status_toggle',
|
||||
requirements:
|
||||
[
|
||||
'_locale' => '%app.locales%',
|
||||
'torrentId' => '\d+',
|
||||
],
|
||||
methods:
|
||||
[
|
||||
'GET'
|
||||
]
|
||||
)]
|
||||
public function status(
|
||||
Request $request,
|
||||
UserService $userService,
|
||||
TorrentService $torrentService,
|
||||
ActivityService $activityService
|
||||
): Response
|
||||
{
|
||||
// Init user
|
||||
$user = $this->initUser(
|
||||
$request,
|
||||
$userService,
|
||||
$activityService
|
||||
);
|
||||
|
||||
// Init torrent
|
||||
if (!$torrent = $torrentService->getTorrent($request->get('torrentId')))
|
||||
{
|
||||
throw $this->createNotFoundException();
|
||||
}
|
||||
|
||||
// Check permissions
|
||||
if (!($user->isModerator() || $user->getId() == $torrent->getUserId()))
|
||||
{
|
||||
// @TODO
|
||||
throw new \Exception(
|
||||
$translator->trans('Access denied')
|
||||
);
|
||||
}
|
||||
|
||||
// Register activity event
|
||||
if (!$torrent->isStatus())
|
||||
{
|
||||
$activityService->addEventTorrentStatusAdd(
|
||||
$user->getId(),
|
||||
$torrent->getId(),
|
||||
time()
|
||||
);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
$activityService->addEventTorrentStatusDelete(
|
||||
$user->getId(),
|
||||
$torrent->getId(),
|
||||
time()
|
||||
);
|
||||
}
|
||||
|
||||
// Update status
|
||||
$torrentService->toggleTorrentStatus(
|
||||
$torrent->getId()
|
||||
);
|
||||
|
||||
// Redirect back to form
|
||||
return $this->redirectToRoute(
|
||||
'torrent_info',
|
||||
[
|
||||
'_locale' => $request->get('_locale'),
|
||||
'torrentId' => $torrent->getId()
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
// Torrent locales
|
||||
#[Route(
|
||||
'/{_locale}/torrent/{torrentId}/edit/locales/{torrentLocalesId}',
|
||||
@ -1807,14 +1902,9 @@ class TorrentController extends AbstractController
|
||||
throw $this->createNotFoundException();
|
||||
}
|
||||
|
||||
// Sensitive filter
|
||||
if (!$user->isModerator() && $user->isSensitive())
|
||||
{
|
||||
throw $this->createNotFoundException();
|
||||
}
|
||||
|
||||
// Approved filter
|
||||
if (!$user->isModerator() && $user->getId() != $torrent->getUserId() && !$torrent->isApproved())
|
||||
// Access filter
|
||||
if (!$user->isModerator() && $user->getId() != $torrent->getUserId() &&
|
||||
(!$torrent->isStatus() || !$torrent->isApproved()))
|
||||
{
|
||||
throw $this->createNotFoundException();
|
||||
}
|
||||
@ -1934,14 +2024,9 @@ class TorrentController extends AbstractController
|
||||
throw $this->createNotFoundException();
|
||||
}
|
||||
|
||||
// Sensitive filter
|
||||
if (!$user->isModerator() && $user->isSensitive())
|
||||
{
|
||||
throw $this->createNotFoundException();
|
||||
}
|
||||
|
||||
// Approved filter
|
||||
if (!$user->isModerator() && $user->getId() != $torrent->getUserId() && !$torrent->isApproved())
|
||||
// Access filter
|
||||
if (!$user->isModerator() && $user->getId() != $torrent->getUserId() &&
|
||||
(!$torrent->isStatus() || !$torrent->isApproved()))
|
||||
{
|
||||
throw $this->createNotFoundException();
|
||||
}
|
||||
@ -2058,14 +2143,9 @@ class TorrentController extends AbstractController
|
||||
throw $this->createNotFoundException();
|
||||
}
|
||||
|
||||
// Sensitive filter
|
||||
if (!$user->isModerator() && $user->isSensitive())
|
||||
{
|
||||
throw $this->createNotFoundException();
|
||||
}
|
||||
|
||||
// Approved filter
|
||||
if (!$user->isModerator() && $user->getId() != $torrent->getUserId() && !$torrent->isApproved())
|
||||
// Access filter
|
||||
if (!$user->isModerator() && $user->getId() != $torrent->getUserId() &&
|
||||
(!$torrent->isStatus() || !$torrent->isApproved()))
|
||||
{
|
||||
throw $this->createNotFoundException();
|
||||
}
|
||||
@ -2389,10 +2469,12 @@ class TorrentController extends AbstractController
|
||||
'locale' => $locale,
|
||||
'locales' => $locales,
|
||||
'torrents' => $torrentService->findTorrents(
|
||||
0, // no user session init, pass 0
|
||||
[], // without keywords filter
|
||||
$locales, // all system locales
|
||||
null, // all sensitive levels
|
||||
true, // approved only
|
||||
true, // enabled only
|
||||
1000, // @TODO limit
|
||||
0 // offset
|
||||
)
|
||||
|
@ -59,6 +59,9 @@ class Activity
|
||||
|
||||
public const EVENT_TORRENT_WANTED_ADD = 2700;
|
||||
|
||||
public const EVENT_TORRENT_STATUS_ADD = 1800;
|
||||
public const EVENT_TORRENT_STATUS_DELETE = 1801;
|
||||
|
||||
// ...
|
||||
|
||||
#[ORM\Column]
|
||||
|
@ -33,6 +33,9 @@ class Torrent
|
||||
#[ORM\Column]
|
||||
private ?bool $approved = null;
|
||||
|
||||
#[ORM\Column]
|
||||
private ?bool $status = null;
|
||||
|
||||
#[ORM\Column(length: 32)]
|
||||
private ?string $md5file = null;
|
||||
|
||||
@ -156,6 +159,18 @@ class Torrent
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function isStatus(): ?bool
|
||||
{
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
public function setStatus(bool $status): static
|
||||
{
|
||||
$this->status = $status;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getSeeders(): ?int
|
||||
{
|
||||
return $this->seeders;
|
||||
|
@ -22,38 +22,46 @@ class TorrentRepository extends ServiceEntityRepository
|
||||
}
|
||||
|
||||
public function findTorrentsTotal(
|
||||
int $userId,
|
||||
array $keywords,
|
||||
array $locales,
|
||||
?bool $sensitive = null,
|
||||
?bool $approved = null,
|
||||
int $limit = 10,
|
||||
int $offset = 0
|
||||
?bool $approved = null,
|
||||
?bool $status = null,
|
||||
int $limit = 10,
|
||||
int $offset = 0
|
||||
): int
|
||||
{
|
||||
return $this->getTorrentsQueryByFilter(
|
||||
$userId,
|
||||
$keywords,
|
||||
$locales,
|
||||
$sensitive,
|
||||
$approved,
|
||||
$status,
|
||||
)->select('count(t.id)')
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
}
|
||||
|
||||
public function findTorrents(
|
||||
int $userId,
|
||||
array $keywords,
|
||||
array $locales,
|
||||
?bool $sensitive = null,
|
||||
?bool $approved = null,
|
||||
?bool $approved = null,
|
||||
?bool $status = null,
|
||||
int $limit = 10,
|
||||
int $offset = 0
|
||||
): array
|
||||
{
|
||||
return $this->getTorrentsQueryByFilter(
|
||||
$userId,
|
||||
$keywords,
|
||||
$locales,
|
||||
$sensitive,
|
||||
$approved,
|
||||
$status,
|
||||
)->setMaxResults($limit)
|
||||
->setFirstResult($offset)
|
||||
->orderBy('t.id', 'DESC') // same as t.added
|
||||
@ -62,54 +70,85 @@ class TorrentRepository extends ServiceEntityRepository
|
||||
}
|
||||
|
||||
private function getTorrentsQueryByFilter(
|
||||
int $userId,
|
||||
array $keywords,
|
||||
array $locales,
|
||||
?bool $sensitive = null,
|
||||
?bool $approved = null,
|
||||
?bool $approved = null,
|
||||
?bool $status = null,
|
||||
): \Doctrine\ORM\QueryBuilder
|
||||
{
|
||||
$query = $this->createQueryBuilder('t');
|
||||
|
||||
if ($keywords) // @TODO ANY or DTS
|
||||
if ($keywords)
|
||||
{
|
||||
$andX = $query->expr()->andX();
|
||||
$andKeywords = $query->expr()->andX();
|
||||
|
||||
foreach ($keywords as $i => $keyword)
|
||||
{
|
||||
$keyword = mb_strtolower($keyword); // all keywords stored in lowercase
|
||||
|
||||
$andX->add("t.keywords LIKE :keyword{$i}");
|
||||
$andKeywords->add("t.keywords LIKE :keyword{$i}");
|
||||
|
||||
$query->setParameter(":keyword{$i}", "%{$keyword}%");
|
||||
}
|
||||
|
||||
$query->andWhere($andX);
|
||||
$query->andWhere($andKeywords);
|
||||
}
|
||||
|
||||
if ($locales) // @TODO ANY or DTS
|
||||
if ($locales)
|
||||
{
|
||||
//$orX = $query->expr()->orX();
|
||||
$orX = $query->expr()->orX();
|
||||
$orLocales = $query->expr()->orX();
|
||||
|
||||
foreach ($locales as $i => $locale)
|
||||
{
|
||||
$orX->add("t.locales LIKE :locale{$i}");
|
||||
$orLocales->add("t.locales LIKE :locale{$i}");
|
||||
$orLocales->add("t.userId = :userId");
|
||||
|
||||
$query->setParameter(":locale{$i}", "%{$locale}%");
|
||||
$query->setParameter('userId', $userId);
|
||||
}
|
||||
|
||||
$query->andWhere($orX);
|
||||
$query->andWhere($orLocales);
|
||||
}
|
||||
|
||||
if (is_bool($sensitive))
|
||||
{
|
||||
$query->andWhere('t.sensitive = :sensitive')
|
||||
->setParameter('sensitive', $sensitive);
|
||||
$orSensitive = $query->expr()->orX();
|
||||
|
||||
$orSensitive->add("t.sensitive = :sensitive");
|
||||
$orSensitive->add("t.userId = :userId");
|
||||
|
||||
$query->setParameter('sensitive', $sensitive);
|
||||
$query->setParameter('userId', $userId);
|
||||
|
||||
$query->andWhere($orSensitive);
|
||||
}
|
||||
|
||||
if (is_bool($approved))
|
||||
{
|
||||
$query->andWhere('t.approved = :approved')
|
||||
->setParameter('approved', $approved);
|
||||
$orApproved = $query->expr()->orX();
|
||||
|
||||
$orApproved->add("t.approved = :approved");
|
||||
$orApproved->add("t.userId = :userId");
|
||||
|
||||
$query->setParameter('approved', $approved);
|
||||
$query->setParameter('userId', $userId);
|
||||
|
||||
$query->andWhere($orApproved);
|
||||
}
|
||||
|
||||
if (is_bool($status))
|
||||
{
|
||||
$orStatus = $query->expr()->orX();
|
||||
|
||||
$orStatus->add("t.status = :status");
|
||||
$orStatus->add("t.userId = :userId");
|
||||
|
||||
$query->setParameter('status', $status);
|
||||
$query->setParameter('userId', $userId);
|
||||
|
||||
$query->andWhere($orStatus);
|
||||
}
|
||||
|
||||
return $query;
|
||||
|
@ -62,6 +62,9 @@ class ActivityService
|
||||
Activity::EVENT_TORRENT_DOWNLOAD_FILE_ADD,
|
||||
Activity::EVENT_TORRENT_DOWNLOAD_MAGNET_ADD,
|
||||
|
||||
Activity::EVENT_TORRENT_STATUS_ADD,
|
||||
Activity::EVENT_TORRENT_STATUS_DELETE,
|
||||
|
||||
Activity::EVENT_TORRENT_WANTED_ADD,
|
||||
];
|
||||
}
|
||||
@ -379,6 +382,30 @@ class ActivityService
|
||||
] = $code;
|
||||
|
||||
break;
|
||||
|
||||
case Activity::EVENT_TORRENT_STATUS_ADD:
|
||||
|
||||
$events
|
||||
[
|
||||
$this->translatorInterface->trans('Torrents')
|
||||
]
|
||||
[
|
||||
$this->translatorInterface->trans('Enabled')
|
||||
] = $code;
|
||||
|
||||
break;
|
||||
|
||||
case Activity::EVENT_TORRENT_STATUS_DELETE:
|
||||
|
||||
$events
|
||||
[
|
||||
$this->translatorInterface->trans('Torrents')
|
||||
]
|
||||
[
|
||||
$this->translatorInterface->trans('Disabled')
|
||||
] = $code;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -861,6 +888,65 @@ class ActivityService
|
||||
return $activity;
|
||||
}
|
||||
|
||||
public function addEventTorrentStatusAdd(
|
||||
int $userId,
|
||||
int $torrentId,
|
||||
int $added
|
||||
): ?Activity
|
||||
{
|
||||
$activity = new Activity();
|
||||
|
||||
$activity->setEvent(
|
||||
Activity::EVENT_TORRENT_STATUS_ADD
|
||||
);
|
||||
|
||||
$activity->setUserId(
|
||||
$userId
|
||||
);
|
||||
|
||||
$activity->setTorrentId(
|
||||
$torrentId
|
||||
);
|
||||
|
||||
$activity->setAdded(
|
||||
$added
|
||||
);
|
||||
|
||||
$this->entityManagerInterface->persist($activity);
|
||||
$this->entityManagerInterface->flush();
|
||||
|
||||
return $activity;
|
||||
}
|
||||
|
||||
public function addEventTorrentStatusDelete(
|
||||
int $userId,
|
||||
int $torrentId,
|
||||
int $added
|
||||
): ?Activity
|
||||
{
|
||||
$activity = new Activity();
|
||||
|
||||
$activity->setEvent(
|
||||
Activity::EVENT_TORRENT_STATUS_DELETE
|
||||
);
|
||||
|
||||
$activity->setUserId(
|
||||
$userId
|
||||
);
|
||||
|
||||
$activity->setTorrentId(
|
||||
$torrentId
|
||||
);
|
||||
|
||||
$activity->setAdded(
|
||||
$added
|
||||
);
|
||||
|
||||
$this->entityManagerInterface->persist($activity);
|
||||
$this->entityManagerInterface->flush();
|
||||
|
||||
return $activity;
|
||||
}
|
||||
|
||||
public function addEventTorrentWantedAdd(
|
||||
int $userId,
|
||||
|
@ -192,7 +192,8 @@ class TorrentService
|
||||
int $added,
|
||||
array $locales,
|
||||
bool $sensitive,
|
||||
bool $approved
|
||||
bool $approved,
|
||||
bool $status
|
||||
): ?Torrent
|
||||
{
|
||||
$torrent = $this->addTorrent(
|
||||
@ -204,7 +205,8 @@ class TorrentService
|
||||
),
|
||||
$locales,
|
||||
$sensitive,
|
||||
$approved
|
||||
$approved,
|
||||
$status
|
||||
);
|
||||
|
||||
$filesystem = new Filesystem();
|
||||
@ -249,7 +251,8 @@ class TorrentService
|
||||
array $keywords,
|
||||
array $locales,
|
||||
bool $sensitive,
|
||||
bool $approved
|
||||
bool $approved,
|
||||
bool $status
|
||||
): ?Torrent
|
||||
{
|
||||
$torrent = new Torrent();
|
||||
@ -261,6 +264,7 @@ class TorrentService
|
||||
$torrent->setLocales($locales);
|
||||
$torrent->setSensitive($sensitive);
|
||||
$torrent->setApproved($approved);
|
||||
$torrent->setStatus($status);
|
||||
|
||||
$this->entityManagerInterface->persist($torrent);
|
||||
$this->entityManagerInterface->flush();
|
||||
@ -292,6 +296,30 @@ class TorrentService
|
||||
return $torrent;
|
||||
}
|
||||
|
||||
public function toggleTorrentStatus(
|
||||
int $torrentId
|
||||
): ?Torrent
|
||||
{
|
||||
$torrent = $this->getTorrent($torrentId);
|
||||
|
||||
$torrent->setStatus(
|
||||
!$torrent->isStatus() // toggle current value
|
||||
);
|
||||
|
||||
$this->entityManagerInterface->persist($torrent);
|
||||
$this->entityManagerInterface->flush();
|
||||
|
||||
$this->updateTorrentLocales(
|
||||
$torrent->getId()
|
||||
);
|
||||
|
||||
$this->updateTorrentSensitive(
|
||||
$torrent->getId()
|
||||
);
|
||||
|
||||
return $torrent;
|
||||
}
|
||||
|
||||
public function getTorrentScrapeQueue(): ?Torrent
|
||||
{
|
||||
return $this->entityManagerInterface
|
||||
@ -305,40 +333,48 @@ class TorrentService
|
||||
}
|
||||
|
||||
public function findTorrents(
|
||||
int $userId,
|
||||
array $keywords,
|
||||
array $locales,
|
||||
?bool $sensitive,
|
||||
?bool $approved,
|
||||
int $limit,
|
||||
int $offset
|
||||
?bool $status,
|
||||
int $limit,
|
||||
int $offset
|
||||
) : array
|
||||
{
|
||||
return $this->entityManagerInterface
|
||||
->getRepository(Torrent::class)
|
||||
->findTorrents(
|
||||
$userId,
|
||||
$keywords,
|
||||
$locales,
|
||||
$sensitive,
|
||||
$approved,
|
||||
$status,
|
||||
$limit,
|
||||
$offset
|
||||
);
|
||||
}
|
||||
|
||||
public function findTorrentsTotal(
|
||||
int $userId,
|
||||
array $keywords,
|
||||
array $locales,
|
||||
?bool $sensitive,
|
||||
?bool $approved
|
||||
?bool $approved,
|
||||
?bool $status
|
||||
) : int
|
||||
{
|
||||
return $this->entityManagerInterface
|
||||
->getRepository(Torrent::class)
|
||||
->findTorrentsTotal(
|
||||
$userId,
|
||||
$keywords,
|
||||
$locales,
|
||||
$sensitive,
|
||||
$approved
|
||||
$approved,
|
||||
$status
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -9,9 +9,11 @@
|
||||
{{ torrent.name }}
|
||||
</a>
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
|
@ -6,9 +6,11 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
|
@ -11,7 +11,11 @@
|
||||
{{ torrent.name }}
|
||||
</a>
|
||||
{% else %}
|
||||
{% if torrent.sensitive == true %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
|
@ -6,7 +6,11 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.sensitive == true %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
|
@ -11,9 +11,11 @@
|
||||
{{ torrent.name }}
|
||||
</a>
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
|
@ -6,7 +6,11 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.sensitive == true %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
|
@ -14,9 +14,11 @@
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
|
@ -6,9 +6,11 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
|
@ -14,9 +14,11 @@
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
|
@ -6,9 +6,11 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
|
@ -20,9 +20,11 @@
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
|
@ -8,9 +8,11 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
|
@ -20,9 +20,11 @@
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
|
@ -8,9 +8,11 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
|
@ -22,9 +22,11 @@
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
|
@ -8,9 +8,11 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
|
@ -20,9 +20,11 @@
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
|
@ -8,9 +8,11 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
|
@ -20,10 +20,12 @@
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }}
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
{{ torrent.name }}
|
||||
|
@ -8,10 +8,12 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }}
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
{% endif %}
|
||||
|
@ -20,10 +20,12 @@
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }}
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
{{ torrent.name }}
|
||||
|
@ -8,10 +8,12 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }}
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
{% endif %}
|
||||
|
@ -20,10 +20,12 @@
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }}
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
{{ torrent.name }}
|
||||
|
@ -8,10 +8,12 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }}
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
{% endif %}
|
||||
|
@ -20,10 +20,12 @@
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }}
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
{{ torrent.name }}
|
||||
|
@ -8,10 +8,12 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }}
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
{% endif %}
|
||||
|
@ -12,9 +12,11 @@
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
|
@ -6,9 +6,11 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
|
@ -13,9 +13,11 @@
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
|
@ -6,9 +6,11 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.approved == false %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true %}
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
|
@ -0,0 +1,30 @@
|
||||
<div class="row">
|
||||
<div class="column width-80">
|
||||
<a href="{{ path('user_info', { userId : user.id }) }}">
|
||||
<img class="border-radius-50 border-color-default vertical-align-middle" src="{{ user.identicon }}" alt="{{ 'identicon' | trans }}" />
|
||||
</a>
|
||||
<span class="margin-l-4-px">
|
||||
{{ 'have enabled torrent' | trans }}
|
||||
</span>
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
{{ torrent.name }}
|
||||
</a>
|
||||
{% else %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
{{ torrent.name }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="column width-20 text-right">
|
||||
{{ added | format_ago }}
|
||||
</div>
|
||||
</div>
|
26
templates/default/activity/event/torrent/status/add.rss.twig
Normal file
26
templates/default/activity/event/torrent/status/add.rss.twig
Normal file
@ -0,0 +1,26 @@
|
||||
<item>
|
||||
<title>
|
||||
{{ 'User' | trans }}
|
||||
#{{ user.id }}
|
||||
{{ 'have enabled torrent' | trans }}
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
{{ torrent.name }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</title>
|
||||
<author>#{{ user.id }}</author>
|
||||
<pubDate>{{ added | date('D, d M Y h:i:s O') }}</pubDate>
|
||||
<guid>{{ url('torrent_info', { torrentId : torrent.id }) }}#activity-{{ id }}</guid>
|
||||
<link>{{ url('torrent_info', { torrentId : torrent.id }) }}#activity</link>
|
||||
</item>
|
@ -0,0 +1,30 @@
|
||||
<div class="row">
|
||||
<div class="column width-80">
|
||||
<a href="{{ path('user_info', { userId : user.id }) }}">
|
||||
<img class="border-radius-50 border-color-default vertical-align-middle" src="{{ user.identicon }}" alt="{{ 'identicon' | trans }}" />
|
||||
</a>
|
||||
<span class="margin-l-4-px">
|
||||
{{ 'have disabled torrent' | trans }}
|
||||
</span>
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
{{ torrent.name }}
|
||||
</a>
|
||||
{% else %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }}
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
{{ torrent.name }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="column width-20 text-right">
|
||||
{{ added | format_ago }}
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,26 @@
|
||||
<item>
|
||||
<title>
|
||||
{{ 'User' | trans }}
|
||||
#{{ user.id }}
|
||||
{{ 'have disabled torrent' | trans }}
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }}
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
{{ torrent.name }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</title>
|
||||
<author>#{{ user.id }}</author>
|
||||
<pubDate>{{ added | date('D, d M Y h:i:s O') }}</pubDate>
|
||||
<guid>{{ url('torrent_info', { torrentId : torrent.id }) }}#activity-{{ id }}</guid>
|
||||
<link>{{ url('torrent_info', { torrentId : torrent.id }) }}#activity</link>
|
||||
</item>
|
@ -6,7 +6,11 @@
|
||||
{{ torrent.name }}
|
||||
</a>
|
||||
{% else %}
|
||||
{% if torrent.sensitive == true %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
<a href="{{ path('torrent_info', { torrentId : torrent.id }) }}">
|
||||
|
@ -4,7 +4,11 @@
|
||||
{% if session.user.moderator or session.user.owner %}
|
||||
{{ torrent.name }}
|
||||
{% else %}
|
||||
{% if torrent.sensitive == true %}
|
||||
{% if torrent.status == false %}
|
||||
#{{ torrent.id }} ({{ 'disabled' | trans }})
|
||||
{% elseif torrent.approved == false %}
|
||||
#{{ torrent.id }} ({{ 'waiting for approve' | trans }})
|
||||
{% elseif torrent.sensitive == true and session.user.sensitive == true %}
|
||||
#{{ torrent.id }} ({{ 'sensitive' | trans }})
|
||||
{% else %}
|
||||
{{ torrent.name }}
|
||||
|
@ -80,7 +80,7 @@
|
||||
</div>
|
||||
<table class="width-100">
|
||||
<tbody>
|
||||
{% if session.moderator %}
|
||||
{% if session.moderator or session.owner %}
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div class="padding-y-8-px border-bottom-default text-right">
|
||||
@ -90,19 +90,19 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding-t-16-px">
|
||||
{{ 'Approved' | trans }}
|
||||
{{ 'Enabled' | trans }}
|
||||
</td>
|
||||
<td class="padding-t-16-px">
|
||||
{% if torrent.approved %}
|
||||
{% if torrent.status %}
|
||||
{{ 'Yes' | trans }}
|
||||
<a class="float-right" href="{{ path('torrent_approve_toggle', { torrentId : torrent.id }) }}" title="{{ 'Toggle' | trans }}">
|
||||
<a class="float-right" href="{{ path('torrent_status_toggle', { torrentId : torrent.id }) }}" title="{{ 'Toggle' | trans }}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
|
||||
<path d="M5 3a5 5 0 0 0 0 10h6a5 5 0 0 0 0-10H5zm6 9a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"/>
|
||||
</svg>
|
||||
</a>
|
||||
{% else %}
|
||||
{{ 'No' | trans }}
|
||||
<a class="float-right text-color-red" href="{{ path('torrent_approve_toggle', { torrentId : torrent.id }) }}" title="{{ 'Toggle' | trans }}">
|
||||
<a class="float-right text-color-red" href="{{ path('torrent_status_toggle', { torrentId : torrent.id }) }}" title="{{ 'Toggle' | trans }}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
|
||||
<path d="M11 4a4 4 0 0 1 0 8H8a4.992 4.992 0 0 0 2-4 4.992 4.992 0 0 0-2-4h3zm-6 8a4 4 0 1 1 0-8 4 4 0 0 1 0 8zM0 8a5 5 0 0 0 5 5h6a5 5 0 0 0 0-10H5a5 5 0 0 0-5 5z"/>
|
||||
</svg>
|
||||
@ -110,6 +110,30 @@
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% if session.moderator %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ 'Approved' | trans }}
|
||||
</td>
|
||||
<td>
|
||||
{% if torrent.approved %}
|
||||
{{ 'Yes' | trans }}
|
||||
<a class="float-right" href="{{ path('torrent_approve_toggle', { torrentId : torrent.id }) }}" title="{{ 'Toggle' | trans }}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
|
||||
<path d="M5 3a5 5 0 0 0 0 10h6a5 5 0 0 0 0-10H5zm6 9a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"/>
|
||||
</svg>
|
||||
</a>
|
||||
{% else %}
|
||||
{{ 'No' | trans }}
|
||||
<a class="float-right text-color-red" href="{{ path('torrent_approve_toggle', { torrentId : torrent.id }) }}" title="{{ 'Toggle' | trans }}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
|
||||
<path d="M11 4a4 4 0 0 1 0 8H8a4.992 4.992 0 0 0 2-4 4.992 4.992 0 0 0-2-4h3zm-6 8a4 4 0 1 1 0-8 4 4 0 0 1 0 8zM0 8a5 5 0 0 0 5 5h6a5 5 0 0 0 0-10H5a5 5 0 0 0-5 5z"/>
|
||||
</svg>
|
||||
</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
|
@ -39,6 +39,14 @@
|
||||
{{ 'wanted' | trans }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if torrent.status == false %}
|
||||
<sub class="margin-l-8-px float-right opacity-06 hover-opacity-1" title="{{ 'Disabled' | trans }}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" fill="currentColor" viewBox="0 0 16 16">
|
||||
<path d="m10.79 12.912-1.614-1.615a3.5 3.5 0 0 1-4.474-4.474l-2.06-2.06C.938 6.278 0 8 0 8s3 5.5 8 5.5a7.029 7.029 0 0 0 2.79-.588zM5.21 3.088A7.028 7.028 0 0 1 8 2.5c5 0 8 5.5 8 5.5s-.939 1.721-2.641 3.238l-2.062-2.062a3.5 3.5 0 0 0-4.474-4.474L5.21 3.089z"/>
|
||||
<path d="M5.525 7.646a2.5 2.5 0 0 0 2.829 2.829l-2.83-2.829zm4.95.708-2.829-2.83a2.5 2.5 0 0 1 2.829 2.829zm3.171 6-12-12 .708-.708 12 12-.708.708z"/>
|
||||
</svg>
|
||||
</sub>
|
||||
{% endif %}
|
||||
{% if torrent.approved == false %}
|
||||
<sub class="margin-l-8-px float-right opacity-06 hover-opacity-1" title="{{ 'Waiting for approve' | trans }}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" fill="currentColor" viewBox="0 0 16 16">
|
||||
@ -47,7 +55,7 @@
|
||||
</sub>
|
||||
{% endif %}
|
||||
{% if torrent.sensitive == true %}
|
||||
<sub class="margin-l-8-px float-right opacity-06 hover-opacity-1" title="{{ 'Content visible for non sensitive users only' | trans }}">
|
||||
<sub class="margin-l-8-px float-right opacity-06 hover-opacity-1" title="{{ 'Sensitive' | trans }}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" fill="currentColor" viewBox="0 0 16 16">
|
||||
<path d="m9.97 4.88.953 3.811C10.159 8.878 9.14 9 8 9c-1.14 0-2.158-.122-2.923-.309L6.03 4.88C6.635 4.957 7.3 5 8 5s1.365-.043 1.97-.12zm-.245-.978L8.97.88C8.718-.13 7.282-.13 7.03.88L6.275 3.9C6.8 3.965 7.382 4 8 4c.618 0 1.2-.036 1.725-.098zm4.396 8.613a.5.5 0 0 1 .037.96l-6 2a.5.5 0 0 1-.316 0l-6-2a.5.5 0 0 1 .037-.96l2.391-.598.565-2.257c.862.212 1.964.339 3.165.339s2.303-.127 3.165-.339l.565 2.257 2.391.598z"/>
|
||||
</svg>
|
||||
|
@ -65,34 +65,39 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding-t-16-px">
|
||||
{{ 'Locales' | trans }}
|
||||
<div class="margin-t-4-px">
|
||||
{{ 'Locales' | trans }}
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-t-16-px">
|
||||
<td class="padding-t-16-px padding-b-8-px">
|
||||
{% for locale in locales %}
|
||||
<div class="margin-t-8-px margin-b-4-px margin-r-8-px display-inline-block min-width-120-px">
|
||||
<div class="margin-t-4-px margin-b-8-px margin-r-8-px display-inline-block min-width-120-px">
|
||||
{% if locale in user.locales %}
|
||||
<input name="locales[]" id="{{ locale }}" type="checkbox" value="{{ locale }}" checked="checked" />
|
||||
{% else %}
|
||||
<input name="locales[]" id="{{ locale }}" type="checkbox" value="{{ locale }}" />
|
||||
{% endif %}
|
||||
<label for="{{ locale }}">
|
||||
{{ locale|locale_name(locale)|u.title }}
|
||||
<label class="margin-x-4-px" for="{{ locale }}">
|
||||
{{ locale | locale_name(locale) | u.title }}
|
||||
</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding-t-8-px">
|
||||
{{ 'Hide sensitive' | trans }}
|
||||
<td class="padding-y-12-px">
|
||||
{{ 'Sensitive' | trans }}
|
||||
</td>
|
||||
<td>
|
||||
<div class="padding-t-8-px">
|
||||
<td class="padding-y-12-px border-top-default">
|
||||
<div class="margin-r-8-px">
|
||||
{% if user.sensitive %}
|
||||
<input name="sensitive" type="checkbox" value="true" checked="checked" />
|
||||
<input name="sensitive" id="sensitive" type="checkbox" value="true" checked="checked" />
|
||||
{% else %}
|
||||
<input name="sensitive" type="checkbox" value="true" />
|
||||
<input name="sensitive" id="sensitive" type="checkbox" value="true" />
|
||||
{% endif %}
|
||||
<label class="margin-x-4-px" for="sensitive">
|
||||
{{ 'Hide' | trans }}
|
||||
</label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@ -104,20 +109,22 @@
|
||||
<tr>
|
||||
<td colspan="2"></td>
|
||||
</tr>
|
||||
{% set i = 0 %}
|
||||
{% for group, event in events %}
|
||||
{% set i = i + 1 %}
|
||||
<tr>
|
||||
<td class="padding-t-8-px">
|
||||
<td class="padding-y-12-px">
|
||||
{{ group }}
|
||||
</td>
|
||||
<td class="padding-t-8-px">
|
||||
<td class="padding-t-8-px {% if i > 1 %}border-top-default{% endif %}">
|
||||
{% for key, value in event %}
|
||||
<span class="margin-r-8-px">
|
||||
<span class="margin-t-4-px margin-b-8-px margin-r-8-px display-inline-block min-width-120-px">
|
||||
{% if value in user.events %}
|
||||
<input name="events[]" id="event-{{ value }}" type="checkbox" value="{{ value }}" checked="checked" />
|
||||
{% else %}
|
||||
<input name="events[]" id="event-{{ value }}" type="checkbox" value="{{ value }}" />
|
||||
{% endif %}
|
||||
<label for="event-{{ value }}">
|
||||
<label class="margin-x-4-px" for="event-{{ value }}">
|
||||
{{ key }}
|
||||
</label>
|
||||
</span>
|
||||
@ -136,10 +143,13 @@
|
||||
</td>
|
||||
<td class="padding-y-16-px">
|
||||
{% if user.yggdrasil %}
|
||||
<input name="yggdrasil" type="checkbox" value="true" checked="checked" />
|
||||
<input name="yggdrasil" id="yggdrasil" type="checkbox" value="true" checked="checked" />
|
||||
{% else %}
|
||||
<input name="yggdrasil" type="checkbox" value="true" />
|
||||
<input name="yggdrasil" id="yggdrasil" type="checkbox" value="true" />
|
||||
{% endif %}
|
||||
<label class="margin-x-4-px" for="yggdrasil">
|
||||
{{ 'Enabled' | trans }}
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -169,10 +169,6 @@
|
||||
<source>Waiting for approve</source>
|
||||
<target>Waiting for approve</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="uP0WnsM" resname="Content visible for non sensitive users only">
|
||||
<source>Content visible for non sensitive users only</source>
|
||||
<target>Content visible for non sensitive users only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="GvhRkHM" resname="Size">
|
||||
<source>Size</source>
|
||||
<target>Size</target>
|
||||
@ -725,9 +721,21 @@
|
||||
<source>Seeders wanted for torrent</source>
|
||||
<target>Seeders wanted for torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="147HHy2" resname="Hide sensitive">
|
||||
<source>Hide sensitive</source>
|
||||
<target>Hide sensitive</target>
|
||||
<trans-unit id="rCCle.3" resname="Hide">
|
||||
<source>Hide</source>
|
||||
<target>Hide</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="m11TRpU" resname="have disabled torrent">
|
||||
<source>have disabled torrent</source>
|
||||
<target>have disabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="qfr4ljO" resname="have enabled torrent">
|
||||
<source>have enabled torrent</source>
|
||||
<target>have enabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="F_s8AWj" resname="disabled">
|
||||
<source>disabled</source>
|
||||
<target>disabled</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -169,10 +169,6 @@
|
||||
<source>Waiting for approve</source>
|
||||
<target>Waiting for approve</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="uP0WnsM" resname="Content visible for non sensitive users only">
|
||||
<source>Content visible for non sensitive users only</source>
|
||||
<target>Content visible for non sensitive users only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="GvhRkHM" resname="Size">
|
||||
<source>Size</source>
|
||||
<target>Size</target>
|
||||
@ -725,9 +721,21 @@
|
||||
<source>Seeders wanted for torrent</source>
|
||||
<target>Seeders wanted for torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="147HHy2" resname="Hide sensitive">
|
||||
<source>Hide sensitive</source>
|
||||
<target>Hide sensitive</target>
|
||||
<trans-unit id="rCCle.3" resname="Hide">
|
||||
<source>Hide</source>
|
||||
<target>Hide</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="m11TRpU" resname="have disabled torrent">
|
||||
<source>have disabled torrent</source>
|
||||
<target>have disabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="qfr4ljO" resname="have enabled torrent">
|
||||
<source>have enabled torrent</source>
|
||||
<target>have enabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="F_s8AWj" resname="disabled">
|
||||
<source>disabled</source>
|
||||
<target>disabled</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -169,10 +169,6 @@
|
||||
<source>Waiting for approve</source>
|
||||
<target>Waiting for approve</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="uP0WnsM" resname="Content visible for non sensitive users only">
|
||||
<source>Content visible for non sensitive users only</source>
|
||||
<target>Content visible for non sensitive users only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="GvhRkHM" resname="Size">
|
||||
<source>Size</source>
|
||||
<target>Size</target>
|
||||
@ -725,9 +721,21 @@
|
||||
<source>Seeders wanted for torrent</source>
|
||||
<target>Seeders wanted for torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="147HHy2" resname="Hide sensitive">
|
||||
<source>Hide sensitive</source>
|
||||
<target>Hide sensitive</target>
|
||||
<trans-unit id="rCCle.3" resname="Hide">
|
||||
<source>Hide</source>
|
||||
<target>Hide</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="m11TRpU" resname="have disabled torrent">
|
||||
<source>have disabled torrent</source>
|
||||
<target>have disabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="qfr4ljO" resname="have enabled torrent">
|
||||
<source>have enabled torrent</source>
|
||||
<target>have enabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="F_s8AWj" resname="disabled">
|
||||
<source>disabled</source>
|
||||
<target>disabled</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -169,10 +169,6 @@
|
||||
<source>Waiting for approve</source>
|
||||
<target>Waiting for approve</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="uP0WnsM" resname="Content visible for non sensitive users only">
|
||||
<source>Content visible for non sensitive users only</source>
|
||||
<target>Content visible for non sensitive users only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="GvhRkHM" resname="Size">
|
||||
<source>Size</source>
|
||||
<target>Size</target>
|
||||
@ -725,9 +721,21 @@
|
||||
<source>Seeders wanted for torrent</source>
|
||||
<target>Seeders wanted for torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="147HHy2" resname="Hide sensitive">
|
||||
<source>Hide sensitive</source>
|
||||
<target>Hide sensitive</target>
|
||||
<trans-unit id="rCCle.3" resname="Hide">
|
||||
<source>Hide</source>
|
||||
<target>Hide</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="m11TRpU" resname="have disabled torrent">
|
||||
<source>have disabled torrent</source>
|
||||
<target>have disabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="qfr4ljO" resname="have enabled torrent">
|
||||
<source>have enabled torrent</source>
|
||||
<target>have enabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="F_s8AWj" resname="disabled">
|
||||
<source>disabled</source>
|
||||
<target>disabled</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -169,10 +169,6 @@
|
||||
<source>Waiting for approve</source>
|
||||
<target>Waiting for approve</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="uP0WnsM" resname="Content visible for non sensitive users only">
|
||||
<source>Content visible for non sensitive users only</source>
|
||||
<target>Content visible for non sensitive users only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="GvhRkHM" resname="Size">
|
||||
<source>Size</source>
|
||||
<target>Size</target>
|
||||
@ -725,9 +721,21 @@
|
||||
<source>Seeders wanted for torrent</source>
|
||||
<target>Seeders wanted for torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="147HHy2" resname="Hide sensitive">
|
||||
<source>Hide sensitive</source>
|
||||
<target>Hide sensitive</target>
|
||||
<trans-unit id="rCCle.3" resname="Hide">
|
||||
<source>Hide</source>
|
||||
<target>Hide</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="m11TRpU" resname="have disabled torrent">
|
||||
<source>have disabled torrent</source>
|
||||
<target>have disabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="qfr4ljO" resname="have enabled torrent">
|
||||
<source>have enabled torrent</source>
|
||||
<target>have enabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="F_s8AWj" resname="disabled">
|
||||
<source>disabled</source>
|
||||
<target>disabled</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -169,10 +169,6 @@
|
||||
<source>Waiting for approve</source>
|
||||
<target>Waiting for approve</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="uP0WnsM" resname="Content visible for non sensitive users only">
|
||||
<source>Content visible for non sensitive users only</source>
|
||||
<target>Content visible for non sensitive users only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="GvhRkHM" resname="Size">
|
||||
<source>Size</source>
|
||||
<target>Size</target>
|
||||
@ -725,9 +721,21 @@
|
||||
<source>Seeders wanted for torrent</source>
|
||||
<target>Seeders wanted for torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="147HHy2" resname="Hide sensitive">
|
||||
<source>Hide sensitive</source>
|
||||
<target>Hide sensitive</target>
|
||||
<trans-unit id="rCCle.3" resname="Hide">
|
||||
<source>Hide</source>
|
||||
<target>Hide</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="m11TRpU" resname="have disabled torrent">
|
||||
<source>have disabled torrent</source>
|
||||
<target>have disabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="qfr4ljO" resname="have enabled torrent">
|
||||
<source>have enabled torrent</source>
|
||||
<target>have enabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="F_s8AWj" resname="disabled">
|
||||
<source>disabled</source>
|
||||
<target>disabled</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -169,10 +169,6 @@
|
||||
<source>Waiting for approve</source>
|
||||
<target>Waiting for approve</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="uP0WnsM" resname="Content visible for non sensitive users only">
|
||||
<source>Content visible for non sensitive users only</source>
|
||||
<target>Content visible for non sensitive users only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="GvhRkHM" resname="Size">
|
||||
<source>Size</source>
|
||||
<target>Size</target>
|
||||
@ -725,9 +721,21 @@
|
||||
<source>Seeders wanted for torrent</source>
|
||||
<target>Seeders wanted for torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="147HHy2" resname="Hide sensitive">
|
||||
<source>Hide sensitive</source>
|
||||
<target>Hide sensitive</target>
|
||||
<trans-unit id="rCCle.3" resname="Hide">
|
||||
<source>Hide</source>
|
||||
<target>Hide</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="m11TRpU" resname="have disabled torrent">
|
||||
<source>have disabled torrent</source>
|
||||
<target>have disabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="qfr4ljO" resname="have enabled torrent">
|
||||
<source>have enabled torrent</source>
|
||||
<target>have enabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="F_s8AWj" resname="disabled">
|
||||
<source>disabled</source>
|
||||
<target>disabled</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -169,10 +169,6 @@
|
||||
<source>Waiting for approve</source>
|
||||
<target>Waiting for approve</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="uP0WnsM" resname="Content visible for non sensitive users only">
|
||||
<source>Content visible for non sensitive users only</source>
|
||||
<target>Content visible for non sensitive users only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="GvhRkHM" resname="Size">
|
||||
<source>Size</source>
|
||||
<target>Size</target>
|
||||
@ -725,9 +721,21 @@
|
||||
<source>Seeders wanted for torrent</source>
|
||||
<target>Seeders wanted for torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="147HHy2" resname="Hide sensitive">
|
||||
<source>Hide sensitive</source>
|
||||
<target>Hide sensitive</target>
|
||||
<trans-unit id="rCCle.3" resname="Hide">
|
||||
<source>Hide</source>
|
||||
<target>Hide</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="m11TRpU" resname="have disabled torrent">
|
||||
<source>have disabled torrent</source>
|
||||
<target>have disabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="qfr4ljO" resname="have enabled torrent">
|
||||
<source>have enabled torrent</source>
|
||||
<target>have enabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="F_s8AWj" resname="disabled">
|
||||
<source>disabled</source>
|
||||
<target>disabled</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -169,10 +169,6 @@
|
||||
<source>Waiting for approve</source>
|
||||
<target>Waiting for approve</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="uP0WnsM" resname="Content visible for non sensitive users only">
|
||||
<source>Content visible for non sensitive users only</source>
|
||||
<target>Content visible for non sensitive users only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="GvhRkHM" resname="Size">
|
||||
<source>Size</source>
|
||||
<target>Size</target>
|
||||
@ -725,9 +721,21 @@
|
||||
<source>Seeders wanted for torrent</source>
|
||||
<target>Seeders wanted for torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="147HHy2" resname="Hide sensitive">
|
||||
<source>Hide sensitive</source>
|
||||
<target>Hide sensitive</target>
|
||||
<trans-unit id="rCCle.3" resname="Hide">
|
||||
<source>Hide</source>
|
||||
<target>Hide</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="m11TRpU" resname="have disabled torrent">
|
||||
<source>have disabled torrent</source>
|
||||
<target>have disabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="qfr4ljO" resname="have enabled torrent">
|
||||
<source>have enabled torrent</source>
|
||||
<target>have enabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="F_s8AWj" resname="disabled">
|
||||
<source>disabled</source>
|
||||
<target>disabled</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -169,10 +169,6 @@
|
||||
<source>Waiting for approve</source>
|
||||
<target>Waiting for approve</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="uP0WnsM" resname="Content visible for non sensitive users only">
|
||||
<source>Content visible for non sensitive users only</source>
|
||||
<target>Content visible for non sensitive users only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="GvhRkHM" resname="Size">
|
||||
<source>Size</source>
|
||||
<target>Size</target>
|
||||
@ -725,9 +721,21 @@
|
||||
<source>Seeders wanted for torrent</source>
|
||||
<target>Seeders wanted for torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="147HHy2" resname="Hide sensitive">
|
||||
<source>Hide sensitive</source>
|
||||
<target>Hide sensitive</target>
|
||||
<trans-unit id="rCCle.3" resname="Hide">
|
||||
<source>Hide</source>
|
||||
<target>Hide</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="m11TRpU" resname="have disabled torrent">
|
||||
<source>have disabled torrent</source>
|
||||
<target>have disabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="qfr4ljO" resname="have enabled torrent">
|
||||
<source>have enabled torrent</source>
|
||||
<target>have enabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="F_s8AWj" resname="disabled">
|
||||
<source>disabled</source>
|
||||
<target>disabled</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -169,10 +169,6 @@
|
||||
<source>Waiting for approve</source>
|
||||
<target>Waiting for approve</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="uP0WnsM" resname="Content visible for non sensitive users only">
|
||||
<source>Content visible for non sensitive users only</source>
|
||||
<target>Content visible for non sensitive users only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="GvhRkHM" resname="Size">
|
||||
<source>Size</source>
|
||||
<target>Size</target>
|
||||
@ -725,9 +721,21 @@
|
||||
<source>Seeders wanted for torrent</source>
|
||||
<target>Seeders wanted for torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="147HHy2" resname="Hide sensitive">
|
||||
<source>Hide sensitive</source>
|
||||
<target>Hide sensitive</target>
|
||||
<trans-unit id="rCCle.3" resname="Hide">
|
||||
<source>Hide</source>
|
||||
<target>Hide</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="m11TRpU" resname="have disabled torrent">
|
||||
<source>have disabled torrent</source>
|
||||
<target>have disabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="qfr4ljO" resname="have enabled torrent">
|
||||
<source>have enabled torrent</source>
|
||||
<target>have enabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="F_s8AWj" resname="disabled">
|
||||
<source>disabled</source>
|
||||
<target>disabled</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -169,10 +169,6 @@
|
||||
<source>Waiting for approve</source>
|
||||
<target>Waiting for approve</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="uP0WnsM" resname="Content visible for non sensitive users only">
|
||||
<source>Content visible for non sensitive users only</source>
|
||||
<target>Content visible for non sensitive users only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="GvhRkHM" resname="Size">
|
||||
<source>Size</source>
|
||||
<target>Size</target>
|
||||
@ -725,9 +721,21 @@
|
||||
<source>Seeders wanted for torrent</source>
|
||||
<target>Seeders wanted for torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="147HHy2" resname="Hide sensitive">
|
||||
<source>Hide sensitive</source>
|
||||
<target>Hide sensitive</target>
|
||||
<trans-unit id="rCCle.3" resname="Hide">
|
||||
<source>Hide</source>
|
||||
<target>Hide</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="m11TRpU" resname="have disabled torrent">
|
||||
<source>have disabled torrent</source>
|
||||
<target>have disabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="qfr4ljO" resname="have enabled torrent">
|
||||
<source>have enabled torrent</source>
|
||||
<target>have enabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="F_s8AWj" resname="disabled">
|
||||
<source>disabled</source>
|
||||
<target>disabled</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -169,10 +169,6 @@
|
||||
<source>Waiting for approve</source>
|
||||
<target>Waiting for approve</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="uP0WnsM" resname="Content visible for non sensitive users only">
|
||||
<source>Content visible for non sensitive users only</source>
|
||||
<target>Content visible for non sensitive users only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="GvhRkHM" resname="Size">
|
||||
<source>Size</source>
|
||||
<target>Size</target>
|
||||
@ -725,9 +721,21 @@
|
||||
<source>Seeders wanted for torrent</source>
|
||||
<target>Seeders wanted for torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="147HHy2" resname="Hide sensitive">
|
||||
<source>Hide sensitive</source>
|
||||
<target>Hide sensitive</target>
|
||||
<trans-unit id="rCCle.3" resname="Hide">
|
||||
<source>Hide</source>
|
||||
<target>Hide</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="m11TRpU" resname="have disabled torrent">
|
||||
<source>have disabled torrent</source>
|
||||
<target>have disabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="qfr4ljO" resname="have enabled torrent">
|
||||
<source>have enabled torrent</source>
|
||||
<target>have enabled torrent</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="F_s8AWj" resname="disabled">
|
||||
<source>disabled</source>
|
||||
<target>disabled</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -169,10 +169,6 @@
|
||||
<source>Waiting for approve</source>
|
||||
<target>На рассмотрении</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="uP0WnsM" resname="Content visible for non sensitive users only">
|
||||
<source>Content visible for non sensitive users only</source>
|
||||
<target>Содержимое видимо только для нечувствительных пользователей</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="GvhRkHM" resname="Size">
|
||||
<source>Size</source>
|
||||
<target>Размер</target>
|
||||
@ -725,9 +721,21 @@
|
||||
<source>Seeders wanted for torrent</source>
|
||||
<target>Требуется раздача для торрента</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="147HHy2" resname="Hide sensitive">
|
||||
<source>Hide sensitive</source>
|
||||
<target>Скрывать чувствительное содержимое</target>
|
||||
<trans-unit id="rCCle.3" resname="Hide">
|
||||
<source>Hide</source>
|
||||
<target>Скрыть</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="m11TRpU" resname="have disabled torrent">
|
||||
<source>have disabled torrent</source>
|
||||
<target>отключил торрент</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="qfr4ljO" resname="have enabled torrent">
|
||||
<source>have enabled torrent</source>
|
||||
<target>включил торрент</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="F_s8AWj" resname="disabled">
|
||||
<source>disabled</source>
|
||||
<target>отключено</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -169,10 +169,6 @@
|
||||
<source>Waiting for approve</source>
|
||||
<target>Очікує на підтвердження</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="uP0WnsM" resname="Content visible for non sensitive users only">
|
||||
<source>Content visible for non sensitive users only</source>
|
||||
<target>Контент видимий лише для нечутливих користувачів</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="GvhRkHM" resname="Size">
|
||||
<source>Size</source>
|
||||
<target>Розмір</target>
|
||||
@ -725,9 +721,21 @@
|
||||
<source>Seeders wanted for torrent</source>
|
||||
<target>Розшукуються роздачі для торенту</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="147HHy2" resname="Hide sensitive">
|
||||
<source>Hide sensitive</source>
|
||||
<target>Приховувати чутливий вміст</target>
|
||||
<trans-unit id="rCCle.3" resname="Hide">
|
||||
<source>Hide</source>
|
||||
<target>Приховати</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="m11TRpU" resname="have disabled torrent">
|
||||
<source>have disabled torrent</source>
|
||||
<target>вимкнув торент</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="qfr4ljO" resname="have enabled torrent">
|
||||
<source>have enabled torrent</source>
|
||||
<target>увімкнув торент</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="F_s8AWj" resname="disabled">
|
||||
<source>disabled</source>
|
||||
<target>вимкнено</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
Loading…
x
Reference in New Issue
Block a user