如何使用 JIRA 问题更新事件侦听器功能更新 Forge UI 问题面板?

问题描述

我们在 JIRA 问题视图屏幕上创建了一个问题面板。我们需要呈现的是问题键列表(通过 API 调用获取)。

这是我们定义 Forge 库 manifest.yml 文件的方式:

modules:
jira:issuePanel:
- key: dylan-hello-world-app-hello-world-panel
function: main
title: Forge App by Dylan
icon: https://developer.atlassian.com/platform/forge/images/icons/issue-panel-icon.svg
trigger:
- key: issue-updated-trigger
events:
- avi:jira:updated:issue
function: issue-trigger-func
function:
- key: main
handler: index.run
- key: issue-trigger-func
handler: index.issueUpdatedTrigger
app:
id: our cloud app id
name: dylan-hello-world-app
permissions:
scopes:
- read:jira-work

我的 run() 函数执行面板的渲染部分(初始渲染)。

issueUpdateTrigger(event,context) 函数将在问题更新事件发生时触发。认情况下,该函数自动从 JIRA 接收事件和上下文参数。

在 issueUpdateTrigger 中,我们希望通过传入上下文来再次调用 API 以检索新的问题键列表并更新我们现有面板的上下文。我可以知道我们如何执行相关操作吗?

(我认为必须在索引文件中同时公开 run() 和 issueUpdatedTrigger() 函数,因为这是 Forge 读取函数的方式,因此这两个函数可能无法共享共同的祖先函数.)

感谢您的帮助,如果需要更多信息,请告诉我:D

解决方法

根据您的 jira:issuePanel 模块具有 function 键和值,我的回答假定您使用的是 Forge 的 UI Kit 而不是自定义 UI。

使用 UI Kit,没有办法在没有用户点击的情况下强制刷新 UI 组件。解决方法是添加一个“刷新”按钮,单击该按钮时会刷新组件。

您可以使用自定义 UI 来处理这种情况,但这是一个更复杂的解决方案,因为您将负责构建 UI(而不是使用 Forge 提供的组件)。

您还可以在 Atlassian Developer Community 类别中找到专门针对 Forge 的其他反馈和建议:here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...