Merge branch 'gethomepage:dev' into integration
This commit is contained in:
commit
1e52313a91
8
.github/DISCUSSION_TEMPLATE/support.yml
vendored
8
.github/DISCUSSION_TEMPLATE/support.yml
vendored
@ -54,3 +54,11 @@ body:
|
|||||||
description: Please include output from your [troubleshooting tests](https://gethomepage.dev/more/troubleshooting/#service-widget-errors), if relevant.
|
description: Please include output from your [troubleshooting tests](https://gethomepage.dev/more/troubleshooting/#service-widget-errors), if relevant.
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
## ⚠️ STOP ⚠️
|
||||||
|
|
||||||
|
Before you submit this support request, please ensure you have entered your configuration files and actually followed the steps from the troubleshooting guide linked above, if relevant. The troubleshooting steps often help to solve the problem.
|
||||||
|
|
||||||
|
*Please remember that this project is maintained by regular people **just like you**, so if you don't take the time to fill out the requested information, don't expect a reply back.*
|
||||||
|
|||||||
@ -13,6 +13,14 @@ You can customize the title of the page if you'd like.
|
|||||||
title: My Awesome Homepage
|
title: My Awesome Homepage
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
You can customize the description of the page if you'd like.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
description: A description of my awesome homepage
|
||||||
|
```
|
||||||
|
|
||||||
## Start URL
|
## Start URL
|
||||||
|
|
||||||
You can customize the start_url as required for installable apps. The default is "/".
|
You can customize the start_url as required for installable apps. The default is "/".
|
||||||
|
|||||||
@ -7,7 +7,7 @@ Learn more about [Beszel](https://github.com/henrygd/beszel)
|
|||||||
|
|
||||||
The widget has two modes, a single system with detailed info if `systemId` is provided, or an overview of all systems if `systemId` is not provided.
|
The widget has two modes, a single system with detailed info if `systemId` is provided, or an overview of all systems if `systemId` is not provided.
|
||||||
|
|
||||||
The `systemID` in the `id` field on the collections page of Beszel.
|
The `systemID` is the `id` field on the collections page of Beszel under the PocketBase admin panel. You can also use the 'nice name' from the Beszel UI.
|
||||||
|
|
||||||
Allowed fields for 'overview' mode: `["systems", "up"]`
|
Allowed fields for 'overview' mode: `["systems", "up"]`
|
||||||
Allowed fields for a single system: `["name", "status", "updated", "cpu", "memory", "disk", "network"]`
|
Allowed fields for a single system: `["name", "status", "updated", "cpu", "memory", "disk", "network"]`
|
||||||
|
|||||||
@ -982,6 +982,9 @@
|
|||||||
"name": "Name",
|
"name": "Name",
|
||||||
"systems": "Systems",
|
"systems": "Systems",
|
||||||
"up": "Up",
|
"up": "Up",
|
||||||
|
"down": "Down",
|
||||||
|
"paused": "Paused",
|
||||||
|
"pending": "Pending",
|
||||||
"status": "Status",
|
"status": "Status",
|
||||||
"updated": "Updated",
|
"updated": "Updated",
|
||||||
"cpu": "CPU",
|
"cpu": "CPU",
|
||||||
|
|||||||
@ -24,9 +24,9 @@ export default function BookmarksGroup({
|
|||||||
<div
|
<div
|
||||||
key={bookmarks.name}
|
key={bookmarks.name}
|
||||||
className={classNames(
|
className={classNames(
|
||||||
"bookmark-group",
|
"bookmark-group flex-1 overflow-hidden",
|
||||||
layout?.style === "row" ? "basis-full" : "basis-full md:basis-1/4 lg:basis-1/5 xl:basis-1/6",
|
layout?.style === "row" ? "basis-full" : "basis-full md:basis-1/4 lg:basis-1/5 xl:basis-1/6",
|
||||||
layout?.header === false ? "flex-1 px-1 -my-1 overflow-hidden" : "flex-1 p-1 overflow-hidden",
|
layout?.header === false ? "px-1" : "p-1 pb-0",
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<Disclosure defaultOpen={!(layout?.initiallyCollapsed ?? groupsInitiallyCollapsed) ?? true}>
|
<Disclosure defaultOpen={!(layout?.initiallyCollapsed ?? groupsInitiallyCollapsed) ?? true}>
|
||||||
|
|||||||
@ -5,15 +5,14 @@ import { columnMap } from "../../utils/layout/columns";
|
|||||||
import Item from "components/bookmarks/item";
|
import Item from "components/bookmarks/item";
|
||||||
|
|
||||||
export default function List({ bookmarks, layout, bookmarksStyle }) {
|
export default function List({ bookmarks, layout, bookmarksStyle }) {
|
||||||
let classes =
|
let classes = layout?.style === "row" ? `grid ${columnMap[layout?.columns]} gap-x-2` : "flex flex-col bookmark-list";
|
||||||
layout?.style === "row" ? `grid ${columnMap[layout?.columns]} gap-x-2` : "flex flex-col mt-3 bookmark-list";
|
|
||||||
const style = {};
|
const style = {};
|
||||||
if (layout?.iconsOnly || bookmarksStyle === "icons") {
|
if (layout?.iconsOnly || bookmarksStyle === "icons") {
|
||||||
classes = "grid gap-3 mt-3 bookmark-list";
|
classes = "grid gap-2 bookmark-list";
|
||||||
style.gridTemplateColumns = "repeat(auto-fill, minmax(60px, 1fr))";
|
style.gridTemplateColumns = "repeat(auto-fill, minmax(60px, 1fr))";
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<ul className={classNames(classes)} style={style}>
|
<ul className={classNames(classes, "mb-2", layout?.header === false ? "" : "mt-3")} style={style}>
|
||||||
{bookmarks.map((bookmark) => (
|
{bookmarks.map((bookmark) => (
|
||||||
<Item
|
<Item
|
||||||
key={`${bookmark.name}-${bookmark.href}`}
|
key={`${bookmark.name}-${bookmark.href}`}
|
||||||
|
|||||||
@ -4,10 +4,6 @@ export default function Document() {
|
|||||||
return (
|
return (
|
||||||
<Html>
|
<Html>
|
||||||
<Head>
|
<Head>
|
||||||
<meta
|
|
||||||
name="description"
|
|
||||||
content="A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations."
|
|
||||||
/>
|
|
||||||
<meta name="mobile-web-app-capable" content="yes" />
|
<meta name="mobile-web-app-capable" content="yes" />
|
||||||
<link rel="manifest" href="/site.webmanifest?v=4" crossOrigin="use-credentials" />
|
<link rel="manifest" href="/site.webmanifest?v=4" crossOrigin="use-credentials" />
|
||||||
<link rel="preload" href="/api/config/custom.css" as="style" />
|
<link rel="preload" href="/api/config/custom.css" as="style" />
|
||||||
|
|||||||
@ -359,6 +359,13 @@ function Home({ initialSettings }) {
|
|||||||
<>
|
<>
|
||||||
<Head>
|
<Head>
|
||||||
<title>{initialSettings.title || "Homepage"}</title>
|
<title>{initialSettings.title || "Homepage"}</title>
|
||||||
|
<meta
|
||||||
|
name="description"
|
||||||
|
content={
|
||||||
|
initialSettings.description ||
|
||||||
|
"A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations."
|
||||||
|
}
|
||||||
|
/>
|
||||||
{settings.base && <base href={settings.base} />}
|
{settings.base && <base href={settings.base} />}
|
||||||
{settings.favicon ? (
|
{settings.favicon ? (
|
||||||
<>
|
<>
|
||||||
|
|||||||
@ -26,7 +26,7 @@ export default function Component({ service }) {
|
|||||||
if (systems && !systems.items) {
|
if (systems && !systems.items) {
|
||||||
finalError = { message: "No items returned from beszel API" };
|
finalError = { message: "No items returned from beszel API" };
|
||||||
} else if (systems && systems.items && systemId) {
|
} else if (systems && systems.items && systemId) {
|
||||||
system = systems.items.find((item) => item.id === systemId);
|
system = systems.items.find((item) => item.id === systemId || item.name === systemId);
|
||||||
if (!system) {
|
if (!system) {
|
||||||
finalError = { message: `System with id ${systemId} not found` };
|
finalError = { message: `System with id ${systemId} not found` };
|
||||||
}
|
}
|
||||||
|
|||||||
@ -38,10 +38,16 @@ export default function Component({ service }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
data.splice(chart ? 5 : 1);
|
data.splice(chart ? 5 : 1);
|
||||||
|
let headerYPosition = "top-4";
|
||||||
|
let listYPosition = "bottom-4";
|
||||||
|
if (chart) {
|
||||||
|
headerYPosition = "-top-6";
|
||||||
|
listYPosition = "-top-3";
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container chart={chart}>
|
<Container chart={chart}>
|
||||||
<Block position="top-4 right-3 left-3">
|
<Block position={`${headerYPosition} right-3 left-3`}>
|
||||||
<div className="flex items-center text-xs">
|
<div className="flex items-center text-xs">
|
||||||
<div className="grow" />
|
<div className="grow" />
|
||||||
<div className="w-14 text-right italic">{t("resources.cpu")}</div>
|
<div className="w-14 text-right italic">{t("resources.cpu")}</div>
|
||||||
@ -49,7 +55,7 @@ export default function Component({ service }) {
|
|||||||
</div>
|
</div>
|
||||||
</Block>
|
</Block>
|
||||||
|
|
||||||
<Block position="bottom-4 right-3 left-3">
|
<Block position={`${listYPosition} right-3 left-3`}>
|
||||||
<div className="pointer-events-none text-theme-900 dark:text-theme-200">
|
<div className="pointer-events-none text-theme-900 dark:text-theme-200">
|
||||||
{data.map((item) => (
|
{data.map((item) => (
|
||||||
<div key={item[idKey]} className="text-[0.75rem] h-[0.8rem]">
|
<div key={item[idKey]} className="text-[0.75rem] h-[0.8rem]">
|
||||||
|
|||||||
@ -7,7 +7,7 @@ const widget = {
|
|||||||
mappings: {
|
mappings: {
|
||||||
ip: {
|
ip: {
|
||||||
endpoint: "publicip/ip",
|
endpoint: "publicip/ip",
|
||||||
validate: ["public_ip", "region", "country"],
|
validate: ["public_ip", "country"],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user