mirror of
https://github.com/bastienwirtz/homer.git
synced 2024-11-07 08:44:00 +01:00
Linting update
This commit is contained in:
parent
ecf664d19b
commit
de4b7e6124
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "homer",
|
||||
"version": "23.09.1",
|
||||
"version": "23.10.1",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"mock": "http-server dummy-data/ --cors",
|
||||
|
@ -208,7 +208,7 @@ export default {
|
||||
|
||||
if (this.currentPage !== "default") {
|
||||
let pageConfig = await this.getConfig(
|
||||
`assets/${this.currentPage}.yml`
|
||||
`assets/${this.currentPage}.yml`,
|
||||
);
|
||||
config = Object.assign(config, pageConfig);
|
||||
}
|
||||
@ -245,7 +245,7 @@ export default {
|
||||
return response
|
||||
.text()
|
||||
.then((body) => {
|
||||
return parse(body, {merge: true});
|
||||
return parse(body, { merge: true });
|
||||
})
|
||||
.then(function (config) {
|
||||
if (config.externalConfig) {
|
||||
|
@ -30,21 +30,21 @@ export default {
|
||||
that.checkOffline();
|
||||
}
|
||||
},
|
||||
false
|
||||
false,
|
||||
);
|
||||
window.addEventListener(
|
||||
"online",
|
||||
function () {
|
||||
that.checkOffline();
|
||||
},
|
||||
false
|
||||
false,
|
||||
);
|
||||
window.addEventListener(
|
||||
"offline",
|
||||
function () {
|
||||
this.offline = true;
|
||||
},
|
||||
false
|
||||
false,
|
||||
);
|
||||
},
|
||||
methods: {
|
||||
@ -57,7 +57,9 @@ export default {
|
||||
// extra check to make sure we're not offline
|
||||
let that = this;
|
||||
const urlPath = window.location.pathname.replace(/\/+$/, "");
|
||||
const aliveCheckUrl = `${window.location.origin}${urlPath}/index.html?t=${new Date().valueOf()}`;
|
||||
const aliveCheckUrl = `${
|
||||
window.location.origin
|
||||
}${urlPath}/index.html?t=${new Date().valueOf()}`;
|
||||
return fetch(aliveCheckUrl, {
|
||||
method: "HEAD",
|
||||
cache: "no-store",
|
||||
|
@ -84,10 +84,13 @@ export default {
|
||||
},
|
||||
|
||||
watchIsDark: function () {
|
||||
matchMedia("(prefers-color-scheme: dark)").addEventListener("change", () => {
|
||||
this.isDark = this.getIsDark();
|
||||
this.$emit("updated", this.isDark);
|
||||
});
|
||||
matchMedia("(prefers-color-scheme: dark)").addEventListener(
|
||||
"change",
|
||||
() => {
|
||||
this.isDark = this.getIsDark();
|
||||
this.$emit("updated", this.isDark);
|
||||
},
|
||||
);
|
||||
},
|
||||
},
|
||||
};
|
||||
|
@ -63,12 +63,12 @@ export default {
|
||||
methods: {
|
||||
fetchStatus: async function () {
|
||||
this.status = await this.fetch("/control/status").catch((e) =>
|
||||
console.log(e)
|
||||
console.log(e),
|
||||
);
|
||||
},
|
||||
fetchStats: async function () {
|
||||
this.stats = await this.fetch("/control/stats").catch((e) =>
|
||||
console.log(e)
|
||||
console.log(e),
|
||||
);
|
||||
},
|
||||
},
|
||||
|
@ -66,7 +66,7 @@ export default {
|
||||
const apikey = this.item.apikey;
|
||||
if (!apikey) {
|
||||
console.error(
|
||||
"apikey is not present in config.yml for the Healthchecks entry!"
|
||||
"apikey is not present in config.yml for the Healthchecks entry!",
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ export default {
|
||||
},
|
||||
data: () => {
|
||||
return {
|
||||
users: null,
|
||||
users: null,
|
||||
photos: null,
|
||||
videos: null,
|
||||
usage: null,
|
||||
@ -56,25 +56,27 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
humanizeSize: function () {
|
||||
let bytes = this.usage;
|
||||
if (Math.abs(bytes) < 1024)
|
||||
return bytes + ' B';
|
||||
let bytes = this.usage;
|
||||
if (Math.abs(bytes) < 1024) return bytes + " B";
|
||||
|
||||
const units = ['KiB', 'MiB', 'GiB', 'TiB'];
|
||||
let u = -1;
|
||||
do {
|
||||
bytes /= 1024;
|
||||
++u;
|
||||
} while (Math.round(Math.abs(bytes) * 100) / 100 >= 1024 && u < units.length - 1);
|
||||
const units = ["KiB", "MiB", "GiB", "TiB"];
|
||||
let u = -1;
|
||||
do {
|
||||
bytes /= 1024;
|
||||
++u;
|
||||
} while (
|
||||
Math.round(Math.abs(bytes) * 100) / 100 >= 1024 &&
|
||||
u < units.length - 1
|
||||
);
|
||||
|
||||
return bytes.toFixed(2) + ' ' + units[u];
|
||||
return bytes.toFixed(2) + " " + units[u];
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
fetchConfig: function () {
|
||||
const headers = {
|
||||
"x-api-key": this.item.apikey,
|
||||
};
|
||||
};
|
||||
|
||||
this.fetch(`/api/server-info/stats`, { headers })
|
||||
.then((stats) => {
|
||||
@ -82,7 +84,7 @@ export default {
|
||||
this.videos = stats.videos;
|
||||
this.usage = stats.usage;
|
||||
this.users = stats.usageByUser.length;
|
||||
})
|
||||
})
|
||||
.catch((e) => {
|
||||
console.error(e);
|
||||
this.serverError = true;
|
||||
@ -123,4 +125,4 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
@ -45,7 +45,7 @@ export default {
|
||||
if (this.item.subtitle != null) return;
|
||||
|
||||
this.meal = await this.fetch("/api/meal-plans/today/", { headers }).catch(
|
||||
(e) => console.log(e)
|
||||
(e) => console.log(e),
|
||||
);
|
||||
this.stats = await this.fetch("/api/debug/statistics/", {
|
||||
headers,
|
||||
|
@ -6,7 +6,9 @@
|
||||
<template v-if="item.subtitle && !state">
|
||||
{{ item.subtitle }}
|
||||
</template>
|
||||
<template v-if="!error && display == 'text' && statusClass == 'in-progress'">
|
||||
<template
|
||||
v-if="!error && display == 'text' && statusClass == 'in-progress'"
|
||||
>
|
||||
<i class="fa-solid fa-gear mr-1"></i>
|
||||
<b v-if="completion">{{ completion.toFixed() }}%</b>
|
||||
<span class="separator mx-1"> | </span>
|
||||
@ -17,9 +19,13 @@
|
||||
</template>
|
||||
<template v-if="!error && display == 'text' && statusClass == 'ready'">
|
||||
<i class="fa-solid fa-temperature-half mr-1"></i>
|
||||
<b v-if="printer.temperature.bed">{{ printer.temperature.bed.actual.toFixed() }} C</b>
|
||||
<b v-if="printer.temperature.bed"
|
||||
>{{ printer.temperature.bed.actual.toFixed() }} C</b
|
||||
>
|
||||
<span class="separator mx-1"> | </span>
|
||||
<b v-if="printer.temperature.tool0">{{ printer.temperature.tool0.actual.toFixed() }} C</b>
|
||||
<b v-if="printer.temperature.tool0"
|
||||
>{{ printer.temperature.tool0.actual.toFixed() }} C</b
|
||||
>
|
||||
</template>
|
||||
<template v-if="!error && display == 'bar'">
|
||||
<progress
|
||||
@ -28,7 +34,7 @@
|
||||
:value="completion"
|
||||
max="100"
|
||||
:title="`${state} - ${completion.toFixed()}%, ${toTime(
|
||||
printTimeLeft
|
||||
printTimeLeft,
|
||||
)} left`"
|
||||
>
|
||||
{{ completion }}%
|
||||
@ -99,7 +105,9 @@ export default {
|
||||
},
|
||||
fetchPrinterStatus: async function () {
|
||||
try {
|
||||
const response = await this.fetch(`api/printer?apikey=${this.item.apikey}`);
|
||||
const response = await this.fetch(
|
||||
`api/printer?apikey=${this.item.apikey}`,
|
||||
);
|
||||
this.printer = response;
|
||||
this.error = response.error;
|
||||
} catch (e) {
|
||||
|
@ -40,7 +40,7 @@ export default {
|
||||
const apikey = this.item.apikey;
|
||||
if (!apikey) {
|
||||
console.error(
|
||||
"apikey is not present in config.yml for the paperless entry!"
|
||||
"apikey is not present in config.yml for the paperless entry!",
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
@ -1,104 +1,108 @@
|
||||
<template>
|
||||
<Generic :item="item">
|
||||
<template #indicator>
|
||||
<div class="notifs">
|
||||
<strong class="notif total" title="Total Devices">
|
||||
{{ total }}
|
||||
</strong>
|
||||
<strong class="notif connected" title="Connected Devices">
|
||||
{{ connected }}
|
||||
</strong>
|
||||
<strong class="notif newdevices" title="New Devices">
|
||||
{{ newdevices }}
|
||||
</strong>
|
||||
<strong class="notif alert" title="Down Alerts">
|
||||
{{ downalert }}
|
||||
</strong>
|
||||
<strong v-if="serverError" class="notif alert"
|
||||
title="Connection error to PiAlert server, check the url in config.yml">?</strong>
|
||||
</div>
|
||||
</template>
|
||||
</Generic>
|
||||
<Generic :item="item">
|
||||
<template #indicator>
|
||||
<div class="notifs">
|
||||
<strong class="notif total" title="Total Devices">
|
||||
{{ total }}
|
||||
</strong>
|
||||
<strong class="notif connected" title="Connected Devices">
|
||||
{{ connected }}
|
||||
</strong>
|
||||
<strong class="notif newdevices" title="New Devices">
|
||||
{{ newdevices }}
|
||||
</strong>
|
||||
<strong class="notif alert" title="Down Alerts">
|
||||
{{ downalert }}
|
||||
</strong>
|
||||
<strong
|
||||
v-if="serverError"
|
||||
class="notif alert"
|
||||
title="Connection error to PiAlert server, check the url in config.yml"
|
||||
>?</strong
|
||||
>
|
||||
</div>
|
||||
</template>
|
||||
</Generic>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import service from "@/mixins/service.js";
|
||||
import Generic from "./Generic.vue";
|
||||
|
||||
export default {
|
||||
name: "PiAlert",
|
||||
mixins: [service],
|
||||
props: {
|
||||
item: Object,
|
||||
},
|
||||
components: {
|
||||
Generic,
|
||||
},
|
||||
data: () => {
|
||||
return {
|
||||
total: 0,
|
||||
connected: 0,
|
||||
newdevices: 0,
|
||||
downalert: 0,
|
||||
serverError: false,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
const updateInterval = parseInt(this.item.updateInterval, 10) || 0;
|
||||
if (updateInterval > 0) {
|
||||
setInterval(() => this.fetchStatus(), updateInterval);
|
||||
}
|
||||
this.fetchStatus();
|
||||
},
|
||||
methods: {
|
||||
fetchStatus: async function () {
|
||||
this.fetch("/php/server/devices.php?action=getDevicesTotals")
|
||||
.then((response) => {
|
||||
this.total = response[0];
|
||||
this.connected = response[1];
|
||||
this.newdevices = response[3];
|
||||
this.downalert = response[4];
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(e);
|
||||
this.serverError = true;
|
||||
});
|
||||
},
|
||||
name: "PiAlert",
|
||||
mixins: [service],
|
||||
props: {
|
||||
item: Object,
|
||||
},
|
||||
components: {
|
||||
Generic,
|
||||
},
|
||||
data: () => {
|
||||
return {
|
||||
total: 0,
|
||||
connected: 0,
|
||||
newdevices: 0,
|
||||
downalert: 0,
|
||||
serverError: false,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
const updateInterval = parseInt(this.item.updateInterval, 10) || 0;
|
||||
if (updateInterval > 0) {
|
||||
setInterval(() => this.fetchStatus(), updateInterval);
|
||||
}
|
||||
this.fetchStatus();
|
||||
},
|
||||
methods: {
|
||||
fetchStatus: async function () {
|
||||
this.fetch("/php/server/devices.php?action=getDevicesTotals")
|
||||
.then((response) => {
|
||||
this.total = response[0];
|
||||
this.connected = response[1];
|
||||
this.newdevices = response[3];
|
||||
this.downalert = response[4];
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(e);
|
||||
this.serverError = true;
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped lang="scss">
|
||||
.notifs {
|
||||
position: absolute;
|
||||
color: white;
|
||||
font-family: sans-serif;
|
||||
top: 0.3em;
|
||||
right: 0.5em;
|
||||
position: absolute;
|
||||
color: white;
|
||||
font-family: sans-serif;
|
||||
top: 0.3em;
|
||||
right: 0.5em;
|
||||
|
||||
.notif {
|
||||
display: inline-block;
|
||||
padding: 0.2em 0.35em;
|
||||
border-radius: 0.25em;
|
||||
position: relative;
|
||||
margin-left: 0.3em;
|
||||
font-size: 0.8em;
|
||||
.notif {
|
||||
display: inline-block;
|
||||
padding: 0.2em 0.35em;
|
||||
border-radius: 0.25em;
|
||||
position: relative;
|
||||
margin-left: 0.3em;
|
||||
font-size: 0.8em;
|
||||
|
||||
&.total {
|
||||
background-color: #4fb5d6;
|
||||
}
|
||||
|
||||
&.connected {
|
||||
background-color: #4fd671;
|
||||
}
|
||||
|
||||
&.newdevices {
|
||||
background-color: #d08d2e;
|
||||
}
|
||||
|
||||
&.alert {
|
||||
background-color: #e51111;
|
||||
}
|
||||
&.total {
|
||||
background-color: #4fb5d6;
|
||||
}
|
||||
|
||||
&.connected {
|
||||
background-color: #4fd671;
|
||||
}
|
||||
|
||||
&.newdevices {
|
||||
background-color: #d08d2e;
|
||||
}
|
||||
|
||||
&.alert {
|
||||
background-color: #e51111;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
@ -52,8 +52,9 @@ export default {
|
||||
const authQueryParams = this.item.apikey
|
||||
? `?summaryRaw&auth=${this.item.apikey}`
|
||||
: "";
|
||||
const result = await this.fetch(`/api.php${authQueryParams}`)
|
||||
.catch((e) => console.log(e));
|
||||
const result = await this.fetch(`/api.php${authQueryParams}`).catch((e) =>
|
||||
console.log(e),
|
||||
);
|
||||
|
||||
this.status = result.status;
|
||||
this.ads_percentage_today = result.ads_percentage_today;
|
||||
|
@ -78,7 +78,7 @@ export default {
|
||||
this.endpoints = await this.fetch("/api/endpoints", { headers }).catch(
|
||||
(e) => {
|
||||
console.error(e);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
let containers = [];
|
||||
@ -93,7 +93,7 @@ export default {
|
||||
const endpointContainers = await this.fetch(uri, { headers }).catch(
|
||||
(e) => {
|
||||
console.error(e);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
if (endpointContainers) {
|
||||
|
@ -72,7 +72,7 @@ export default {
|
||||
countFiring: function () {
|
||||
if (this.api) {
|
||||
return this.api.data?.alerts?.filter(
|
||||
(alert) => alert.state === AlertsStatus.firing
|
||||
(alert) => alert.state === AlertsStatus.firing,
|
||||
).length;
|
||||
}
|
||||
return 0;
|
||||
@ -80,7 +80,7 @@ export default {
|
||||
countPending: function () {
|
||||
if (this.api) {
|
||||
return this.api.data?.alerts?.filter(
|
||||
(alert) => alert.state === AlertsStatus.pending
|
||||
(alert) => alert.state === AlertsStatus.pending,
|
||||
).length;
|
||||
}
|
||||
return 0;
|
||||
@ -88,7 +88,7 @@ export default {
|
||||
countInactive: function () {
|
||||
if (this.api) {
|
||||
return this.api.data?.alerts?.filter(
|
||||
(alert) => alert.state === AlertsStatus.pending
|
||||
(alert) => alert.state === AlertsStatus.pending,
|
||||
).length;
|
||||
}
|
||||
return 0;
|
||||
|
@ -122,7 +122,7 @@ export default {
|
||||
};
|
||||
const status = await this.fetch(
|
||||
`/api2/json/nodes/${this.item.node}/status`,
|
||||
options
|
||||
options,
|
||||
);
|
||||
// main metrics:
|
||||
const decimalsToShow = this.item.hide_decimals ? 0 : 1;
|
||||
@ -139,7 +139,7 @@ export default {
|
||||
if (this.isValueShown("vms")) {
|
||||
const vms = await this.fetch(
|
||||
`/api2/json/nodes/${this.item.node}/qemu`,
|
||||
options
|
||||
options,
|
||||
);
|
||||
this.parseVMsAndLXCs(vms, this.vms);
|
||||
}
|
||||
@ -147,7 +147,7 @@ export default {
|
||||
if (this.isValueShown("lxcs")) {
|
||||
const lxcs = await this.fetch(
|
||||
`/api2/json/nodes/${this.item.node}/lxc`,
|
||||
options
|
||||
options,
|
||||
);
|
||||
this.parseVMsAndLXCs(lxcs, this.lxcs);
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ const displayRate = (rate) => {
|
||||
|
||||
return (
|
||||
Intl.NumberFormat(undefined, { maximumFractionDigits: 2 }).format(
|
||||
rate || 0
|
||||
rate || 0,
|
||||
) + ` ${units[i]}/s`
|
||||
);
|
||||
};
|
||||
@ -105,8 +105,8 @@ export default {
|
||||
return this.getXml(methodName).then((xml) =>
|
||||
parseInt(
|
||||
xml.getElementsByTagName("value")[0].firstChild.textContent,
|
||||
10
|
||||
)
|
||||
10,
|
||||
),
|
||||
);
|
||||
},
|
||||
// Fetch the numer of torrents by requesting the download list
|
||||
@ -143,7 +143,7 @@ export default {
|
||||
return response.text();
|
||||
})
|
||||
.then((text) =>
|
||||
Promise.resolve(new DOMParser().parseFromString(text, "text/xml"))
|
||||
Promise.resolve(new DOMParser().parseFromString(text, "text/xml")),
|
||||
);
|
||||
},
|
||||
},
|
||||
|
@ -56,7 +56,7 @@ export default {
|
||||
fetchStatus: async function () {
|
||||
try {
|
||||
const response = await this.fetch(
|
||||
`/api?output=json&apikey=${this.item.apikey}&mode=queue`
|
||||
`/api?output=json&apikey=${this.item.apikey}&mode=queue`,
|
||||
);
|
||||
this.error = false;
|
||||
this.stats = response.queue;
|
||||
|
@ -51,7 +51,7 @@ export default {
|
||||
fetchStatus: async function () {
|
||||
try {
|
||||
const response = await this.fetch(
|
||||
`/api/v2?apikey=${this.item.apikey}&cmd=get_activity`
|
||||
`/api/v2?apikey=${this.item.apikey}&cmd=get_activity`,
|
||||
);
|
||||
this.error = false;
|
||||
this.stats = response.response.data;
|
||||
|
@ -72,14 +72,20 @@ export default {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"Accept": "application/json",
|
||||
Accept: "application/json",
|
||||
},
|
||||
body: JSON.stringify({"headers":{"content-Type":"application/json"},"data":{"collection":"StatisticsJSONDB","mode":"getById","docID":"statistics","obj":{}},"timeout":1000}),
|
||||
body: JSON.stringify({
|
||||
headers: { "content-Type": "application/json" },
|
||||
data: {
|
||||
collection: "StatisticsJSONDB",
|
||||
mode: "getById",
|
||||
docID: "statistics",
|
||||
obj: {},
|
||||
},
|
||||
timeout: 1000,
|
||||
}),
|
||||
};
|
||||
const response = await this.fetch(
|
||||
`/api/v2/cruddb`,
|
||||
options
|
||||
);
|
||||
const response = await this.fetch(`/api/v2/cruddb`, options);
|
||||
this.error = false;
|
||||
this.stats = response;
|
||||
} catch (e) {
|
||||
|
@ -43,7 +43,7 @@ const displayRate = (rate) => {
|
||||
}
|
||||
return (
|
||||
Intl.NumberFormat(undefined, { maximumFractionDigits: 2 }).format(
|
||||
rate || 0
|
||||
rate || 0,
|
||||
) + ` ${units[i]}/s`
|
||||
);
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user