|
|
@@ -66,22 +66,22 @@ public partial class DeviceDetailsWindow : Window
|
|
|
var interfaces = await _serverApiService.GetInterfacesAsync(_baseAddress, _password, _localIPv4);
|
|
|
if (interfaces is null)
|
|
|
{
|
|
|
- ShowStatusMessage("设备已连接,但暂时无法读取 Linux 接口列表。", StatusMessageType.Warning);
|
|
|
+ ShowStatusMessage("设备已连接,但暂时无法读取 Linux 网口列表。", StatusMessageType.Warning);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- SetConfigStateMessage($"当前管理接口:{interfaces.ManagementInterface}。正在读取全部接口配置。", false);
|
|
|
- foreach (var info in interfaces.Interfaces)
|
|
|
+ SetConfigStateMessage($"当前管理网口:{interfaces.ManagementInterface}。正在读取全部网口配置。", false);
|
|
|
+ for (var i = 0; i < interfaces.Interfaces.Count; i++)
|
|
|
{
|
|
|
- var editor = new InterfaceEditor(info);
|
|
|
+ var editor = new InterfaceEditor(interfaces.Interfaces[i], i + 1);
|
|
|
_interfaces.Add(editor);
|
|
|
await LoadRemoteInterfaceConfigAsync(editor);
|
|
|
}
|
|
|
|
|
|
_configValidated = false;
|
|
|
_configDirty = false;
|
|
|
- SetConfigStateMessage("已读取全部接口配置。", false);
|
|
|
- ShowStatusMessage("已读取全部接口配置。", StatusMessageType.Success);
|
|
|
+ SetConfigStateMessage("已读取全部网口配置。", false);
|
|
|
+ ShowStatusMessage("已读取全部网口配置。", StatusMessageType.Success);
|
|
|
}
|
|
|
|
|
|
private void ClearDetails()
|
|
|
@@ -96,7 +96,7 @@ public partial class DeviceDetailsWindow : Window
|
|
|
{
|
|
|
var hostPart = string.IsNullOrWhiteSpace(hostname) ? _remoteHost : $"{hostname} ({_remoteHost})";
|
|
|
var versionPart = string.IsNullOrWhiteSpace(serverVersion) ? string.Empty : $" - Server {serverVersion}";
|
|
|
- Title = string.IsNullOrWhiteSpace(hostPart) ? $"设备信息与接口配置{versionPart}" : $"设备信息与接口配置 - {hostPart}{versionPart}";
|
|
|
+ Title = string.IsNullOrWhiteSpace(hostPart) ? $"设备信息与网口配置{versionPart}" : $"设备信息与网口配置 - {hostPart}{versionPart}";
|
|
|
}
|
|
|
|
|
|
private static string GetRemoteHost(string baseAddress)
|
|
|
@@ -116,7 +116,7 @@ public partial class DeviceDetailsWindow : Window
|
|
|
var result = await _serverApiService.GetInterfaceConfigAsync(_baseAddress, _password, _localIPv4, editor.SystemName);
|
|
|
if (!result.Success || result.Data is null)
|
|
|
{
|
|
|
- ShowStatusMessage($"读取目标接口 {editor.SystemName} 配置失败:{result.Message}", StatusMessageType.Error);
|
|
|
+ ShowStatusMessage($"读取目标网口 {editor.DisplayLabel} 配置失败:{result.Message}", StatusMessageType.Error);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -173,7 +173,7 @@ public partial class DeviceDetailsWindow : Window
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- SetBusyState(true, "正在刷新全部接口配置...");
|
|
|
+ SetBusyState(true, "正在刷新全部网口配置...");
|
|
|
try
|
|
|
{
|
|
|
foreach (var editor in _interfaces)
|
|
|
@@ -183,8 +183,8 @@ public partial class DeviceDetailsWindow : Window
|
|
|
|
|
|
_configValidated = false;
|
|
|
_configDirty = false;
|
|
|
- SetConfigStateMessage("已刷新全部接口配置。", false);
|
|
|
- ShowStatusMessage("已刷新全部接口配置。", StatusMessageType.Success);
|
|
|
+ SetConfigStateMessage("已刷新全部网口配置。", false);
|
|
|
+ ShowStatusMessage("已刷新全部网口配置。", StatusMessageType.Success);
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
@@ -229,7 +229,7 @@ public partial class DeviceDetailsWindow : Window
|
|
|
var errors = result.Data.Errors.Count > 0 ? $" 错误:{string.Join(";", result.Data.Errors)}" : string.Empty;
|
|
|
SetConfigStateMessage(_configValidated ? "配置已校验通过,可以应用。" : "配置校验未通过,请修正后重新校验。", !_configValidated);
|
|
|
ShowStatusMessage(
|
|
|
- _configValidated ? $"全部接口校验通过,可应用配置。{warnings}" : $"校验失败。{errors}{warnings}",
|
|
|
+ _configValidated ? $"全部网口校验通过,可应用配置。{warnings}" : $"校验失败。{errors}{warnings}",
|
|
|
_configValidated ? StatusMessageType.Success : StatusMessageType.Error);
|
|
|
}
|
|
|
else
|
|
|
@@ -256,7 +256,7 @@ public partial class DeviceDetailsWindow : Window
|
|
|
|
|
|
var changeSummary = FormatChangeSummary();
|
|
|
var confirmMessage = string.IsNullOrWhiteSpace(changeSummary)
|
|
|
- ? "将要一次性应用以下接口配置:\n\n" + FormatConfigSummary(request) + "\n\n请确认是否继续。"
|
|
|
+ ? "将要一次性应用以下网口配置:\n\n" + FormatConfigSummary(request) + "\n\n请确认是否继续。"
|
|
|
: "将要一次性应用以下已修改配置:\n\n" + changeSummary + "\n\n完整目标配置:\n\n" + FormatConfigSummary(request) + "\n\n请确认是否继续。";
|
|
|
if (MessageBox.Show(this, confirmMessage, "确认应用配置", MessageBoxButton.OKCancel, MessageBoxImage.Question) != MessageBoxResult.OK)
|
|
|
{
|
|
|
@@ -492,7 +492,7 @@ public partial class DeviceDetailsWindow : Window
|
|
|
|
|
|
if (result.Count == 0)
|
|
|
{
|
|
|
- ShowStatusMessage("接口配置不能为空。", StatusMessageType.Error);
|
|
|
+ ShowStatusMessage("网口配置不能为空。", StatusMessageType.Error);
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
@@ -579,7 +579,7 @@ public partial class DeviceDetailsWindow : Window
|
|
|
private static string FormatConfigSummary(IReadOnlyList<RemoteInterfaceConfig> configs)
|
|
|
{
|
|
|
return string.Join(Environment.NewLine + Environment.NewLine, configs.Select(item =>
|
|
|
- $"接口:{item.Interface}\n" +
|
|
|
+ $"网口:{item.Interface}\n" +
|
|
|
$"模式:{(item.Dhcp4 ? "DHCP 自动获取" : "静态 IPv4")}\n" +
|
|
|
$"IP:{(item.Dhcp4 ? "自动获取" : FormatAddresses(item.Addresses))}\n" +
|
|
|
$"路由:{(item.Dhcp4 ? "自动获取" : FormatRoutes(item.Routes))}\n" +
|
|
|
@@ -995,7 +995,7 @@ public partial class DeviceDetailsWindow : Window
|
|
|
|
|
|
private string FormatChangedFields()
|
|
|
{
|
|
|
- var fields = _interfaces.Where(item => item.HasChanges).Select(item => $"{item.SystemName} 的 {item.ChangedFieldsText}");
|
|
|
+ var fields = _interfaces.Where(item => item.HasChanges).Select(item => $"{item.DisplayLabel} 的 {item.ChangedFieldsText}");
|
|
|
return string.Join(";", fields);
|
|
|
}
|
|
|
|
|
|
@@ -1148,14 +1148,16 @@ public partial class DeviceDetailsWindow : Window
|
|
|
private string[] _originalGatewayKeys = [];
|
|
|
private string[] _originalDnsKeys = [];
|
|
|
|
|
|
- public InterfaceEditor(RemoteInterfaceInfo info)
|
|
|
+ public InterfaceEditor(RemoteInterfaceInfo info, int displayIndex)
|
|
|
{
|
|
|
SystemName = info.SystemName;
|
|
|
+ DisplayLabel = $"网口{displayIndex}:{SystemName}";
|
|
|
StatusSummary = info.StatusSummary;
|
|
|
LinkUp = info.LinkUp;
|
|
|
}
|
|
|
|
|
|
public string SystemName { get; }
|
|
|
+ public string DisplayLabel { get; }
|
|
|
public string StatusSummary { get; }
|
|
|
public bool LinkUp { get; }
|
|
|
public ObservableCollection<EditableAddress> Addresses { get; } = [];
|
|
|
@@ -1218,7 +1220,7 @@ public partial class DeviceDetailsWindow : Window
|
|
|
|
|
|
public string FormatChangeSummary()
|
|
|
{
|
|
|
- var lines = new List<string> { $"接口:{SystemName}" };
|
|
|
+ var lines = new List<string> { DisplayLabel };
|
|
|
if (IsAddressModified)
|
|
|
{
|
|
|
lines.Add($"IP:{FormatKeys(_originalAddressKeys)} -> {FormatKeys(GetAddressKeys())}");
|