move web source files to web/,
move dev configs to config/
@ -3,7 +3,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>proxmox - dashboard</title>
|
<title>{{.Organization}} - dashboard</title>
|
||||||
<link rel="icon" href="images/favicon.svg" sizes="any" type="image/svg+xml">
|
<link rel="icon" href="images/favicon.svg" sizes="any" type="image/svg+xml">
|
||||||
<link rel="stylesheet" href="modules/w3.css">
|
<link rel="stylesheet" href="modules/w3.css">
|
||||||
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
|
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
|
||||||
@ -43,7 +43,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<h1>proxmox</h1>
|
<h1>{{.Organization}}</h1>
|
||||||
<label for="navtoggle">☰</label>
|
<label for="navtoggle">☰</label>
|
||||||
<input type="checkbox" id="navtoggle">
|
<input type="checkbox" id="navtoggle">
|
||||||
<nav id="navigation">
|
<nav id="navigation">
|
@ -3,7 +3,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>proxmox - dashboard</title>
|
<title>{{.Organization}} - dashboard</title>
|
||||||
<link rel="icon" href="images/favicon.svg" sizes="any" type="image/svg+xml">
|
<link rel="icon" href="images/favicon.svg" sizes="any" type="image/svg+xml">
|
||||||
<link rel="stylesheet" href="modules/w3.css">
|
<link rel="stylesheet" href="modules/w3.css">
|
||||||
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
|
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
|
||||||
@ -33,7 +33,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<h1>proxmox</h1>
|
<h1>{{.Organization}}</h1>
|
||||||
<label for="navtoggle">☰</label>
|
<label for="navtoggle">☰</label>
|
||||||
<input type="checkbox" id="navtoggle">
|
<input type="checkbox" id="navtoggle">
|
||||||
<nav id="navigation">
|
<nav id="navigation">
|
@ -3,7 +3,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>proxmox - dashboard</title>
|
<title>{{.Organization}} - dashboard</title>
|
||||||
<link rel="icon" href="images/favicon.svg" sizes="any" type="image/svg+xml">
|
<link rel="icon" href="images/favicon.svg" sizes="any" type="image/svg+xml">
|
||||||
<link rel="stylesheet" href="modules/w3.css">
|
<link rel="stylesheet" href="modules/w3.css">
|
||||||
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
|
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
|
||||||
@ -25,7 +25,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<h1>proxmox</h1>
|
<h1>{{.Organization}}</h1>
|
||||||
<label for="navtoggle">☰</label>
|
<label for="navtoggle">☰</label>
|
||||||
<input type="checkbox" id="navtoggle">
|
<input type="checkbox" id="navtoggle">
|
||||||
<nav id="navigation">
|
<nav id="navigation">
|
@ -3,7 +3,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>proxmox - dashboard</title>
|
<title>{{.Organization}} - dashboard</title>
|
||||||
<link rel="icon" href="images/favicon.svg" sizes="any" type="image/svg+xml">
|
<link rel="icon" href="images/favicon.svg" sizes="any" type="image/svg+xml">
|
||||||
<link rel="stylesheet" href="modules/w3.css">
|
<link rel="stylesheet" href="modules/w3.css">
|
||||||
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
|
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
|
||||||
@ -14,7 +14,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<h1>proxmox</h1>
|
<h1>{{.Organization}}</h1>
|
||||||
<label for="navtoggle">☰</label>
|
<label for="navtoggle">☰</label>
|
||||||
<input type="checkbox" id="navtoggle">
|
<input type="checkbox" id="navtoggle">
|
||||||
<nav id="navigation">
|
<nav id="navigation">
|
||||||
@ -23,7 +23,7 @@
|
|||||||
</header>
|
</header>
|
||||||
<main class="flex" style="justify-content: center; align-items: center;">
|
<main class="flex" style="justify-content: center; align-items: center;">
|
||||||
<div class="w3-container w3-card w3-margin w3-padding" style="height: fit-content;">
|
<div class="w3-container w3-card w3-margin w3-padding" style="height: fit-content;">
|
||||||
<h2 class="w3-center">Proxmox VE Login</h2>
|
<h2 class="w3-center">{{.Organization}} Login</h2>
|
||||||
<form>
|
<form>
|
||||||
<label for="username"><b>Username</b></label>
|
<label for="username"><b>Username</b></label>
|
||||||
<input class="w3-input w3-border" id="username" name="username" type="text" autocomplete="username">
|
<input class="w3-input w3-border" id="username" name="username" type="text" autocomplete="username">
|
@ -3,7 +3,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>proxmox - dashboard</title>
|
<title>{{.Organization}} - dashboard</title>
|
||||||
<link rel="icon" href="images/favicon.svg" sizes="any" type="image/svg+xml">
|
<link rel="icon" href="images/favicon.svg" sizes="any" type="image/svg+xml">
|
||||||
<link rel="stylesheet" href="modules/w3.css">
|
<link rel="stylesheet" href="modules/w3.css">
|
||||||
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
|
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
|
||||||
@ -34,7 +34,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<h1>proxmox</h1>
|
<h1>{{.Organization}}</h1>
|
||||||
<label for="navtoggle">☰</label>
|
<label for="navtoggle">☰</label>
|
||||||
<input type="checkbox" id="navtoggle">
|
<input type="checkbox" id="navtoggle">
|
||||||
<nav id="navigation">
|
<nav id="navigation">
|
Before Width: | Height: | Size: 310 B After Width: | Height: | Size: 310 B |
Before Width: | Height: | Size: 307 B After Width: | Height: | Size: 307 B |
Before Width: | Height: | Size: 331 B After Width: | Height: | Size: 331 B |
Before Width: | Height: | Size: 412 B After Width: | Height: | Size: 412 B |
Before Width: | Height: | Size: 467 B After Width: | Height: | Size: 467 B |
Before Width: | Height: | Size: 398 B After Width: | Height: | Size: 398 B |
Before Width: | Height: | Size: 76 B After Width: | Height: | Size: 76 B |
Before Width: | Height: | Size: 318 B After Width: | Height: | Size: 318 B |
Before Width: | Height: | Size: 215 B After Width: | Height: | Size: 215 B |
Before Width: | Height: | Size: 317 B After Width: | Height: | Size: 317 B |
Before Width: | Height: | Size: 212 B After Width: | Height: | Size: 212 B |
Before Width: | Height: | Size: 345 B After Width: | Height: | Size: 345 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 565 B After Width: | Height: | Size: 565 B |
Before Width: | Height: | Size: 458 B After Width: | Height: | Size: 458 B |
Before Width: | Height: | Size: 238 B After Width: | Height: | Size: 238 B |
Before Width: | Height: | Size: 310 B After Width: | Height: | Size: 310 B |
Before Width: | Height: | Size: 316 B After Width: | Height: | Size: 316 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 367 B After Width: | Height: | Size: 367 B |
Before Width: | Height: | Size: 195 B After Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 813 B After Width: | Height: | Size: 813 B |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 509 B After Width: | Height: | Size: 509 B |
Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 421 B |
Before Width: | Height: | Size: 298 B After Width: | Height: | Size: 298 B |
Before Width: | Height: | Size: 628 B After Width: | Height: | Size: 628 B |
Before Width: | Height: | Size: 565 B After Width: | Height: | Size: 565 B |
Before Width: | Height: | Size: 163 B After Width: | Height: | Size: 163 B |
Before Width: | Height: | Size: 164 B After Width: | Height: | Size: 164 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
@ -1,5 +1,5 @@
|
|||||||
import { dialog } from "./dialog.js";
|
import { dialog } from "./dialog.js";
|
||||||
import { requestAPI, goToPage, getCookie, setTitleAndHeader, setAppearance } from "./utils.js";
|
import { requestAPI, goToPage, getCookie, setAppearance } from "./utils.js";
|
||||||
|
|
||||||
class ResourceChart extends HTMLElement {
|
class ResourceChart extends HTMLElement {
|
||||||
constructor () {
|
constructor () {
|
||||||
@ -139,7 +139,6 @@ const prefixes = {
|
|||||||
|
|
||||||
async function init () {
|
async function init () {
|
||||||
setAppearance();
|
setAppearance();
|
||||||
setTitleAndHeader();
|
|
||||||
const cookie = document.cookie;
|
const cookie = document.cookie;
|
||||||
if (cookie === "") {
|
if (cookie === "") {
|
||||||
goToPage("login.html");
|
goToPage("login.html");
|
@ -1,4 +1,4 @@
|
|||||||
import { requestPVE, requestAPI, goToPage, setTitleAndHeader, setAppearance, getSearchSettings, goToURL, instancesConfig, nodesConfig, setSVGSrc, setSVGAlt } from "./utils.js";
|
import { requestPVE, requestAPI, goToPage, setAppearance, getSearchSettings, goToURL, instancesConfig, nodesConfig, setSVGSrc, setSVGAlt } from "./utils.js";
|
||||||
import { alert, dialog } from "./dialog.js";
|
import { alert, dialog } from "./dialog.js";
|
||||||
import { setupClientSync } from "./clientsync.js";
|
import { setupClientSync } from "./clientsync.js";
|
||||||
import wfaInit from "../modules/wfa.js";
|
import wfaInit from "../modules/wfa.js";
|
||||||
@ -265,7 +265,6 @@ let instances = [];
|
|||||||
|
|
||||||
async function init () {
|
async function init () {
|
||||||
setAppearance();
|
setAppearance();
|
||||||
setTitleAndHeader();
|
|
||||||
const cookie = document.cookie;
|
const cookie = document.cookie;
|
||||||
if (cookie === "") {
|
if (cookie === "") {
|
||||||
goToPage("login.html");
|
goToPage("login.html");
|
@ -1,4 +1,4 @@
|
|||||||
import { requestPVE, requestAPI, goToPage, getURIData, resourcesConfig, setTitleAndHeader, bootConfig, setAppearance, setSVGSrc, setSVGAlt, mergeDeep, addResourceLine } from "./utils.js";
|
import { requestPVE, requestAPI, goToPage, getURIData, resourcesConfig, bootConfig, setAppearance, setSVGSrc, setSVGAlt, mergeDeep, addResourceLine } from "./utils.js";
|
||||||
import { alert, dialog } from "./dialog.js";
|
import { alert, dialog } from "./dialog.js";
|
||||||
|
|
||||||
window.addEventListener("DOMContentLoaded", init); // do the dumb thing where the disk config refreshes every second
|
window.addEventListener("DOMContentLoaded", init); // do the dumb thing where the disk config refreshes every second
|
||||||
@ -42,7 +42,6 @@ const resourcesConfigPage = mergeDeep({}, resourcesConfig, resourceInputTypes);
|
|||||||
|
|
||||||
async function init () {
|
async function init () {
|
||||||
setAppearance();
|
setAppearance();
|
||||||
setTitleAndHeader();
|
|
||||||
const cookie = document.cookie;
|
const cookie = document.cookie;
|
||||||
if (cookie === "") {
|
if (cookie === "") {
|
||||||
goToPage("login.html");
|
goToPage("login.html");
|
@ -1,4 +1,4 @@
|
|||||||
import { goToPage, requestPVE, setTitleAndHeader, setAppearance, requestAPI } from "./utils.js";
|
import { goToPage, requestPVE, setAppearance, requestAPI } from "./utils.js";
|
||||||
import { alert } from "./dialog.js";
|
import { alert } from "./dialog.js";
|
||||||
|
|
||||||
window.addEventListener("DOMContentLoaded", init);
|
window.addEventListener("DOMContentLoaded", init);
|
||||||
@ -6,7 +6,6 @@ window.addEventListener("DOMContentLoaded", init);
|
|||||||
async function init () {
|
async function init () {
|
||||||
await deleteAllCookies();
|
await deleteAllCookies();
|
||||||
setAppearance();
|
setAppearance();
|
||||||
setTitleAndHeader();
|
|
||||||
const formSubmitButton = document.querySelector("#submit");
|
const formSubmitButton = document.querySelector("#submit");
|
||||||
const realms = await requestPVE("/access/domains", "GET");
|
const realms = await requestPVE("/access/domains", "GET");
|
||||||
const realmSelect = document.querySelector("#realm");
|
const realmSelect = document.querySelector("#realm");
|
@ -1,10 +1,9 @@
|
|||||||
import { setTitleAndHeader, setAppearance } from "./utils.js";
|
import { setAppearance } from "./utils.js";
|
||||||
|
|
||||||
window.addEventListener("DOMContentLoaded", init);
|
window.addEventListener("DOMContentLoaded", init);
|
||||||
|
|
||||||
function init () {
|
function init () {
|
||||||
setAppearance();
|
setAppearance();
|
||||||
setTitleAndHeader();
|
|
||||||
const scheme = localStorage.getItem("sync-scheme");
|
const scheme = localStorage.getItem("sync-scheme");
|
||||||
if (scheme) {
|
if (scheme) {
|
||||||
document.querySelector(`#sync-${scheme}`).checked = true;
|
document.querySelector(`#sync-${scheme}`).checked = true;
|
@ -1,4 +1,4 @@
|
|||||||
import { API, organization } from "../vars.js";
|
import { API } from "../vars.js";
|
||||||
|
|
||||||
export const resourcesConfig = {
|
export const resourcesConfig = {
|
||||||
cpu: {
|
cpu: {
|
||||||
@ -290,7 +290,7 @@ export function goToURL (href, data = {}, newwindow = false) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (newwindow) {
|
if (newwindow) {
|
||||||
window.open(url, `${organization} - dashboard`, "height=480,width=848");
|
window.open(url, document.title, "height=480,width=848");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
window.location.assign(url.toString());
|
window.location.assign(url.toString());
|
||||||
@ -302,11 +302,6 @@ export function getURIData () {
|
|||||||
return Object.fromEntries(url.searchParams);
|
return Object.fromEntries(url.searchParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function setTitleAndHeader () {
|
|
||||||
document.title = `${organization} - dashboard`;
|
|
||||||
document.querySelector("h1").innerText = organization;
|
|
||||||
}
|
|
||||||
|
|
||||||
const settingsDefault = {
|
const settingsDefault = {
|
||||||
"sync-scheme": "always",
|
"sync-scheme": "always",
|
||||||
"sync-rate": 5,
|
"sync-rate": 5,
|