Xpages在XPiNC中的相同选项卡/ Windows中打开新数据库

时间:2015-06-22 15:32:22

标签: xpages

我正在尝试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>

1 个答案:

答案 0 :(得分:2)

我会创建一个额外的数据库,其中包含来自所有数据库的XPages代码,并仅使用当前的Notes数据库作为数据容器。

这样您就可以在一个地方拥有所有导航和所有XPage代码。并且您的代码与始终良好的数据分开。

您可以将配置文档添加到附加的XPage数据库中,该数据库包含数据容器数据库的路径。在XPage的数据源定义中使用这些路径。