ami/src/ami.js/loadoverlay.js

45 lines
1.3 KiB
JavaScript

#include utility.js
var AmiLoadingOverlay = function(parent, indicatorShown) {
var text = $e({
attrs: { id: 'conntxt' },
child: 'Loading Sock Chat...',
});
var indicator = $e({ attrs: { id: 'indicator' } });
var container = $e({
attrs: { id: 'connmsg' },
child: {
attrs: { id: 'info' },
child: [text, indicator],
},
});
var appendTo = function(parent) { parent.appendChild(container); };
var destroy = function() { $r(container); };
var showIndicator = function() { indicator.classList.remove('hidden'); };
var hideIndicator = function() { indicator.classList.add('hidden'); };
var toggleIndicator = function(visible) { indicator.classList[visible ? 'remove' : 'add']('hidden') };
toggleIndicator(indicatorShown);
if(parent !== undefined)
appendTo(parent);
return {
close: function() {
container.classList.add('connmsg-exit');
setTimeout(destroy, 1000);
},
getElement: function() { return container; },
appendTo: appendTo,
showIndicator: showIndicator,
hideIndicator: hideIndicator,
toggleIndicator: toggleIndicator,
setTextRaw: function(raw) { text.innerHTML = raw; },
destroy: destroy,
};
};