При нажатии происходит событие, которое вызывает диалог состояния. Если я внесу какие-либо изменения в форму и перейду на другую страницу из меню, появится всплывающее сообщение «У вас есть несохраненные данные. Вы уверены, что покинули страницу? Когда я нажимаю «Да», он переходит на другую страницу, но проблема заключается в том, что если я нажимаю «Нет», диалоговое окно процесса отображается, пока я не обновлю sh страницу.
<p:column>
<p:submenu label="#{authorizationView.getText('ADMINUTL',false,false)}">
<c:forEach items="#{authorizationController.getUIFeature('ADMINUTL',true,null).getChildren(true)}"
var="subMenu">
<p:menuitem url="#{subMenu.linkUrl}" value="#{subMenu.displayName}" style="white-space: nowrap;"
ajax="true" onclick="PF('statusDialog').show()" oncomplete="PF('redirectDialog').hide()"/>
</c:forEach>
</p:submenu>
</p:column>
Код диалогового окна состояния:
<p:dialog widgetVar="statusDialog"
modal="true"
draggable="false"
closable="false"
resizable="false"
showHeader="false" >
<p:graphicImage widgetVar="statusDialog" value="Loading" library="images" name="ajax-loader1.gif"
width="40" height="40" style="margin-right: 12px; vertical-align: middle;"/>
<h:outputText value="Please wait, data is being processed..." style="white-space: nowrap;"/>
</p:dialog>
Javascript код:
function setConfirmUnload(on) {
var message = "You have unsaved data. Are you sure to leave the page?";
window.onbeforeunload = (on) ? function() { return message; } : null;
}