Я хочу запретить пользователям в YouTrack изменять или добавлять рабочие элементы в прошлом. Они должны только добавлять/изменять рабочие элементы в текущий день.
В рабочих процессах YouTrack я могу обнаружить измененное событие времени выполнения и запретить пользователям добавлять рабочий элемент. Но я хочу получить событие, когда пользователь изменяет работу в рабочих процессах JavaScript. Вот мой код:
var entities = require('@jetbrains/youtrack-scripting-api/entities');
var workflow = require('@jetbrains/youtrack-scripting-api/workflow');
exports.rule = entities.Issue.onChange({
title: workflow.i18n('Disable editing workitems'),
guard: function(ctx) {
return ctx.issue.fields.isChanged(ctx.ST);
},
action: function(ctx) {
workflow.check(ctx.issue.workItems.added.isEmpty(), workflow.i18n('You can add/modify workitems only in current day.'));
},
requirements: {
ST: {
type: entities.Field.periodType,
name: 'Spent Time'
}
}
});
Условия Datetime опущены...
Проверьте ctx.issue.workItems.isChanged, а также проверьте содержимое набора ctx.issue.editedWorkItems.