mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2025-01-14 20:20:33 +00:00
47 lines
1.0 KiB
JavaScript
47 lines
1.0 KiB
JavaScript
|
ResourceDisplays.BaseDisplay = class BaseDisplay {
|
||
|
static htmlClass;
|
||
|
|
||
|
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);
|
||
|
}
|
||
|
}
|
||
|
};
|