我想为我们的XPages应用程序维护一个主模板,尽管它具有2种不同的内存模型和属性。开发模板的模型(主模型)应该在磁盘上,没有JS优化,没有dojo压缩。派生模板中的模型(将在客户端应用程序中使用)将配置为在内存中,优化的JS和压缩的dojo。
当在每个模板中分别设置配置参数,然后刷新派生模板的设计时,两个模板最终将完全相同(这似乎合乎逻辑)。我的意思是:不可能禁止刷新XSP设置,就像可以在其他元素上进行设置一样。
但是,即使有这种可能性,也无法正常工作,因为所有内容都应重新编译(“干净”),否则将无法正确生成压缩的JS和CSS。我发现无法自动在派生模板上开始编译。
还是有办法?
谢谢!
答案 0 :(得分:0)
源代码管理和分支应该是正确的处理方式:https://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.0/com.ibm.designer.domino.ui.doc/wpd_srcecontrol_top.html
老式的方法是“分支”您的模板。 XSP开发的主模板,以及从第一个继承的第二个模板。 XSP.properties设计元素的第二个模板set的“禁止设计刷新或...”属性。然后更改其内容以满足您的需求。
很久以前,有一组开发人员在处理多个数据库,其中一些被标记为模板以进一步部署到生产中。一个开发人员想重用另一个数据库中的某些元素-模板。复制,并将其粘贴到另一个数据库中。设计器提示:“您要从模板继承设计吗??”。嗯不所以设计人员没有用模板名称标记设计元素,没关系。此外,设计师还设置了“禁止设计刷新...”标志。直到发布日,没人注意到!新应用程序的行为很奇怪,有些部分已更新,有些则没有。很容易发现设置了“禁止...”标志并进行了修复。但是怪异仍在继续。你猜怎么着?在设计者的GUI中没有此复选框的元素上设置了此标志(在本例中为Java源)。
创建显示设计元素http://www-10.lotus.com/ldd/ddwiki.nsf/dx/view-of-design-elements.htm的特殊视图。
创建另一列,显示禁止刷新哪些元素。设置“将值显示为图标”。
"Prohibit design refresh or replace to modify";
@If( @Contains( $Flags; "P" ); 80; 0 ) : @If( @Contains( $Flags; "r" ); 204; 0 )
创建一个用于处理选定文档的视图操作(ss.CurrentDatabase.UnprocessedDocuments
用于选中的文档,uiv.CaretNoteID
和GetDocumentByID
仅用于重点文档),并调用此代码重置标记。
Sub Prohibit(note As NotesDocument)
On Error Goto errHandler
Dim flags As String
Dim flagsNew As String
flags = note.GetItemValue( "$Flags" )(0)
flagsNew = Replace( flags, "P", "" )
If flags <> flagsNew Then
note.ReplaceItemValue "$Flags", flagsNew
note.Save True, False
End If
Exit Sub
errHandler:
Print "Error on " & note.UniversalID & " (" & note.GetItemValue( "$Title" )(0) & ")"
Exit Sub
End Sub
免责声明::在某些情况下,这会破坏元素的签名-整个数据库的强制符号将其修复。
注意:有关继承的提示-如果在从FROM模板复制到TO模板时回答否,则会设置标记“禁止...”(即使是相同的数据库!
因此,在您的情况下,请做相反的工作-只需在"P"
文件的$Flags
字段中添加XSP.properties
来设置标志。顺便说一下,其$TITLE
字段是"WEB-INF/xsp.properties"
。
享受!