From b3afe9fb16523415f3bceafde9bb80b4d229e2b2 Mon Sep 17 00:00:00 2001 From: fengpan Date: Fri, 17 Feb 2017 21:58:39 +0800 Subject: 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 --- webapp/components/change_url_modal.jsx | 8 ++--- webapp/components/new_channel_modal.jsx | 4 +-- webapp/components/rename_channel_modal.jsx | 54 ++++++++++++++++++++---------- webapp/i18n/en.json | 2 +- webapp/i18n/zh_CN.json | 2 +- webapp/i18n/zh_TW.json | 2 +- 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 = ( - {fullTeamUrl} + {fullUrl} ); return ( @@ -165,7 +165,7 @@ export default class ChangeUrlModal extends React.Component { placement='top' overlay={urlTooltip} > - {teamURL} + {shortURL} 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 = ( + {fullUrl} + ); + return (
- - + + +
+ + {shortUrl} + + +
{nameError}
{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() { -- cgit v1.2.3-1-g7c22