webapp/utils/utils.jsx got big and that caused a potential circular
dependency with webapp/stores/team_store.jsx. This change solves the
issue by introducing webapp/utils/url.jsx and moving URL-related
functions, which is not likely to depend on actions and stores, from
webapp/utils/utils.jsx.
Этот коммит содержится в:
Akihiko Odaki
2017-02-08 00:20:01 +09:00
коммит произвёл enahum
родитель 9bdea0de80
Коммит 68a05653ea
13 изменённых файлов: 54 добавлений и 63 удалений

29
webapp/utils/url.jsx Обычный файл
Просмотреть файл

@@ -0,0 +1,29 @@
// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
export function cleanUpUrlable(input) {
var cleaned = input.trim().replace(/-/g, ' ').replace(/[^\w\s]/gi, '').toLowerCase().replace(/\s/g, '-');
cleaned = cleaned.replace(/-{2,}/, '-');
cleaned = cleaned.replace(/^-+/, '');
cleaned = cleaned.replace(/-+$/, '');
return cleaned;
}
export function getShortenedTeamURL(teamURL = '') {
if (teamURL.length > 35) {
return teamURL.substring(0, 10) + '...' + teamURL.substring(teamURL.length - 12, teamURL.length) + '/';
}
return teamURL + '/';
}
export function getSiteURL() {
if (global.mm_config.SiteURL) {
return global.mm_config.SiteURL;
}
if (window.location.origin) {
return window.location.origin;
}
return window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');
}

Просмотреть файл

@@ -27,14 +27,6 @@ export function isEmail(email) {
return (/^.+@.+$/).test(email);
}
export function cleanUpUrlable(input) {
var cleaned = input.trim().replace(/-/g, ' ').replace(/[^\w\s]/gi, '').toLowerCase().replace(/\s/g, '-');
cleaned = cleaned.replace(/-{2,}/, '-');
cleaned = cleaned.replace(/^-+/, '');
cleaned = cleaned.replace(/-+$/, '');
return cleaned;
}
export function isMac() {
return navigator.platform.toUpperCase().indexOf('MAC') >= 0;
}
@@ -996,17 +988,6 @@ export function fileSizeToString(bytes) {
return bytes + 'B';
}
// Converts a filename (like those attached to Post objects) to a url that can be used to retrieve attachments from the server.
export function getFileUrl(filename) {
return Client.getFilesRoute() + '/get' + filename;
}
// Gets the name of a file (including extension) from a given url or file path.
export function getFileName(path) {
var split = path.split('/');
return split[split.length - 1];
}
// Gets the websocket port to use. Configurable on the server.
export function getWebsocketPort(protocol) {
if ((/^wss:/).test(protocol)) { // wss://
@@ -1078,13 +1059,6 @@ export function importSlack(file, success, error) {
Client.importSlack(formData, success, error);
}
export function getShortenedTeamURL(teamURL = '') {
if (teamURL.length > 35) {
return teamURL.substring(0, 10) + '...' + teamURL.substring(teamURL.length - 12, teamURL.length) + '/';
}
return teamURL + '/';
}
export function windowWidth() {
return $(window).width();
}
@@ -1274,18 +1248,6 @@ export function isValidPassword(password) {
return errorMsg;
}
export function getSiteURL() {
if (global.mm_config.SiteURL) {
return global.mm_config.SiteURL;
}
if (window.location.origin) {
return window.location.origin;
}
return window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');
}
export function handleFormattedTextClick(e) {
const mentionAttribute = e.target.getAttributeNode('data-mention');
const hashtagAttribute = e.target.getAttributeNode('data-hashtag');