js/newsletters/dump-emails-list.js (28 lines of code) (raw):
var entities = require('@jetbrains/youtrack-scripting-api/entities');
var filter = require('./filter');
exports.rule = entities.Issue.action({
title: 'Dump all emails to a private comment',
command: 'newsletter-dump-emails',
guard: function(ctx) {
return ctx.issue.isReported &&
ctx.issue.reporter.login === ctx.currentUser.login;
},
action: function(ctx) {
var issue = ctx.issue;
var emails = filter.getUniqueEmails(issue.fields.Recipients, issue.reporter.email);
var text = 'Newsletter will be sent to ' + emails.length + ' recipient(s):\n\n' +
'```\n';
emails.forEach(function(email) {
text += email + '\n';
});
text += '```\n';
var newComment = issue.addComment(text);
newComment.permittedUsers.add(issue.reporter);
},
requirements: {
Recipients: {
type: entities.UserGroup.fieldType,
multi: true
}
}
});