在蓝图开发的模板中添加当前用户和当前日期

Adding current user and current date in the template in Blueprint development

我完成了 Atlassian 的简单、中级和高级蓝图教程 https://developer.atlassian.com/server/confluence/tutorials-and-guides/

目前,我有一个soy文件和一个蓝图向导页面的js文件; Java 文件作为上下文提供者,xml 文件作为模板。

我轻松地将当前日期添加到标题中。我还想在发送用户编辑。 (例如;默认 会议记录 蓝图)。但是我找不到如何在模板中设置这些值。

在xml模板中,当前日期应为以下格式:

<time datetime="2021-02-17"/>

因此,我无法为日期时间值添加类似“”的内容。所以,我无法从上下文提供程序 class.

更改它

此外,我尝试通过 Java 脚本和 JQuery 设置此值,但我只能更改有关向导页面的内容。我在操作实际模板页面时失败了。

与页面创建者几乎相同的问题。我应该按以下格式添加用户:

<ri:user ri:userkey="2c9680f7405147ee0140514c26120003"/>

但是,我无法通过Java设置用户密钥,也无法获取页面创建者值。

因此;

  1. 如何将当前日期添加到模板页面?
  2. 如何将用户提及添加到模板页面?
  3. 如何获得页面的创建者?

谢谢大家的关注。

祝你有愉快的一天!

答案也来自我。

在模板的 xml 中,我们为启用了 XHTML 支持的日期和用户添加了两个变量:

<at:var at:name="currentDate" rawxhtml=true />
<at:var at:name="currentUser" rawxhtml=true />

在上下文提供程序 class 中,我们将使用 html 标签设置这些变量:

context.put("currentDate", "<time datetime=\" + sdf.format(new Date()) + "\"/>");
context.put("currentDate", "<ri:user ri:userkey=\" + AuthenticatedUserThreadLocal.get().getKey() + "\"/>");

其中 context 是蓝图的上下文映射,sdf 是具有预定义日期(不是日期时间)的 SimpleDateFormat class 的实例格式。