2015-10-08 12:27:09 -04:00
// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
2015-09-21 17:34:13 -07:00
// See License.txt for license information.
2016-05-17 07:21:39 -04:00
import React from 'react' ;
2016-01-27 15:49:26 -03:00
2016-05-17 07:21:39 -04:00
import * as Utils from 'utils/utils.jsx' ;
2016-01-27 15:49:26 -03:00
2016-05-17 07:21:39 -04:00
import AdminSettings from './admin_settings.jsx' ;
import { FormattedMessage } from 'react-intl' ;
import SettingsGroup from './settings_group.jsx' ;
import TextSetting from './text_setting.jsx' ;
2016-03-14 08:50:46 -04:00
2016-05-17 07:21:39 -04:00
export default class ImageSettings extends AdminSettings {
2015-09-21 17:34:13 -07:00
constructor ( props ) {
super ( props ) ;
2016-05-17 07:21:39 -04:00
this . getConfigFromState = this . getConfigFromState . bind ( this ) ;
2015-09-21 17:34:13 -07:00
2016-05-17 07:21:39 -04:00
this . renderSettings = this . renderSettings . bind ( this ) ;
2015-09-21 17:34:13 -07:00
2016-05-17 07:21:39 -04:00
this . state = Object . assign ( this . state , {
thumbnailWidth : props . config . FileSettings . ThumbnailWidth ,
thumbnailHeight : props . config . FileSettings . ThumbnailHeight ,
profileWidth : props . config . FileSettings . ProfileWidth ,
profileHeight : props . config . FileSettings . ProfileHeight ,
previewWidth : props . config . FileSettings . PreviewWidth ,
previewHeight : props . config . FileSettings . PreviewHeight
} ) ;
2015-09-22 12:12:50 -07:00
}
2016-05-17 07:21:39 -04:00
getConfigFromState ( config ) {
config . FileSettings . ThumbnailWidth = this . parseInt ( this . state . thumbnailWidth ) ;
config . FileSettings . ThumbnailHeight = this . parseInt ( this . state . thumbnailHeight ) ;
config . FileSettings . ProfileWidth = this . parseInt ( this . state . profileWidth ) ;
config . FileSettings . ProfileHeight = this . parseInt ( this . state . profileHeight ) ;
config . FileSettings . PreviewWidth = this . parseInt ( this . state . previewWidth ) ;
config . FileSettings . PreviewHeight = this . parseInt ( this . state . previewHeight ) ;
2015-09-23 13:47:10 -07:00
2016-05-17 07:21:39 -04:00
return config ;
}
2015-09-21 17:34:13 -07:00
2016-05-17 07:21:39 -04:00
renderTitle ( ) {
return (
< h3 >
< FormattedMessage
id = 'admin.files.title'
defaultMessage = 'File Settings'
/ >
< / h3 >
2015-09-21 17:34:13 -07:00
) ;
}
2016-05-17 07:21:39 -04:00
renderSettings ( ) {
2015-09-21 17:34:13 -07:00
return (
2016-05-17 07:21:39 -04:00
< SettingsGroup
header = {
2016-01-27 15:49:26 -03:00
< FormattedMessage
2016-05-17 07:21:39 -04:00
id = 'admin.files.images'
defaultMessage = 'Images'
2016-01-27 15:49:26 -03:00
/ >
2016-05-17 07:21:39 -04:00
}
>
< TextSetting
id = 'thumbnailWidth'
label = {
< FormattedMessage
id = 'admin.image.thumbWidthTitle'
defaultMessage = 'Thumbnail Width:'
/ >
}
placeholder = { Utils . localizeMessage ( 'admin.image.thumbWidthExample' , 'Ex "120"' ) }
helpText = {
< FormattedMessage
id = 'admin.image.thumbWidthDescription'
defaultMessage = 'Width of thumbnails generated from uploaded images. Updating this value changes how thumbnail images render in future, but does not change images created in the past.'
/ >
}
value = { this . state . thumbnailWidth }
onChange = { this . handleChange }
/ >
< TextSetting
id = 'thumbnailHeight'
label = {
< FormattedMessage
id = 'admin.image.thumbHeightTitle'
defaultMessage = 'Thumbnail Height:'
/ >
}
placeholder = { Utils . localizeMessage ( 'admin.image.thumbHeightExample' , 'Ex "100"' ) }
helpText = {
< FormattedMessage
id = 'admin.image.thumbHeightDescription'
defaultMessage = 'Height of thumbnails generated from uploaded images. Updating this value changes how thumbnail images render in future, but does not change images created in the past.'
/ >
}
value = { this . state . thumbnailHeight }
onChange = { this . handleChange }
/ >
< TextSetting
id = 'profileWidth'
label = {
< FormattedMessage
id = 'admin.image.profileWidthTitle'
defaultMessage = 'Profile Width:'
/ >
}
placeholder = { Utils . localizeMessage ( 'admin.image.profileWidthExample' , 'Ex "1024"' ) }
helpText = {
< FormattedMessage
id = 'admin.image.profileWidthDescription'
defaultMessage = 'Width of profile picture.'
/ >
}
value = { this . state . profileWidth }
onChange = { this . handleChange }
/ >
< TextSetting
id = 'profileHeight'
label = {
< FormattedMessage
id = 'admin.image.profileHeightTitle'
defaultMessage = 'Profile Height:'
/ >
}
placeholder = { Utils . localizeMessage ( 'admin.image.profileHeightExample' , 'Ex "0"' ) }
helpText = {
< FormattedMessage
id = 'admin.image.profileHeightDescription'
defaultMessage = 'Height of profile picture.'
/ >
}
value = { this . state . profileHeight }
onChange = { this . handleChange }
/ >
< TextSetting
id = 'previewWidth'
label = {
< FormattedMessage
id = 'admin.image.previewWidthTitle'
defaultMessage = 'Preview Width:'
/ >
}
placeholder = { Utils . localizeMessage ( 'admin.image.previewWidthExample' , 'Ex "1024"' ) }
helpText = {
< FormattedMessage
id = 'admin.image.previewWidthDescription'
defaultMessage = 'Maximum width of preview image. Updating this value changes how preview images render in future, but does not change images created in the past.'
/ >
}
value = { this . state . previewWidth }
onChange = { this . handleChange }
/ >
< TextSetting
id = 'previewHeight'
label = {
< FormattedMessage
id = 'admin.image.previewHeightTitle'
defaultMessage = 'Preview Height:'
/ >
}
placeholder = { Utils . localizeMessage ( 'admin.image.previewHeightExample' , 'Ex "0"' ) }
helpText = {
< FormattedMessage
id = 'admin.image.previewHeightDescription'
defaultMessage = 'Maximum height of preview image ("0": Sets to auto-size). Updating this value changes how preview images render in future, but does not change images created in the past.'
/ >
}
value = { this . state . previewHeight }
onChange = { this . handleChange }
/ >
< / SettingsGroup >
2015-09-21 17:34:13 -07:00
) ;
}
2016-05-17 07:21:39 -04:00
}