Commit 528f2dc6 authored by Joram Wilander's avatar Joram Wilander Committed by GitHub
Browse files

Merge release-3.10 into master (#6654)

* PLT-6787 Fixed being able to send a post before files finished uploading (#6617)

* Fix quick switcher for channels/users not stored locally (#6610)

* Fix button text on confirm mention modal (#6609)

* fix post delete permission of channel admin (#6608)

* open comment thread for the most recent reply-able message (#6605)

* Use mutex flag with yarn to prevent concurrent builds interfering (#6619)

* Use mutex flag with yarn to prevent concurrent builds interfering

* Remove yarn mutex file with clean

* Minor bug fixes (#6615)

* PLT-6774 - Fixing color for offline icon

* PLT-6784 - Fixing status icon

* Fixing icon margin

* Updating caret position

* PLT-6070 Have ChannelMentionProvider stop searching after a term returns no results (#6620)

* Fixing JS error (#6623)

* Minor bug fixes (#6622)

* PLT-6808 - Updating channel switcher on mobile

* PLT-6743 - Updating scrollbar styling

* Login instead of failing if user exists in OAuth sign-up flow (#6627)

* PLT-6802 Disable team switcher (#6626)

* Disable team switcher

* Fix ESLint errors

* PLT-6807 Ensured select teams page can scroll on iOS (#6630)

* Do not redirect from account switch pages on 401 (#6631)

* Fixing loadtest command and renaming to /test (#6624)

* PLT-6820 Update mattermost-redux dependency (#6632)

* translations PR 20170612 (#6629)

* Bump HTTP client timeout to 30 seconds (#6633)

* For team unreads return empty array instead of null (#6636)

* PLT-6831 Fix status modal localization IDs (#6637)

* Fix status modal localization IDs

* Update test snapshot
parent c0a00654
......@@ -25,8 +25,8 @@ func TestLoadTestHelpCommands(t *testing.T) {
utils.Cfg.ServiceSettings.EnableTesting = true
rs := Client.Must(Client.Command(channel.Id, "/loadtest help")).Data.(*model.CommandResponse)
if !strings.Contains(rs.Text, "Mattermost load testing commands to help") {
rs := Client.Must(Client.Command(channel.Id, "/test help")).Data.(*model.CommandResponse)
if !strings.Contains(rs.Text, "Mattermost testing commands to help") {
t.Fatal(rs.Text)
}
......@@ -38,7 +38,7 @@ func TestLoadTestSetupCommands(t *testing.T) {
Client := th.BasicClient
channel := th.BasicChannel
// enable testing to use /loadtest but don't save it since we don't want to overwrite config.json
// enable testing to use /test but don't save it since we don't want to overwrite config.json
enableTesting := utils.Cfg.ServiceSettings.EnableTesting
defer func() {
utils.Cfg.ServiceSettings.EnableTesting = enableTesting
......@@ -46,7 +46,7 @@ func TestLoadTestSetupCommands(t *testing.T) {
utils.Cfg.ServiceSettings.EnableTesting = true
rs := Client.Must(Client.Command(channel.Id, "/loadtest setup fuzz 1 1 1")).Data.(*model.CommandResponse)
rs := Client.Must(Client.Command(channel.Id, "/test setup fuzz 1 1 1")).Data.(*model.CommandResponse)
if rs.Text != "Created enviroment" {
t.Fatal(rs.Text)
}
......@@ -59,7 +59,7 @@ func TestLoadTestUsersCommands(t *testing.T) {
Client := th.BasicClient
channel := th.BasicChannel
// enable testing to use /loadtest but don't save it since we don't want to overwrite config.json
// enable testing to use /test but don't save it since we don't want to overwrite config.json
enableTesting := utils.Cfg.ServiceSettings.EnableTesting
defer func() {
utils.Cfg.ServiceSettings.EnableTesting = enableTesting
......@@ -67,7 +67,7 @@ func TestLoadTestUsersCommands(t *testing.T) {
utils.Cfg.ServiceSettings.EnableTesting = true
rs := Client.Must(Client.Command(channel.Id, "/loadtest users fuzz 1 2")).Data.(*model.CommandResponse)
rs := Client.Must(Client.Command(channel.Id, "/test users fuzz 1 2")).Data.(*model.CommandResponse)
if rs.Text != "Added users" {
t.Fatal(rs.Text)
}
......@@ -88,7 +88,7 @@ func TestLoadTestChannelsCommands(t *testing.T) {
utils.Cfg.ServiceSettings.EnableTesting = true
rs := Client.Must(Client.Command(channel.Id, "/loadtest channels fuzz 1 2")).Data.(*model.CommandResponse)
rs := Client.Must(Client.Command(channel.Id, "/test channels fuzz 1 2")).Data.(*model.CommandResponse)
if rs.Text != "Added channels" {
t.Fatal(rs.Text)
}
......@@ -109,7 +109,7 @@ func TestLoadTestPostsCommands(t *testing.T) {
utils.Cfg.ServiceSettings.EnableTesting = true
rs := Client.Must(Client.Command(channel.Id, "/loadtest posts fuzz 2 3 2")).Data.(*model.CommandResponse)
rs := Client.Must(Client.Command(channel.Id, "/test posts fuzz 2 3 2")).Data.(*model.CommandResponse)
if rs.Text != "Added posts" {
t.Fatal(rs.Text)
}
......
......@@ -241,12 +241,12 @@ func TestTestCommand(t *testing.T) {
cmd1 := &model.Command{
URL: "http://localhost" + utils.Cfg.ServiceSettings.ListenAddress + model.API_URL_SUFFIX_V3 + "/teams/command_test",
Method: model.COMMAND_METHOD_POST,
Trigger: "test",
Trigger: "testcommand",
}
cmd1 = Client.Must(Client.CreateCommand(cmd1)).Data.(*model.Command)
r1 := Client.Must(Client.Command(channel1.Id, "/test")).Data.(*model.CommandResponse)
r1 := Client.Must(Client.Command(channel1.Id, "/testcommand")).Data.(*model.CommandResponse)
if r1 == nil {
t.Fatal("Test command failed to execute")
}
......
......@@ -47,14 +47,14 @@ func TestCreateCommand(t *testing.T) {
CheckErrorMessage(t, resp, "api.command.duplicate_trigger.app_error")
newCmd.Method = "Wrong"
newCmd.Trigger = "test"
newCmd.Trigger = "testcommand"
_, resp = th.SystemAdminClient.CreateCommand(newCmd)
CheckInternalErrorStatus(t, resp)
CheckErrorMessage(t, resp, "model.command.is_valid.method.app_error")
*utils.Cfg.ServiceSettings.EnableCommands = false
newCmd.Method = "P"
newCmd.Trigger = "test"
newCmd.Trigger = "testcommand"
_, resp = th.SystemAdminClient.CreateCommand(newCmd)
CheckNotImplementedStatus(t, resp)
CheckErrorMessage(t, resp, "api.command.disabled.app_error")
......
......@@ -59,10 +59,10 @@ func (cfg *AutoUserCreator) createRandomUser() (*model.User, bool) {
var userEmail string
var userName string
if cfg.Fuzzy {
userEmail = "success+" + model.NewId() + "simulator.amazonses.com"
userEmail = "success+" + model.NewId() + "@simulator.amazonses.com"
userName = utils.FuzzName()
} else {
userEmail = "success+" + model.NewId() + "simulator.amazonses.com"
userEmail = "success+" + model.NewId() + "@simulator.amazonses.com"
userName = utils.RandomName(cfg.NameLength, cfg.NameCharset)
}
......
......@@ -16,50 +16,50 @@ import (
goi18n "github.com/nicksnyder/go-i18n/i18n"
)
var usage = `Mattermost load testing commands to help configure the system
var usage = `Mattermost testing commands to help configure the system
COMMANDS:
Setup - Creates a testing environment in current team.
/loadtest setup [teams] [fuzz] <Num Channels> <Num Users> <NumPosts>
/test setup [teams] [fuzz] <Num Channels> <Num Users> <NumPosts>
Example:
/loadtest setup teams fuzz 10 20 50
/test setup teams fuzz 10 20 50
Users - Add a specified number of random users with fuzz text to current team.
/loadtest users [fuzz] <Min Users> <Max Users>
/test users [fuzz] <Min Users> <Max Users>
Example:
/loadtest users fuzz 5 10
/test users fuzz 5 10
Channels - Add a specified number of random channels with fuzz text to current team.
/loadtest channels [fuzz] <Min Channels> <Max Channels>
/test channels [fuzz] <Min Channels> <Max Channels>
Example:
/loadtest channels fuzz 5 10
/test channels fuzz 5 10
Posts - Add some random posts with fuzz text to current channel.
/loadtest posts [fuzz] <Min Posts> <Max Posts> <Max Images>
/test posts [fuzz] <Min Posts> <Max Posts> <Max Images>
Example:
/loadtest posts fuzz 5 10 3
/test posts fuzz 5 10 3
Url - Add a post containing the text from a given url to current channel.
/loadtest url
/test url
Example:
/loadtest http://www.example.com/sample_file.md
/test http://www.example.com/sample_file.md
Json - Add a post using the JSON file as payload to the current channel.
/loadtest json url
/test json url
Example
/loadtest json http://www.example.com/sample_body.json
/test json http://www.example.com/sample_body.json
`
const (
CMD_LOADTEST = "loadtest"
CMD_TEST = "test"
)
type LoadTestProvider struct {
......@@ -72,16 +72,16 @@ func init() {
}
func (me *LoadTestProvider) GetTrigger() string {
return CMD_LOADTEST
return CMD_TEST
}
func (me *LoadTestProvider) GetCommand(T goi18n.TranslateFunc) *model.Command {
return &model.Command{
Trigger: CMD_LOADTEST,
Trigger: CMD_TEST,
AutoComplete: false,
AutoCompleteDesc: "Debug Load Testing",
AutoCompleteHint: "help",
DisplayName: "loadtest",
DisplayName: "test",
}
}
......
......@@ -46,7 +46,6 @@ func (me *ShortcutsProvider) DoCommand(args *model.CommandArgs, message string)
"api.command_shortcuts.nav.unread_prev",
"api.command_shortcuts.nav.unread_next",
"api.command_shortcuts.nav.switcher",
"api.command_shortcuts.nav.switcher_team",
"api.command_shortcuts.nav.direct_messages_menu",
"api.command_shortcuts.nav.settings",
"api.command_shortcuts.nav.recent_mentions",
......
......@@ -656,7 +656,7 @@ func GetTeamsUnreadForUser(excludeTeamId string, userId string) ([]*model.TeamUn
return nil, result.Err
} else {
data := result.Data.([]*model.ChannelUnread)
var members []*model.TeamUnread
members := []*model.TeamUnread{}
membersMap := make(map[string]*model.TeamUnread)
unreads := func(cu *model.ChannelUnread, tu *model.TeamUnread) *model.TeamUnread {
......
......@@ -269,7 +269,7 @@ func CreateOAuthUser(service string, userData io.Reader, teamId string) (*model.
}
if result := <-suchan; result.Err == nil {
return nil, model.NewLocAppError("CreateOAuthUser", "api.user.create_oauth_user.already_used.app_error", map[string]interface{}{"Service": service}, "email="+user.Email)
return result.Data.(*model.User), nil
}
if result := <-euchan; result.Err == nil {
......
......@@ -225,7 +225,7 @@
},
{
"id": "api.channel.create_group.bad_size.app_error",
"translation": "Gruppennachrichtenkanäle müssen aus mindestens 3 und nicht mehr als 8 Benutzer bestehen"
"translation": "Gruppennachrichtenkanäle müssen aus mindestens 3 und nicht mehr als 8 Benutzern bestehen"
},
{
"id": "api.channel.create_group.bad_user.app_error",
......@@ -2345,7 +2345,7 @@
},
{
"id": "api.templates.welcome_body.app_download_info",
"translation": "Für das beste Erlebnis laden Sie die Anwendungen für PC, macOS, iOS und Android herunter:"
"translation": "Für das beste Erlebnis laden Sie die Apps für PC, macOS, iOS und Android herunter:"
},
{
"id": "api.templates.welcome_body.button",
......@@ -5217,7 +5217,7 @@
},
{
"id": "store.sql_oauth.save_app.existing.app_error",
"translation": "Es muss Update für existierende Anwendung aufgerufen werden"
"translation": "Es muss Update für existierende App aufgerufen werden"
},
{
"id": "store.sql_oauth.save_app.save.app_error",
......
This diff is collapsed.
......@@ -773,7 +773,7 @@
},
{
"id": "api.command_shortcuts.nav.direct_messages_menu",
"translation": "{{.CmdOrCtrl}}+SHIFT+K: Open direct messages menu\n"
"translation": "{{.CmdOrCtrl}}+SHIFT+K: ダイレクトメッセージメニューを開く\n"
},
{
"id": "api.command_shortcuts.nav.header",
......
......@@ -801,7 +801,7 @@
},
{
"id": "api.command_shortcuts.nav.switcher_team",
"translation": "{{.CmdOrCtrl}}+K: Otwórz okienko szybkiej zmiany kanału\n"
"translation": "{{.CmdOrCtrl}}+K: Otwórz okienko szybkiej zmiany zespołu\n"
},
{
"id": "api.command_shortcuts.nav.unread_next",
......@@ -1067,7 +1067,7 @@
},
{
"id": "api.file.get_info_for_request.storage.app_error",
"translation": "Nie można pobrać informacji o pliku. Przechowywanie obrazów nie jest skonfigurowane."
"translation": "Nie można pobrać informacji o pliku. Przechowywanie plików nie jest skonfigurowane."
},
{
"id": "api.file.get_public_file_old.storage.app_error",
......@@ -2289,7 +2289,7 @@
},
{
"id": "api.templates.signin_change_email.subject",
"translation": "[{{ .SiteName }}] Twoje hasło zostało zaktualizowane"
"translation": "[{{ .SiteName }}] Twoja metoda logowania została zaktualizowana"
},
{
"id": "api.templates.signup_team_body.button",
......
......@@ -773,7 +773,7 @@
},
{
"id": "api.command_shortcuts.nav.direct_messages_menu",
"translation": "{{.CmdOrCtrl}}+SHIFT+K: Open direct messages menu\n"
"translation": "{{.CmdOrCtrl}}+SHIFT+K: Abre o menu the mensagens diretas\n"
},
{
"id": "api.command_shortcuts.nav.header",
......
......@@ -49,23 +49,23 @@
},
{
"id": "api.admin.add_certificate.no_file.app_error",
"translation": "Нет файла 'certificate' в запросе"
"translation": "Нет файла под атрибутом 'certificate' в запросе."
},
{
"id": "api.admin.add_certificate.open.app_error",
"translation": "Невозможно открыть файл сертификата"
"translation": "Невозможно открыть файл сертификата."
},
{
"id": "api.admin.add_certificate.saving.app_error",
"translation": "Невозможно сохранить файл сертификата"
"translation": "Невозможно сохранить файл сертификата."
},
{
"id": "api.admin.file_read_error",
"translation": "Ошибка чтения лог файла"
"translation": "Ошибка чтения лог файла."
},
{
"id": "api.admin.get_brand_image.not_available.app_error",
"translation": "Фирменная символика не настроена или не поддерживается на этом сервере"
"translation": "Фирменная символика не настроена или не поддерживается на этом сервере."
},
{
"id": "api.admin.get_brand_image.storage.app_error",
......@@ -73,15 +73,15 @@
},
{
"id": "api.admin.init.debug",
"translation": "Инициализация административных маршрутов API"
"translation": "Инициализация административных маршрутов API."
},
{
"id": "api.admin.recycle_db_end.warn",
"translation": "Завершение переподключения к базе данных"
"translation": "Переподключение к базе данных завершено."
},
{
"id": "api.admin.recycle_db_start.warn",
"translation": "Попытка восстановления соединения с базой данных"
"translation": "Попытка восстановления соединения с базой данных."
},
{
"id": "api.admin.remove_certificate.delete.app_error",
......@@ -757,7 +757,7 @@
},
{
"id": "api.command_shortcuts.msgs.reply",
"translation": "SHIFT+UP (in empty input field): Reply to the most recent message in the current channel\n"
"translation": "SHIFT+ВВЕРХ (в пустом поле ввода): Ответить на последнее сообщение в канале\n"
},
{
"id": "api.command_shortcuts.msgs.reprint_next",
......@@ -773,7 +773,7 @@
},
{
"id": "api.command_shortcuts.nav.direct_messages_menu",
"translation": "{{.CmdOrCtrl}}+SHIFT+K: Open direct messages menu\n"
"translation": "{{.CmdOrCtrl}}+SHIFT+K: Открыть меню личных сообщений\n"
},
{
"id": "api.command_shortcuts.nav.header",
......@@ -801,7 +801,7 @@
},
{
"id": "api.command_shortcuts.nav.switcher_team",
"translation": "{{.CmdOrCtrl}}+K: Открыть диалог переключения между каналами\n"
"translation": "{{.CmdOrCtrl}}+ALT+K: Открыть диалог быстрого переключения между каналами\n"
},
{
"id": "api.command_shortcuts.nav.unread_next",
......@@ -2289,7 +2289,7 @@
},
{
"id": "api.templates.signin_change_email.subject",
"translation": "[{{ .SiteName }}] Ваш пароль обновлён"
"translation": "[{{ .SiteName }}] Ваш метод входа обновлён"
},
{
"id": "api.templates.signup_team_body.button",
......@@ -2749,7 +2749,7 @@
},
{
"id": "api.user.upload_profile_user.decode_config.app_error",
"translation": "Could not save profile image. File does not appear to be a valid image."
"translation": "Не удалось сохранить изображения профиля. Файл должен быть картинкой."
},
{
"id": "api.user.upload_profile_user.encode.app_error",
......@@ -3101,7 +3101,7 @@
},
{
"id": "app.import.validate_team_import_data.type_missing.error",
"translation": "Пропущено необходимое свойство team: type"
"translation": "Пропущено необходимое свойство team: type."
},
{
"id": "app.import.validate_user_channels_import_data.channel_name_missing.error",
......@@ -3337,7 +3337,7 @@
},
{
"id": "ent.elasticsearch.start.index_create_failed",
"translation": "Failed to create ElasticSearch index"
"translation": "Ошибка создания индекса ElasticSearch"
},
{
"id": "ent.elasticsearch.start.index_exists_failed",
......@@ -5113,7 +5113,7 @@
},
{
"id": "store.sql_file_info.save_or_update.app_error",
"translation": "Мы не смогли сохранить информацию о файле"
"translation": "Не удалсоь сохранить информацию о файле"
},
{
"id": "store.sql_job_status.delete_by_type.app_error",
......@@ -5285,7 +5285,7 @@
},
{
"id": "store.sql_post.get_posts_by_ids.app_error",
"translation": "Не удалось получить пост"
"translation": "Не удалось получить сообщения"
},
{
"id": "store.sql_post.get_posts_created_att.app_error",
......@@ -5333,7 +5333,7 @@
},
{
"id": "store.sql_post.search.disabled",
"translation": "Searching has been disabled on this server. Please contact your System Administrator."
"translation": "Поиск на этом сервере отключен. Пожалуйста, обратитесь к администратору."
},
{
"id": "store.sql_post.search.warn",
......@@ -6001,7 +6001,7 @@
},
{
"id": "utils.mail.connect_smtp.helo.app_error",
"translation": "Failed to set HELO"
"translation": "Не удалось установить HELO"
},
{
"id": "utils.mail.connect_smtp.open.app_error",
......
......@@ -773,7 +773,7 @@
},
{
"id": "api.command_shortcuts.nav.direct_messages_menu",
"translation": "{{.CmdOrCtrl}}+SHIFT+K: Open direct messages menu\n"
"translation": "{{.CmdOrCtrl}}+SHIFT+K: Doğrudan iletiler menüsünü açar\n"
},
{
"id": "api.command_shortcuts.nav.header",
......@@ -2253,7 +2253,7 @@
},
{
"id": "api.templates.post_subject_in_direct_message",
"translation": "{{.SenderDisplayName}} kullanıcısından {{.SubjectText}} iletisi {{.Month}} {{.Day}}, {{.Year}} tarihinde"
"translation": "{{.SenderDisplayName}} kullanıcısından {{.Day}} {{.Month}} {{.Year}} tarihinde {{.SubjectText}}"
},
{
"id": "api.templates.post_subject_in_group_message",
......
......@@ -757,7 +757,7 @@
},
{
"id": "api.command_shortcuts.msgs.reply",
"translation": "SHIFT+UP (in empty input field): Reply to the most recent message in the current channel\n"
"translation": "SHIFT+UP (在空输入栏):回复当前频道最新的消息\n"
},
{
"id": "api.command_shortcuts.msgs.reprint_next",
......@@ -773,7 +773,7 @@
},
{
"id": "api.command_shortcuts.nav.direct_messages_menu",
"translation": "{{.CmdOrCtrl}}+SHIFT+K: Open direct messages menu\n"
"translation": "{{.CmdOrCtrl}}+SHIFT+K:打开私信菜单\n"
},
{
"id": "api.command_shortcuts.nav.header",
......@@ -801,7 +801,7 @@
},
{
"id": "api.command_shortcuts.nav.switcher_team",
"translation": "{{.CmdOrCtrl}}+K:打开频道快速切换对话框\n"
"translation": "{{.CmdOrCtrl}}+ALT+K:打开团队快速切换对话框\n"
},
{
"id": "api.command_shortcuts.nav.unread_next",
......@@ -1463,7 +1463,7 @@
},
{
"id": "api.opengraph.init.debug",
"translation": "Initializing open graph protocol api routes"
"translation": "正在初始化 open graph 协议 api 路由"
},
{
"id": "api.post.check_for_out_of_channel_mentions.message.multiple",
......@@ -1981,7 +1981,7 @@
},
{
"id": "api.system.go_routines",
"translation": "The number of running goroutines is over the health threshold %v of %v"
"translation": "运行中的 goroutine 数量 %v 已经超过健康界限 %v"
},
{
"id": "api.team.add_user_to_team.invalid_data.app_error",
......@@ -2749,7 +2749,7 @@
},
{
"id": "api.user.upload_profile_user.decode_config.app_error",
"translation": "Could not save profile image. File does not appear to be a valid image."
"translation": "无法保存个人资料图片。文件不是有效的图片。"
},
{
"id": "api.user.upload_profile_user.encode.app_error",
......@@ -3909,19 +3909,19 @@
},
{
"id": "model.config.is_valid.elastic_search.connection_url.app_error",
"translation": "Elastic Search ConnectionUrl setting must be provided when Elastic Search indexing is enabled."
"translation": "Elastic Search 索引开启时必须提供 Elastic Search ConnectionUrl 设定。"
},
{
"id": "model.config.is_valid.elastic_search.enable_searching.app_error",
"translation": "Elastic Search IndexingEnabled setting must be set to true when Elastic Search SearchEnabled is set to true."
"translation": "Elastic Search SearchEnabled 设为是时必须设定 Elastic Search IndexingEnabled 为是。"
},
{
"id": "model.config.is_valid.elastic_search.password.app_error",
"translation": "Elastic Search Password setting must be provided when Elastic Search indexing is enabled."
"translation": "Elastic Search 索引开启时必须提供 Elastic Search 密码设定。"
},
{
"id": "model.config.is_valid.elastic_search.username.app_error",
"translation": "Elastic Search Username setting must be provided when Elastic Search indexing is enabled."
"translation": "Elastic Search 索引开启时必须提供 Elastic Search 用户名设定。"
},
{
"id": "model.config.is_valid.email_batching_buffer_size.app_error",
......@@ -6029,7 +6029,7 @@
},
{
"id": "utils.mail.send_mail.from_address.app_error",
"translation": "Notification From Address setting is missing or invalid."
"translation": "缺少或无效的从寄件人地址通知设定。"
},
{
"id": "utils.mail.send_mail.msg.app_error",
......@@ -6045,7 +6045,7 @@
},
{
"id": "utils.mail.send_mail.to_address.app_error",
"translation": "Notification To Address setting is missing or invalid."
"translation": "缺少或无效的通知到收件人地址设定。"
},
{
"id": "utils.mail.test.configured.error",
......
......@@ -773,7 +773,7 @@
},
{
"id": "api.command_shortcuts.nav.direct_messages_menu",
"translation": "{{.CmdOrCtrl}}+SHIFT+K: Open direct messages menu\n"
"translation": "{{.CmdOrCtrl}}+SHIFT+K: 開啟直接傳訊選單\n"
},
{
"id": "api.command_shortcuts.nav.header",
......
......@@ -258,6 +258,11 @@ func SetDefaultRolesBasedOnConfig() {
model.ROLE_CHANNEL_USER.Permissions,
model.PERMISSION_DELETE_POST.Id,
)
model.ROLE_CHANNEL_ADMIN.Permissions = append(
model.ROLE_CHANNEL_ADMIN.Permissions,
model.PERMISSION_DELETE_POST.Id,
model.PERMISSION_DELETE_OTHERS_POSTS.Id,
)
model.ROLE_TEAM_ADMIN.Permissions = append(
model.ROLE_TEAM_ADMIN.Permissions,
model.PERMISSION_DELETE_POST.Id,
......
......@@ -12,7 +12,7 @@ import (
const (
connectTimeout = 3 * time.Second
requestTimeout = 5 * time.Second
requestTimeout = 30 * time.Second
)
// HttpClient returns a variation the default implementation of Client.
......
......@@ -5,7 +5,7 @@ BUILD_SERVER_DIR = ..
check-style: .yarninstall
@echo Checking for style guide compliance
yarn run check
yarn run check --mutex file:/tmp/.yarn-mutex
test: .yarninstall
cd $(BUILD_SERVER_DIR) && $(MAKE) internal-test-web-client
......@@ -13,7 +13,7 @@ test: .yarninstall
.yarninstall: package.json
@echo Getting dependencies using yarn
yarn install --pure-lockfile
yarn install --pure-lockfile --mutex file:/tmp/.yarn-mutex
touch $@
......@@ -22,7 +22,7 @@ build: .yarninstall
rm -rf dist
yarn run build
yarn run build --mutex file:/tmp/.yarn-mutex
run: .yarninstall
@echo Running mattermost Webapp for development
......@@ -49,8 +49,9 @@ endif
clean:
@echo Cleaning Webapp
yarn cache clean --mutex file:/tmp/.yarn-mutex
rm -rf dist
rm -rf node_modules
rm -f .yarninstall
yarn cache clean
rm -f /tmp/.yarn-mutex
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!