summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/environments/environments_bundle.js.es627
-rw-r--r--app/assets/javascripts/environments/stores/environmnets_store.js.es61
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) {