48 lines
1.8 KiB
JavaScript
48 lines
1.8 KiB
JavaScript
(function ($) {
|
|
|
|
// Creates an iframe with an embedded HipChat conversation window.
|
|
//
|
|
// Options:
|
|
// url - The url to the room to embed; required
|
|
// container - The container in which to insert the HipChat panel; required
|
|
// timezone - The timezone to use in the embedded room; required
|
|
// welcome - A welcome message to display when the room is joined; optional
|
|
// noframes - Content to include when iframes are disabled in the browser; optional
|
|
// width - The width of the iframe; defaults to 100%
|
|
// height - The height of the iframe; defaults to 400px
|
|
$.createHipChat = function (options) {
|
|
if (options && options.url && options.container && options.timezone) {
|
|
var $container = $(options.container);
|
|
if ($container.length === 0) return;
|
|
var params = {
|
|
anonymous: 0,
|
|
timezone: options.timezone,
|
|
minimal: 0
|
|
};
|
|
if (options.welcome) {
|
|
params.welcome_msg = options.welcome;
|
|
}
|
|
var url = options.url + (options.url.indexOf('?') > 0 ? '&' : '?') + $.param(params);
|
|
if (url.indexOf('https://') !== 0) {
|
|
url = 'https://' + url;
|
|
}
|
|
var w = options.width || '100%';
|
|
var h = options.height || 400;
|
|
var nf = (options.noframes || '');
|
|
return {
|
|
show: function () {
|
|
$container.html('<iframe src="' + url + '" frameborder="' + 0 + '" width="' + w + '" height="' + h + '">' + nf + '</iframe>');
|
|
}
|
|
};
|
|
}
|
|
};
|
|
|
|
$.fn.hipChatPanel = function (options) {
|
|
options.container = this[0];
|
|
var panel = $.createHipChat(options);
|
|
this.html('<button class="show-hipchat ' + options.buttonClasses + '">' + (options.buttonTitle || 'Chat') + '</button>')
|
|
.find('.show-hipchat').click(function (e) { panel.show(); });
|
|
};
|
|
|
|
}(jQuery));
|