diff --git a/app/Controllers/MediaController.php b/app/Controllers/MediaController.php index fc9bdfa..8d874c1 100644 --- a/app/Controllers/MediaController.php +++ b/app/Controllers/MediaController.php @@ -279,6 +279,7 @@ class MediaController extends Controller throw new HttpNotFoundException($request); } finally { $this->database->query('DELETE FROM `uploads` WHERE `id` = ?', $id); + $this->database->query('DELETE FROM `tags` WHERE `tags`.`id` NOT IN (SELECT `uploads_tags`.`tag_id` FROM `uploads_tags`)'); } } @@ -326,7 +327,7 @@ class MediaController extends Controller set_time_limit(0); $mime = $storage->getMimetype($media->storage_path); - if (param($request, 'width') !== null && explode('/', $mime)[0] === 'image') { + if ((param($request, 'width') || param($request, 'height')) !== null && explode('/', $mime)[0] === 'image') { return $this->makeThumbnail($storage, $media, param($request, 'width'), param($request, 'height'), $disposition); } else { $stream = new Stream($storage->readStream($media->storage_path)); diff --git a/app/Controllers/TagController.php b/app/Controllers/TagController.php index 58e3b49..51e620d 100644 --- a/app/Controllers/TagController.php +++ b/app/Controllers/TagController.php @@ -55,13 +55,15 @@ class TagController extends Controller $result = make(TagQuery::class)->removeTag(param($request, 'tagId'), param($request, 'mediaId')); - if (!$result) { + if ($result === null) { throw new HttpNotFoundException($request); } $this->logger->info("Tag removed ".param($request, 'tagId').', from media '.param($request, 'mediaId')); - return $response; + return json($response, [ + 'deleted' => $result, + ]); } /** diff --git a/app/Database/Queries/TagQuery.php b/app/Database/Queries/TagQuery.php index 8a99d03..5d0a4e7 100644 --- a/app/Database/Queries/TagQuery.php +++ b/app/Database/Queries/TagQuery.php @@ -39,7 +39,7 @@ class TagQuery return $this->db->query('SELECT * FROM `tags` ORDER BY `name`')->fetchAll(); } - return $this->db->query('SELECT `tags`.* FROM `tags` INNER JOIN `uploads_tags` ON `tags`.`id` = `uploads_tags`.`tag_id` INNER JOIN `uploads` ON `uploads`.`id` = `uploads_tags`.`upload_id` WHERE `uploads`.`user_id` = ? ORDER BY `tags`.`name`', $this->userId)->fetchAll(); + return $this->db->query('SELECT DISTINCT `tags`.* FROM `tags` INNER JOIN `uploads_tags` ON `tags`.`id` = `uploads_tags`.`tag_id` INNER JOIN `uploads` ON `uploads`.`id` = `uploads_tags`.`upload_id` WHERE `uploads`.`user_id` = ? ORDER BY `tags`.`name`', $this->userId)->fetchAll(); } /** @@ -95,11 +95,12 @@ class TagQuery if ($this->db->query('SELECT COUNT(*) AS `count` FROM `uploads_tags` WHERE `tag_id` = ?', $tag->id)->fetch()->count == 0) { $this->db->query('DELETE FROM `tags` WHERE `id` = ? ', $tag->id); + return true; } - return true; + return false; } - return false; + return null; } } diff --git a/resources/templates/dashboard/pager_header.twig b/resources/templates/dashboard/pager_header.twig index d62f9a7..96e9872 100644 --- a/resources/templates/dashboard/pager_header.twig +++ b/resources/templates/dashboard/pager_header.twig @@ -12,12 +12,12 @@ -