Merge remote-tracking branch 'origin/develop' into release-candidate

pull/22485/head
Diego Sampaio 5 years ago
commit 3ea95fdba3
No known key found for this signature in database
GPG Key ID: E060152B30502562
  1. 2
      .github/pr-title-checker-config.json
  2. 4
      app/apps/server/communication/websockets.js
  3. 4
      app/channel-settings/server/methods/saveRoomSettings.js
  4. 8
      app/lib/lib/MessageTypes.js
  5. 1
      app/message-pin/client/index.js
  6. 11
      app/message-pin/client/messageType.js
  7. 19
      app/models/server/models/Messages.js
  8. 6
      app/models/server/models/Rooms.js
  9. 10
      client/sidebar/RoomList/normalizeSidebarMessage.js
  10. 49
      package-lock.json
  11. 2
      package.json
  12. 1
      packages/rocketchat-i18n/i18n/en.i18n.json
  13. 1
      packages/rocketchat-i18n/i18n/pt-BR.i18n.json
  14. 1
      packages/rocketchat-i18n/i18n/pt.i18n.json
  15. 21
      server/services/team/service.ts
  16. 10
      tests/end-to-end/api/02-channels.js
  17. 10
      tests/end-to-end/api/03-groups.js

@ -4,7 +4,7 @@
"color": "B60205"
},
"CHECKS": {
"regexp": "^(?:(?:\\[(NEW|BREAK|IMPROVE|FIX)\\](\\[(ENTERPRISE|APPS)\\])?|(?:Regression|Chore|Bump):) .+|Release [0-9]+\\.[0-9]+\\.[0-9]+)",
"regexp": "^(?:(?:\\[(NEW|BREAK|IMPROVE|FIX)\\](\\[(ENTERPRISE|APPS)\\])?|(?:Regression|Chore|Bump|Revert):) .+|Release [0-9]+\\.[0-9]+\\.[0-9]+)",
"ignoreLabels" : ["[ignore-title]"]
}
}

@ -68,7 +68,7 @@ export class AppServerListener {
const storageItem = await this.orch.getStorage().retrieveOne(appId);
await this.orch.getManager().update(storageItem.zip);
await this.orch.getManager().update(Buffer.from(storageItem.zip, 'base64'));
this.clientStreamer.emitWithoutBroadcast(AppEvents.APP_UPDATED, appId);
}
@ -79,7 +79,7 @@ export class AppServerListener {
return;
}
await this.orch.getManager().remove(appId);
await this.orch.getManager().removeLocal(appId);
this.clientStreamer.emitWithoutBroadcast(AppEvents.APP_REMOVED, appId);
}

