mirror of
https://github.com/YunoHost-Apps/rocketchat_ynh.git
synced 2024-09-03 20:16:25 +02:00
125 lines
9.7 KiB
JavaScript
125 lines
9.7 KiB
JavaScript
(function () {
|
|
|
|
/* Imports */
|
|
var Meteor = Package.meteor.Meteor;
|
|
var ECMAScript = Package.ecmascript.ECMAScript;
|
|
var RocketChat = Package['rocketchat:lib'].RocketChat;
|
|
var babelHelpers = Package['babel-runtime'].babelHelpers;
|
|
var Symbol = Package['ecmascript-runtime'].Symbol;
|
|
var Map = Package['ecmascript-runtime'].Map;
|
|
var Set = Package['ecmascript-runtime'].Set;
|
|
var Promise = Package.promise.Promise;
|
|
var TAPi18next = Package['tap:i18n'].TAPi18next;
|
|
var TAPi18n = Package['tap:i18n'].TAPi18n;
|
|
|
|
(function(){
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// packages/rocketchat_reactions/server/models/Messages.js //
|
|
// //
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
RocketChat.models.Messages.setReactions = function (messageId, reactions) { // 1
|
|
return this.update({ _id: messageId }, { $set: { reactions: reactions } }); // 2
|
|
}; //
|
|
//
|
|
RocketChat.models.Messages.unsetReactions = function (messageId) { // 5
|
|
return this.update({ _id: messageId }, { $unset: { reactions: 1 } }); // 6
|
|
}; //
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
}).call(this);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(function(){
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// packages/rocketchat_reactions/setReaction.js //
|
|
// //
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
/* globals msgStream */ //
|
|
Meteor.methods({ // 2
|
|
setReaction: function (reaction, messageId) { // 3
|
|
if (!Meteor.userId()) { // 4
|
|
throw new Meteor.Error(203, 'User_logged_out'); // 5
|
|
} //
|
|
//
|
|
var message = RocketChat.models.Messages.findOneById(messageId); // 8
|
|
//
|
|
if (!Meteor.call('canAccessRoom', message.rid, Meteor.userId())) { // 10
|
|
throw new Meteor.Error(203, '[methods] Not authorized'); // 11
|
|
} //
|
|
//
|
|
var user = Meteor.user(); // 14
|
|
//
|
|
if (message.reactions && message.reactions[reaction] && message.reactions[reaction].usernames.indexOf(user.username) !== -1) {
|
|
message.reactions[reaction].usernames.splice(message.reactions[reaction].usernames.indexOf(user.username), 1);
|
|
//
|
|
if (message.reactions[reaction].usernames.length === 0) { // 19
|
|
delete message.reactions[reaction]; // 20
|
|
} //
|
|
//
|
|
if (_.isEmpty(message.reactions)) { // 23
|
|
delete message.reactions; // 24
|
|
RocketChat.models.Messages.unsetReactions(messageId); // 25
|
|
} else { //
|
|
RocketChat.models.Messages.setReactions(messageId, message.reactions); // 27
|
|
} //
|
|
} else { //
|
|
if (!message.reactions) { // 30
|
|
message.reactions = {}; // 31
|
|
} //
|
|
if (!message.reactions[reaction]) { // 33
|
|
message.reactions[reaction] = { // 34
|
|
usernames: [] // 35
|
|
}; //
|
|
} //
|
|
message.reactions[reaction].usernames.push(user.username); // 38
|
|
//
|
|
RocketChat.models.Messages.setReactions(messageId, message.reactions); // 40
|
|
} //
|
|
//
|
|
msgStream.emit(message.rid, message); // 43
|
|
//
|
|
return; // 45
|
|
} //
|
|
}); //
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
}).call(this);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(function(){
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// packages/rocketchat_reactions/loadStylesheets.js //
|
|
// //
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
RocketChat.theme.addPackageAsset(function () { // 1
|
|
return Assets.getText('client/stylesheets/reaction.less'); // 2
|
|
}); //
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
}).call(this);
|
|
|
|
|
|
/* Exports */
|
|
if (typeof Package === 'undefined') Package = {};
|
|
Package['rocketchat:reactions'] = {};
|
|
|
|
})();
|
|
|
|
//# sourceMappingURL=rocketchat_reactions.js.map
|