diff options
-rw-r--r-- | app/assets/javascripts/environments/environments_bundle.js.es6 | 27 | ||||
-rw-r--r-- | app/assets/javascripts/environments/stores/environmnets_store.js.es6 | 1 |
2 files changed, 15 insertions, 13 deletions
diff --git a/app/assets/javascripts/environments/environments_bundle.js.es6 b/app/assets/javascripts/environments/environments_bundle.js.es6 index 4dc4ac2c99b..f8cefabefa4 100644 --- a/app/assets/javascripts/environments/environments_bundle.js.es6 +++ b/app/assets/javascripts/environments/environments_bundle.js.es6 @@ -15,19 +15,20 @@ $(() => { gl.EnvironmentsListApp.$destroy(true); } - const filters = { - stopped (environments) { - return environments.filter((env) => env.state === 'stopped') - }, - available (environments) { - return environments.filter((env) => env.state === 'available') - } + const filterEnvironments = (environments = [], filter = "") => { + return environments.filter((env) => { + if (env.children) { + return env.children.filter((child) => child.state === filter).length; + } else { + return env.state === filter; + }; + }); }; gl.EnvironmentsListApp = new Vue({ el: '#environments-list-view', - + components: { 'item': gl.environmentsList.EnvironmentItem }, @@ -41,15 +42,15 @@ $(() => { computed: { filteredEnvironments () { - return filters[this.visibility](this.state.environments); + return filterEnvironments(this.state.environments, this.visibility); }, - + countStopped () { - return filters['stopped'](this.state.environments).length; + return filterEnvironments(this.state.environments, 'stopped').length; }, - + counAvailable () { - return filters['available'](this.state.environments).length; + return filterEnvironments(this.state.environments, 'available').length; } }, diff --git a/app/assets/javascripts/environments/stores/environmnets_store.js.es6 b/app/assets/javascripts/environments/stores/environmnets_store.js.es6 index f48e8d4c49a..72267b97255 100644 --- a/app/assets/javascripts/environments/stores/environmnets_store.js.es6 +++ b/app/assets/javascripts/environments/stores/environmnets_store.js.es6 @@ -63,6 +63,7 @@ return element.environment_type === environment.environment_type; }); + data["vue-isChildren"] = true; if (occurs !== undefined) { |