From f55ba3b67a3187fe382337adf3a3b0ff8fd8a6e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Osi=C5=84ski?= Date: Sat, 1 Apr 2023 01:10:00 +0200 Subject: [PATCH] Add option to specify volume in Diskstation widget --- src/utils/config/service-helpers.js | 6 +++++- src/widgets/diskstation/component.jsx | 12 ++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/utils/config/service-helpers.js b/src/utils/config/service-helpers.js index 317c0f3c3..2b106173e 100644 --- a/src/utils/config/service-helpers.js +++ b/src/utils/config/service-helpers.js @@ -249,7 +249,8 @@ export function cleanServiceGroups(groups) { podSelector, wan, // opnsense widget, enableBlocks, // emby/jellyfin - enableNowPlaying + enableNowPlaying, + volume // diskstation widget } = cleanedService.widget; const fieldsList = typeof fields === 'string' ? JSON.parse(fields) : fields; @@ -284,6 +285,9 @@ export function cleanServiceGroups(groups) { if (enableBlocks) cleanedService.widget.enableBlocks = enableBlocks === 'true'; if (enableNowPlaying) cleanedService.widget.enableNowPlaying = enableNowPlaying === 'true'; } + if (type === "diskstation") { + if (volume) cleanedService.widget.volume = volume; + } } return cleanedService; diff --git a/src/widgets/diskstation/component.jsx b/src/widgets/diskstation/component.jsx index 3195a62dd..062b33f19 100644 --- a/src/widgets/diskstation/component.jsx +++ b/src/widgets/diskstation/component.jsx @@ -33,8 +33,16 @@ export default function Component({ service }) { const uptime = `${ t("common.number", { value: days }) } ${ t("diskstation.days") }`; // storage info - // TODO: figure out how to display info for more than one volume - const volume = storageData.data.vol_info?.[0]; + const volumeName = widget.volume; + + let volume; + + if (volumeName) { + volume = storageData.data.vol_info?.find(vol => vol.name === volumeName) + } else { + volume = storageData.data.vol_info?.[0]; + } + const usedBytes = parseFloat(volume?.used_size); const totalBytes = parseFloat(volume?.total_size); const freeBytes = totalBytes - usedBytes;