我正在尝试creating uniform application layout for multiple applications.
我似乎无法在一个数据库中获取AppLayout上的链接,以在与第一个数据库相同的选项卡/窗口中打开新数据库。我的目标是为多个数据库提供统一的应用程序布局控制,并在每个数据库的应用程序链接中有一个链接,因此它向用户显示它们实际上是在一个大型应用程序中。我在XPiNC中这样做。
我一直在新标签中打开。我已经更改了DB的设置,默认情况下在同一窗口/选项卡中打开。我尝试了3种不同的方法,这些方法在下面的代码中。
我真的很想能够做到这一点。
<?xml version="1.0" encoding="UTF-8"?>
<xp:view
xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:this.resources>
<xp:script
src="/xpCGIVariables.jss"
clientSide="false">
</xp:script>
</xp:this.resources>
<xp:platformEvent
id="platformEvent1"></xp:platformEvent>
<xe:applicationLayout
id="applicationLayout1">
<xp:callback
facetName="facet_1"
id="callback4" />
<xp:this.facets>
<xp:callback
facetName="MastFoot"
id="callback6"
xp:key="MastFooter" />
<xp:callback
facetName="RightColum"
id="callback5"
xp:key="RightColumn" />
<xp:callback
facetName="LeftColumn"
id="callback3"
xp:key="LeftColumn" />
<xp:callback
facetName="searchBar"
id="callback2"
xp:key="SearchBar" />
<xp:callback
facetName="MastHeader"
id="callback1"
xp:key="MastHeader" />
</xp:this.facets>
<xe:this.configuration>
<xe:oneuiApplication
navigationPath="#{javascript:compositeData.navigationPath}"
defaultNavigationPath="home"
productLogoHeight="50px"
legal="false"
productLogo="/smallLogo.png"
productLogoWidth="50px"
productLogoStyle="padding-top:5.0px;padding-bottom:5.0px"
placeBarName="PC Checklist"
titleBarName="PC Checklist"
placeBar="false"
footer="false">
<xe:this.footerLinks>
<xe:basicContainerNode label="Container 1"></xe:basicContainerNode>
</xe:this.footerLinks>
<xe:this.titleBarTabs>
<xe:pageTreeNode
label="PC Tasks"
selection="/PCTasks/.*"
page="/xpViewAllPCTasks.xsp" />
<xe:pageTreeNode
label="PC Builds"
selection="/PCBuilds/.*"
page="/xpViewAllPCBuilds.xsp" />
</xe:this.titleBarTabs>
<xe:this.placeBarActions></xe:this.placeBarActions>
<xe:this.bannerUtilityLinks>
<xe:basicLeafNode label="My Email">
<xe:this.href><![CDATA[#{javascript:var url = "Notes:///0000000000000E00/"
url}]]></xe:this.href>
</xe:basicLeafNode>
<xe:separatorTreeNode loaded="true"></xe:separatorTreeNode>
<xe:basicLeafNode>
<xe:this.label><![CDATA[#{javascript:"Welcome " + @Name("[CN]",session.getEffectiveUserName());}]]></xe:this.label>
</xe:basicLeafNode>
</xe:this.bannerUtilityLinks>
<xe:this.bannerApplicationLinks>
<xe:basicLeafNode
label="The Scoular Company"
style="height:50px"
styleClass="lotusText">
<xe:this.onClick><![CDATA[window.open("http://www.scoular.com","_self")]]></xe:this.onClick>
</xe:basicLeafNode>
<xe:basicLeafNode
label="PC Checklist"
selected="true">
<xe:this.href><![CDATA[#{javascript:if (database.getTitle() != "PC Checklist")
{var url = "notes://KC1/PCCheckList.nsf/xpHome.xsp?OpenXpage";
url;}}]]></xe:this.href>
</xe:basicLeafNode>
<xe:basicLeafNode label="CompuWeigh Monitor">
<xe:this.href><![CDATA[#{javascript:var url = "notes://<SERVER>/compuweigh.nsf/xpHome.xsp?OpenXpage"
url}]]></xe:this.href>
</xe:basicLeafNode>
<xe:basicLeafNode label="CompuWeigh Monitor">
<xe:this.onClick><![CDATA[var url = "notes://<SERVER>/compuweigh.nsf/xpHome.xsp?OpenXpage";
window.open(url,"_self")]]></xe:this.onClick>
</xe:basicLeafNode>
<xe:basicLeafNode label="ComputWeigh Monitor">
<xe:this.onClick><![CDATA[window.open("notes://KC1/compuweigh.nsf?OpenDatabase","_self")]]></xe:this.onClick>
</xe:basicLeafNode>
</xe:this.bannerApplicationLinks>
</xe:oneuiApplication>
</xe:this.configuration>
</xe:applicationLayout>
</xp:view>
答案 0 :(得分:2)
我会创建一个额外的数据库,其中包含来自所有数据库的XPages代码,并仅使用当前的Notes数据库作为数据容器。
这样您就可以在一个地方拥有所有导航和所有XPage代码。并且您的代码与始终良好的数据分开。
您可以将配置文档添加到附加的XPage数据库中,该数据库包含数据容器数据库的路径。在XPage的数据源定义中使用这些路径。