diff --git a/frontend/src/RootFolder/RootFolderRow.js b/frontend/src/RootFolder/RootFolderRow.js index ffa836dc2..155419bf1 100644 --- a/frontend/src/RootFolder/RootFolderRow.js +++ b/frontend/src/RootFolder/RootFolderRow.js @@ -13,13 +13,13 @@ function RootFolderRow(props) { const { id, path, + accessible, freeSpace, unmappedFolders, onDeletePress } = props; - const unmappedFoldersCount = unmappedFolders.length || '-'; - const isUnavailable = freeSpace == null; + const isUnavailable = !accessible; return ( @@ -47,11 +47,11 @@ function RootFolderRow(props) { - {freeSpace ? formatBytes(freeSpace) : '-'} + {(isUnavailable || isNaN(freeSpace)) ? '-' : formatBytes(freeSpace)} - {unmappedFoldersCount} + {isUnavailable ? '-' : unmappedFolders.length} @@ -68,6 +68,7 @@ function RootFolderRow(props) { RootFolderRow.propTypes = { id: PropTypes.number.isRequired, path: PropTypes.string.isRequired, + accessible: PropTypes.bool.isRequired, freeSpace: PropTypes.number, unmappedFolders: PropTypes.arrayOf(PropTypes.object).isRequired, onDeletePress: PropTypes.func.isRequired diff --git a/frontend/src/RootFolder/RootFolders.js b/frontend/src/RootFolder/RootFolders.js index 57598dbb9..a07209ecc 100644 --- a/frontend/src/RootFolder/RootFolders.js +++ b/frontend/src/RootFolder/RootFolders.js @@ -59,6 +59,7 @@ function RootFolders(props) { key={rootFolder.id} id={rootFolder.id} path={rootFolder.path} + accessible={rootFolder.accessible} freeSpace={rootFolder.freeSpace} unmappedFolders={rootFolder.unmappedFolders} /> diff --git a/src/NzbDrone.Core/Datastore/TableMapping.cs b/src/NzbDrone.Core/Datastore/TableMapping.cs index d71582831..f3c5da56e 100644 --- a/src/NzbDrone.Core/Datastore/TableMapping.cs +++ b/src/NzbDrone.Core/Datastore/TableMapping.cs @@ -51,6 +51,7 @@ namespace NzbDrone.Core.Datastore Mapper.Entity().RegisterModel("Config"); Mapper.Entity().RegisterModel("RootFolders") + .Ignore(r => r.Accessible) .Ignore(r => r.FreeSpace) .Ignore(r => r.TotalSpace); diff --git a/src/NzbDrone.Core/RootFolders/RootFolder.cs b/src/NzbDrone.Core/RootFolders/RootFolder.cs index f32716b52..0ae3b0155 100644 --- a/src/NzbDrone.Core/RootFolders/RootFolder.cs +++ b/src/NzbDrone.Core/RootFolders/RootFolder.cs @@ -8,6 +8,7 @@ namespace NzbDrone.Core.RootFolders { public string Path { get; set; } + public bool Accessible { get; set; } public long? FreeSpace { get; set; } public long? TotalSpace { get; set; } diff --git a/src/NzbDrone.Core/RootFolders/RootFolderService.cs b/src/NzbDrone.Core/RootFolders/RootFolderService.cs index 88bcb409f..e24ee2e84 100644 --- a/src/NzbDrone.Core/RootFolders/RootFolderService.cs +++ b/src/NzbDrone.Core/RootFolders/RootFolderService.cs @@ -183,12 +183,12 @@ namespace NzbDrone.Core.RootFolders { if (_diskProvider.FolderExists(rootFolder.Path)) { + rootFolder.Accessible = true; rootFolder.FreeSpace = _diskProvider.GetAvailableSpace(rootFolder.Path); rootFolder.TotalSpace = _diskProvider.GetTotalSize(rootFolder.Path); rootFolder.UnmappedFolders = GetUnmappedFolders(rootFolder.Path); } - }) - .Wait(5000); + }).Wait(5000); } } } diff --git a/src/Sonarr.Api.V3/RootFolders/RootFolderResource.cs b/src/Sonarr.Api.V3/RootFolders/RootFolderResource.cs index e85cdc99d..babae02cb 100644 --- a/src/Sonarr.Api.V3/RootFolders/RootFolderResource.cs +++ b/src/Sonarr.Api.V3/RootFolders/RootFolderResource.cs @@ -9,6 +9,7 @@ namespace Sonarr.Api.V3.RootFolders public class RootFolderResource : RestResource { public string Path { get; set; } + public bool Accessible { get; set; } public long? FreeSpace { get; set; } public List UnmappedFolders { get; set; } @@ -25,6 +26,7 @@ namespace Sonarr.Api.V3.RootFolders Id = model.Id, Path = model.Path.GetCleanPath(), + Accessible = model.Accessible, FreeSpace = model.FreeSpace, UnmappedFolders = model.UnmappedFolders }; @@ -39,6 +41,7 @@ namespace Sonarr.Api.V3.RootFolders Id = resource.Id, Path = resource.Path + //Accessible //FreeSpace //UnmappedFolders };