From cd8c224ffad5bb0e120441ed3b62f50130ce4329 Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Sun, 6 Oct 2024 06:33:47 -0700
Subject: [PATCH 1/3] Fix: wg-easy disabled field not visible (#4096)
---
src/widgets/wgeasy/component.jsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/widgets/wgeasy/component.jsx b/src/widgets/wgeasy/component.jsx
index 125b92bfa..db39c81a9 100644
--- a/src/widgets/wgeasy/component.jsx
+++ b/src/widgets/wgeasy/component.jsx
@@ -38,7 +38,7 @@ export default function Component({ service }) {
-
+
);
From 19bdc0ec34a8bc9576d71e6df7b182e192c6b814 Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Thu, 10 Oct 2024 14:01:42 -0700
Subject: [PATCH 2/3] Enhancement: handle immich v1.118 breaking API change
(#4110)
---
docs/widgets/services/immich.md | 6 ++++++
src/utils/config/service-helpers.js | 6 +++---
src/widgets/immich/component.jsx | 18 +++++++++++++-----
src/widgets/immich/widget.js | 14 ++++++++++----
4 files changed, 32 insertions(+), 12 deletions(-)
diff --git a/docs/widgets/services/immich.md b/docs/widgets/services/immich.md
index 63780ee04..4da6e187d 100644
--- a/docs/widgets/services/immich.md
+++ b/docs/widgets/services/immich.md
@@ -5,6 +5,11 @@ description: Immich Widget Configuration
Learn more about [Immich](https://github.com/immich-app/immich).
+| Immich Version | Homepage Widget Version |
+| -------------- | ----------------------- |
+| < v1.118 | 1 (default) |
+| >= v1.118 | 2 |
+
Find your API key under `Account Settings > API Keys`.
Allowed fields: `["users" ,"photos", "videos", "storage"]`.
@@ -16,4 +21,5 @@ widget:
type: immich
url: http://immich.host.or.ip
key: adminapikeyadminapikeyadminapikey
+ version: 2 # optional, default is 1
```
diff --git a/src/utils/config/service-helpers.js b/src/utils/config/service-helpers.js
index 6138d2e90..24ba57e23 100644
--- a/src/utils/config/service-helpers.js
+++ b/src/utils/config/service-helpers.js
@@ -406,7 +406,7 @@ export function cleanServiceGroups(groups) {
// frigate
enableRecentEvents,
- // glances, mealie, pihole, pfsense
+ // glances, immich, mealie, pihole, pfsense
version,
// glances
@@ -568,8 +568,8 @@ export function cleanServiceGroups(groups) {
if (snapshotHost) cleanedService.widget.snapshotHost = snapshotHost;
if (snapshotPath) cleanedService.widget.snapshotPath = snapshotPath;
}
- if (["glances", "mealie", "pfsense", "pihole"].includes(type)) {
- if (version) cleanedService.widget.version = version;
+ if (["glances", "immich", "mealie", "pfsense", "pihole"].includes(type)) {
+ if (version) cleanedService.widget.version = parseInt(version, 10);
}
if (type === "glances") {
if (metric) cleanedService.widget.metric = metric;
diff --git a/src/widgets/immich/component.jsx b/src/widgets/immich/component.jsx
index 5f5bbedde..ed27d4d84 100644
--- a/src/widgets/immich/component.jsx
+++ b/src/widgets/immich/component.jsx
@@ -8,11 +8,19 @@ export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
- const { data: versionData, error: versionError } = useWidgetAPI(widget, "version");
- // see https://github.com/gethomepage/homepage/issues/2282
- const endpoint =
- versionData?.major > 1 || (versionData?.major === 1 && versionData?.minor > 84) ? "statistics" : "stats";
- const { data: immichData, error: immichError } = useWidgetAPI(widget, endpoint);
+ const { version = 1 } = widget;
+
+ const versionEndpoint = version === 2 ? "version_v2" : "version";
+
+ const { data: versionData, error: versionError } = useWidgetAPI(widget, versionEndpoint);
+
+ let statsEndpoint = version === 2 ? "statistics_v2" : "stats";
+ if (version === 1) {
+ // see https://github.com/gethomepage/homepage/issues/2282
+ statsEndpoint =
+ versionData?.major > 1 || (versionData?.major === 1 && versionData?.minor > 84) ? "statistics" : "stats";
+ }
+ const { data: immichData, error: immichError } = useWidgetAPI(widget, statsEndpoint);
if (immichError || versionError || immichData?.statusCode === 401) {
return ;
diff --git a/src/widgets/immich/widget.js b/src/widgets/immich/widget.js
index 230f8ab27..da3308c25 100644
--- a/src/widgets/immich/widget.js
+++ b/src/widgets/immich/widget.js
@@ -1,18 +1,24 @@
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
const widget = {
- api: "{url}/api/server-info/{endpoint}",
+ api: "{url}/api/{endpoint}",
proxyHandler: credentialedProxyHandler,
mappings: {
version: {
- endpoint: "version",
+ endpoint: "server-info/version",
},
statistics: {
- endpoint: "statistics",
+ endpoint: "server-info/statistics",
},
stats: {
- endpoint: "stats",
+ endpoint: "server-info/stats",
+ },
+ version_v2: {
+ endpoint: "server/version",
+ },
+ statistics_v2: {
+ endpoint: "server/statistics",
},
},
};
From e6c769267706dd3b3b82f1d0ede5a6f87fb6bf1c Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Thu, 10 Oct 2024 14:50:09 -0700
Subject: [PATCH 3/3] Fix: add noreferrer to bookmark links (#4112)
---
src/components/bookmarks/item.jsx | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/components/bookmarks/item.jsx b/src/components/bookmarks/item.jsx
index 5d3b351bd..dcfcd43fd 100644
--- a/src/components/bookmarks/item.jsx
+++ b/src/components/bookmarks/item.jsx
@@ -13,6 +13,7 @@ export default function Item({ bookmark }) {