diff --git a/back/methods/chat/notifyIssues.js b/back/methods/chat/notifyIssues.js index 902ee59cd..3c4706d07 100644 --- a/back/methods/chat/notifyIssues.js +++ b/back/methods/chat/notifyIssues.js @@ -32,7 +32,7 @@ module.exports = Self => { let message = $t(`There's a new urgent ticket:`); const ostUri = 'https://cau.verdnatura.es/scp/tickets.php?id='; tickets.forEach(ticket => { - message += `\r\n[ID: *${ticket.number}* - ${ticket.subject} (@${ticket.username})](${ostUri + ticket.id})`; + message += `\r\n[ID: *${ticket.number}* - ${ticket.subject} @${ticket.username}](${ostUri + ticket.id})`; }); const department = await models.Department.findOne({ @@ -42,7 +42,5 @@ module.exports = Self => { if (channelName) return Self.send(ctx, `#${channelName}`, `@all ➔ ${message}`); - - return; }; }; diff --git a/back/models/chat.js b/back/models/chat.js index 95a1e2c29..f45d15180 100644 --- a/back/models/chat.js +++ b/back/models/chat.js @@ -4,4 +4,21 @@ module.exports = Self => { require('../methods/chat/sendCheckingPresence')(Self); require('../methods/chat/notifyIssues')(Self); require('../methods/chat/sendQueued')(Self); + + Self.observe('before save', async function(ctx) { + if (!ctx.isNewInstance) return; + + let {message} = ctx.instance; + if (!message) return; + + const parts = message.match(/(?<=\[).*(?=])/g); + const replacedParts = parts.map(part => { + return part.replace(/[*()]/g, ''); + }); + + for (const [index, part] of parts.entries()) + message = message.replace(part, replacedParts[index]); + + ctx.instance.message = message; + }); };