Browse Source

Panel: stop button closes window when client is gone

master
Serge Shutov 1 week ago
parent
commit
0abae60618
  1. 14
      content/panel.js

14
content/panel.js

@ -195,9 +195,9 @@
lb.addEventListener('click', function (ev) { ev.stopPropagation(); API.mcpLaunch(a.name); }); lb.addEventListener('click', function (ev) { ev.stopPropagation(); API.mcpLaunch(a.name); });
row.appendChild(lb); row.appendChild(lb);
} }
var sb = mk('button', 'dshmem-mcp-btn', 'stop'); var sb = mk('button', 'dshmem-mcp-btn', a.running ? 'stop' : (a.guiUp ? 'close' : 'stop'));
sb.title = 'Close MCP client (window stays)'; sb.title = a.running ? 'Close MCP client (window stays)' : (a.guiUp ? 'Close the ' + a.name + ' window' : 'Nothing to close');
sb.disabled = !a.running && !a.starting; sb.disabled = !a.running && !a.starting && !a.guiUp;
sb.addEventListener('click', function (ev) { ev.stopPropagation(); API.mcpStop(a.name); }); sb.addEventListener('click', function (ev) { ev.stopPropagation(); API.mcpStop(a.name); });
row.appendChild(sb); row.appendChild(sb);
el.mcpList.appendChild(row); el.mcpList.appendChild(row);
@ -230,8 +230,12 @@
}, },
mcpStop: function (name) { mcpStop: function (name) {
globalThis.DSH_BRIDGE.fetchBridge('POST', '/mcp/stop', { app: name }).then(function (r) { globalThis.DSH_BRIDGE.fetchBridge('POST', '/mcp/stop', { app: name }).then(function (r) {
if (r && r.ok) API.log('mcp stop: ' + name); if (!r || !r.ok) { API.log('mcp stop ' + name + ' fail: ' + ((r && r.error && r.error.message) || '?')); API.mcpRefresh(); return; }
else API.log('mcp stop ' + name + ' fail: ' + ((r && r.error && r.error.message) || '?')); var what = [];
if (r.stopped) what.push('client');
if (r.windowClosed) what.push('window');
if (what.length === 0) what.push('nothing');
API.log('mcp stop ' + name + ': closed ' + what.join(' + ') + (r.warning ? ' | ' + r.warning : ''));
API.mcpRefresh(); API.mcpRefresh();
}); });
}, },

Loading…
Cancel
Save