Make port requirement modal check only closed ports
Agent-Logs-Url: https://github.com/naturallaw777/staging_alpha/sessions/e1d94cfc-9b91-48a3-99e3-64d7609ba710 Co-authored-by: naturallaw777 <99053422+naturallaw777@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
97a868e0f9
commit
8d97184105
@@ -372,13 +372,41 @@ function handleFeatureToggle(feat, newEnabled) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function proceedAfterConflictCheck() {
|
function proceedAfterConflictCheck() {
|
||||||
// Show port requirements notification if the feature has extra port needs
|
|
||||||
var ports = feat.port_requirements || [];
|
var ports = feat.port_requirements || [];
|
||||||
if (ports.length > 0) {
|
if (ports.length === 0) {
|
||||||
openPortRequirementsModal(feat.name, ports, proceedAfterPortCheck);
|
|
||||||
} else {
|
|
||||||
proceedAfterPortCheck();
|
proceedAfterPortCheck();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check which ports are actually closed before showing the modal
|
||||||
|
fetch("/api/ports/status", {
|
||||||
|
method: "POST",
|
||||||
|
headers: { "Content-Type": "application/json" },
|
||||||
|
body: JSON.stringify({ ports: ports }),
|
||||||
|
})
|
||||||
|
.then(function(r) { return r.json(); })
|
||||||
|
.then(function(data) {
|
||||||
|
var portStatuses = {};
|
||||||
|
(data.ports || []).forEach(function(p) {
|
||||||
|
portStatuses[p.port + "/" + p.protocol] = p.status;
|
||||||
|
});
|
||||||
|
|
||||||
|
var closedPorts = ports.filter(function(p) {
|
||||||
|
var key = p.port + "/" + p.protocol;
|
||||||
|
var status = portStatuses[key] || "unknown";
|
||||||
|
return status !== "listening" && status !== "firewall_open";
|
||||||
|
});
|
||||||
|
|
||||||
|
if (closedPorts.length === 0) {
|
||||||
|
proceedAfterPortCheck();
|
||||||
|
} else {
|
||||||
|
openPortRequirementsModal(feat.name, closedPorts, proceedAfterPortCheck);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(function() {
|
||||||
|
// Safe fallback if status check fails
|
||||||
|
openPortRequirementsModal(feat.name, ports, proceedAfterPortCheck);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (conflictNames.length > 0) {
|
if (conflictNames.length > 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user