summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/ide/stores/modules
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2018-05-30 12:56:06 +0100
committerPhil Hughes <me@iamphill.com>2018-05-30 12:56:06 +0100
commitc9d676c1069e6e88b4eeeea2246cc5706b56f2ab (patch)
treec7d88b9d025964d4973eb80764d03d6f6c4d0e3f /app/assets/javascripts/ide/stores/modules
parent6c9844c10e23e939a08a9ba3e8972dd3f112f206 (diff)
downloadgitlab-ce-c9d676c1069e6e88b4eeeea2246cc5706b56f2ab.tar.gz
changed mutations, update single object instead of returning new array
bunch of i18n stuff :see_no_evil:
Diffstat (limited to 'app/assets/javascripts/ide/stores/modules')
-rw-r--r--app/assets/javascripts/ide/stores/modules/pipelines/constants.js4
-rw-r--r--app/assets/javascripts/ide/stores/modules/pipelines/getters.js12
-rw-r--r--app/assets/javascripts/ide/stores/modules/pipelines/mutations.js38
-rw-r--r--app/assets/javascripts/ide/stores/modules/pipelines/utils.js7
4 files changed, 29 insertions, 32 deletions
diff --git a/app/assets/javascripts/ide/stores/modules/pipelines/constants.js b/app/assets/javascripts/ide/stores/modules/pipelines/constants.js
new file mode 100644
index 00000000000..f5b96327e40
--- /dev/null
+++ b/app/assets/javascripts/ide/stores/modules/pipelines/constants.js
@@ -0,0 +1,4 @@
+// eslint-disable-next-line import/prefer-default-export
+export const states = {
+ failed: 'failed',
+};
diff --git a/app/assets/javascripts/ide/stores/modules/pipelines/getters.js b/app/assets/javascripts/ide/stores/modules/pipelines/getters.js
index d6f10e0d71e..f545453806f 100644
--- a/app/assets/javascripts/ide/stores/modules/pipelines/getters.js
+++ b/app/assets/javascripts/ide/stores/modules/pipelines/getters.js
@@ -1,18 +1,22 @@
+import { states } from './constants';
+
export const hasLatestPipeline = state => !state.isLoadingPipeline && !!state.latestPipeline;
export const pipelineFailed = state =>
- state.latestPipeline && state.latestPipeline.details.status.text === 'failed';
+ state.latestPipeline && state.latestPipeline.details.status.text === states.failed;
export const failedStages = state =>
- state.stages.filter(stage => stage.status.text.toLowerCase() === 'failed').map(stage => ({
+ state.stages.filter(stage => stage.status.text.toLowerCase() === states.failed).map(stage => ({
...stage,
- jobs: stage.jobs.filter(job => job.status.text.toLowerCase() === 'failed'),
+ jobs: stage.jobs.filter(job => job.status.text.toLowerCase() === states.failed),
}));
export const failedJobsCount = state =>
state.stages.reduce(
- (acc, stage) => acc + stage.jobs.filter(j => j.status.text === 'failed').length,
+ (acc, stage) => acc + stage.jobs.filter(j => j.status.text === states.failed).length,
0,
);
export const jobsCount = state => state.stages.reduce((acc, stage) => acc + stage.jobs.length, 0);
+
+export default () => {};
diff --git a/app/assets/javascripts/ide/stores/modules/pipelines/mutations.js b/app/assets/javascripts/ide/stores/modules/pipelines/mutations.js
index 78ac12c7026..38459dfbe77 100644
--- a/app/assets/javascripts/ide/stores/modules/pipelines/mutations.js
+++ b/app/assets/javascripts/ide/stores/modules/pipelines/mutations.js
@@ -1,5 +1,6 @@
/* eslint-disable no-param-reassign */
import * as types from './mutation_types';
+import { normalizeJob } from './utils';
export default {
[types.REQUEST_LATEST_PIPELINE](state) {
@@ -38,39 +39,20 @@ export default {
}
},
[types.REQUEST_JOBS](state, id) {
- state.stages = state.stages.map(stage =>
- Object.assign(stage, {
- isLoading: id === stage.id ? true : stage.isLoading,
- }),
- );
+ const stage = state.stages.find(s => s.id === id);
+ stage.isLoading = true;
},
[types.RECEIVE_JOBS_ERROR](state, id) {
- state.stages = state.stages.map(stage =>
- Object.assign(stage, {
- isLoading: id === stage.id ? false : stage.isLoading,
- }),
- );
+ const stage = state.stages.find(s => s.id === id);
+ stage.isLoading = false;
},
[types.RECEIVE_JOBS_SUCCESS](state, { id, data }) {
- const normalizeData = job => ({
- id: job.id,
- name: job.name,
- status: job.status,
- path: job.build_path,
- });
-
- state.stages = state.stages.map(stage =>
- Object.assign(stage, {
- isLoading: id === stage.id ? false : stage.isLoading,
- jobs: id === stage.id ? data.latest_statuses.map(normalizeData) : stage.jobs,
- }),
- );
+ const stage = state.stages.find(s => s.id === id);
+ stage.isLoading = false;
+ stage.jobs = data.latest_statuses.map(normalizeJob);
},
[types.TOGGLE_STAGE_COLLAPSE](state, id) {
- state.stages = state.stages.map(stage =>
- Object.assign(stage, {
- isCollapsed: stage.id === id ? !stage.isCollapsed : stage.isCollapsed,
- }),
- );
+ const stage = state.stages.find(s => s.id === id);
+ stage.isCollapsed = !stage.isCollapsed;
},
};
diff --git a/app/assets/javascripts/ide/stores/modules/pipelines/utils.js b/app/assets/javascripts/ide/stores/modules/pipelines/utils.js
new file mode 100644
index 00000000000..9f4b0d7d726
--- /dev/null
+++ b/app/assets/javascripts/ide/stores/modules/pipelines/utils.js
@@ -0,0 +1,7 @@
+// eslint-disable-next-line import/prefer-default-export
+export const normalizeJob = job => ({
+ id: job.id,
+ name: job.name,
+ status: job.status,
+ path: job.build_path,
+});