如何设置 JIRA Workflow Validator 的描述?
How to set the description of a JIRA Workflow Validator?
我正在开发一个简单的 JIRA Server 插件,如果未设置某个自定义字段,它将阻止发生转换。我用 atlas-create-jira-plugin-module
创建了一个新的工作流验证器,并定制了验证函数以满足我的需要。奇怪的是,当我通过工作流编辑器将这个新验证器添加到转换中时,它出现在验证列表中并带有错误的描述。它显示了默认条件,"Only users with Resolve Issues"权限可以执行此转换的描述。
我一直在关注本教程:https://developer.atlassian.com/server/jira/platform/creating-workflow-extensions/
我也遇到了这个类似的教程:https://www.j-tricks.com/tutorials/workflow-validator
在我的 atlassian-plugin.xml 中,我确保定义了一个 "view" velocity 资源:
<workflow-validator key="custom-field-is-set-validator" name="Custom Field Is Set Validator" i18n-name-key="custom-field-is-set-validator.name" class="com.ngc.jira.plugins.workflow.CustomFieldIsSetValidatorFactory">
<description key="custom-field-is-set-validator.description">Validation to require that a custom field be given a value.</description>
<validator-class>com.ngc.jira.plugins.workflow.CustomFieldIsSetValidator</validator-class>
<resource type="velocity" name="view" location="templates/validators/custom-field-is-set-validator.vm"/>
<resource type="velocity" name="input-parameters" location="templates/validators/custom-field-is-set-validator-input.vm"/>
<resource type="velocity" name="edit-parameters" location="templates/validators/custom-field-is-set-validator-input.vm"/>
</workflow-validator>
而custom-field-is-set-validator.vm的内容如下:
Only if the custom field <strong>$field</strong> has be set.
作为完整性检查,我创建了一个工作流条件并将速度 (vm) 资源应用为它的视图模板。它在此上下文中正确显示!
但是,当我尝试为我的工作流验证器使用相同的速度资源时,管理页面仍然将验证器显示为 "Only users with Resolve Issues permission can execute this transition" 而不是使用我的描述。
我错过了什么?谢谢!
Screenshot showing the built-in condition
Screenshot showing my validator that is wrongly appearing as the same condition
我在 2011 年写了一本 O'Reilly 的实用 Jira 插件书,其中有一个验证器示例。这本书的来源是 https://bitbucket.org/mdoar/practical-jira-plugins/src/default/(这本书在那里)。
但坦率地说,最近我会使用 ScriptRunner、JMWE 或其他可让您编写自定义工作流程内容的插件。但是不要让它阻止你学习它!祝你好运
事实证明,我 copied/pasted 我的工作流程 condition 中有一段代码需要针对工作流程 validator。当我应该转换为 ValidatorDescriptor 时,我试图转换为 ConditionDescriptor:
差:
if (!(descriptor instanceof ConditionDescriptor)) {
throw new IllegalArgumentException("Descriptor must be a ConditionDescriptor.");
}
ConditionDescriptor conditionDescriptor = (ConditionDescriptor) descriptor;
好:
if (!(descriptor instanceof ValidatorDescriptor)) {
throw new IllegalArgumentException("Descriptor must be a ValidatorDescriptor.");
}
ValidatorDescriptor validatorDescriptor = (ValidatorDescriptor) descriptor;
非常巧妙,它没有完全破坏我的插件,而是最终显示了完全不同的描述。 ;)
我正在开发一个简单的 JIRA Server 插件,如果未设置某个自定义字段,它将阻止发生转换。我用 atlas-create-jira-plugin-module
创建了一个新的工作流验证器,并定制了验证函数以满足我的需要。奇怪的是,当我通过工作流编辑器将这个新验证器添加到转换中时,它出现在验证列表中并带有错误的描述。它显示了默认条件,"Only users with Resolve Issues"权限可以执行此转换的描述。
我一直在关注本教程:https://developer.atlassian.com/server/jira/platform/creating-workflow-extensions/ 我也遇到了这个类似的教程:https://www.j-tricks.com/tutorials/workflow-validator
在我的 atlassian-plugin.xml 中,我确保定义了一个 "view" velocity 资源:
<workflow-validator key="custom-field-is-set-validator" name="Custom Field Is Set Validator" i18n-name-key="custom-field-is-set-validator.name" class="com.ngc.jira.plugins.workflow.CustomFieldIsSetValidatorFactory">
<description key="custom-field-is-set-validator.description">Validation to require that a custom field be given a value.</description>
<validator-class>com.ngc.jira.plugins.workflow.CustomFieldIsSetValidator</validator-class>
<resource type="velocity" name="view" location="templates/validators/custom-field-is-set-validator.vm"/>
<resource type="velocity" name="input-parameters" location="templates/validators/custom-field-is-set-validator-input.vm"/>
<resource type="velocity" name="edit-parameters" location="templates/validators/custom-field-is-set-validator-input.vm"/>
</workflow-validator>
而custom-field-is-set-validator.vm的内容如下:
Only if the custom field <strong>$field</strong> has be set.
作为完整性检查,我创建了一个工作流条件并将速度 (vm) 资源应用为它的视图模板。它在此上下文中正确显示!
但是,当我尝试为我的工作流验证器使用相同的速度资源时,管理页面仍然将验证器显示为 "Only users with Resolve Issues permission can execute this transition" 而不是使用我的描述。
我错过了什么?谢谢!
Screenshot showing the built-in condition
Screenshot showing my validator that is wrongly appearing as the same condition
我在 2011 年写了一本 O'Reilly 的实用 Jira 插件书,其中有一个验证器示例。这本书的来源是 https://bitbucket.org/mdoar/practical-jira-plugins/src/default/(这本书在那里)。
但坦率地说,最近我会使用 ScriptRunner、JMWE 或其他可让您编写自定义工作流程内容的插件。但是不要让它阻止你学习它!祝你好运
事实证明,我 copied/pasted 我的工作流程 condition 中有一段代码需要针对工作流程 validator。当我应该转换为 ValidatorDescriptor 时,我试图转换为 ConditionDescriptor:
差:
if (!(descriptor instanceof ConditionDescriptor)) {
throw new IllegalArgumentException("Descriptor must be a ConditionDescriptor.");
}
ConditionDescriptor conditionDescriptor = (ConditionDescriptor) descriptor;
好:
if (!(descriptor instanceof ValidatorDescriptor)) {
throw new IllegalArgumentException("Descriptor must be a ValidatorDescriptor.");
}
ValidatorDescriptor validatorDescriptor = (ValidatorDescriptor) descriptor;
非常巧妙,它没有完全破坏我的插件,而是最终显示了完全不同的描述。 ;)