Skip to content

Commit a5de79d

Browse files
Added refresh callback for server to ensure accurate UI state and icon updates on connection status changes. #8149
1 parent 4e8f29f commit a5de79d

1 file changed

Lines changed: 24 additions & 1 deletion

File tree

  • web/pgadmin/browser/server_groups/servers/static/js

web/pgadmin/browser/server_groups/servers/static/js/server.js

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,30 @@ define('pgadmin.node.server', [
331331

332332
return false;
333333
},
334+
/* Refresh the server */
335+
refresh: function(args, i) {
336+
let obj = this,
337+
tree = pgBrowser.tree,
338+
item = i || tree.selected(),
339+
data = item && tree.itemData(item);
340+
// Fetch connection status.
341+
fetch_connection_status(obj, data, tree, item);
342+
setTimeout(function() {
343+
pgAdmin.Browser.Node.callbacks.refresh.apply(obj, [null, item]);
344+
}, 10);
345+
// Fetch Node and check if the server is connected or not.
346+
const url = obj.generate_url(item, 'nodes', data, true);
347+
getApiInstance().get(url)
348+
.then(({ data: { result } }) => {
349+
if (!result.connected) {
350+
setTimeout(function() {
351+
tree.close(item);
352+
}, 10);
353+
tree.setInode(item);
354+
}
355+
})
356+
.catch((error) => pgAdmin.Browser.notifier.pgRespErrorNotify(error));
357+
},
334358
/* Add restore point */
335359
restore_point: function(args) {
336360
let input = args || {},
@@ -778,7 +802,6 @@ define('pgadmin.node.server', [
778802

779803
getApiInstance().get(url)
780804
.then(({data: res})=>{
781-
tree.setInode(item);
782805
if (res?.data) {
783806
if (typeof res.data.icon == 'string') {
784807
tree.removeIcon(item);

0 commit comments

Comments
 (0)