Attach client to chat messages (#10845)

* Attach client to chat messages

* Word

* Design tweaks

* Fix potential error
This commit is contained in:
Phillip Thelen
2018-11-26 10:45:42 +01:00
committed by Matteo Pagliazzi
parent 2bebaf2cf8
commit 42b146d5d0
4 changed files with 12 additions and 5 deletions

View File

@@ -15,7 +15,8 @@ div
p.time
span.mr-1(v-if="msg.username") @{{ msg.username }}
span.mr-1(v-if="msg.username")
span(v-b-tooltip="", :title="msg.timestamp | date") {{ msg.timestamp | timeAgo }}
span(v-b-tooltip="", :title="msg.timestamp | date") {{ msg.timestamp | timeAgo }} 
span(v-if="msg.client && user.contributor.level >= 4") ({{ msg.client }})
.text(v-html='atHighlight(parseMarkdown(msg.text))')
hr
.d-flex(v-if='msg.id')

View File

@@ -175,7 +175,11 @@ api.postChat = {
throw new NotAuthorized(res.t('messageGroupChatSpam'));
}
const newChatMessage = group.sendChat(req.body.message, user);
let client = req.headers['x-client'] || '3rd Party';
if (client) {
client = client.replace('habitica-', '');
}
const newChatMessage = group.sendChat(req.body.message, user, null, client);
let toSave = [newChatMessage.save()];
if (group.type === 'party') {

View File

@@ -480,8 +480,8 @@ schema.methods.getMemberCount = async function getMemberCount () {
return await User.count(query).exec();
};
schema.methods.sendChat = function sendChat (message, user, metaData) {
let newMessage = messageDefaults(message, user);
schema.methods.sendChat = function sendChat (message, user, metaData, client) {
let newMessage = messageDefaults(message, user, client);
let newChatMessage = new Chat();
newChatMessage = Object.assign(newChatMessage, newMessage);
newChatMessage.groupId = this._id;

View File

@@ -19,6 +19,7 @@ const defaultSchema = () => ({
flags: {$type: mongoose.Schema.Types.Mixed, default: {}},
flagCount: {$type: Number, default: 0},
likes: {$type: mongoose.Schema.Types.Mixed},
client: String,
_meta: {$type: mongoose.Schema.Types.Mixed},
});
@@ -100,7 +101,7 @@ export function setUserStyles (newMessage, user) {
newMessage.markModified('userStyles');
}
export function messageDefaults (msg, user) {
export function messageDefaults (msg, user, client) {
const id = uuid();
const message = {
id,
@@ -110,6 +111,7 @@ export function messageDefaults (msg, user) {
likes: {},
flags: {},
flagCount: 0,
client,
};
if (user) {