diff --git a/IPython/html/static/base/js/dialog.js b/IPython/html/static/base/js/dialog.js
index 97aa47d..79ac239 100644
--- a/IPython/html/static/base/js/dialog.js
+++ b/IPython/html/static/base/js/dialog.js
@@ -8,6 +8,35 @@ define(function(require) {
var IPython = require('base/js/namespace');
var $ = require('jquery');
+ /**
+ * A wrapper around bootstrap modal for easier use
+ * Pass it an option dictionary with the following properties:
+ *
+ * - body : or , main content of the dialog
+ * if pass a it will be wrapped in a p tag and
+ * html element escaped, unless you specify sanitize=false
+ * option.
+ * - title : Dialog title, default to empty string.
+ * - buttons : dict of btn_options who keys are button label.
+ * see btn_options below for description
+ * - open : callback to trigger on dialog open.
+ * - destroy:
+ * - notebook : notebook instance
+ * - keyboard_manager: keyboard manager instance.
+ *
+ * Unlike bootstrap modals, the backdrop options is set by default
+ * to 'static'.
+ *
+ * The rest of the options are passed as is to bootstrap modals.
+ *
+ * btn_options: dict with the following property:
+ *
+ * - click : callback to trigger on click
+ * - class : css classes to add to button.
+ *
+ *
+ *
+ **/
var modal = function (options) {
var modal = $("")
@@ -20,7 +49,7 @@ define(function(require) {
var dialog_content = $("")
.addClass("modal-content")
.appendTo(dialog);
- if(typeof(options.body) === 'string'){
+ if(typeof(options.body) === 'string' && options.sanitize !== false){
options.body = $("").text(options.body)
}
dialog_content.append(
@@ -35,7 +64,7 @@ define(function(require) {
).append(
$("")
.addClass('modal-title')
- .text(options.title || "No Title")
+ .text(options.title || "")
)
).append(
$("").addClass("modal-body").append(