diff --git a/IPython/html/static/notebook/js/notificationwidget.js b/IPython/html/static/notebook/js/notificationwidget.js
index e08013b..b958480 100644
--- a/IPython/html/static/notebook/js/notificationwidget.js
+++ b/IPython/html/static/notebook/js/notificationwidget.js
@@ -20,16 +20,34 @@ define([
this.element.append(this.inner);
};
+ /**
+ * Add the 'notification_widget' CSS class to the widget element.
+ *
+ * @method style
+ */
NotificationWidget.prototype.style = function () {
this.element.addClass('notification_widget');
};
- // msg : message to display
- // timeout : time in ms before diseapearing
- //
- // if timeout <= 0
- // click_callback : function called if user click on notification
- // could return false to prevent the notification to be dismissed
+ /**
+ * Set the notification widget message to display for a certain
+ * amount of time (timeout). The widget will be shown forever if
+ * timeout is <= 0 or undefined. If the widget is clicked while it
+ * is still displayed, execute an optional callback
+ * (click_callback). If the callback returns false, it will
+ * prevent the notification from being dismissed.
+ *
+ * Options:
+ * class - CSS class name for styling
+ * icon - CSS class name for the widget icon
+ * title - HTML title attribute for the widget
+ *
+ * @method set_message
+ * @param {string} msg - The notification to display
+ * @param {integer} [timeout] - The amount of time in milliseconds to display the widget
+ * @param {function} [click_callback] - The function to run when the widget is clicked
+ * @param {Object} [options] - Additional options
+ */
NotificationWidget.prototype.set_message = function (msg, timeout, click_callback, options) {
options = options || {};
@@ -43,7 +61,7 @@ define([
// reset previous set style
this.element.removeClass();
this.style();
- if (options.class){
+ if (options.class) {
this.element.addClass(options.class);
}
@@ -68,8 +86,8 @@ define([
this.element.click(function() {
if (click_callback() !== false) {
that.element.fadeOut(100, function () {that.inner.text('');});
- that.element.unbind('click');
}
+ that.element.unbind('click');
if (that.timeout !== null) {
clearTimeout(that.timeout);
that.timeout = null;
@@ -78,6 +96,12 @@ define([
}
};
+ /**
+ * Display an information message (styled with the 'info'
+ * class). Arguments are the same as in set_message.
+ *
+ * @method info
+ */
NotificationWidget.prototype.info = function (msg, timeout, click_callback, options) {
options = options || {};
options.class = options.class + ' info';
@@ -85,18 +109,36 @@ define([
this.set_message(msg, timeout, click_callback, options);
};
+ /**
+ * Display a warning message (styled with the 'warning'
+ * class). Arguments are the same as in set_message.
+ *
+ * @method warning
+ */
NotificationWidget.prototype.warning = function (msg, timeout, click_callback, options) {
options = options || {};
options.class = options.class + ' warning';
this.set_message(msg, timeout, click_callback, options);
};
+ /**
+ * Display a danger message (styled with the 'danger'
+ * class). Arguments are the same as in set_message.
+ *
+ * @method danger
+ */
NotificationWidget.prototype.danger = function (msg, timeout, click_callback, options) {
options = options || {};
options.class = options.class + ' danger';
this.set_message(msg, timeout, click_callback, options);
};
+ /**
+ * Get the text of the widget message.
+ *
+ * @method get_message
+ * @return {string} - the message text
+ */
NotificationWidget.prototype.get_message = function () {
return this.inner.html();
};