- Properties tab should refresh if node is updated. - Error should be hierarchical and not just id based.

This commit is contained in:
Aditya Toshniwal
2021-08-27 14:59:44 +05:30
committed by Akshay Joshi
parent 2a76027cce
commit ae49b556ce
4 changed files with 34 additions and 20 deletions

View File

@@ -1248,12 +1248,7 @@ define('pgadmin.browser.node', [
if(that.getSchema) {
let treeNodeInfo = that.getTreeNodeHierarchy.apply(this, [item]);
getNodeView(
that.type, treeNodeInfo, 'properties', data, 'tab', j[0], this, onCancelFunc, onEdit,
(nodeData)=>{
if(nodeData.node) {
onSaveFunc(nodeData.node, treeNodeInfo);
}
}
that.type, treeNodeInfo, 'properties', data, 'tab', j[0], this, onEdit
);
return;
}
@@ -1514,10 +1509,28 @@ define('pgadmin.browser.node', [
if(that.getSchema) {
let treeNodeInfo = that.getTreeNodeHierarchy.apply(this, [item]);
getNodeView(
that.type, treeNodeInfo, action, data, 'dialog', j[0], this, onCancelFunc, onEdit,
that.type, treeNodeInfo, action, data, 'dialog', j[0], this, onEdit,
(nodeData)=>{
if(nodeData.node) {
onSaveFunc(nodeData.node, treeNodeInfo);
// Removing the node-prop property of panel
// so that we show updated data on panel
var pnlProperties = pgBrowser.docker.findPanels('properties')[0],
pnlSql = pgBrowser.docker.findPanels('sql')[0],
pnlStats = pgBrowser.docker.findPanels('statistics')[0],
pnlDependencies = pgBrowser.docker.findPanels('dependencies')[0],
pnlDependents = pgBrowser.docker.findPanels('dependents')[0];
if (pnlProperties)
$(pnlProperties).removeData('node-prop');
if (pnlSql)
$(pnlSql).removeData('node-prop');
if (pnlStats)
$(pnlStats).removeData('node-prop');
if (pnlDependencies)
$(pnlDependencies).removeData('node-prop');
if (pnlDependents)
$(pnlDependents).removeData('node-prop');
}
}
);

View File

@@ -20,7 +20,7 @@ import gettext from 'sources/gettext';
import 'wcdocker';
/* The entry point for rendering React based view in properties, called in node.js */
export function getNodeView(nodeType, treeNodeInfo, actionType, itemNodeData, formType, container, containerPanel, onCancel, onEdit, onSave) {
export function getNodeView(nodeType, treeNodeInfo, actionType, itemNodeData, formType, container, containerPanel, onEdit, onSave) {
let nodeObj = pgAdmin.Browser.Nodes[nodeType];
let serverInfo = treeNodeInfo && ('server' in treeNodeInfo) &&
pgAdmin.Browser.serverInfo && pgAdmin.Browser.serverInfo[treeNodeInfo.server._id];
@@ -62,7 +62,7 @@ export function getNodeView(nodeType, treeNodeInfo, actionType, itemNodeData, fo
/* Don't warn the user before closing dialog */
warnOnCloseFlag = false;
resolve(res.data);
onSave(res.data);
onSave && onSave(res.data);
}).catch((err)=>{
reject(err);
});