mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
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
This commit is contained in:
committed by
Harrison Healey
parent
94e734c1bd
commit
50b662040c
33
api/command_help_test.go
Normal file
33
api/command_help_test.go
Normal file
@@ -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
Normal file
33
api4/command_help_test.go
Normal file
@@ -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
Normal file
44
app/command_help.go
Normal file
@@ -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",
|
||||
"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",
|
||||
"translation": "Initializing compliance API routes"
|
||||
|
||||
@@ -203,7 +203,11 @@ export default class CreateComment extends React.Component {
|
||||
(data) => {
|
||||
this.setState({submitting: false});
|
||||
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) => {
|
||||
|
||||
Reference in New Issue
Block a user