Add /help slash command (#6650)
* Add /help slash command * Fix copyright year * go fmt * Add help command test at api4 * Fix jasonblais's issue * Update test code * Fix unit test issue - keep config unchanged
Этот коммит содержится в:
коммит произвёл
Harrison Healey
родитель
94e734c1bd
Коммит
50b662040c
33
api/command_help_test.go
Обычный файл
33
api/command_help_test.go
Обычный файл
@@ -0,0 +1,33 @@
|
|||||||
|
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
|
||||||
|
// See License.txt for license information.
|
||||||
|
|
||||||
|
package api
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/mattermost/platform/model"
|
||||||
|
"github.com/mattermost/platform/utils"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestHelpCommand(t *testing.T) {
|
||||||
|
th := Setup().InitBasic()
|
||||||
|
Client := th.BasicClient
|
||||||
|
channel := th.BasicChannel
|
||||||
|
|
||||||
|
HelpLink := *utils.Cfg.SupportSettings.HelpLink
|
||||||
|
defer func() {
|
||||||
|
*utils.Cfg.SupportSettings.HelpLink = HelpLink
|
||||||
|
}()
|
||||||
|
|
||||||
|
*utils.Cfg.SupportSettings.HelpLink = ""
|
||||||
|
rs1 := Client.Must(Client.Command(channel.Id, "/help ")).Data.(*model.CommandResponse)
|
||||||
|
if rs1.GotoLocation != model.SUPPORT_SETTINGS_DEFAULT_HELP_LINK {
|
||||||
|
t.Fatal("failed to default help link")
|
||||||
|
}
|
||||||
|
|
||||||
|
*utils.Cfg.SupportSettings.HelpLink = "https://docs.mattermost.com/guides/user.html"
|
||||||
|
rs2 := Client.Must(Client.Command(channel.Id, "/help ")).Data.(*model.CommandResponse)
|
||||||
|
if rs2.GotoLocation != "https://docs.mattermost.com/guides/user.html" {
|
||||||
|
t.Fatal("failed to help link")
|
||||||
|
}
|
||||||
|
}
|
||||||
33
api4/command_help_test.go
Обычный файл
33
api4/command_help_test.go
Обычный файл
@@ -0,0 +1,33 @@
|
|||||||
|
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
|
||||||
|
// See License.txt for license information.
|
||||||
|
|
||||||
|
package api4
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/mattermost/platform/model"
|
||||||
|
"github.com/mattermost/platform/utils"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestHelpCommand(t *testing.T) {
|
||||||
|
th := Setup().InitBasic()
|
||||||
|
Client := th.Client
|
||||||
|
channel := th.BasicChannel
|
||||||
|
|
||||||
|
HelpLink := *utils.Cfg.SupportSettings.HelpLink
|
||||||
|
defer func() {
|
||||||
|
*utils.Cfg.SupportSettings.HelpLink = HelpLink
|
||||||
|
}()
|
||||||
|
|
||||||
|
*utils.Cfg.SupportSettings.HelpLink = ""
|
||||||
|
rs1, _ := Client.ExecuteCommand(channel.Id, "/help ")
|
||||||
|
if rs1.GotoLocation != model.SUPPORT_SETTINGS_DEFAULT_HELP_LINK {
|
||||||
|
t.Fatal("failed to default help link")
|
||||||
|
}
|
||||||
|
|
||||||
|
*utils.Cfg.SupportSettings.HelpLink = "https://docs.mattermost.com/guides/user.html"
|
||||||
|
rs2, _ := Client.ExecuteCommand(channel.Id, "/help ")
|
||||||
|
if rs2.GotoLocation != "https://docs.mattermost.com/guides/user.html" {
|
||||||
|
t.Fatal("failed to help link")
|
||||||
|
}
|
||||||
|
}
|
||||||
44
app/command_help.go
Обычный файл
44
app/command_help.go
Обычный файл
@@ -0,0 +1,44 @@
|
|||||||
|
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
|
||||||
|
// See License.txt for license information.
|
||||||
|
|
||||||
|
package app
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/mattermost/platform/model"
|
||||||
|
"github.com/mattermost/platform/utils"
|
||||||
|
goi18n "github.com/nicksnyder/go-i18n/i18n"
|
||||||
|
)
|
||||||
|
|
||||||
|
type HelpProvider struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
CMD_HELP = "help"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
RegisterCommandProvider(&HelpProvider{})
|
||||||
|
}
|
||||||
|
|
||||||
|
func (h *HelpProvider) GetTrigger() string {
|
||||||
|
return CMD_HELP
|
||||||
|
}
|
||||||
|
|
||||||
|
func (h *HelpProvider) GetCommand(T goi18n.TranslateFunc) *model.Command {
|
||||||
|
return &model.Command{
|
||||||
|
Trigger: CMD_HELP,
|
||||||
|
AutoComplete: true,
|
||||||
|
AutoCompleteDesc: T("api.command_help.desc"),
|
||||||
|
DisplayName: T("api.command_help.name"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (h *HelpProvider) DoCommand(args *model.CommandArgs, message string) *model.CommandResponse {
|
||||||
|
helpLink := *utils.Cfg.SupportSettings.HelpLink
|
||||||
|
|
||||||
|
if helpLink == "" {
|
||||||
|
helpLink = model.SUPPORT_SETTINGS_DEFAULT_HELP_LINK
|
||||||
|
}
|
||||||
|
|
||||||
|
return &model.CommandResponse{GotoLocation: helpLink}
|
||||||
|
}
|
||||||
@@ -871,6 +871,14 @@
|
|||||||
"id": "api.command_shrug.name",
|
"id": "api.command_shrug.name",
|
||||||
"translation": "shrug"
|
"translation": "shrug"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "api.command_help.desc",
|
||||||
|
"translation": "Open the Mattermost help page"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "api.command_help.name",
|
||||||
|
"translation": "help"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "api.compliance.init.debug",
|
"id": "api.compliance.init.debug",
|
||||||
"translation": "Initializing compliance API routes"
|
"translation": "Initializing compliance API routes"
|
||||||
|
|||||||
@@ -203,7 +203,11 @@ export default class CreateComment extends React.Component {
|
|||||||
(data) => {
|
(data) => {
|
||||||
this.setState({submitting: false});
|
this.setState({submitting: false});
|
||||||
if (data.goto_location && data.goto_location.length > 0) {
|
if (data.goto_location && data.goto_location.length > 0) {
|
||||||
browserHistory.push(data.goto_location);
|
if (data.goto_location.startsWith('/') || data.goto_location.includes(window.location.hostname)) {
|
||||||
|
browserHistory.push(data.goto_location);
|
||||||
|
} else {
|
||||||
|
window.open(data.goto_location);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
(err) => {
|
(err) => {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user