Added order:edit_time support for tag list

This commit is contained in:
rr- 2015-11-24 18:23:47 +01:00
parent 40e869b848
commit 2df43201ba
7 changed files with 32 additions and 0 deletions

View file

@ -11,6 +11,7 @@ class TagEntityConverter extends AbstractEntityConverter implements IEntityConve
[
'name' => $entity->getName(),
'creationTime' => $this->entityTimeToDbTime($entity->getCreationTime()),
'lastEditTime' => $this->entityTimeToDbTime($entity->getLastEditTime()),
'banned' => intval($entity->isBanned()),
'category' => $entity->getCategory(),
];
@ -21,6 +22,7 @@ class TagEntityConverter extends AbstractEntityConverter implements IEntityConve
$entity = new Tag(intval($array['id']));
$entity->setName($array['name']);
$entity->setCreationTime($this->dbTimeToEntityTime($array['creationTime']));
$entity->setLastEditTime($this->dbTimeToEntityTime($array['lastEditTime']));
$entity->setMeta(Tag::META_USAGES, intval($array['usages']));
$entity->setBanned($array['banned']);
$entity->setCategory($array['category']);

View file

@ -5,6 +5,7 @@ final class Tag extends Entity
{
private $name;
private $creationTime;
private $lastEditTime;
private $banned = false;
private $category = 'default';
@ -33,6 +34,16 @@ final class Tag extends Entity
$this->creationTime = $creationTime;
}
public function getLastEditTime()
{
return $this->lastEditTime;
}
public function setLastEditTime($lastEditTime)
{
$this->lastEditTime = $lastEditTime;
}
public function isBanned()
{
return $this->banned;

View file

@ -6,6 +6,7 @@ class TagFilter extends BasicFilter implements IFilter
const ORDER_ID = 'id';
const ORDER_NAME = 'name';
const ORDER_CREATION_TIME = 'creationTime';
const ORDER_LAST_EDIT_TIME = 'lastEditTime';
const ORDER_USAGE_COUNT = 'usages';
const REQUIREMENT_PARTIAL_TAG_NAME = 'partialTagName';

View file

@ -45,6 +45,7 @@ class TagSearchParser extends AbstractSearchParser
[['id'], TagFilter::ORDER_ID],
[['name'], TagFilter::ORDER_NAME],
[['creation_time', 'creation_date', 'date'], TagFilter::ORDER_CREATION_TIME],
[['edit_time', 'edit_date'], TagFilter::ORDER_LAST_EDIT_TIME],
[['usage_count', 'usages'], TagFilter::ORDER_USAGE_COUNT],
];
}

View file

@ -106,6 +106,7 @@ class TagService
$tag->setName($tagName);
}
$tag->setCreationTime($this->timeService->getCurrentTime());
$tag->setLastEditTime($this->timeService->getCurrentTime());
$tagsToCreate[$tagNameGetter($tag)] = $tag;
}
@ -137,6 +138,8 @@ class TagService
{
$this->validator->validate($formData);
$tag->setLastEditTime($this->timeService->getCurrentTime());
if ($formData->name !== null)
$this->updateTagName($tag, $formData->name);

View file

@ -0,0 +1,13 @@
<?php
namespace Szurubooru\Upgrades;
use Szurubooru\DatabaseConnection;
class Upgrade44 implements IUpgrade
{
public function run(DatabaseConnection $databaseConnection)
{
$pdo = $databaseConnection->getPDO();
$pdo->exec('ALTER TABLE tags ADD COLUMN lastEditTime TIMESTAMP NOT NULL DEFAULT 0');
$pdo->exec('UPDATE tags SET lastEditTime = creationTime');
}
}

View file

@ -60,6 +60,7 @@ return [
$container->get(\Szurubooru\Upgrades\Upgrade41::class),
$container->get(\Szurubooru\Upgrades\Upgrade42::class),
$container->get(\Szurubooru\Upgrades\Upgrade43::class),
$container->get(\Szurubooru\Upgrades\Upgrade44::class),
];
}),