summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/command_shortcuts.go37
-rw-r--r--api/command_shortcuts_test.go21
-rw-r--r--i18n/en.json12
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."
},