如何打开我的JSF portlet编辑模式的弹出窗口?

时间:2016-02-02 19:38:38

标签: jsf jsf-2 liferay

打开Liferay portlet的配置模式时,它会在弹出的对话框中打开:

Configuration Mode Dialog

如何让我的JSF portlet打开类似的弹出窗口,但是我的JSF portlet的编辑模式呢?

我正在使用Liferay 6.2。

1 个答案:

答案 0 :(得分:3)

在Liferay 6.2 +中:

在大多数情况下,您可以打开JSF portlet the same way for both JSF and JSP portlets: via the client-side JS Liferay.Util.Window.getWindow() method的编辑模式。要创建对话框,您需要在编辑模式下获取portlet的呈现URL,并通过portlet:renderURL弹出状态:

<portlet:renderURL var="popUpEditModeURL" escapeXml="false"
    portletMode="edit" windowState="pop_up" />

然后使用Liferay.Util.Window.getWindow()方法中的网址:

<h:outputScript>
    AUI().use('liferay-util-window', function(A) {
        var popUp = Liferay.Util.Window.getWindow({
            dialog: {
                centered: true,
                constrain2view: true,
                resizable: false
            }
        }).plug(A.Plugin.DialogIframe, {
            autoLoad: true,
            iframeCssClass: 'dialog-iframe',
            uri:'#{popUpEditModeURL}'
        }).render();

        // call `popUp.show();` to show the dialog.
    });
</h:outputScript>

每当要在编辑模式下显示portlet时,请调用popUp.show()

或者,您可以使用Liferay Faces Alloy's dialog(或任何其他组件套件的对话框),其中包含iframe,以在对话框中显示编辑模式:

<alloy:dialog height="95%" width="95%" clientKey="dialog">
    <iframe height="100%" width="100%" src="${popUpEditModeURL}" />
</alloy:dialog>

但是,此方法可能无法产生与使用Liferay.Util.Window.getWindow()完全相同的效果。

完全披露:我是Liferay Faces Alloy的开发人员之一。