0

Liferay ダイアログ ボックスがあります。このダイアログ ボックスを閉じて、URL をページにリダイレクトしたいと考えています。

私はこのようにしています。

<aui:column columnWidth="16" >

<%if(UserGroupRoleLocalServiceUtil.hasUserGroupRole(u.getUserId(), groupId, role.getRoleId())){ %>

<input value="delete" type="button"  onclick="document.location.href='
<portlet:actionURL name="deleteUserRole"><portlet:param name="memberId" value="<%= memberIdStr %>"/>
<portlet:param name="organization" value="<%=  Long.toString(organizationID) %>"/></portlet:actionURL>'"  />
    <%} %>
            </aui:column>


public void deleteUserRole(ActionRequest actionRequest,ActionResponse actionResponse){

// process to delete user role

    Role r = RoleLocalServiceUtil.getRole(org.getCompanyId(),
                    "Power User");


    UserGroupRoleLocalServiceUtil.deleteUserGroupRoles(userID, groupId, new long[] { r.getRoleId() });

        actionResponse.sendRedirect("/group/employee/empHome");                 


}

この方法を使用して削除ボタンをクリックすると、このメソッドが呼び出され、プロセスが実行され、この URL にリダイレクトされますが、ポップアップ ウィンドウが表示されます。

actionResponse.sendRedirect ページの特定のページにリダイレクトしたいのですが、ダイアログ ボックスではなく、ダイログ ボックスで開くべきではありません。

最初にこのダイアログ ボックスを閉じてから、ページを特定の URL にリダイレクトするにはどうすればよいですか?

リンクでこのクラスを呼び出してダイアログボックスを開いています以下は私のjsファイルです

/test.js/ _ _

 var myPopup;
AUI().ready( function() {

    if (AUI().one('#testing-menu')) {

    AUI().one('.extendClick').on(
        'mouseenter',
        function(event){
            AUI().one('.navi-type').setStyles({'display': 'none'});
            AUI().one('.extendClick').setStyles({'display': 'none'});
            AUI().one('.collapseArrow').setStyles({'display': 'block'});
        }
      );


   AUI().all('.employee-dialog').on(
        'click',
        function(event){
          var url = event.currentTarget.get('href');
          event.preventDefault();
          //console.info(url);

        window.myPopup= Liferay.Util.openWindow(
              {
                dialog: {
                  align: { points: ['tc', 'tc'] },
                  width: 960
                },
                title: 'Settings',
                uri: url
              }
            );
        }
      );


  }
});
4

2 に答える 2

2

Save the popup reference, and use that to close the popup later:

var myPopup;
AUI().all('.employee-dialog').on(
    'click',
    function(event){
      [..]
      myPopup = Liferay.Util.openWindow([...]);
    }
  );

Use the saved popup reference in onclick:

<input value="delete" type="button" onclick="myPopup.close();document.location.href='
    [...]
于 2013-06-25T06:59:46.020 に答える
0

最後に、この方法でこのダイアログ ボックスを閉じることができます。

<input value="delete" type="button"  onclick="javascript:closePopUp;document.location.href='
<portlet:actionURL name="deleteUserRole"><portlet:param name="memberId" value="<%= memberIdStr %>"/>
<portlet:param name="organization" value="<%=  Long.toString(organizationID) %>"/></portlet:actionURL>'"  />





<script type="text/javascript">
function closePopUp(){
top.document.getElementById('closethick').click();
}
</script>
于 2013-07-05T07:59:24.870 に答える