Merge pull request #110 from nickago/MM-1430

MM-1430 Added the ability to have hashtags with dashes in them
Этот коммит содержится в:
Corey Hulen
2015-06-30 19:46:25 -08:00
родитель 1200f76484 bcc31b714b
Коммит 75c1938077
3 изменённых файлов: 19 добавлений и 3 удалений

Просмотреть файл

@@ -260,7 +260,7 @@ func Etag(parts ...interface{}) string {
return etag
}
var validHashtag = regexp.MustCompile(`^(#[A-Za-z]+[A-Za-z0-9_]*[A-Za-z0-9])$`)
var validHashtag = regexp.MustCompile(`^(#[A-Za-z]+[A-Za-z0-9_\-]*[A-Za-z0-9])$`)
var puncStart = regexp.MustCompile(`^[.,()&$!\[\]{}"':;\\]+`)
var puncEnd = regexp.MustCompile(`[.,()&$#!\[\]{}"':;\\]+$`)

Просмотреть файл

@@ -356,9 +356,14 @@ func (s SqlPostStore) Search(teamId string, userId string, terms string, isHasht
go func() {
result := StoreResult{}
termMap := map[string]bool{}
searchType := "Message"
if isHashtagSearch {
searchType = "Hashtags"
for _,term := range strings.Split(terms, " ") {
termMap[term] = true;
}
}
// @ has a speical meaning in INNODB FULLTEXT indexes and
@@ -394,6 +399,17 @@ func (s SqlPostStore) Search(teamId string, userId string, terms string, isHasht
list := &model.PostList{Order: make([]string, 0, len(posts))}
for _, p := range posts {
if searchType == "Hashtags" {
exactMatch := false
for _, tag := range strings.Split(p.Hashtags, " ") {
if termMap[tag] {
exactMatch = true
}
}
if !exactMatch {
continue
}
}
list.AddPost(p)
list.AddOrder(p.Id)
}

Просмотреть файл

@@ -395,8 +395,8 @@ module.exports.textToJsx = function(text, options) {
var inner = [];
// Function specific regexes
var hashRegex = /^href="#[^"]+"|(#[A-Za-z]+[A-Za-z0-9_]*[A-Za-z0-9])$/g;
// Function specific regex
var hashRegex = /^href="#[^"]+"|(#[A-Za-z]+[A-Za-z0-9_\-]*[A-Za-z0-9])$/g;
var implicitKeywords = UserStore.getCurrentMentionKeys();