Hi,
Please find attached patch to fix clear history functionality in query tool.
--
*Harshal Dhumal*
*Sr. Software Engineer*
EnterpriseDB India: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
diff --git a/web/pgadmin/static/js/history/history_collection.js b/web/pgadmin/static/js/history/history_collection.js
index f7b6acd..22a86f7 100644
--- a/web/pgadmin/static/js/history/history_collection.js
+++ b/web/pgadmin/static/js/history/history_collection.js
@@ -25,10 +25,14 @@ export default class HistoryCollection {
reset() {
this.historyList = [];
- this.onChangeHandler(this.historyList);
+ this.onResetHandler(this.historyList);
}
onChange(onChangeHandler) {
this.onChangeHandler = onChangeHandler;
}
+
+ onReset(onResetHandler) {
+ this.onResetHandler = onResetHandler;
+ }
}
\ No newline at end of file
diff --git a/web/pgadmin/static/jsx/history/query_history.jsx b/web/pgadmin/static/jsx/history/query_history.jsx
index 0d9222d..270dbf1 100644
--- a/web/pgadmin/static/jsx/history/query_history.jsx
+++ b/web/pgadmin/static/jsx/history/query_history.jsx
@@ -36,6 +36,10 @@ export default class QueryHistory extends React.Component {
this.props.historyCollection.onChange((historyList) => {
this.resetCurrentHistoryDetail(historyList);
});
+
+ this.props.historyCollection.onReset((historyList) => {
+ this.clearCurrentHistoryDetail(historyList);
+ });
}
componentDidMount() {
@@ -58,6 +62,14 @@ export default class QueryHistory extends React.Component {
this.setCurrentHistoryDetail(0, historyList);
}
+ clearCurrentHistoryDetail(historyList) {
+ this.setState({
+ history: historyList,
+ currentHistoryDetail: undefined,
+ selectedEntry: 0,
+ });
+ }
+
retrieveOrderedHistory() {
return _.chain(this.state.history)
.sortBy(historyEntry => historyEntry.start_time)
diff --git a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
index 0584df5..8a797ab 100644
--- a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
+++ b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
@@ -1325,8 +1325,7 @@ define([
alertify.confirm(gettext("Clear history"),
gettext("Are you sure you wish to clear the history?"),
function() {
- // Remove any existing grid first
- if (self.history_grid) {
+ if (self.history_collection) {
self.history_collection.reset();
}
},
diff --git a/web/regression/javascript/history/history_collection_spec.js b/web/regression/javascript/history/history_collection_spec.js
index 9c10b90..b952c92 100644
--- a/web/regression/javascript/history/history_collection_spec.js
+++ b/web/regression/javascript/history/history_collection_spec.js
@@ -10,13 +10,15 @@
import HistoryCollection from '../../../pgadmin/static/js/history/history_collection';
describe('historyCollection', function () {
- let historyCollection, historyModel, onChangeSpy;
+ let historyCollection, historyModel, onChangeSpy, onResetSpy;
beforeEach(() => {
historyModel = [{some: 'thing', someOther: ['array element']}];
historyCollection = new HistoryCollection(historyModel);
onChangeSpy = jasmine.createSpy('onChangeHandler');
+ onResetSpy = jasmine.createSpy('onResetHandler');
historyCollection.onChange(onChangeSpy);
+ historyCollection.onReset(onResetSpy);
});
describe('length', function () {
@@ -61,8 +63,8 @@ describe('historyCollection', function () {
expect(historyCollection.length()).toBe(0);
});
- it('calls the onChange function', function () {
- expect(onChangeSpy).toHaveBeenCalledWith([]);
+ it('calls the onReset function', function () {
+ expect(onResetSpy).toHaveBeenCalledWith([]);
});
});