Я пытаюсь реализовать библиотеку javascript Sweet Alert в своем приложении.SSJS запускается до функции обратного вызова CSJS
Вот соответствующий код:
<xp:link escape="true" text="" id="link2" style="color:#4A4A4A">
<i class="fa fa-trash-o fa-lg">
</i>
<xp:eventHandler event="onclick"
submit="true" refreshMode="partial" refreshId="assetList">
<xp:this.action><![CDATA[#{javascript:
var db:NotesDatabase = session.getDatabase(sessionScope.serverPath,sessionScope.dbName);
var id = viewRow.getUniversalID();
var doc:NotesDocument = db.getDocumentByUNID(id);
doc.remove(true);}]]></xp:this.action>
<xp:this.script><![CDATA[swal({
title: "Are you sure?",
text: "This asset will be permanently deleted",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#2196f3",
confirmButtonText: "Ok",
cancelButtonColor: "#607D8B",
cancelButtonText: "Cancel",
closeOnConfirm: true,
closeOnCancel: true,
confirmButtonClass: 'confirm-class',
cancelButtonClass: 'cancel-class'
},
function(isConfirm){
if (isConfirm) {
return true;
} else {
return false;
}
});
//if(window.confirm("Are you sure you want to delete the asset?") != true)
return false;]]></xp:this.script>
</xp:eventHandler>
</xp:link>
При нажатии на ссылку удаляет строку, независимо от выбора я делаю (Отмена/OK). Я вижу, что удаление происходит еще до того, как я сделаю свой выбор. У меня такое чувство, что оно имеет какое-то отношение к порядку исполнения для обратного вызова.
Если я использую код, закомментированный в конце (window.confirm), он отлично работает.
Я был бы признателен за ваше руководство по этому вопросу.
Спасибо,
Dan
Я подозреваю, sweetalert может конфликтовать с эмиссионным XPages AMD имеет. Я пытаюсь подтвердить. –
Дэвид, нет конфликта AMD.Я получаю подсказку Sweet alert. Но код SSJS выполняется еще до того, как у меня появится возможность выбрать «Отмена» или «ОК». –
hmm интересно. Я получил ошибку AMD. Как только я добавил SweetAlert на свою страницу и попробовал что-то простое, ничего не вышло, и даже базовое предупреждение («тест») в CSJS не сработало. Мне пришлось войти в файл sweetalert-dev.js и изменить значение amd.define на false. Затем простые вещи начали работать, как ожидалось. –