@ -332,10 +332,6 @@ Meteor.methods({
callbacks.run('afterSaveRoomSettings', room);
});
if (settings.hasOwnProperty('systemMessages')) {
Rooms.resetLastMessageById(rid);
}
return {
result: true,
rid: room._id,

@ -135,11 +135,6 @@ Meteor.startup(function() {
};
},
});
MessageTypes.registerType({
id: 'message_pinned',
system: true,
message: 'Pinned_a_message',
});
MessageTypes.registerType({
id: 'subscription-role-added',
system: true,
@ -222,9 +217,6 @@ export const MessageTypesValues = [
}, {
key: 'mute_unmute',
i18nLabel: 'Message_HideType_mute_unmute',
}, {
key: 'message_pinned',
i18nLabel: 'Message_HideType_message_pinned',
}, {
key: 'r',
i18nLabel: 'Message_HideType_r',

@ -1,4 +1,5 @@
import './actionButton';
import './messageType';
import './pinMessage';
import './tabBar';
import './views/pinnedMessages.html';

@ -0,0 +1,11 @@
import { Meteor } from 'meteor/meteor';
import { MessageTypes } from '../../ui-utils';
Meteor.startup(function() {
MessageTypes.registerType({
id: 'message_pinned',
system: true,
message: 'Pinned_a_message',
});
});

@ -3,7 +3,6 @@ import _ from 'underscore';
import { Base } from './_Base';
import Rooms from './Rooms';
import Subscriptions from './Subscriptions';
import { settings } from '../../../settings/server/functions/settings';
export class Messages extends Base {
@ -477,13 +476,11 @@ export class Messages extends Base {
return this.find(query, options);
}
getLastVisibleMessageSentByRoomId(rid, messageId) {
const { sysMes } = Rooms.getHiddenSystemMessagesTypesById(rid);
const hiddenSysMes = sysMes || settings.get('Hide_System_Messages');
getLastVisibleMessageSentWithNoTypeByRoomId(rid, messageId) {
const query = {
rid,
_hidden: { $ne: true },
t: hiddenSysMes ? { $nin: hiddenSysMes } : undefined,
t: { $exists: false },
$or: [
{ tmid: { $exists: false } },
{ tshow: true },
@ -741,17 +738,7 @@ export class Messages extends Base {
_.extend(record, extraData);
record._id = this.insertOrUpsert(record);
const { sysMes } = Rooms.getHiddenSystemMessagesTypesById(roomId);
const hiddenSysMes = sysMes || settings.get('Hide_System_Messages');
if (hiddenSysMes.length && hiddenSysMes.includes(type)) {
Rooms.incMsgCountById(roomId, 1);
} else {
const byUser = extraData && extraData.u ? extraData.u._id : user._id;
Rooms.incMsgCountAndSetLastMessageById(roomId, 1, record.ts, settings.get('Store_Last_Message') && record);
Subscriptions.setAlertForRoomIdExcludingUserId(roomId, byUser);
}
Rooms.incMsgCountById(roomId, 1);
return record;
}

@ -253,10 +253,6 @@ export class Rooms extends Base {
return this.find({ t: 'd', uids: { $size: 2, $in: [_id] } }, options);
}
getHiddenSystemMessagesTypesById(_id, options) {
return this.findOne({ _id }, { ...options, fields: { sysMes: 1 } });
}
setAllowReactingWhenReadOnlyById = function(_id, allowReacting) {
const query = {
_id,
@ -971,7 +967,7 @@ export class Rooms extends Base {
resetLastMessageById(_id, messageId = undefined) {
const query = { _id };
const lastMessage = Messages.getLastVisibleMessageSentByRoomId(_id, messageId);
const lastMessage = Messages.getLastVisibleMessageSentWithNoTypeByRoomId(_id, messageId);
const update = lastMessage ? {
$set: {

@ -1,18 +1,8 @@
import { escapeHTML } from '@rocket.chat/string-helpers';
import { Meteor } from 'meteor/meteor';
import { TAPi18n } from 'meteor/rocketchat:tap-i18n';
import { filterMarkdown } from '../../../app/markdown/lib/markdown';
import { MessageTypes } from '../../../app/ui-utils/lib/MessageTypes';
export const normalizeSidebarMessage = (message, t) => {
const messageType = MessageTypes.getType(message);
if (message.t && messageType) {
const data = (typeof messageType.data === 'function' && messageType.data(message)) || {};
const language = Meteor._localStorage.getItem('userLanguage');
return TAPi18n.__(messageType.message, data, language);
}
if (message.msg) {
return escapeHTML(filterMarkdown(message.msg));
}

49
package-lock.json generated

@ -6241,9 +6241,9 @@
}
},
"@rocket.chat/apps-engine": {
"version": "1.27.0-alpha.5192",
"resolved": "https://registry.npmjs.org/@rocket.chat/apps-engine/-/apps-engine-1.27.0-alpha.5192.tgz",
"integrity": "sha512-mN419xEns2P8UVV32nipfHyOll/EWwzUT0nOuMDn3eFq3h4TmYZms9rQJ/6ti62A86H9nJBwVwT5uoDnioJG7g==",
"version": "1.27.0-alpha.5237",
"resolved": "https://registry.npmjs.org/@rocket.chat/apps-engine/-/apps-engine-1.27.0-alpha.5237.tgz",
"integrity": "sha512-r1LCZ2ikR3bTK49hrB6DHFf/FVlLo32K2UmK7okdjgHvUQtjZUsweFSo0zfvR2B5AsStQ7SePPT7FZtCTGZ8RQ==",
"requires": {
"adm-zip": "^0.4.9",
"cryptiles": "^4.1.3",
@ -6251,13 +6251,6 @@
"semver": "^5.5.0",
"stack-trace": "0.0.10",
"uuid": "^3.2.1"
},
"dependencies": {
"adm-zip": {
"version": "0.4.16",
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz",
"integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg=="
}
}
},
"@rocket.chat/css-in-js": {
@ -23917,7 +23910,7 @@
},
"chownr": {
"version": "1.1.1",
"resolved": false,
"resolved": "",
"integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
"dev": true,
"optional": true
@ -23952,7 +23945,7 @@
},
"debug": {
"version": "4.1.1",
"resolved": false,
"resolved": "",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"dev": true,
"optional": true,
@ -23983,7 +23976,7 @@
},
"fs-minipass": {
"version": "1.2.5",
"resolved": false,
"resolved": "",
"integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
"dev": true,
"optional": true,
@ -24017,7 +24010,7 @@
},
"glob": {
"version": "7.1.3",
"resolved": false,
"resolved": "",
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"dev": true,
"optional": true,
@ -24049,7 +24042,7 @@
},
"ignore-walk": {
"version": "3.0.1",
"resolved": false,
"resolved": "",
"integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
"dev": true,
"optional": true,
@ -24070,7 +24063,7 @@
},
"inherits": {
"version": "2.0.3",
"resolved": false,
"resolved": "",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true,
"optional": true
@ -24118,7 +24111,7 @@
},
"minipass": {
"version": "2.3.5",
"resolved": false,
"resolved": "",
"integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
"dev": true,
"optional": true,
@ -24129,7 +24122,7 @@
},
"minizlib": {
"version": "1.2.1",
"resolved": false,
"resolved": "",
"integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
"dev": true,
"optional": true,
@ -24149,7 +24142,7 @@
},
"ms": {
"version": "2.1.1",
"resolved": false,
"resolved": "",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
"dev": true,
"optional": true
@ -24163,7 +24156,7 @@
},
"needle": {
"version": "2.3.0",
"resolved": false,
"resolved": "",
"integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==",
"dev": true,
"optional": true,
@ -24175,7 +24168,7 @@
},
"node-pre-gyp": {
"version": "0.12.0",
"resolved": false,
"resolved": "",
"integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
"dev": true,
"optional": true,
@ -24205,14 +24198,14 @@
},
"npm-bundled": {
"version": "1.0.6",
"resolved": false,
"resolved": "",
"integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
"dev": true,
"optional": true
},
"npm-packlist": {
"version": "1.4.1",
"resolved": false,
"resolved": "",
"integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
"dev": true,
"optional": true,
@ -24292,7 +24285,7 @@
},
"process-nextick-args": {
"version": "2.0.0",
"resolved": false,
"resolved": "",
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
"dev": true,
"optional": true
@ -24337,7 +24330,7 @@
},
"rimraf": {
"version": "2.6.3",
"resolved": false,
"resolved": "",
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"dev": true,
"optional": true,
@ -24368,7 +24361,7 @@
},
"semver": {
"version": "5.7.0",
"resolved": false,
"resolved": "",
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"dev": true,
"optional": true
@ -24428,7 +24421,7 @@
},
"tar": {
"version": "4.4.8",
"resolved": false,
"resolved": "",
"integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
"dev": true,
"optional": true,
@ -24468,7 +24461,7 @@
},
"yallist": {
"version": "3.0.3",
"resolved": false,
"resolved": "",
"integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
"dev": true,
"optional": true

@ -152,7 +152,7 @@
"@nivo/heatmap": "^0.61.0",
"@nivo/line": "^0.61.1",
"@nivo/pie": "^0.61.1",
"@rocket.chat/apps-engine": "1.27.0-alpha.5192",
"@rocket.chat/apps-engine": "1.27.0-alpha.5237",
"@rocket.chat/css-in-js": "^0.6.3-dev.261",
"@rocket.chat/emitter": "^0.26.0",
"@rocket.chat/fuselage": "^0.6.3-dev.266",

@ -2784,7 +2784,6 @@
"Message_has_been_unpinned": "Message has been unpinned",
"Message_has_been_unstarred": "Message has been unstarred",
"Message_HideType_au": "Hide \"User Added\" messages",
"Message_HideType_message_pinned": "Hide \"Pinned a message\" messages",
"Message_HideType_mute_unmute": "Hide \"User Muted / Unmuted\" messages",
"Message_HideType_r": "Hide \"Room Name Changed\" messages",
"Message_HideType_rm": "Hide \"Message Removed\" messages",

@ -2316,7 +2316,6 @@
"Message_GroupingPeriod": "Período de Agrupamento (em segundos)",
"Message_GroupingPeriodDescription": "As mensagens serão agrupadas com as anteriores se pertencerem ao mesmo usuário e o tempo decorrido for menor do que o tempo em segundos informado.",
"Message_HideType_au": "Ocultar mensagens \"User Added\"",
"Message_HideType_message_pinned": "Ocultar mensagens \"Fixou uma mensagem\"",
"Message_HideType_mute_unmute": "Ocultar mensagens \"Usuário silenciado / não modificado\"",
"Message_HideType_ru": "Ocultar mensagens \"Usuário removido\"",
"Message_HideType_uj": "Ocultar mensagens de \"Aderir ao usuário\"",

@ -2051,7 +2051,6 @@
"Message_GroupingPeriod": "Período de Agrupamento (em segundos)",
"Message_GroupingPeriodDescription": "As mensagens serão agrupadas com as anteriores se pertencerem ao mesmo utilizador e o tempo decorrido for menor do que o tempo em segundos informado.",
"Message_HideType_au": "Ocultar mensagens \"User Added\"",
"Message_HideType_message_pinned": "Ocultar mensagens \"Fixou uma mensagem\"",
"Message_HideType_mute_unmute": "Ocultar mensagens \"utilizador silenciado / não modificado\"",
"Message_HideType_ru": "Ocultar mensagens \"utilizador removido\"",
"Message_HideType_uj": "Ocultar mensagens de \"Aderir ao utilizador\"",

@ -559,16 +559,19 @@ export class TeamService extends ServiceClass implements ITeamService {
throw new Error('invalid-user');
}
const membersList: Array<InsertionModel<ITeamMember>> = members?.map((member) => ({
teamId,
userId: member.userId,
roles: member.roles || [],
createdAt: new Date(),
createdBy,
})) || [];
const team = await this.TeamModel.findOneById(teamId, { projection: { roomId: 1 } });
if (!team) {
throw new Error('team-does-not-exist');
}
for await (const member of members) {
const user = await this.Users.findOneById(member.userId, { projection: { username: 1 } });
await addUserToRoom(team.roomId, user, createdBy, false);
await this.TeamMembersModel.insertMany(membersList);
await this.addMembersToDefaultRooms(createdBy, teamId, membersList);
if (member.roles) {
await this.addRolesToMember(teamId, member.userId, member.roles);
}
}
}
async updateMember(teamId: string, member: ITeamMemberParams): Promise<void> {

@ -68,16 +68,6 @@ describe('[Channels]', function() {
})
.end(done);
});
it('should hide message pins (system messages)', (done) => {
request.post(api('rooms.saveRoomSettings'))
.set(credentials)
.send({
rid: testChannel._id,
systemMessages: ['message_pinned'],
})
.expect(200)
.end(done);
});
it('should return channel basic structure', (done) => {
request.get(api('channels.info'))
.set(credentials)

@ -60,16 +60,6 @@ describe('[Groups]', function() {
})
.end(done);
});
it('should hide message pins (system messages)', (done) => {
request.post(api('rooms.saveRoomSettings'))
.set(credentials)
.send({
rid: testGroup._id,
systemMessages: ['message_pinned'],
})
.expect(200)
.end(done);
});
it('should return group basic structure', (done) => {
request.get(api('groups.info'))
.set(credentials)

Loading…
Cancel
Save