0
votes

I have an XPage with 2 custom controls. The 1st custom control has a repeat control and the second is used just as a dialog box.

The user can delete a row from the repeat control by clicking on a delete link. then i use rowVar.getDocument.getNoteID and i delete the document. What i want is to ask the user first: "are you sure you want to delete it?"

I used "window.confirm()" in CSJS but i dont like the default prompt box. So then i used dojo dialog box but i cant use rowVar of repeat control in it to get the documentId.

Currently i have code in the OK button of the dialog but i want to use OK/Cancel buttons only as a true/false and execute the code in the main custom control. Is there a way of passing the value of the button back to the caller?

1

1 Answers

2
votes

I have done this in many ways. Basically, write the information you need to find the document to delete to a viewScope variable. Then create a stand alone event handler that is called from the OK or Cancel buttons of the dialog.

So the eventHandler looks like this post by Jeremey Hodge:

<xp:eventHandler
    event="onfubar"
    id="eventHandler1"
    submit="false">
    <xp:this.action><![CDATA[#{javascript:
// write the ssjs to save the doc base on viewScope parameters
}]]></xp:this.action>
</xp:eventHandler>

Then the dialog buttons look something like this (based on the Mastering XPages book and many other sources):

XSP.partialRefreshGet("#{id:eventHandler1}", {
    params : {action :"OK" },
    onComplete : function () {
        // do something else if needed
    },
    onError : function() {
        alert("no soup for you!");
    }
});