add /search command (#6741)

This commit is contained in:
Chris
2017-07-04 18:26:31 -07:00
committed by Saturnino Abril
parent 8f8a978e84
commit 5bd60a4d1e
4 changed files with 75 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package api
import (
"testing"
)
func TestSearchCommand(t *testing.T) {
th := Setup().InitBasic()
th.BasicClient.Must(th.BasicClient.Command(th.BasicChannel.Id, "/search"))
}

42
app/command_search.go Normal file
View File

@@ -0,0 +1,42 @@
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package app
import (
"github.com/mattermost/platform/model"
goi18n "github.com/nicksnyder/go-i18n/i18n"
)
type SearchProvider struct {
}
const (
CMD_SEARCH = "search"
)
func init() {
RegisterCommandProvider(&SearchProvider{})
}
func (search *SearchProvider) GetTrigger() string {
return CMD_SEARCH
}
func (search *SearchProvider) GetCommand(T goi18n.TranslateFunc) *model.Command {
return &model.Command{
Trigger: CMD_SEARCH,
AutoComplete: true,
AutoCompleteDesc: T("api.command_search.desc"),
AutoCompleteHint: T("api.command_search.hint"),
DisplayName: T("api.command_search.name"),
}
}
func (search *SearchProvider) DoCommand(args *model.CommandArgs, message string) *model.CommandResponse {
// This command is handled client-side and shouldn't hit the server.
return &model.CommandResponse{
Text: args.T("api.command_search.unsupported.app_error"),
ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL,
}
}

View File

@@ -699,6 +699,22 @@
"id": "api.command_open.name",
"translation": "open"
},
{
"id": "api.command_search.desc",
"translation": "Search text in messages"
},
{
"id": "api.command_search.hint",
"translation": "[text]"
},
{
"id": "api.command_search.name",
"translation": "search"
},
{
"id": "api.command_search.unsupported.app_error",
"translation": "The search command is not supported on your device"
},
{
"id": "api.command_settings.desc",
"translation": "Open the Account Settings dialog"

View File

@@ -8,6 +8,7 @@ import * as ChannelUtils from 'utils/channel_utils.jsx';
import PreferenceStore from 'stores/preference_store.jsx';
import * as GlobalActions from 'actions/global_actions.jsx';
import * as PostActions from 'actions/post_actions.jsx';
import {loadProfilesForSidebar, loadNewDMIfNeeded, loadNewGMIfNeeded} from 'actions/user_actions.jsx';
import {trackEvent} from 'actions/diagnostics_actions.jsx';
@@ -57,6 +58,9 @@ export function executeCommand(message, args, success, error) {
msg = cmd + msg.substring(cmdLength, msg.length);
switch (cmd) {
case '/search':
PostActions.searchForTerm(msg.substring(cmdLength + 1, msg.length));
return;
case '/shortcuts':
if (UserAgent.isMobile()) {
const err = {message: Utils.localizeMessage('create_post.shortcutsNotSupported', 'Keyboard shortcuts are not supported on your device')};