Explorar o código

added basic @mention stuff

Akira Laine %!s(int64=9) %!d(string=hai) anos
pai
achega
3a9566ed74
Modificáronse 2 ficheiros con 24 adicións e 2 borrados
  1. 8 1
      app/client/templates/room.html
  2. 16 1
      app/server/server.js

+ 8 - 1
app/client/templates/room.html

@@ -137,7 +137,14 @@
                             <ul id="global-chat-ul">
                                 {{#each globalChat}}
                                     {{#emojione}}
-                                        <li class="chat-message"><small class="rank-{{this.rawrank}}">{{this.rank}}</small> <a style="text-decoration: none" href="/u/{{this.username}}" target="_blank"><b class="bold">{{this.username}}</b></a> <span title="{{time}}" style="float: right;">{{rtime time}}</span> <br/>{{this.message}}</li>
+                                        <li class="chat-message"><small class="rank-{{this.rawrank}}">{{this.rank}}</small> <a style="text-decoration: none" href="/u/{{this.username}}" target="_blank"><b class="bold">{{this.username}}</b></a> <span title="{{time}}" style="float: right;">{{rtime time}}</span> <br/>
+                                            {{#if this.isMentioned}}
+                                                <!--Do stuff here-->
+                                                <span style="background-color: lightblue">{{this.message}}</span>
+                                            {{else}}
+                                                {{this.message}}
+                                            {{/if}}
+                                        </li>
                                     {{/emojione}}
                                     <hr>
                                 {{/each}}

+ 16 - 1
app/server/server.js

@@ -655,6 +655,20 @@ Meteor.methods({
             var rawrank = user.profile.rank;
             var username = user.profile.username;
             var profanity = false;
+            var mentionUsername;
+            if(message.indexOf("@") !== -1) {
+                var messageArr = message.split(" ");
+                for (var i in messageArr) {
+                    if (messageArr[i].indexOf("@") !== -1) {
+                        var mention = messageArr[i];
+                    }
+                }
+                Meteor.users.find().forEach(function(user){
+                    if(mention.indexOf(user.profile.username) !== -1){
+                       mentionUsername = true;
+                    };
+                })
+            }
             if (!message.replace(/\s/g, "").length > 0) {
                 throw new Meteor.Error(406, "Message length cannot be 0.");
             }
@@ -666,7 +680,8 @@ Meteor.methods({
                     if(res.content.indexOf("true") > -1){
                         return true;
                     } else{
-                        Chat.insert({type: type, rawrank: rawrank, rank: "[A]", message: message, time: time, username: username});
+                        console.log("djkfs " + mentionUsername);
+                        Chat.insert({type: type, rawrank: rawrank, rank: "[A]", message: message, mention: mention, isMentioned: mentionUsername, time: time, username: username});
                     }
                 });
                 return true;