34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
|
class Banner {
|
||
|
constructor() {
|
||
|
this.text = null;
|
||
|
}
|
||
|
|
||
|
updateText(text) {
|
||
|
this.text = text;
|
||
|
}
|
||
|
|
||
|
mountOn(target) {
|
||
|
if (this.element)
|
||
|
return; // Already mounted
|
||
|
|
||
|
this.element = document.createRange().createContextualFragment(`
|
||
|
<div class="card small-card center-text">
|
||
|
<h2>Login</h2>
|
||
|
<p>You need to enter the login code before you can start controlling your device.</p>
|
||
|
<br>
|
||
|
<div class="full-width">
|
||
|
<input id="code-input" class="input full-width" placeholder="Code">
|
||
|
<br>
|
||
|
<button id="continue-button" class="button-default full-width">Continue</button>
|
||
|
</div>
|
||
|
</div>
|
||
|
`).children[0];
|
||
|
|
||
|
this.element.querySelector("#continue-button").addEventListener("click", () => {
|
||
|
if (this.onPasswordSubmitted)
|
||
|
this.onPasswordSubmitted(this.element.querySelector("#code-input").value);
|
||
|
});
|
||
|
|
||
|
target.appendChild(this.element);
|
||
|
}
|
||
|
}
|