Hallo,
vor dem löschen eines Dokuments in einer xpage, möchte ich per js die Zustimmung des Anwenders einholen. Weil's hübsch aussieht, möchte ich statt JavaScript confirm() bootbox.confirm verwenden.
Leider rauscht das Script einfach so durch und wartet nicht auf die Eingabe des Anwenders. Hat jemand eine Idee, wie man das verhindern kann?
Meine Funktion zum öffnen des bootbox dialogs:
function bootboxConfirm( dlgTitle, prompt ) {
var resultVal ;
bootbox.confirm(
{
title: dlgTitle,
message: prompt ,
buttons: {
cancel: {
label: "abbrechen",
className: "btn-default",
callback: function (result) {
console.log('This was logged in the callback: ' + result);
resultVal = result ;
}
},
confirm: {
label: "ok",
className: "btn-default",
callback: function (result) {
console.log('This was logged in the callback: ' + result);
resultVal = result ;
}
}
},
callback: function() {
resultVal = resultVal ;
}
});
console.log( "resultVal = " + resultVal ) ;
return resultVal ;
}
Meine Schaltfläche zum löschen:
<xp:button value="remove" id="button3">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="dataTablePeople">
<xp:this.action><![CDATA[#{javascript:PeopleBean.setPerson( person ) ;
PeopleBean.removePerson() ;}]]></xp:this.action>
<xp:this.script><![CDATA[return bootboxConfirm( "Dokument löschen", "Soll die Person und alle zugehörigen Dokumente gelöscht werden?" ) ;]]></xp:this.script>
</xp:eventHandler>
</xp:button>
Danke,
Hubert
Hallo Urs,
das war es zwar nicht so ganz, hat mich aber auf die folgende, funktionierende Lösung gebracht:
<xp:scriptBlock id="scriptBlock1">
<xp:this.value><![CDATA[
function bootboxConfirm( dlgTitle, prompt ) {
var resultVal = null ;
bootbox.confirm(
{
title: dlgTitle,
message: prompt ,
buttons: {
cancel: {
label: "abbrechen",
className: "btn-default"
},
confirm: {
label: "ok",
className: "btn-default"
}
},
callback: function(result) {
if( result == true ) {
document.getElementById("#{id:hiddenRemoveBtn}").click() ;
}
}
});
}
]]></xp:this.value>
</xp:scriptBlock>
<xp:div id="dataTablePeople">
<xp:button value="remove" id="removeBtn">
<xp:eventHandler event="onclick" submit="false">
<xp:this.script><![CDATA[
bootboxConfirm( "Dokument löschen", "Soll ... gelöscht werden?" ) ;
]]></xp:this.script>
</xp:eventHandler>
</xp:button>
<xp:button value="hidden remove" id="hiddenRemoveBtn" style="display:none;">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action>
<xp:openPage name="/gridPeople.xsp"></xp:openPage>
</xp:this.action>
</xp:eventHandler>
</xp:button>
</xp:div>