Проблема при закрытии всплывающего окна в LifeRay
Я столкнулся с проблемой при закрытии всплывающего окна. Я открываю свое всплывающее окно и использую следующий код
View.jsp
<aui:script>
AUI().use('aui-base',
'aui-io-plugin-deprecated',
'liferay-util-window',
'liferay-portlet-url',
'aui-dialog-iframe-deprecated','aui-modal',
function(A) {
var modal=null;
A.one('#<portlet:namespace />updateNewsPaper').on('click', function(){
A.one('#modal-content').setStyle('display','block')
modal = new A.Modal(
{
srcNode : '#modal-content', //contentBox:#modal-content
centered: true,
headerContent: '<h3>Confirmation</h3>',
modal: true,
render: '#modal',
width: 450
}
).render();
});
A.one('#<portlet:namespace />btnNo').on('click', function(event){
modal.hide();
});
A.one('#<portlet:namespace />btnYes').on('click',function(event) {
modal.hide();
var paperId=document.getElementById('newsPaperId').value;
var newsUrl=document.getElementById('newsPaperUrl').value;
var keyword=document.getElementById('subject').value;
var flag = document.getElementById("flag").value;
var status='update';
var newsPaperName = document.getElementById("newsPaperName").value;
var popUpWindow=Liferay.Util.Window.getWindow(
{
dialog: {
centered: true,
constrain2view: true,
//cssClass: 'yourCSSclassName',
modal: true,
resizable: false,
width: 500
},
}
).plug(
A.Plugin.DialogIframe,
{
id: '<portlet:namespace/>dialog',
autoLoad: false,
iframeCsviewpdfsClass: 'dialog-iframe',
uri:'<%= portletSettingsURL.toString() %>' + '&<portlet:namespace/>paperId=' + paperId + '&<portlet:namespace/>newsUrl=' + newsUrl + '&<portlet:namespace/>keyword=' + keyword + '&<portlet:namespace/>flag=' + flag + '&<portlet:namespace/>status=' + status + '&<portlet:namespace/>newsPaperName=' + newsPaperName
}).render();
['aui-io-plugin-deprecated', 'liferay-util-window']
popUpWindow.show();
popUpWindow.titleNode.html("Are you sure? Do you want to update record?");
popUpWindow.io.start();
});
});
</aui:script>
<aui:script>
Liferay.provide(window,'<portlet:namespace/>closePopup',function(dialogId){
var A = AUI();
var dialog = Liferay.Util.Window.getById(dialogId);
alert(dialogId);
dialog.destroy();
},
['aui-base','aui-dialog','aui-dialog-iframe']
);
</aui:script>
<portlet:renderURL var="portletSettingsURL" windowState="<%= LiferayWindowState.POP_UP.toString() %>">
<portlet:param name="mvcPath" value="/html/openDialog.jsp" />
</portlet:renderURL>
openDialog.jsp
<aui:script use="aui-base">
A.one('#<portlet:namespace/>closeDialog').on('click', function(event) {
alert("hello");
alert('<portlet:namespace/>dialog');
Liferay.Util.getOpener().<portlet:namespace/>closePopup('<portlet:namespace/>dialog');
});
</aui:script>
Я получил следующую ошибку **
TypeError: диалог не определен
**
У меня есть кнопка действия и элементы управления формы в файле openDialog.jsp. Я хочу закрыть свое всплывающее окно, когда я нажимаю кнопку НЕТ. И когда я нажимаю на кнопку "Да", сначала выполняется моя операция, а затем после закрытия моего всплывающего окна. Когда я нажимаю на кнопку действия, происходит некоторая обработка, например, вставка моих записей в БД. После завершения вставки opendialog должен автоматически закрыться, и я возвращаюсь на свою страницу.
Как я могу достичь этого?
заранее спасибо