From 108dd02791da19915beb29c872516c52a74fc637 Mon Sep 17 00:00:00 2001 From: Simon Pichugin Date: Fri, 5 Aug 2022 10:08:45 -0700 Subject: [PATCH 3/5] Issue 5399 - UI - LDAP Editor is not updated when we switch instances (#5400) Description: We don't refresh LDAP Editor when we switch instances. It may lead to unpleasant errors. Add componentDidUpdate function with the appropriate processing and properties. Fixes: https://github.com/389ds/389-ds-base/issues/5399 Reviewed by: @mreynolds389 (Thanks!) --- src/cockpit/389-console/src/LDAPEditor.jsx | 19 +++++++++++++++++++ src/cockpit/389-console/src/ds.jsx | 1 + 2 files changed, 20 insertions(+) diff --git a/src/cockpit/389-console/src/LDAPEditor.jsx b/src/cockpit/389-console/src/LDAPEditor.jsx index 70324be39..04fc97d41 100644 --- a/src/cockpit/389-console/src/LDAPEditor.jsx +++ b/src/cockpit/389-console/src/LDAPEditor.jsx @@ -60,6 +60,7 @@ export class LDAPEditor extends React.Component { this.state = { activeTabKey: 0, + firstLoad: true, keyIndex: 0, suffixList: [], changeLayout: false, @@ -249,6 +250,12 @@ export class LDAPEditor extends React.Component { baseDn: this.state.baseDN }; + if (this.state.firstLoad) { + this.setState({ + firstLoad: false + }); + } + this.setState({ searching: true, loading: refresh @@ -361,6 +368,18 @@ export class LDAPEditor extends React.Component { }); } + componentDidUpdate(prevProps) { + if (this.props.wasActiveList.includes(7)) { + if (this.state.firstLoad) { + this.handleReload(true); + } else { + if (this.props.serverId !== prevProps.serverId) { + this.handleReload(true); + } + } + } + } + getPageData (page, perPage) { if (page === 1) { const pagedRows = this.state.rows.slice(0, 2 * perPage); // Each parent has a single child. diff --git a/src/cockpit/389-console/src/ds.jsx b/src/cockpit/389-console/src/ds.jsx index e88915e41..de4385292 100644 --- a/src/cockpit/389-console/src/ds.jsx +++ b/src/cockpit/389-console/src/ds.jsx @@ -764,6 +764,7 @@ export class DSInstance extends React.Component { key="ldap-editor" addNotification={this.addNotification} serverId={this.state.serverId} + wasActiveList={this.state.wasActiveList} setPageSectionVariant={this.setPageSectionVariant} /> -- 2.37.1