snowflake/proxy/ui.js
Arlo Breault e60f22833a Reimagine the badge
Trac 27385
2019-07-27 12:01:03 -04:00

60 lines
1.1 KiB
JavaScript

/* global chrome, log, update */
/*
All of Snowflake's DOM manipulation and inputs.
*/
class UI {
setStatus() {}
setActive(connected) {
return this.active = connected;
}
log() {}
}
UI.prototype.active = false;
UI.prototype.enabled = true;
class DebugUI extends UI {
constructor() {
super();
// Setup other DOM handlers if it's debug mode.
this.$status = document.getElementById('status');
this.$msglog = document.getElementById('msglog');
this.$msglog.value = '';
}
// Status bar
setStatus(msg) {
var txt;
txt = document.createTextNode('Status: ' + msg);
while (this.$status.firstChild) {
this.$status.removeChild(this.$status.firstChild);
}
return this.$status.appendChild(txt);
}
setActive(connected) {
super.setActive(connected);
return this.$msglog.className = connected ? 'active' : '';
}
log(msg) {
// Scroll to latest
this.$msglog.value += msg + '\n';
return this.$msglog.scrollTop = this.$msglog.scrollHeight;
}
}
// DOM elements references.
DebugUI.prototype.$msglog = null;
DebugUI.prototype.$status = null;