diff options
Diffstat (limited to 'app/assets/javascripts/boards/stores/actions.js')
-rw-r--r-- | app/assets/javascripts/boards/stores/actions.js | 74 |
1 files changed, 56 insertions, 18 deletions
diff --git a/app/assets/javascripts/boards/stores/actions.js b/app/assets/javascripts/boards/stores/actions.js index 970d00841bd..dc06b62cebb 100644 --- a/app/assets/javascripts/boards/stores/actions.js +++ b/app/assets/javascripts/boards/stores/actions.js @@ -36,11 +36,13 @@ import { filterVariables, } from '../boards_util'; import boardLabelsQuery from '../graphql/board_labels.query.graphql'; +import groupBoardIterationsQuery from '../graphql/group_board_iterations.query.graphql'; import groupBoardMilestonesQuery from '../graphql/group_board_milestones.query.graphql'; import groupProjectsQuery from '../graphql/group_projects.query.graphql'; import issueCreateMutation from '../graphql/issue_create.mutation.graphql'; import issueSetLabelsMutation from '../graphql/issue_set_labels.mutation.graphql'; import listsIssuesQuery from '../graphql/lists_issues.query.graphql'; +import projectBoardIterationsQuery from '../graphql/project_board_iterations.query.graphql'; import projectBoardMilestonesQuery from '../graphql/project_board_milestones.query.graphql'; import * as types from './mutation_types'; @@ -82,11 +84,8 @@ export default { 'setFilters', convertObjectPropsToCamelCase(queryToObject(window.location.search, { gatherArrays: true })), ); - - if (gon.features.graphqlBoardLists) { - dispatch('fetchLists'); - dispatch('resetIssues'); - } + dispatch('fetchLists'); + dispatch('resetIssues'); }, fetchLists: ({ commit, state, dispatch }) => { @@ -182,7 +181,7 @@ export default { }); }, - fetchLabels: ({ state, commit, getters }, searchTerm) => { + fetchLabels: ({ state, commit }, searchTerm) => { const { fullPath, boardType } = state; const variables = { @@ -200,14 +199,7 @@ export default { variables, }) .then(({ data }) => { - let labels = data[boardType]?.labels.nodes; - - if (!getters.shouldUseGraphQL && !getters.isEpicBoard) { - labels = labels.map((label) => ({ - ...label, - id: getIdFromGraphQLId(label.id), - })); - } + const labels = data[boardType]?.labels.nodes; commit(types.RECEIVE_LABELS_SUCCESS, labels); return labels; @@ -218,6 +210,52 @@ export default { }); }, + fetchIterations({ state, commit }, title) { + commit(types.RECEIVE_ITERATIONS_REQUEST); + + const { fullPath, boardType } = state; + + const variables = { + fullPath, + title, + }; + + let query; + if (boardType === BoardType.project) { + query = projectBoardIterationsQuery; + } + if (boardType === BoardType.group) { + query = groupBoardIterationsQuery; + } + + if (!query) { + // eslint-disable-next-line @gitlab/require-i18n-strings + throw new Error('Unknown board type'); + } + + return gqlClient + .query({ + query, + variables, + }) + .then(({ data }) => { + const errors = data[boardType]?.errors; + const iterations = data[boardType]?.iterations.nodes; + + if (errors?.[0]) { + throw new Error(errors[0]); + } + + commit(types.RECEIVE_ITERATIONS_SUCCESS, iterations); + + return iterations; + }) + .catch((e) => { + commit(types.RECEIVE_ITERATIONS_FAILURE); + throw e; + }); + }, + fetchMilestones({ state, commit }, searchTerm) { commit(types.RECEIVE_MILESTONES_REQUEST); @@ -536,8 +574,8 @@ export default { boardId: fullBoardId, fromListId: getIdFromGraphQLId(fromListId), toListId: getIdFromGraphQLId(toListId), - moveBeforeId, - moveAfterId, + moveBeforeId: moveBeforeId ? getIdFromGraphQLId(moveBeforeId) : undefined, + moveAfterId: moveAfterId ? getIdFromGraphQLId(moveAfterId) : undefined, // 'mutationVariables' allows EE code to pass in extra parameters. ...mutationVariables, }, @@ -604,7 +642,7 @@ export default { } const rawIssue = data.createIssue?.issue; - const formattedIssue = formatIssue({ ...rawIssue, id: getIdFromGraphQLId(rawIssue.id) }); + const formattedIssue = formatIssue(rawIssue); dispatch('removeListItem', { listId: list.id, itemId: placeholderId }); dispatch('addListItem', { list, item: formattedIssue, position: 0 }); }) @@ -640,7 +678,7 @@ export default { } commit(types.UPDATE_BOARD_ITEM_BY_ID, { - itemId: getIdFromGraphQLId(data.updateIssue?.issue?.id) || activeBoardItem.id, + itemId: data.updateIssue?.issue?.id || activeBoardItem.id, prop: 'labels', value: data.updateIssue.issue.labels.nodes, }); |