终止后中间保存和只读

Intermediate save and readonly after termination

我们有需求,用户终止表单输入后,只能看到数据;只有授权用户才能修改数据。
为此,我们使用以下权限并且它运行顺利:

现在提出第二个需求。
用户希望可以在一秒钟内完成表单的输入,这样他们就不必在按下新按钮后完全填写表单,然后才能按下保存按钮。
因为有些表格很大,他们可能急于赶公共汽车,或者可能需要询问其他目前无法联系到的人才能得到答案。

我的想法是添加 save-draft 按钮。
第一个save-draft可以;消息是 "Draft saved successfully!".
但是第二次保存抱怨:

好像权限没有区分savedraft-save,所以也是draft-save 表单数据为 read-only.

我有哪些可能性可以实现这两个目标?

非常感谢。

save-draft process 与常规保存(save-final 过程)非常相似,只是它允许用户保存数据,即使某些字段的值无效。所以,确实,从权限的角度来说,save-finalsave-draft是一样的。

您真正需要的是以下能力:

  1. 将表单的 阶段 与数据一起保存的过程。在您的情况下,阶段可以是 "work in progress" 或 "submitted".
  2. 能依赖那个阶段的权限,所以可以说"users can edit their own data if the stage is work in progress, but can only view it if the stage is submitted"。

您现在可以使用隐藏字段和 xf:setvalue() action. But you can't do #2. For that, you would need the workflow feature to be implemented (see RFE #2256) 来完成#1,我们希望能够在 2018 年完成。所以,您猜对了,好消息是这即将到来,但坏消息是,至少在我写这些行时,它还没有实现。