31 lines
1.5 KiB
JavaScript
31 lines
1.5 KiB
JavaScript
|
|
var id = data.ticket_id || '?';
|
||
|
|
var title = data.title || 'Untitled';
|
||
|
|
var priority = parseInt(data.priority) || 4;
|
||
|
|
var category = data.category || 'General';
|
||
|
|
var type = data.type || 'Issue';
|
||
|
|
var source = data.source || '';
|
||
|
|
var url = data.url || '';
|
||
|
|
var trigger = data.trigger || 'manual';
|
||
|
|
var notifyUsers = data.notify_users || [];
|
||
|
|
var priorityEmojis = ['', '🔴', '🟠', '🔵', '🟢', '⚫'];
|
||
|
|
var priorityLabels = ['', 'P1 Critical', 'P2 High', 'P3 Medium', 'P4 Low', 'P5 Info'];
|
||
|
|
var emoji = (priority >= 1 && priority <= 5) ? priorityEmojis[priority] : '⚫';
|
||
|
|
var pLabel = (priority >= 1 && priority <= 5) ? priorityLabels[priority] : 'P' + priority;
|
||
|
|
var tLabel = trigger === 'automated' ? 'Automated' : 'Manual';
|
||
|
|
var meta = pLabel + ' \u00b7 ' + category + ' \u00b7 ' + type + (source ? ' \u00b7 ' + source : '') + ' [' + tLabel + ']';
|
||
|
|
var mentionPlain = '';
|
||
|
|
var mentionHtml = '';
|
||
|
|
if (notifyUsers.length > 0) {
|
||
|
|
var pParts = [], hParts = [];
|
||
|
|
for (var i = 0; i < notifyUsers.length; i++) {
|
||
|
|
var uid = notifyUsers[i];
|
||
|
|
var disp = uid.replace(/^@/, '').split(':')[0];
|
||
|
|
pParts.push(uid);
|
||
|
|
hParts.push('<a href="https://matrix.to/#/' + uid + '">' + disp + '</a>');
|
||
|
|
}
|
||
|
|
mentionPlain = '\n' + pParts.join(' ');
|
||
|
|
mentionHtml = '<br>' + hParts.join(' ');
|
||
|
|
}
|
||
|
|
var plain = emoji + ' New Ticket #' + id + ': ' + title + '\n' + meta + (url ? '\n' + url : '') + mentionPlain;
|
||
|
|
var html = '<b>' + emoji + ' <a href="' + url + '">#' + id + '</a>: ' + title + '</b><br>' + meta + mentionHtml;
|
||
|
|
result = { version: 'v2', plain: plain, html: html, msgtype: 'm.text' };
|