diff options
-rw-r--r-- | api/command_shortcuts.go | 37 | ||||
-rw-r--r-- | api/command_shortcuts_test.go | 21 | ||||
-rw-r--r-- | i18n/en.json | 12 |
3 files changed, 70 insertions, 0 deletions
diff --git a/api/command_shortcuts.go b/api/command_shortcuts.go new file mode 100644 index 000000000..77f9f4441 --- /dev/null +++ b/api/command_shortcuts.go @@ -0,0 +1,37 @@ +// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package api + +import ( + "github.com/mattermost/platform/model" +) + +type ShortcutsProvider struct { +} + +const ( + CMD_SHORTCUTS = "shortcuts" +) + +func init() { + RegisterCommandProvider(&ShortcutsProvider{}) +} + +func (me *ShortcutsProvider) GetTrigger() string { + return CMD_SHORTCUTS +} + +func (me *ShortcutsProvider) GetCommand(c *Context) *model.Command { + return &model.Command{ + Trigger: CMD_SHORTCUTS, + AutoComplete: true, + AutoCompleteDesc: c.T("api.command_shortcuts.desc"), + AutoCompleteHint: "", + DisplayName: c.T("api.command_shortcuts.name"), + } +} + +func (me *ShortcutsProvider) DoCommand(c *Context, channelId string, message string) *model.CommandResponse { + return &model.CommandResponse{ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL, Text: c.T("api.command_shortcuts.list")} +} diff --git a/api/command_shortcuts_test.go b/api/command_shortcuts_test.go new file mode 100644 index 000000000..a00bd3440 --- /dev/null +++ b/api/command_shortcuts_test.go @@ -0,0 +1,21 @@ +// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package api + +import ( + "github.com/mattermost/platform/model" + "strings" + "testing" +) + +func TestShortcutsCommand(t *testing.T) { + th := Setup().InitBasic() + Client := th.BasicClient + channel := th.BasicChannel + + rs := Client.Must(Client.Command(channel.Id, "/shortcuts ", false)).Data.(*model.CommandResponse) + if !strings.Contains(rs.Text, "ALT") { + t.Fatal("failed to display shortcuts") + } +} diff --git a/i18n/en.json b/i18n/en.json index 042f6d65c..84d6692bb 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -452,6 +452,18 @@ "translation": "shrug" }, { + "id": "api.command_shortcuts.desc", + "translation": "Displays a list of keyboard shortcuts" + }, + { + "id": "api.command_shortcuts.name", + "translation": "shortcuts" + }, + { + "id": "api.command_shortcuts.list", + "translation": "### Keyboard Shortcuts\n\n#### CTRL/CMD\n\n- CTRL/CMD+K - Open up channel switcher\n- CTRL/CMD+U - Open up file upload\n- CTRL/CMD+Up - Reprint last message or slash command entered\n- CTRL/CMD+SHIFT+A - Open account settings\n- CTRL/CMD+SHIFT+M - Open recent mentions\n\n#### ALT\n\n- ALT+Up - Go to previous channel\n- ALT+Down - Go to next channel\n- ALT+SHIFT+Up - Go to previous channel with unread messages\n- ALT+SHIFT+Down - Go to next channel with unread messages\n\n#### General\n\n- Up - Edit last message\n- /+Up/Down - See available slash commands\n" + }, + { "id": "api.context.404.app_error", "translation": "Sorry, we could not find the page." }, |