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) => { if (this.isInitialized) {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) { for (let element of elements) { this.setElement(element, value); } } }