diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2016-10-25 21:00:56 +0100 |
---|---|---|
committer | Filipa Lacerda <filipa@gitlab.com> | 2016-11-16 11:58:05 +0000 |
commit | a2dbdb88be6fdd363d42f925c2792adb2e4756ab (patch) | |
tree | 1bed260111b26da8e5f2bfc301f4f7afa959a7ff /app/assets/javascripts/environments/stores | |
parent | 9a7fa3b6d38f6ac9dbdfef793d66cb6d21c6431e (diff) | |
download | gitlab-ce-a2dbdb88be6fdd363d42f925c2792adb2e4756ab.tar.gz |
Fix tab filtering and counting
Diffstat (limited to 'app/assets/javascripts/environments/stores')
-rw-r--r-- | app/assets/javascripts/environments/stores/environmnets_store.js.es6 | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/app/assets/javascripts/environments/stores/environmnets_store.js.es6 b/app/assets/javascripts/environments/stores/environmnets_store.js.es6 index 9416b944b4d..de51d94d2b5 100644 --- a/app/assets/javascripts/environments/stores/environmnets_store.js.es6 +++ b/app/assets/javascripts/environments/stores/environmnets_store.js.es6 @@ -7,6 +7,8 @@ create () { this.state.environments = []; + this.state.stoppedCounter = 0; + this.state.availableCounter = 0; }, /** @@ -42,6 +44,10 @@ * @returns {Array} Tree structured array with the received environments. */ storeEnvironments(environments = []) { + + this.state.stoppedCounter = this.countByState(environments, 'stopped'); + this.state.availableCounter = this.countByState(environments, 'available'); + const environmentsTree = environments.reduce((acc, environment) => { if (environment.last_deployment) { @@ -59,15 +65,14 @@ if (environment.environment_type !== null) { const occurs = acc.find((element, index, array) => { - return element.environment_type === environment.environment_type; + return element.children && element.name === environment.environment_type; }); - - + environment["vue-isChildren"] = true; if (occurs !== undefined) { acc[acc.indexOf(occurs)].children.push(environment); - acc[acc.indexOf(occurs)].children.push(environment).sort(this.sortByName) + acc[acc.indexOf(occurs)].children.sort(this.sortByName) } else { acc.push({ name: environment.environment_type, @@ -89,6 +94,18 @@ }, /** + * Given an array of environments, returns the number of environments + * that have the given state. + * + * @param {Array} environments + * @param {String} state + * @returns {Number} + */ + countByState(environments, state) { + return environments.filter((env) => env.state === state).length; + }, + + /** * Sorts the two objects provided by their name. * * @param {Object} a |