From 5c499c87abe4e661054eaf9d7336a6b4dc56bee0 Mon Sep 17 00:00:00 2001 From: Tobias Stadler <28538704+devtobi@users.noreply.github.com> Date: Sat, 9 Sep 2023 00:46:43 +0200 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=A9=BA=20=20Added=20healthcheck=20to?= =?UTF-8?q?=20image=20and=20ARG=20for=20port?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index d6b154294..68fa85489 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,8 @@ FROM node:20-alpine WORKDIR /app +ARG PORT=7575 + ENV NEXT_TELEMETRY_DISABLED 1 ENV NODE_ENV production ENV NODE_OPTIONS '--no-experimental-fetch' @@ -14,8 +16,10 @@ COPY package.json ./package.json COPY .next/standalone ./ COPY .next/static ./.next/static -EXPOSE 7575 +EXPOSE $PORT +ENV PORT=${PORT} -ENV PORT 7575 +HEALTHCHECK --interval=10s --timeout=5s --start-period=5s --retries=3 \ + CMD wget --no-verbose --tries=1 --spider http://localhost:${PORT} || exit 1 -CMD ["node", "server.js"] +CMD ["node", "server.js"] \ No newline at end of file From c777a774f72a3039ba64475b21874deae10691cd Mon Sep 17 00:00:00 2001 From: Tagaishi Date: Fri, 15 Sep 2023 18:17:46 +0200 Subject: [PATCH 2/2] =?UTF-8?q?=E2=9C=A8=20Hide=20DNS-Hole=20control=20but?= =?UTF-8?q?tons=20option=20(#1384)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../locales/en/modules/dns-hole-controls.json | 8 +- src/widgets/dnshole/DnsHoleControls.tsx | 131 ++++++++++-------- 2 files changed, 84 insertions(+), 55 deletions(-) diff --git a/public/locales/en/modules/dns-hole-controls.json b/public/locales/en/modules/dns-hole-controls.json index 1215356b0..279931f04 100644 --- a/public/locales/en/modules/dns-hole-controls.json +++ b/public/locales/en/modules/dns-hole-controls.json @@ -1,6 +1,12 @@ { "descriptor": { "name": "DNS hole controls", - "description": "Control PiHole or AdGuard from your dashboard" + "description": "Control PiHole or AdGuard from your dashboard", + "settings": { + "title": "DNS hole controls settings", + "showToggleAllButtons": { + "label": "Show 'Enable/Disable All' Buttons" + } + } } } \ No newline at end of file diff --git a/src/widgets/dnshole/DnsHoleControls.tsx b/src/widgets/dnshole/DnsHoleControls.tsx index 7f2835035..748a55e39 100644 --- a/src/widgets/dnshole/DnsHoleControls.tsx +++ b/src/widgets/dnshole/DnsHoleControls.tsx @@ -24,7 +24,12 @@ import { useDnsHoleSummeryQuery } from './DnsHoleSummary'; const definition = defineWidget({ id: 'dns-hole-controls', icon: IconDeviceGamepad, - options: {}, + options: { + showToggleAllButtons: { + type: 'switch', + defaultValue: true, + }, + }, gridstack: { minWidth: 2, minHeight: 1, @@ -102,51 +107,66 @@ function DnsHoleControlsWidgetTile({ widget }: DnsHoleControlsWidgetProps) { }; return ( - - 275 ? 2 : 1} spacing="0.25rem"> - - - + + {widget.properties.showToggleAllButtons && ( + 275 ? 2 : 1} spacing="0.25rem"> + + + + )} - + {data.status.map((dnsHole, index) => { const app = config?.apps.find((x) => x.id === dnsHole.appId); @@ -155,7 +175,7 @@ function DnsHoleControlsWidgetTile({ widget }: DnsHoleControlsWidgetProps) { } return ( - + ({ @@ -172,15 +192,18 @@ function DnsHoleControlsWidgetTile({ widget }: DnsHoleControlsWidgetProps) { {app.name} { - await mutateAsync({ - action: dnsHole.status === 'enabled' ? 'disable' : 'enable', - configName, - appsToChange: [app.id], - },{ - onSettled: () => { - reFetchSummaryDns(); + await mutateAsync( + { + action: dnsHole.status === 'enabled' ? 'disable' : 'enable', + configName, + appsToChange: [app.id], + }, + { + onSettled: () => { + reFetchSummaryDns(); + }, } - }); + ); }} disabled={fetchingDnsSummary || changingStatus} >