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;