From 101461b7b59f4c194c260bb6980a9cfd64f9d88e Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 2 Jan 2025 16:25:32 -0800 Subject: [PATCH 1/5] Update getting-started.md --- docs/widgets/authoring/getting-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/widgets/authoring/getting-started.md b/docs/widgets/authoring/getting-started.md index d3aa106f..73d8b84c 100644 --- a/docs/widgets/authoring/getting-started.md +++ b/docs/widgets/authoring/getting-started.md @@ -46,9 +46,9 @@ See the [pre-commit documentation](https://pre-commit.com/#install) to get start In general, homepage is meant to be a dashboard for 'self-hosted' services and we believe it is a small way we can help showcase this kind of software. While exceptions are made, mostly when there is no viable self-hosted / open-source alternative, we ask that any widgets, etc. are developed primarily for a self-hosted tool. -## New Feature Guidelines +## New Feature or Enhancement Guidelines {#new-feature-guidelines} -- New features should be linked to an existing feature request. The purpose of this requirement is to avoid the addition (and maintenance) of features that might only benefit a small number of users. +- New features or enhancements, **no matter how small**, should be linked to an existing feature request. The purpose of this requirement is to avoid the addition (and maintenance) of features that might only benefit a small number of users. - If you have ideas for a larger feature you may want to open a discussion first. ## Service Widget Guidelines From a6e85240c6152caee146035a85178f4883d090ff Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 2 Jan 2025 17:13:36 -0800 Subject: [PATCH 2/5] Update getting-started.md --- docs/widgets/authoring/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/widgets/authoring/getting-started.md b/docs/widgets/authoring/getting-started.md index 73d8b84c..8e16b915 100644 --- a/docs/widgets/authoring/getting-started.md +++ b/docs/widgets/authoring/getting-started.md @@ -48,7 +48,7 @@ self-hosted / open-source alternative, we ask that any widgets, etc. are develop ## New Feature or Enhancement Guidelines {#new-feature-guidelines} -- New features or enhancements, **no matter how small**, should be linked to an existing feature request. The purpose of this requirement is to avoid the addition (and maintenance) of features that might only benefit a small number of users. +- New features or enhancements, **no matter how small**, must be linked to an existing feature request. The purpose of this requirement is to avoid the addition (and maintenance) of features that might only benefit a small number of users. - If you have ideas for a larger feature you may want to open a discussion first. ## Service Widget Guidelines From 2d98ac30f2ce1c37ccaef6e7b9cab948ce172ec1 Mon Sep 17 00:00:00 2001 From: Martin Bjeldbak Madsen Date: Fri, 3 Jan 2025 16:07:55 +1100 Subject: [PATCH 3/5] Documentation: update gluetun apikey config instructions (#4554) Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com> --- docs/widgets/services/gluetun.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/widgets/services/gluetun.md b/docs/widgets/services/gluetun.md index 44775b15..1cc68c9a 100644 --- a/docs/widgets/services/gluetun.md +++ b/docs/widgets/services/gluetun.md @@ -11,7 +11,7 @@ Learn more about [Gluetun](https://github.com/qdm12/gluetun). Allowed fields: `["public_ip", "region", "country"]`. -To setup authentication, follow [the official Gluetun documentation](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md#authentication). +To setup authentication, follow [the official Gluetun documentation](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md#authentication). Note that to use the api key method, you must add the route `GET /v1/publicip/ip` to the `routes` array in your Gluetun config.toml. ```yaml widget: From 1b79e5119460df58764d0472382e5ae350c28c78 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 4 Jan 2025 22:13:28 -0800 Subject: [PATCH 4/5] Update source.md --- docs/installation/source.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/installation/source.md b/docs/installation/source.md index 42e5fe91..573711a8 100644 --- a/docs/installation/source.md +++ b/docs/installation/source.md @@ -23,3 +23,5 @@ Finally, run the server: ```bash pnpm start ``` + +When updating homepage versions you will need to re-build the static files i.e. repeat the process above. From 2f7d948a5c2070d2d0d454d14b5b04e3bea8f803 Mon Sep 17 00:00:00 2001 From: Adi Vaknin <6841988+DeepSpace2@users.noreply.github.com> Date: Sun, 5 Jan 2025 17:56:12 +0200 Subject: [PATCH 5/5] Fix: quick launch not showing nested services (#4561) Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com> --- src/pages/index.jsx | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/pages/index.jsx b/src/pages/index.jsx index 7dbadbf1..3b4506ef 100644 --- a/src/pages/index.jsx +++ b/src/pages/index.jsx @@ -166,6 +166,18 @@ const headerStyles = { boxedWidgets: "m-5 mb-0 sm:m-9 sm:mb-0 sm:mt-1", }; +function getAllServices(services) { + function get(sg) { + let nestedServices = [...sg.services]; + if (sg.groups.length > 0) { + nestedServices = [...nestedServices, ...sg.groups.map(get).flat()]; + } + return nestedServices; + } + + return [...services.map(get).flat()]; +} + function Home({ initialSettings }) { const { i18n } = useTranslation(); const { theme, setTheme } = useContext(ThemeContext); @@ -182,10 +194,9 @@ function Home({ initialSettings }) { const { data: bookmarks } = useSWR("/api/bookmarks"); const { data: widgets } = useSWR("/api/widgets"); - const servicesAndBookmarks = [ - ...services.map((sg) => sg.services).flat(), - ...bookmarks.map((bg) => bg.bookmarks).flat(), - ].filter((i) => i?.href); + const servicesAndBookmarks = [...bookmarks.map((bg) => bg.bookmarks).flat(), ...getAllServices(services)].filter( + (i) => i?.href, + ); useEffect(() => { if (settings.language) {