diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2016-10-24 16:56:13 +0100 |
---|---|---|
committer | Filipa Lacerda <filipa@gitlab.com> | 2016-11-16 11:57:58 +0000 |
commit | 98a0f72dd3717c0177271583a19973ce463b5191 (patch) | |
tree | 0ad4a339a8d192e8be313395f320a3d8dac1ce84 /app/assets/javascripts/environments | |
parent | 9c41191a002c088ecb269b1e69606000be9be005 (diff) | |
download | gitlab-ce-98a0f72dd3717c0177271583a19973ce463b5191.tar.gz |
Properly filter all environments
Diffstat (limited to 'app/assets/javascripts/environments')
-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) { |