class RessourceDisplay { constructor(displayElement) { this.displayElement = displayElement; this.userId = this.displayElement.dataset.userId; this.isInitialized = false; if (this.userId) { app.subscribeUser(this.userId).then((response) => { app.socket.on('PATCH', (patch) => {this.onPATCH(patch);}); }); app.getUser(this.userId).then((user) => { this.init(user); this.isInitialized = true; }); } } init(user) {throw 'Not implemented';} onPATCH(patch) {throw 'Not implemented';} setElement(element, value) { switch (element.tagName) { case 'INPUT': element.value = value; M.updateTextFields(); break; default: element.innerText = value; break; } } setElements(elements, value) { let element; for (element of elements) { this.setElement(element, value); } } }