summaryrefslogtreecommitdiff
path: root/src/renderer/gameserver/serverView/preferences.ts
blob: b7a52555eab89c9aa40450586f717f61a219c7f6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import GameServerProfile from "../profile";
import { GameServerPage } from "./serverPage";

export class ServerPreferencesPage extends GameServerPage {
  getPage(): HTMLElement {
    const content = document.createElement("div");
    content.classList.add("preferencesServerPage");

    const title = document.createElement("h2");
    title.innerText = `Preferences for ${this.server.name}`;
    content.appendChild(title);

    const loginSection = document.createElement("div");
    loginSection.classList.add("loginSection");
    content.appendChild(loginSection);

    const loginUsernameLabel = document.createElement("label");
    loginUsernameLabel.innerText = "Username";
    const loginUsername = document.createElement("input") as HTMLInputElement;
    loginUsername.value = localStorage.getItem(
      "2_username_" + this.server.profile.address
    );
    loginUsernameLabel.appendChild(loginUsername);

    const loginPinLabel = document.createElement("label");
    loginPinLabel.innerText = "Password";
    const loginPin = document.createElement("input") as HTMLInputElement;
    loginPin.type = "password";
    loginPin.value = localStorage.getItem(
      "2_pin_" + this.server.profile.address
    );
    loginPinLabel.appendChild(loginPin);

    const saveBtn = document.createElement("button") as HTMLButtonElement;
    saveBtn.innerText = "save";

    saveBtn.addEventListener("click", () => {
      localStorage.setItem(
        "2_username_" + this.server.profile.address,
        loginUsername.value
      );
      localStorage.setItem(
        "2_pin_" + this.server.profile.address,
        loginPin.value
      );
      updateLoginTextElement(this.server.profile.address);
    });

    loginSection.appendChild(loginUsernameLabel);
    loginSection.appendChild(loginPinLabel);
    loginSection.appendChild(saveBtn);

    return content;
  }
}

export function updateLoginTextElement(serverAddress: string): void {
  const account = localStorage.getItem("2_username_" + serverAddress);
  const pin = localStorage.getItem("2_pin_" + serverAddress);
  const element = document.getElementById("LoginText");
  if (account && pin) {
    element.innerHTML = `Logged in as <b>${account}</b>`;
  } else {
    element.innerHTML = "Automatic login not set up";
  }
}