summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorey Hulen <corey@hulen.com>2015-08-02 08:58:33 -0800
committerCorey Hulen <corey@hulen.com>2015-08-02 08:58:33 -0800
commit41f96636d6a92f622518271f9ea7dd66c8c84e47 (patch)
treeb9462b5385b505a0220a1df47e5efe64fd2d84d0
parent810c527fcbf5a9b4e32fe94e3ea00e20bddc020a (diff)
parentdad78514234029791ff02c9a0efd2cbacdac5280 (diff)
downloadchat-41f96636d6a92f622518271f9ea7dd66c8c84e47.tar.gz
chat-41f96636d6a92f622518271f9ea7dd66c8c84e47.tar.bz2
chat-41f96636d6a92f622518271f9ea7dd66c8c84e47.zip
Merge pull request #274 from mattermost/mm-1497
MM-1497 image thumbnails now scale appropriately so there is no whitespace
-rw-r--r--api/file.go13
-rw-r--r--config/config.json4
-rw-r--r--config/config_docker.json4
-rw-r--r--web/react/components/file_attachment.jsx11
-rw-r--r--web/react/utils/constants.jsx2
-rw-r--r--web/sass-files/sass/partials/_files.scss7
6 files changed, 33 insertions, 8 deletions
diff --git a/api/file.go b/api/file.go
index 219cf6103..4ec421eb9 100644
--- a/api/file.go
+++ b/api/file.go
@@ -140,11 +140,18 @@ func fireAndForgetHandleImages(filenames []string, fileData [][]byte, teamId, ch
// Create thumbnail
go func() {
+ thumbWidth := float64(utils.Cfg.ImageSettings.ThumbnailWidth)
+ thumbHeight := float64(utils.Cfg.ImageSettings.ThumbnailHeight)
+ imgWidth := float64(imgConfig.Width)
+ imgHeight := float64(imgConfig.Height)
+
var thumbnail image.Image
- if imgConfig.Width > int(utils.Cfg.ImageSettings.ThumbnailWidth) {
- thumbnail = resize.Resize(utils.Cfg.ImageSettings.ThumbnailWidth, utils.Cfg.ImageSettings.ThumbnailHeight, img, resize.Lanczos3)
- } else {
+ if imgHeight < thumbHeight && imgWidth < thumbWidth {
thumbnail = img
+ } else if imgHeight/imgWidth < thumbHeight/thumbWidth {
+ thumbnail = resize.Resize(0, utils.Cfg.ImageSettings.ThumbnailHeight, img, resize.Lanczos3)
+ } else {
+ thumbnail = resize.Resize(utils.Cfg.ImageSettings.ThumbnailWidth, 0, img, resize.Lanczos3)
}
buf := new(bytes.Buffer)
diff --git a/config/config.json b/config/config.json
index a1e73eb03..10a8b6553 100644
--- a/config/config.json
+++ b/config/config.json
@@ -49,8 +49,8 @@
"S3Region": ""
},
"ImageSettings": {
- "ThumbnailWidth": 200,
- "ThumbnailHeight": 0,
+ "ThumbnailWidth": 120,
+ "ThumbnailHeight": 100,
"PreviewWidth": 1024,
"PreviewHeight": 0,
"ProfileWidth": 128,
diff --git a/config/config_docker.json b/config/config_docker.json
index 6d220f919..c9fa5931a 100644
--- a/config/config_docker.json
+++ b/config/config_docker.json
@@ -49,8 +49,8 @@
"S3Region": ""
},
"ImageSettings": {
- "ThumbnailWidth": 200,
- "ThumbnailHeight": 0,
+ "ThumbnailWidth": 120,
+ "ThumbnailHeight": 100,
"PreviewWidth": 1024,
"PreviewHeight": 0,
"ProfileWidth": 128,
diff --git a/web/react/components/file_attachment.jsx b/web/react/components/file_attachment.jsx
index 3cd791887..b7ea5734f 100644
--- a/web/react/components/file_attachment.jsx
+++ b/web/react/components/file_attachment.jsx
@@ -2,6 +2,7 @@
// See License.txt for license information.
var utils = require('../utils/utils.jsx');
+var Constants = require('../utils/constants.jsx');
module.exports = React.createClass({
displayName: "FileAttachment",
@@ -44,6 +45,16 @@ module.exports = React.createClass({
$(imgDiv).removeClass('post__load');
$(imgDiv).addClass('post__image');
+ var width = this.width || $(this).width();
+ var height = this.height || $(this).height();
+
+ if (width < Constants.THUMBNAIL_WIDTH
+ && height < Constants.THUMBNAIL_HEIGHT) {
+ $(imgDiv).addClass('small');
+ } else {
+ $(imgDiv).addClass('normal');
+ }
+
var re1 = new RegExp(' ', 'g');
var re2 = new RegExp('\\(', 'g');
var re3 = new RegExp('\\)', 'g');
diff --git a/web/react/utils/constants.jsx b/web/react/utils/constants.jsx
index 77ce19530..3509c9514 100644
--- a/web/react/utils/constants.jsx
+++ b/web/react/utils/constants.jsx
@@ -52,6 +52,8 @@ module.exports = {
MAX_DISPLAY_FILES: 5,
MAX_UPLOAD_FILES: 5,
MAX_FILE_SIZE: 50000000, // 50 MB
+ THUMBNAIL_WIDTH: 128,
+ THUMBNAIL_HEIGHT: 100,
DEFAULT_CHANNEL: 'town-square',
OFFTOPIC_CHANNEL: 'off-topic',
POST_CHUNK_SIZE: 60,
diff --git a/web/sass-files/sass/partials/_files.scss b/web/sass-files/sass/partials/_files.scss
index ea7548267..ddc5e98bb 100644
--- a/web/sass-files/sass/partials/_files.scss
+++ b/web/sass-files/sass/partials/_files.scss
@@ -129,7 +129,12 @@
height: 100%;
background-color: #FFF;
background-repeat: no-repeat;
- background-position: top left;
+ &.small {
+ background-position: center;
+ }
+ &.normal {
+ background-position: top left;
+ }
}
.post-image__thumbnail {
width: 50%;