js/work-items-control/prohibit-adding-work-items-far-in-past.js (18 lines of code) (raw):
var entities = require('@jetbrains/youtrack-scripting-api/entities');
var workflow = require('@jetbrains/youtrack-scripting-api/workflow');
var WEEK_IN_MS = 7 * 24 * 60 * 60 * 1000;
exports.rule = entities.Issue.onChange({
title: 'Prohibit adding work items far in past',
guard: function(ctx) {
return ctx.issue.workItems.added.isNotEmpty();
},
action: function(ctx) {
ctx.issue.workItems.added.forEach(function(item) {
var itemDate = new Date(item.date).setUTCHours(0, 0, 0, 0);
var today = new Date().setUTCHours(0, 0, 0, 0);
workflow.check(itemDate >= today - WEEK_IN_MS,
'Adding work items for earlier than a week ago is not allowed!');
});
},
requirements: {}
});