diff --git a/packages/rocketchat-i18n/i18n/en.i18n.json b/packages/rocketchat-i18n/i18n/en.i18n.json
index 93c9d4b602a..99e9acd1efb 100644
--- a/packages/rocketchat-i18n/i18n/en.i18n.json
+++ b/packages/rocketchat-i18n/i18n/en.i18n.json
@@ -868,6 +868,7 @@
"No_results_found": "No results found",
"No_starred_messages": "No starred messages",
"No_such_command": "No such command: `/__command__`",
+ "No_snippet_messages": "No snippet",
"No_user_with_username_%s_was_found": "No user with username \"%s\" was found!",
"Nobody_available": "Nobody available",
"Node_version": "Node version",
diff --git a/packages/rocketchat-lib/server/models/Messages.coffee b/packages/rocketchat-lib/server/models/Messages.coffee
index 3a5cf087a9f..a0b79049b2d 100644
--- a/packages/rocketchat-lib/server/models/Messages.coffee
+++ b/packages/rocketchat-lib/server/models/Messages.coffee
@@ -191,7 +191,7 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base
return @update query, update
- setSnippetedByIdAndUserId: (message, snippetId, snippetedBy, snippeted=true, snippetedAt=0) ->
+ setSnippetedByIdAndUserId: (message, snippetName, snippetedBy, snippeted=true, snippetedAt=0) ->
query =
_id: message._id
@@ -200,10 +200,10 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base
update =
$set:
msg: msg
- snippetId: snippetId
snippeted: snippeted
snippetedAt: snippetedAt || new Date
snippetedBy: snippetedBy
+ snippetName: snippetName
return @update query, update
diff --git a/packages/rocketchat-message-snippet/client/actionButton.js b/packages/rocketchat-message-snippet/client/actionButton.js
index 6399f67cc8c..5d08b46463a 100644
--- a/packages/rocketchat-message-snippet/client/actionButton.js
+++ b/packages/rocketchat-message-snippet/client/actionButton.js
@@ -2,7 +2,7 @@ Meteor.startup(function() {
RocketChat.MessageAction.addButton({
id: 'snippeted-message',
icon: 'icon-code',
- i18nnLabel: 'Snippet',
+ i18nLabel: 'Snippet',
context: [
'snippeted',
'message',
diff --git a/packages/rocketchat-message-snippet/client/lib/collections.js b/packages/rocketchat-message-snippet/client/lib/collections.js
index cbb96f1cc16..0705636fdd9 100644
--- a/packages/rocketchat-message-snippet/client/lib/collections.js
+++ b/packages/rocketchat-message-snippet/client/lib/collections.js
@@ -1,2 +1 @@
-this.SnippetedMessage = new Meteor.Collection('rocketchat_snippeted_message');
this.Messages = new Meteor.Collection('rocketchat_message');
diff --git a/packages/rocketchat-message-snippet/client/messageType.js b/packages/rocketchat-message-snippet/client/messageType.js
index 6828b74ee7d..ff6c0d796c8 100644
--- a/packages/rocketchat-message-snippet/client/messageType.js
+++ b/packages/rocketchat-message-snippet/client/messageType.js
@@ -4,7 +4,7 @@ Meteor.startup(function() {
system: true,
message: 'Snippeted_a_message',
data: function(message) {
- let snippetLink = `${message.filename}`;
+ let snippetLink = `${message.snippetName}`;
return { snippetLink: snippetLink };
}
});
diff --git a/packages/rocketchat-message-snippet/client/page/snippetPage.html b/packages/rocketchat-message-snippet/client/page/snippetPage.html
index c9f41d7e8e2..4dba82f8c3b 100644
--- a/packages/rocketchat-message-snippet/client/page/snippetPage.html
+++ b/packages/rocketchat-message-snippet/client/page/snippetPage.html
@@ -3,7 +3,7 @@
{{> avatar username=snippet.u.username}}
{{snippet.u.username}}
- {{ snippet.filename }}
+ {{ snippet.snippetName }}
diff --git a/packages/rocketchat-message-snippet/client/page/snippetPage.js b/packages/rocketchat-message-snippet/client/page/snippetPage.js
index d4f6f71572c..3fbfdd12915 100644
--- a/packages/rocketchat-message-snippet/client/page/snippetPage.js
+++ b/packages/rocketchat-message-snippet/client/page/snippetPage.js
@@ -1,10 +1,10 @@
-/* global SnippetedMessage, Messages */
+/* global Messages */
Template.snippetPage.helpers({
snippet: function() {
- return SnippetedMessage.findOne({ _id: FlowRouter.getParam('snippetId') });
+ return Messages.findOne({ _id: FlowRouter.getParam('snippetId') });
},
snippetContent: function() {
- let message = Messages.findOne({snippetId: FlowRouter.getParam('snippetId')});
+ let message = Messages.findOne({ _id: FlowRouter.getParam('snippetId') });
if (message === undefined) {
return null;
} else {
@@ -13,24 +13,14 @@ Template.snippetPage.helpers({
return markdownCode.tokens[0].text;
}
},
- own() {
- let snippet = SnippetedMessage.findOne({ _id: FlowRouter.getParam('snippetId') });
- if (snippet !== undefined &&
- snippet.u !== undefined &&
- snippet.u._id === Meteor.userId()) {
- return 'own';
- }
- return null;
- },
date() {
- let snippet = SnippetedMessage.findOne({ _id: FlowRouter.getParam('snippetId') });
+ let snippet = Messages.findOne({ _id: FlowRouter.getParam('snippetId') });
if (snippet !== undefined) {
- console.log(snippet.ts);
return moment(snippet.ts).format(RocketChat.settings.get('Message_DateFormat'));
}
},
time() {
- let snippet = SnippetedMessage.findOne({ _id: FlowRouter.getParam('snippetId') });
+ let snippet = Messages.findOne({ _id: FlowRouter.getParam('snippetId') });
if (snippet !== undefined) {
return moment(snippet.ts).format(RocketChat.settings.get('Message_TimeFormat'));
}
@@ -38,10 +28,10 @@ Template.snippetPage.helpers({
});
Template.snippetPage.onCreated(function() {
+ let snippetId = FlowRouter.getParam('snippetId');
+ console.log(`${snippetId}: ${this.snippet}`);
this.autorun(function() {
- let snippetId = FlowRouter.getParam('snippetId');
- Meteor.subscribe('retrieveSnippetedMessage', snippetId);
- Meteor.subscribe('retrieveSnippetMessage', snippetId);
+ Meteor.subscribe('snippetedMessage', snippetId);
});
});
diff --git a/packages/rocketchat-message-snippet/client/tabBar/views/snippetMessage.js b/packages/rocketchat-message-snippet/client/tabBar/views/snippetMessage.js
index 5a171e482eb..c0106c72fe8 100644
--- a/packages/rocketchat-message-snippet/client/tabBar/views/snippetMessage.js
+++ b/packages/rocketchat-message-snippet/client/tabBar/views/snippetMessage.js
@@ -11,6 +11,6 @@ Template.snippetMessage.helpers({
}
},
body: function() {
- return `${this.filename}`;
+ return `${this.snippetName}`;
}
});
diff --git a/packages/rocketchat-message-snippet/client/tabBar/views/snippetedMessages.js b/packages/rocketchat-message-snippet/client/tabBar/views/snippetedMessages.js
index 52209e8e469..129dd550643 100644
--- a/packages/rocketchat-message-snippet/client/tabBar/views/snippetedMessages.js
+++ b/packages/rocketchat-message-snippet/client/tabBar/views/snippetedMessages.js
@@ -1,10 +1,10 @@
-/* global SnippetedMessage */
+/* global Messages */
Template.snippetedMessages.helpers({
hasMessages() {
- return SnippetedMessage.find({ rid: this.rid }, { sort: { ts: -1 } }).count() > 0;
+ return Messages.find({ snippeted:true, rid: this.rid }, { sort: { ts: -1 } }).count() > 0;
},
messages() {
- return SnippetedMessage.find({ rid: this.rid }, { sort: { ts: -1 } });
+ return Messages.find({ snippeted: true, rid: this.rid }, { sort: { ts: -1 } });
},
message() {
return _.extend(this, { customClass: 'snippeted' });
@@ -21,7 +21,7 @@ Template.snippetedMessages.onCreated(function() {
this.autorun(function() {
let data = Template.currentData();
self.subscribe('snippetedMessages', data.rid, self.limit.get(), function() {
- if (SnippetedMessage.find({rid: data.rid}).count() < self.limit.get()) {
+ if (Messages.find({ snippeted: true, rid: data.rid }).count() < self.limit.get()) {
return self.hasMore.set(false);
}
});
diff --git a/packages/rocketchat-message-snippet/package.js b/packages/rocketchat-message-snippet/package.js
index 22e43947fa9..2b42fb1cb43 100644
--- a/packages/rocketchat-message-snippet/package.js
+++ b/packages/rocketchat-message-snippet/package.js
@@ -30,11 +30,9 @@ Package.onUse(function(api) {
api.addFiles([
'server/startup/settings.js',
'server/startup/message-snippet.js',
- 'server/models/SnippetMessage.js',
'server/methods/snippetMessage.js',
'server/publications/snippetedMessagesByRoom.js',
- 'server/publications/snippetMessage.js',
- 'server/publications/retrieveSnippetedMessage.js'
+ 'server/publications/snippetedMessage.js'
], 'server');
// Client
diff --git a/packages/rocketchat-message-snippet/server/methods/snippetMessage.js b/packages/rocketchat-message-snippet/server/methods/snippetMessage.js
index 13b2091eddb..c954b452e4d 100644
--- a/packages/rocketchat-message-snippet/server/methods/snippetMessage.js
+++ b/packages/rocketchat-message-snippet/server/methods/snippetMessage.js
@@ -22,10 +22,6 @@ Meteor.methods({
RocketChat.models.Messages.cloneAndSaveAsHistoryById(message._id);
}
- // Detect extension
- let fileNameSplits = filename.split('.');
- let extension = fileNameSplits[fileNameSplits.length - 1];
-
let me = RocketChat.models.Users.findOneById(Meteor.userId());
message.snippeted = true;
@@ -43,26 +39,10 @@ Meteor.methods({
rs.pipe(ws);
// Create the SnippetMessage
- RocketChat.models.SnippetMessage.insert({
- rid: message.rid,
- filename: filename,
- extension: extension,
- u: message.u,
- ts: message.ts
- }, function(error, _id) {
- if (error !== undefined && error !== null) {
- console.log(error);
- } else {
- message.snippedId = _id;
- RocketChat.models.Messages.setSnippetedByIdAndUserId(message, message.snippedId, message.snippetedBy,
- message.snippeted);
- RocketChat.models.Messages.createWithTypeRoomIdMessageAndUser(
- 'message_snippeted', message.rid, '', me, {
- 'snippetId': _id,
- 'filename': filename
- });
- }
- });
+ RocketChat.models.Messages.setSnippetedByIdAndUserId(message, filename, message.snippetedBy,
+ message.snippeted, Date.now, filename);
+ RocketChat.models.Messages.createWithTypeRoomIdMessageAndUser(
+ 'message_snippeted', message.rid, '', me, { 'snippetId': message._id, 'snippetName': filename });
}
});
diff --git a/packages/rocketchat-message-snippet/server/models/SnippetMessage.js b/packages/rocketchat-message-snippet/server/models/SnippetMessage.js
deleted file mode 100644
index 83157fd8bc1..00000000000
--- a/packages/rocketchat-message-snippet/server/models/SnippetMessage.js
+++ /dev/null
@@ -1,27 +0,0 @@
-class SnippetMessage extends RocketChat.models._Base {
- constructor() {
- super('snippeted_message');
-
- this.tryEnsureIndex({ 'name': 1 });
- this.tryEnsureIndex({ 'extension': 1});
- }
-
- findOneById(_id, options) {
- return this.findOne(_id, options);
- }
-
- findByRoomId(rid, options) {
- return this.find({rid: rid}, options);
- }
-
- setFileName(_id, name) {
- let update = {
- $set: {
- filename: name
- }
- };
- return this.update({_id}, update);
- }
-}
-
-RocketChat.models.SnippetMessage = new SnippetMessage();
diff --git a/packages/rocketchat-message-snippet/server/publications/snippetMessage.js b/packages/rocketchat-message-snippet/server/publications/snippetMessage.js
deleted file mode 100644
index fe50bcdb2a4..00000000000
--- a/packages/rocketchat-message-snippet/server/publications/snippetMessage.js
+++ /dev/null
@@ -1,37 +0,0 @@
-Meteor.publish('retrieveSnippetMessage', function(snippetId) {
- let messageSnippetedCollection = 'rocketchat_snippeted_message';
-
- if (typeof this.userId === 'undefined' || this.userId === null) {
- return this.ready();
- }
-
- let publication = this;
-
- let user = RocketChat.models.Users.findOneById(this.userId);
-
- if (typeof user === 'undefined' || user === null) {
- return this.ready();
- }
-
- let cursor = RocketChat.models.SnippetMessage.find(
- {
- _id: snippetId
- }
- ).observeChanges({
- added: function(_id, record) {
- publication.added(messageSnippetedCollection, _id, record);
- },
- changed: function(_id, record) {
- publication.changed(messageSnippetedCollection, _id, record);
- },
- removed: function(_id) {
- publication.removed(messageSnippetedCollection, _id);
- }
- });
-
- this.ready();
-
- this.onStop = function() {
- cursor.stop();
- };
-});
diff --git a/packages/rocketchat-message-snippet/server/publications/retrieveSnippetedMessage.js b/packages/rocketchat-message-snippet/server/publications/snippetedMessage.js
similarity index 87%
rename from packages/rocketchat-message-snippet/server/publications/retrieveSnippetedMessage.js
rename to packages/rocketchat-message-snippet/server/publications/snippetedMessage.js
index a7b0308a294..86737e29e72 100644
--- a/packages/rocketchat-message-snippet/server/publications/retrieveSnippetedMessage.js
+++ b/packages/rocketchat-message-snippet/server/publications/snippetedMessage.js
@@ -1,4 +1,4 @@
-Meteor.publish('retrieveSnippetedMessage', function(snippetId) {
+Meteor.publish('snippetedMessage', function(_id) {
if (typeof this.userId === 'undefined' || this.userId === null) {
return this.ready();
}
@@ -12,9 +12,7 @@ Meteor.publish('retrieveSnippetedMessage', function(snippetId) {
}
let cursor = RocketChat.models.Messages.find(
- {
- snippetId: snippetId
- }
+ { '_id': _id }
).observeChanges({
added: function(_id, record) {
publication.added('rocketchat_message', _id, record);
diff --git a/packages/rocketchat-message-snippet/server/publications/snippetedMessagesByRoom.js b/packages/rocketchat-message-snippet/server/publications/snippetedMessagesByRoom.js
index 6f21c809f30..34bafca9fc3 100644
--- a/packages/rocketchat-message-snippet/server/publications/snippetedMessagesByRoom.js
+++ b/packages/rocketchat-message-snippet/server/publications/snippetedMessagesByRoom.js
@@ -11,7 +11,7 @@ Meteor.publish('snippetedMessages', function(rid, limit=50) {
return this.ready();
}
- let cursorHandle = RocketChat.models.SnippetMessage.findByRoomId(
+ let cursorHandle = RocketChat.models.Messages.findSnippetedByRoom(
rid,
{
sort: {ts: -1},
@@ -19,13 +19,13 @@ Meteor.publish('snippetedMessages', function(rid, limit=50) {
}
).observeChanges({
added: function(_id, record) {
- publication.added('rocketchat_snippeted_message', _id, record);
+ publication.added('rocketchat_message', _id, record);
},
changed: function(_id, record) {
- publication.changed('rocketchat_snippeted_message', _id, record);
+ publication.changed('rocketchat_message', _id, record);
},
removed: function(_id) {
- publication.removed('rocketchat_snippeted_message', _id);
+ publication.removed('rocketchat_message', _id);
}
});
this.ready();