Dojo Dialog with confirmation button
http://stackoverflow.com/questions/10401512/dojo-dialog-with-confirmation-button
HTML
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.7.2/dijit/themes/claro/claro.css">
<script type="text/template" id="confirm-dialog-template">
<div style="width:300px;">
<div class="dijitDialogPaneContentArea">
<div data-dojo-attach-point="contentNode">
${message}
</div>
</div>
<div class="dijitDialogPaneActionBar">
<button
data-dojo-type="dijit.form.Button"
data-dojo-attach-point="submitButton"
type="submit"
>
OK
</button>
<button
data-dojo-type="dijit.form.Button"
data-dojo-attach-point="cancelButton"
>
Cancel
</button>
</div>
</div>
</script>
<button data-dojo-type="dijit.form.Button" id="show-button">
ConfirmDialog.show()
</button>
<button data-dojo-type="dijit.form.Button" id="confirm-button">
MessageBox.confirm()
</button>
JavaScript
require([
"dojo/ready",
"dojo/_base/declare",
"dojo/_base/lang",
"dojo/_base/Deferred",
"dojo/_base/array",
"dojo/dom",
"dojo/aspect",
"dijit/registry",
"dijit/_Widget",
"dijit/_TemplatedMixin",
"dijit/_WidgetsInTemplateMixin",
"dijit/Dialog",
"dijit/form/Button",
"dojo/domReady!"
], function(
ready,
declare,
lang,
Deferred,
array,
dom,
aspect,
registry,
_Widget,
_TemplatedMixin,
_WidgetsInTemplateMixin,
Dialog
){
var ConfirmDialog = declare(Dialog, {
title: "Confirm",
message: "Are you sure?",
constructor: function(/*Object*/ kwArgs) {
lang.mixin(this, kwArgs);
var template = dom.byId("confirm-dialog-template").textContent;
var message = this.message;
var contentWidget = new (declare(
[_Widget, _TemplatedMixin, _WidgetsInTemplateMixin],
{
templateString: template,
message: message
}
));
contentWidget.startup();
this.content = contentWidget;
},
postCreate: function() {
this.inherited(arguments);
this.connect(this.content.cancelButton, "onClick", "onCancel");
},
onExecute: function() {
console.log("OK");
},
onCancel: function() {
console.log("Cancel");
}
});
var MessageBox = {};
MessageBox.confirm = function(kwArgs) {
var confirmDialog = new ConfirmDialog(kwArgs);
confirmDialog.startup();
var deferred = new Deferred();
var signal, signals = [];
var destroyDialog = function() {
array.forEach(signals, function(signal) {
signal.remove();
...