Add webapp/utils/url.jsx (#5285)
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.
Этот коммит содержится в:
коммит произвёл
enahum
родитель
9bdea0de80
Коммит
68a05653ea
29
webapp/utils/url.jsx
Обычный файл
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');
|
||||
|
||||
Ссылка в новой задаче
Block a user