From f29cb1778280d852d7685b9657a315d833b0ddca Mon Sep 17 00:00:00 2001 From: dnzbk Date: Thu, 29 Aug 2024 18:27:36 +0300 Subject: [PATCH] Add: check if DestDir and InterDir are on the same disk --- webui/index.html | 12 ++++++++++-- webui/system-info.js | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/webui/index.html b/webui/index.html index d090e28a..4546674a 100644 --- a/webui/index.html +++ b/webui/index.html @@ -730,13 +730,21 @@

System

- Free disk space + Free disk space (DestDir) - Total disk space + Total disk space (DestDir) + + Free disk space (InterDir) + + + + Total disk space (InterDir) + + Write buffer diff --git a/webui/system-info.js b/webui/system-info.js index 15c36903..3a736c0c 100644 --- a/webui/system-info.js +++ b/webui/system-info.js @@ -31,6 +31,10 @@ var SystemInfo = (new function($) var $SysInfo_IP; var $SysInfo_FreeDiskSpace; var $SysInfo_TotalDiskSpace; + var $SysInfo_FreeInterDiskSpace; + var $SysInfo_TotalInterDiskSpace; + var $SysInfo_FreeInterDiskSpaceTr; + var $SysInfo_TotalInterDiskSpaceTr; var $SysInfo_ArticleCache; var $SysInfo_WriteBuffer; var $SysInfo_ToolsTable; @@ -65,7 +69,23 @@ var SystemInfo = (new function($) update: function(status) { $SysInfo_Uptime.text(Util.formatTimeHMS(status['UpTimeSec'])); + + var destDirOpt = Options.findOption(Options.options, 'DestDir'); + var interDirOpt = Options.findOption(Options.options, 'InterDir'); + renderDiskSpace(+status['FreeDiskSpaceMB'], +status['TotalDiskSpaceMB']); + + if (destDirOpt && interDirOpt && !pathsOnSameDisk(destDirOpt.Value, interDirOpt.Value)) + { + $SysInfo_FreeInterDiskSpaceTr.show(); + $SysInfo_TotalInterDiskSpaceTr.show(); + renderInterDiskSpace(+status['FreeInterDiskSpaceMB'], +status['TotalInterDiskSpaceMB']); + } + else + { + $SysInfo_FreeInterDiskSpaceTr.hide(); + $SysInfo_TotalInterDiskSpaceTr.hide(); + } } } @@ -98,6 +118,10 @@ var SystemInfo = (new function($) $SysInfo_IP = $('#SysInfo_IP'); $SysInfo_FreeDiskSpace = $('#SysInfo_FreeDiskSpace'); $SysInfo_TotalDiskSpace = $('#SysInfo_TotalDiskSpace'); + $SysInfo_FreeInterDiskSpace = $('#SysInfo_FreeInterDiskSpace'); + $SysInfo_TotalInterDiskSpace = $('#SysInfo_TotalInterDiskSpace'); + $SysInfo_FreeInterDiskSpaceTr = $('#SysInfo_FreeInterDiskSpaceTr'); + $SysInfo_TotalInterDiskSpaceTr = $('#SysInfo_TotalInterDiskSpaceTr'); $SysInfo_ArticleCache = $('#SysInfo_ArticleCache'); $SysInfo_WriteBuffer = $('#SysInfo_WriteBuffer'); $SysInfo_ToolsTable = $('#SysInfo_ToolsTable'); @@ -136,6 +160,17 @@ var SystemInfo = (new function($) ); } + function pathsOnSameDisk(path1, path2) + { + path1 = path1.replace(/\\/g, '/'); + path2 = path2.replace(/\\/g, '/'); + + var drive1 = path1.match(/^[a-zA-Z]:\//i) ? path1.match(/^[a-zA-Z]:\//i)[0] : '/'; + var drive2 = path2.match(/^[a-zA-Z]:\//i) ? path2.match(/^[a-zA-Z]:\//i)[0] : '/'; + + return drive1 === drive2; + } + function hideSpinner() { $SystemInfo_Spinner.hide(); @@ -264,6 +299,13 @@ var SystemInfo = (new function($) $SysInfo_TotalDiskSpace.text(Util.formatSizeMB(total)); } + function renderInterDiskSpace(free, total) + { + var percents = total !== 0 ? (free / total * 100).toFixed(1) + '%' : '0.0%'; + $SysInfo_FreeInterDiskSpace.text(Util.formatSizeMB(free) + ' / ' + percents); + $SysInfo_TotalInterDiskSpace.text(Util.formatSizeMB(total)); + } + function renderIP(network) { var privateIP = network.PrivateIP ? network.PrivateIP : 'N/A';