jam-cloud/web/app/assets/javascripts/banner.js

76 lines
1.9 KiB
JavaScript

// this is not a dialog, and isn't meant to be. It is 'special' in that it will be higher in z-order than all other dialos
// it's for one-off alerts
(function (context, $) {
"use strict";
context.JK = context.JK || {};
context.JK.Banner = (function () {
var self = this;
var logger = context.JK.logger;
var $banner = $('#banner');
function showAlert(options) {
if (typeof options == 'string' || options instanceof String) {
options = {html:options};
}
options.type = 'alert'
return show(options);
}
// responsible for updating the contents of the update dialog
// as well as registering for any event handlers
function show(options) {
var text = options.text;
var html = options.html;
var newContent = null;
if (html) {
newContent = $('#banner .dialog-inner').html(html);
}
else if (text) {
newContent = $('#banner .dialog-inner').html(text);
}
else {
throw "unable to show banner for empty message";
}
if(options.type == "alert" || options.close) {
var $closeBtn = $('#banner').find('.close-btn');
$closeBtn.click(function() {
hide();
return false;
}).show();
}
$('#banner').attr('data-type', options.type).show()
$('#banner_overlay').show()
// return the core of the banner so that caller can attach event handlers to newly created HTML
return newContent;
}
function hide() {
$('#banner').hide();
$('#banner_overlay .dialog-inner').html("");
$('#banner_overlay').hide();
}
function initialize() {
return self;
}
// Expose publics
var me = {
initialize: initialize,
show: show,
showAlert: showAlert,
hide: hide
}
return me;
})();
})(window, jQuery);