diff options
author | fengpan <pan.feng@shareworks.cn> | 2017-02-17 21:58:39 +0800 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2017-02-17 08:58:39 -0500 |
commit | b3afe9fb16523415f3bceafde9bb80b4d229e2b2 (patch) | |
tree | 5504e89a018af64c0262e011fced23d848aabaca /webapp | |
parent | 26e44d9b32948693a035bea5cb31134526e01fe3 (diff) | |
download | chat-b3afe9fb16523415f3bceafde9bb80b4d229e2b2.tar.gz chat-b3afe9fb16523415f3bceafde9bb80b4d229e2b2.tar.bz2 chat-b3afe9fb16523415f3bceafde9bb80b4d229e2b2.zip |
Rename channel (#5322)
* fix react proptypes
* Replace the handle field and label with url
* Update rename channel url correctly
* fix merge
* fix after test-1
* update i18n
Diffstat (limited to 'webapp')
-rw-r--r-- | webapp/components/change_url_modal.jsx | 8 | ||||
-rw-r--r-- | webapp/components/new_channel_modal.jsx | 4 | ||||
-rw-r--r-- | webapp/components/rename_channel_modal.jsx | 54 | ||||
-rw-r--r-- | webapp/i18n/en.json | 2 | ||||
-rw-r--r-- | webapp/i18n/zh_CN.json | 2 | ||||
-rw-r--r-- | webapp/i18n/zh_TW.json | 2 | ||||
-rw-r--r-- | webapp/utils/url.jsx | 9 |
7 files changed, 50 insertions, 31 deletions
diff --git a/webapp/components/change_url_modal.jsx b/webapp/components/change_url_modal.jsx index 4abc469ea..009a9b798 100644 --- a/webapp/components/change_url_modal.jsx +++ b/webapp/components/change_url_modal.jsx @@ -135,10 +135,10 @@ export default class ChangeUrlModal extends React.Component { ); } - const fullTeamUrl = TeamStore.getCurrentTeamUrl(); - const teamURL = URL.getShortenedTeamURL(TeamStore.getCurrentTeamUrl()); + const fullUrl = TeamStore.getCurrentTeamUrl() + '/channels'; + const shortURL = URL.getShortenedURL(fullUrl); const urlTooltip = ( - <Tooltip id='urlTooltip'>{fullTeamUrl}</Tooltip> + <Tooltip id='urlTooltip'>{fullUrl}</Tooltip> ); return ( @@ -165,7 +165,7 @@ export default class ChangeUrlModal extends React.Component { placement='top' overlay={urlTooltip} > - <span className='input-group-addon'>{teamURL}</span> + <span className='input-group-addon'>{shortURL}</span> </OverlayTrigger> <input type='text' diff --git a/webapp/components/new_channel_modal.jsx b/webapp/components/new_channel_modal.jsx index 3a6e8b67f..2f9533b0e 100644 --- a/webapp/components/new_channel_modal.jsx +++ b/webapp/components/new_channel_modal.jsx @@ -4,7 +4,7 @@ import $ from 'jquery'; import ReactDOM from 'react-dom'; -import {getShortenedTeamURL} from 'utils/url.jsx'; +import {getShortenedURL} from 'utils/url.jsx'; import * as UserAgent from 'utils/user_agent.jsx'; import * as Utils from 'utils/utils.jsx'; import * as ChannelUtils from 'utils/channel_utils.jsx'; @@ -190,7 +190,7 @@ export default class NewChannelModal extends React.Component { break; } - const prettyTeamURL = getShortenedTeamURL(); + const prettyTeamURL = getShortenedURL(); return ( <span> diff --git a/webapp/components/rename_channel_modal.jsx b/webapp/components/rename_channel_modal.jsx index 9e2cfd8d8..7ed3b4987 100644 --- a/webapp/components/rename_channel_modal.jsx +++ b/webapp/components/rename_channel_modal.jsx @@ -4,12 +4,14 @@ import ReactDOM from 'react-dom'; import * as Utils from 'utils/utils.jsx'; import Constants from 'utils/constants.jsx'; -import {cleanUpUrlable} from 'utils/url.jsx'; +import {cleanUpUrlable, getShortenedURL} from 'utils/url.jsx'; + +import TeamStore from 'stores/team_store.jsx'; import {intlShape, injectIntl, defineMessages, FormattedMessage} from 'react-intl'; import {updateChannel} from 'actions/channel_actions.jsx'; -import {Modal} from 'react-bootstrap'; +import {Modal, Tooltip, OverlayTrigger} from 'react-bootstrap'; const holders = defineMessages({ required: { @@ -24,9 +26,9 @@ const holders = defineMessages({ id: 'rename_channel.lowercase', defaultMessage: 'Must be lowercase alphanumeric characters' }, - handle: { - id: 'rename_channel.handle', - defaultMessage: 'Handle' + url: { + id: 'rename_channel.url', + defaultMessage: 'URL' }, defaultError: { id: 'rename_channel.defaultError', @@ -213,14 +215,20 @@ export class RenameChannelModal extends React.Component { const {formatMessage} = this.props.intl; - let handleInputLabel = formatMessage(holders.handle); + let urlInputLabel = formatMessage(holders.url); const handleInputClass = 'form-control'; let readOnlyHandleInput = false; if (this.state.channelName === Constants.DEFAULT_CHANNEL) { - handleInputLabel += formatMessage(holders.defaultError); + urlInputLabel += formatMessage(holders.defaultError); readOnlyHandleInput = true; } + const fullUrl = TeamStore.getCurrentTeamUrl() + '/channels'; + const shortUrl = getShortenedURL(fullUrl, 35); + const urlTooltip = ( + <Tooltip id='urlTooltip'>{fullUrl}</Tooltip> + ); + return ( <Modal show={this.props.show} @@ -256,17 +264,27 @@ export class RenameChannelModal extends React.Component { {displayNameError} </div> <div className={nameClass}> - <label className='control-label'>{handleInputLabel}</label> - <input - onChange={this.onNameChange} - type='text' - className={handleInputClass} - ref='channelName' - placeholder={formatMessage(holders.handleHolder)} - value={this.state.channelName} - maxLength='64' - readOnly={readOnlyHandleInput} - /> + <label className='control-label'>{urlInputLabel}</label> + + <div className='input-group input-group--limit'> + <OverlayTrigger + delayShow={Constants.OVERLAY_TIME_DELAY} + placement='top' + overlay={urlTooltip} + > + <span className='input-group-addon'>{shortUrl}</span> + </OverlayTrigger> + <input + onChange={this.onNameChange} + type='text' + className={handleInputClass} + ref='channelName' + placeholder={formatMessage(holders.handleHolder)} + value={this.state.channelName} + maxLength='64' + readOnly={readOnlyHandleInput} + /> + </div> {nameError} </div> {serverError} diff --git a/webapp/i18n/en.json b/webapp/i18n/en.json index 1f600a690..894865bf7 100644 --- a/webapp/i18n/en.json +++ b/webapp/i18n/en.json @@ -1730,7 +1730,7 @@ "rename_channel.defaultError": " - Cannot be changed for the default channel", "rename_channel.displayName": "Display Name", "rename_channel.displayNameHolder": "Enter display name", - "rename_channel.handle": "Handle", + "rename_channel.url": "URL", "rename_channel.handleHolder": "lowercase alphanumeric's only", "rename_channel.lowercase": "Must be lowercase alphanumeric characters", "rename_channel.maxLength": "This field must be less than 22 characters", diff --git a/webapp/i18n/zh_CN.json b/webapp/i18n/zh_CN.json index 0d7a5df91..10bcb6c44 100644 --- a/webapp/i18n/zh_CN.json +++ b/webapp/i18n/zh_CN.json @@ -1730,7 +1730,7 @@ "rename_channel.defaultError": "-不能改变默认频道", "rename_channel.displayName": "显示名称", "rename_channel.displayNameHolder": "输入显示名", - "rename_channel.handle": "识别名", + "rename_channel.url": "链接地址", "rename_channel.handleHolder": "小写字母数字#39;只有", "rename_channel.lowercase": "必须小写字母数字字符", "rename_channel.maxLength": "这个字段必须少于22个字符", diff --git a/webapp/i18n/zh_TW.json b/webapp/i18n/zh_TW.json index 32e46d0a2..aafd921b2 100644 --- a/webapp/i18n/zh_TW.json +++ b/webapp/i18n/zh_TW.json @@ -1730,7 +1730,7 @@ "rename_channel.defaultError": " - 預設頻道不能更改", "rename_channel.displayName": "顯示名稱", "rename_channel.displayNameHolder": "請輸入顯示名稱", - "rename_channel.handle": "識別名", + "rename_channel.url": "鏈接地址", "rename_channel.handleHolder": "僅限小寫英數字", "rename_channel.lowercase": "請用小寫英數字", "rename_channel.maxLength": "此欄位必須少於22個字元", diff --git a/webapp/utils/url.jsx b/webapp/utils/url.jsx index 9fe00da6f..6307814f2 100644 --- a/webapp/utils/url.jsx +++ b/webapp/utils/url.jsx @@ -9,11 +9,12 @@ export function cleanUpUrlable(input) { return cleaned; } -export function getShortenedTeamURL(teamURL = '') { - if (teamURL.length > 35) { - return teamURL.substring(0, 10) + '...' + teamURL.substring(teamURL.length - 12, teamURL.length) + '/'; +export function getShortenedURL(url = '', getLength = 27) { + if (url.length > 35) { + const subLength = getLength - 14; + return url.substring(0, 10) + '...' + url.substring(url.length - subLength, url.length) + '/'; } - return teamURL + '/'; + return url + '/'; } export function getSiteURL() { |