fix(Server): fixes temporary disable input visibility, adds reason text
Build & Deploy / build (push) Successful in 1m43s
Build & Deploy / build (push) Successful in 1m43s
This commit is contained in:
@@ -373,9 +373,13 @@ internal static class ReverseProxyEndpoint
|
|||||||
|
|
||||||
private static string GetClientDisabledMessage(string clientId, ClientAccess access)
|
private static string GetClientDisabledMessage(string clientId, ClientAccess access)
|
||||||
{
|
{
|
||||||
|
var reason = string.IsNullOrWhiteSpace(access.DisabledReason)
|
||||||
|
? ""
|
||||||
|
: $" Reason: {access.DisabledReason.Trim()}.";
|
||||||
|
|
||||||
if (access.DisabledManually)
|
if (access.DisabledManually)
|
||||||
{
|
{
|
||||||
return $"Tunnel client '{clientId}' is disabled until it is enabled manually.";
|
return $"Tunnel client '{clientId}' is disabled until it is enabled manually.{reason}";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (access.DisabledUntilUtc is { } disabledUntil)
|
if (access.DisabledUntilUtc is { } disabledUntil)
|
||||||
@@ -383,12 +387,12 @@ internal static class ReverseProxyEndpoint
|
|||||||
var from = access.DisabledFromUtc is { } fromUtc
|
var from = access.DisabledFromUtc is { } fromUtc
|
||||||
? $" (scheduled from {fromUtc:O})"
|
? $" (scheduled from {fromUtc:O})"
|
||||||
: "";
|
: "";
|
||||||
return $"Tunnel client '{clientId}' is disabled until {disabledUntil:O}.{from}";
|
return $"Tunnel client '{clientId}' is disabled until {disabledUntil:O}.{from}{reason}";
|
||||||
}
|
}
|
||||||
|
|
||||||
return access.DisabledFromUtc is { } fromUtc2
|
return access.DisabledFromUtc is { } fromUtc2
|
||||||
? $"Tunnel client '{clientId}' is disabled (scheduled from {fromUtc2:O})."
|
? $"Tunnel client '{clientId}' is disabled (scheduled from {fromUtc2:O}).{reason}"
|
||||||
: $"Tunnel client '{clientId}' is disabled.";
|
: $"Tunnel client '{clientId}' is disabled.{reason}";
|
||||||
}
|
}
|
||||||
|
|
||||||
private static async Task<string?> GetRequestedModelAsync(HttpRequest request, PathString proxyPath)
|
private static async Task<string?> GetRequestedModelAsync(HttpRequest request, PathString proxyPath)
|
||||||
|
|||||||
@@ -1665,16 +1665,20 @@ function emptyState(text) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function disabledText(client) {
|
function disabledText(client) {
|
||||||
|
var text = "";
|
||||||
if (client.disabledManually) {
|
if (client.disabledManually) {
|
||||||
return "Until enabled manually";
|
text = "Until enabled manually";
|
||||||
|
} else if (client.disabledUntilUtc) {
|
||||||
|
text = `Until ${formatDate(client.disabledUntilUtc)}`;
|
||||||
|
} else if (isScheduled(client)) {
|
||||||
|
text = `Scheduled from ${formatDate(client.disabledFromUtc)}`;
|
||||||
|
} else {
|
||||||
|
text = "Disabled";
|
||||||
}
|
}
|
||||||
if (client.disabledUntilUtc) {
|
if (client.disabledReason) {
|
||||||
return `Until ${formatDate(client.disabledUntilUtc)}`;
|
text += ` — ${escapeHtml(client.disabledReason)}`;
|
||||||
}
|
}
|
||||||
if (isScheduled(client)) {
|
return text;
|
||||||
return `Scheduled from ${formatDate(client.disabledFromUtc)}`;
|
|
||||||
}
|
|
||||||
return "Disabled";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function isScheduled(client) {
|
function isScheduled(client) {
|
||||||
@@ -1793,6 +1797,7 @@ function showDisableModal(clientId) {
|
|||||||
|
|
||||||
function updateWhen() {
|
function updateWhen() {
|
||||||
const val = overlay.querySelector('input[name="d-when"]:checked').value;
|
const val = overlay.querySelector('input[name="d-when"]:checked').value;
|
||||||
|
fromInput.style.display = val === "later" ? "" : "none";
|
||||||
fromInput.disabled = val !== "later";
|
fromInput.disabled = val !== "later";
|
||||||
if (val === "now") fromInput.value = "";
|
if (val === "now") fromInput.value = "";
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user