Show unread counter for DMs as blue when mentioned (#14185)

pull/13748/head^2
Diego Sampaio 6 years ago committed by GitHub
parent ea58137e80
commit 5796f3461f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 47
      app/lib/server/lib/notifyUsersOnMessage.js
  2. 4
      app/theme/client/imports/components/badge.css
  3. 1
      app/theme/client/imports/general/variables.css
  4. 7
      app/ui-sidenav/client/sidebarItem.js
  5. 1
      private/client/imports/general/variables.css

@ -1,9 +1,10 @@
import _ from 'underscore';
import s from 'underscore.string';
import moment from 'moment';
import { Rooms, Subscriptions } from '../../../models';
import { settings } from '../../../settings';
import { callbacks } from '../../../callbacks';
import { Rooms, Subscriptions } from '../../../models/server';
import { settings } from '../../../settings/server';
import { callbacks } from '../../../callbacks/server';
/**
* Chechs if a messages contains a user highlight
@ -36,8 +37,6 @@ export function updateUsersSubscriptions(message, room, users) {
Subscriptions.findByRoomAndUsersWithUserHighlights(room._id, users, highlightOptions).fetch() :
Subscriptions.findByRoomWithUserHighlights(room._id, highlightOptions).fetch();
// const usersToNotify = users || [message.u._id];
if (message.mentions != null) {
message.mentions.forEach(function(mention) {
if (!toAll && mention._id === 'all') {
@ -60,35 +59,21 @@ export function updateUsersSubscriptions(message, room, users) {
}
});
if (room.t === 'd') {
const unreadCountDM = settings.get('Unread_Count_DM');
const unreadSetting = room.t === 'd' ? 'Unread_Count_DM' : 'Unread_Count';
const unreadCount = settings.get(unreadSetting);
if (unreadCountDM === 'all_messages') {
Subscriptions.incUnreadForRoomIdExcludingUserId(room._id, message.u._id);
} else if (toAll || toHere) {
Subscriptions.incGroupMentionsAndUnreadForRoomIdExcludingUserId(room._id, message.u._id, 1, 1);
} else if ((mentionIds && mentionIds.length > 0) || (highlightsIds && highlightsIds.length > 0)) {
Subscriptions.incUserMentionsAndUnreadForRoomIdAndUserIds(room._id, _.compact(_.unique(mentionIds.concat(highlightsIds))), 1, 1);
}
} else {
const unreadCount = settings.get('Unread_Count');
if (toAll || toHere) {
const incUnreadByGroup = ['all_messages', 'group_mentions_only', 'user_and_group_mentions_only'].includes(unreadCount);
const incUnread = room.t === 'd' || incUnreadByGroup ? 1 : 0;
if (toAll || toHere) {
let incUnread = 0;
if (['all_messages', 'group_mentions_only', 'user_and_group_mentions_only'].includes(unreadCount)) {
incUnread = 1;
}
Subscriptions.incGroupMentionsAndUnreadForRoomIdExcludingUserId(room._id, message.u._id, 1, incUnread);
Subscriptions.incGroupMentionsAndUnreadForRoomIdExcludingUserId(room._id, message.u._id, 1, incUnread);
} else if (users || (mentionIds && mentionIds.length > 0) || (highlightsIds && highlightsIds.length > 0)) {
const incUnreadByUser = ['all_messages', 'user_mentions_only', 'user_and_group_mentions_only'].includes(unreadCount);
const incUnread = room.t === 'd' || users || incUnreadByUser ? 1 : 0;
} else if (users || (mentionIds && mentionIds.length > 0) || (highlightsIds && highlightsIds.length > 0)) {
let incUnread = 0;
if (users || ['all_messages', 'user_mentions_only', 'user_and_group_mentions_only'].includes(unreadCount)) {
incUnread = 1;
}
Subscriptions.incUserMentionsAndUnreadForRoomIdAndUserIds(room._id, _.compact(_.unique(mentionIds.concat(highlightsIds, users))), 1, incUnread);
} else if (unreadCount === 'all_messages') {
Subscriptions.incUnreadForRoomIdExcludingUserId(room._id, message.u._id);
}
Subscriptions.incUserMentionsAndUnreadForRoomIdAndUserIds(room._id, _.compact(_.unique(mentionIds.concat(highlightsIds, users))), 1, incUnread);
} else if (unreadCount === 'all_messages') {
Subscriptions.incUnreadForRoomIdExcludingUserId(room._id, message.u._id);
}
}

@ -22,10 +22,6 @@
background-color: var(--badge-unread-background);
}
&--dm {
background-color: var(--badge-dm-background);
}
&--user-mentions {
background-color: var(--badge-user-mentions-background);
}

@ -281,7 +281,6 @@
--badge-text-size: 0.75rem;
--badge-background: var(--rc-color-primary-dark);
--badge-unread-background: var(--rc-color-primary-dark);
--badge-dm-background: var(--rc-color-primary-dark);
--badge-user-mentions-background: var(--color-dark-blue);
--badge-group-mentions-background: var(--rc-color-primary-dark);

@ -42,11 +42,12 @@ Template.sidebarItem.helpers({
if (unread) {
badges.push('badge--unread');
if (t === 'd') {
badges.push('badge--dm');
}
}
if (unread && t === 'd') {
badges.push('badge--dm');
} else if (userMentions) {
if (userMentions) {
badges.push('badge--user-mentions');
} else if (groupMentions) {
badges.push('badge--group-mentions');

@ -281,7 +281,6 @@
--badge-text-size: 0.75rem;
--badge-background: var(--rc-color-primary-dark);
--badge-unread-background: var(--rc-color-primary-dark);
--badge-dm-background: var(--rc-color-primary-dark);
--badge-user-mentions-background: var(--color-dark-blue);
--badge-group-mentions-background: var(--rc-color-primary-dark);

Loading…
Cancel
Save