From 51329cc3dd33b8f253955bb5a8539818ad64d25f Mon Sep 17 00:00:00 2001 From: KeyboardTsundoku Date: Wed, 1 Mar 2017 10:47:01 +1100 Subject: [PATCH] with fix --- .../crud/lib/store/insert-document-store.js | 3 ++- .../lib/store/load-more-documents-store.js | 15 ++++++----- .../lib/store/reset-document-list-store.js | 17 +++++++----- .../explain/lib/stores/index.js | 27 ++++++++++--------- .../query/lib/store/query-store.js | 9 +++---- .../schema/lib/store/index.js | 15 ++++++----- 6 files changed, 48 insertions(+), 38 deletions(-) diff --git a/src/internal-packages/crud/lib/store/insert-document-store.js b/src/internal-packages/crud/lib/store/insert-document-store.js index ea0bb6162e4..1f2803cb349 100644 --- a/src/internal-packages/crud/lib/store/insert-document-store.js +++ b/src/internal-packages/crud/lib/store/insert-document-store.js @@ -1,6 +1,7 @@ const Reflux = require('reflux'); const app = require('hadron-app'); const NamespaceStore = require('hadron-reflux-store').NamespaceStore; +const toNS = require('mongodb-ns'); const Actions = require('../actions'); const _ = require('lodash'); @@ -50,7 +51,7 @@ const InsertDocumentStore = Reflux.createStore({ * @param {Object} state - The query state. */ onQueryChanged: function(state) { - if (state.filter) { + if (state.ns && toNS(state.ns).collection && state.filter) { this.filter = state.filter; } } diff --git a/src/internal-packages/crud/lib/store/load-more-documents-store.js b/src/internal-packages/crud/lib/store/load-more-documents-store.js index e3814a870be..9e65e5d3ecd 100644 --- a/src/internal-packages/crud/lib/store/load-more-documents-store.js +++ b/src/internal-packages/crud/lib/store/load-more-documents-store.js @@ -1,6 +1,7 @@ const Reflux = require('reflux'); const app = require('hadron-app'); const NamespaceStore = require('hadron-reflux-store').NamespaceStore; +const toNS = require('mongodb-ns'); const Actions = require('../actions'); const ReadPreference = require('mongodb').ReadPreference; const _ = require('lodash'); @@ -40,12 +41,14 @@ const LoadMoreDocumentsStore = Reflux.createStore({ * @param {Object} state - The query state. */ onQueryChanged: function(state) { - this.filter = state.filter || {}; - this.sort = _.pairs(state.sort); - this.limit = state.limit; - this.skip = state.skip; - this.project = state.project; - this.counter = 0; + if (state.ns && toNS(state.ns).collection) { + this.filter = state.filter || {}; + this.sort = _.pairs(state.sort); + this.limit = state.limit; + this.skip = state.skip; + this.project = state.project; + this.counter = 0; + } }, /** diff --git a/src/internal-packages/crud/lib/store/reset-document-list-store.js b/src/internal-packages/crud/lib/store/reset-document-list-store.js index 3a78632809e..4acb737c55b 100644 --- a/src/internal-packages/crud/lib/store/reset-document-list-store.js +++ b/src/internal-packages/crud/lib/store/reset-document-list-store.js @@ -1,6 +1,7 @@ const Reflux = require('reflux'); const app = require('hadron-app'); const ReadPreference = require('mongodb').ReadPreference; +const toNS = require('mongodb-ns'); const Actions = require('../actions'); const _ = require('lodash'); @@ -39,13 +40,15 @@ const ResetDocumentListStore = Reflux.createStore({ * @param {Object} state - The query state. */ onQueryChanged: function(state) { - this.filter = state.filter || {}; - this.sort = _.pairs(state.sort); - this.limit = state.limit; - this.skip = state.skip; - this.project = state.project; - this.ns = state.ns; - this.reset(); + if (state.ns && toNS(state.ns).collection) { + this.filter = state.filter || {}; + this.sort = _.pairs(state.sort); + this.limit = state.limit; + this.skip = state.skip; + this.project = state.project; + this.ns = state.ns; + this.reset(); + } }, /** diff --git a/src/internal-packages/explain/lib/stores/index.js b/src/internal-packages/explain/lib/stores/index.js index 54fe01a8a3e..c3f07813e98 100644 --- a/src/internal-packages/explain/lib/stores/index.js +++ b/src/internal-packages/explain/lib/stores/index.js @@ -2,6 +2,7 @@ const Reflux = require('reflux'); const ExplainActions = require('../actions'); const StateMixin = require('reflux-state-mixin'); const app = require('hadron-app'); +const toNS = require('mongodb-ns'); const ExplainPlanModel = require('mongodb-explain-plan-model'); const _ = require('lodash'); @@ -51,18 +52,20 @@ const CompassExplainStore = Reflux.createStore({ }, onQueryChanged(state) { - this.filter = state.filter; - this.project = state.project; - this.sort = state.sort; - this.skip = state.skip; - this.limit = state.limit; - this.ns = state.ns; - - if (state.queryState === 'reset') { - this._resetQuery(); - this._reset(); - } else { - this.fetchExplainPlan(); + if (state.ns && toNS(state.ns).collection) { + this.filter = state.filter; + this.project = state.project; + this.sort = state.sort; + this.skip = state.skip; + this.limit = state.limit; + this.ns = state.ns; + + if (state.queryState === 'reset') { + this._resetQuery(); + this._reset(); + } else { + this.fetchExplainPlan(); + } } }, diff --git a/src/internal-packages/query/lib/store/query-store.js b/src/internal-packages/query/lib/store/query-store.js index 96f4011376e..a9ec4830c93 100644 --- a/src/internal-packages/query/lib/store/query-store.js +++ b/src/internal-packages/query/lib/store/query-store.js @@ -8,7 +8,6 @@ const app = require('hadron-app'); const assert = require('assert'); const _ = require('lodash'); const ms = require('ms'); -const toNS = require('mongodb-ns'); const bsonEqual = require('../util').bsonEqual; const hasDistinctValue = require('../util').hasDistinctValue; @@ -50,11 +49,9 @@ const QueryStore = Reflux.createStore({ } // on namespace changes, reset the store NamespaceStore.listen((ns) => { - if (ns && toNS(ns).collection) { - const newState = this.getInitialState(); - newState.ns = ns; - this.setState(newState); - } + const newState = this.getInitialState(); + newState.ns = ns; + this.setState(newState); }); }, diff --git a/src/internal-packages/schema/lib/store/index.js b/src/internal-packages/schema/lib/store/index.js index c054e6f6a68..495e8b1d9f9 100644 --- a/src/internal-packages/schema/lib/store/index.js +++ b/src/internal-packages/schema/lib/store/index.js @@ -5,6 +5,7 @@ const Reflux = require('reflux'); const StateMixin = require('reflux-state-mixin'); const schemaStream = require('mongodb-schema').stream; const ReadPreference = require('mongodb').ReadPreference; +const toNS = require('mongodb-ns'); const _ = require('lodash'); const COMPASS_ICON_PATH = require('../../../../icon').path; @@ -97,12 +98,14 @@ const SchemaStore = Reflux.createStore({ }, onQueryChanged: function(state) { - this._reset(); - this.query.filter = state.filter; - this.query.limit = state.limit; - this.query.project = state.project; - this.ns = state.ns; - SchemaAction.startSampling(); + if (state.ns && toNS(state.ns).collection) { + this._reset(); + this.query.filter = state.filter; + this.query.limit = state.limit; + this.query.project = state.project; + this.ns = state.ns; + SchemaAction.startSampling(); + } }, setMaxTimeMS(maxTimeMS) {