summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--app/Controller/File.php26
2 files changed, 15 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index 257668d4..373c2fad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -18,6 +18,7 @@ Improvements:
* Add the possibility to append or not custom filters
* Make mail transports pluggable
* Do not show scroll-bars when a column is collapsed on Windows systems
+* Regenerate thumbnails if missing
Bug fixes:
diff --git a/app/Controller/File.php b/app/Controller/File.php
index 3aadf076..4d771e2f 100644
--- a/app/Controller/File.php
+++ b/app/Controller/File.php
@@ -109,7 +109,7 @@ class File extends Base
}
/**
- * Return the file content (work only for images)
+ * Display image
*
* @access public
*/
@@ -119,36 +119,38 @@ class File extends Base
$task = $this->getTask();
$file = $this->file->getById($this->request->getIntegerParam('file_id'));
- if ($file['task_id'] != $task['id']) {
- $this->response->redirect($this->helper->url->to('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])));
+ if ($file['task_id'] == $task['id']) {
+ $this->response->contentType($this->file->getImageMimeType($file['name']));
+ $this->objectStorage->output($file['path']);
}
-
- $this->response->contentType($this->file->getImageMimeType($file['name']));
- $this->objectStorage->output($file['path']);
} catch (ObjectStorageException $e) {
$this->logger->error($e->getMessage());
}
}
/**
- * Return image thumbnails
+ * Display image thumbnails
*
* @access public
*/
public function thumbnail()
{
+ $this->response->contentType('image/jpeg');
+
try {
$task = $this->getTask();
$file = $this->file->getById($this->request->getIntegerParam('file_id'));
- if ($file['task_id'] != $task['id']) {
- $this->response->redirect($this->helper->url->to('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])));
+ if ($file['task_id'] == $task['id']) {
+ $this->objectStorage->output($this->file->getThumbnailPath($file['path']));
}
-
- $this->response->contentType('image/jpeg');
- $this->objectStorage->output($this->file->getThumbnailPath($file['path']));
} catch (ObjectStorageException $e) {
$this->logger->error($e->getMessage());
+
+ // Try to generate thumbnail on the fly for images uploaded before Kanboard < 1.0.19
+ $data = $this->objectStorage->get($file['path']);
+ $this->file->generateThumbnailFromData($file['path'], $data);
+ $this->objectStorage->output($this->file->getThumbnailPath($file['path']));
}
}