diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-19 18:44:42 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-19 18:44:42 +0300 |
commit | 4555e1b21c365ed8303ffb7a3325d773c9b8bf31 (patch) | |
tree | 5423a1c7516cffe36384133ade12572cf709398d /app/assets/javascripts/boards/stores | |
parent | e570267f2f6b326480d284e0164a6464ba4081bc (diff) |
Add latest changes from gitlab-org/gitlab@13-12-stable-eev13.12.0-rc42
Diffstat (limited to 'app/assets/javascripts/boards/stores')
-rw-r--r-- | app/assets/javascripts/boards/stores/actions.js | 113 | ||||
-rw-r--r-- | app/assets/javascripts/boards/stores/getters.js | 2 | ||||
-rw-r--r-- | app/assets/javascripts/boards/stores/mutation_types.js | 10 | ||||
-rw-r--r-- | app/assets/javascripts/boards/stores/mutations.js | 48 |
4 files changed, 48 insertions, 125 deletions
diff --git a/app/assets/javascripts/boards/stores/actions.js b/app/assets/javascripts/boards/stores/actions.js index 8005414962c..5158e82c320 100644 --- a/app/assets/javascripts/boards/stores/actions.js +++ b/app/assets/javascripts/boards/stores/actions.js @@ -1,8 +1,4 @@ import * as Sentry from '@sentry/browser'; -import { pick } from 'lodash'; -import createBoardListMutation from 'ee_else_ce/boards/graphql/board_list_create.mutation.graphql'; -import boardListsQuery from 'ee_else_ce/boards/graphql/board_lists.query.graphql'; -import issueMoveListMutation from 'ee_else_ce/boards/graphql/issue_move_list.mutation.graphql'; import { BoardType, ListType, @@ -11,7 +7,14 @@ import { ISSUABLE, titleQueries, subscriptionQueries, -} from '~/boards/constants'; + SupportedFilters, + deleteListQueries, + listsQuery, + updateListQueries, + issuableTypes, +} from 'ee_else_ce/boards/constants'; +import createBoardListMutation from 'ee_else_ce/boards/graphql/board_list_create.mutation.graphql'; +import issueMoveListMutation from 'ee_else_ce/boards/graphql/issue_move_list.mutation.graphql'; import { getIdFromGraphQLId } from '~/graphql_shared/utils'; import createGqClient, { fetchPolicies } from '~/lib/graphql'; import { convertObjectPropsToCamelCase, urlParamsToObject } from '~/lib/utils/common_utils'; @@ -19,7 +22,6 @@ import { s__ } from '~/locale'; import { formatBoardLists, formatListIssues, - fullBoardId, formatListsPageInfo, formatIssue, formatIssueInput, @@ -27,10 +29,9 @@ import { transformNotFilters, moveItemListHelper, getMoveData, + getSupportedParams, } from '../boards_util'; import boardLabelsQuery from '../graphql/board_labels.query.graphql'; -import destroyBoardListMutation from '../graphql/board_list_destroy.mutation.graphql'; -import updateBoardListMutation from '../graphql/board_list_update.mutation.graphql'; import groupProjectsQuery from '../graphql/group_projects.query.graphql'; import issueCreateMutation from '../graphql/issue_create.mutation.graphql'; import issueSetDueDateMutation from '../graphql/issue_set_due_date.mutation.graphql'; @@ -39,11 +40,6 @@ import issueSetMilestoneMutation from '../graphql/issue_set_milestone.mutation.g import listsIssuesQuery from '../graphql/lists_issues.query.graphql'; import * as types from './mutation_types'; -const notImplemented = () => { - /* eslint-disable-next-line @gitlab/require-i18n-strings */ - throw new Error('Not implemented!'); -}; - export const gqlClient = createGqClient( {}, { @@ -65,16 +61,11 @@ export default { }, setFilters: ({ commit }, filters) => { - const filterParams = pick(filters, [ - 'assigneeUsername', - 'authorUsername', - 'labelName', - 'milestoneTitle', - 'releaseTag', - 'search', - 'myReactionEmoji', - ]); - filterParams.not = transformNotFilters(filters); + const filterParams = { + ...getSupportedParams(filters, SupportedFilters), + not: transformNotFilters(filters), + }; + commit(types.SET_FILTERS, filterParams); }, @@ -90,24 +81,22 @@ export default { } }, - fetchLists: ({ dispatch }) => { - dispatch('fetchIssueLists'); - }, - - fetchIssueLists: ({ commit, state, dispatch }) => { - const { boardType, filterParams, fullPath, boardId } = state; + fetchLists: ({ commit, state, dispatch }) => { + const { boardType, filterParams, fullPath, fullBoardId, issuableType } = state; const variables = { fullPath, - boardId: fullBoardId(boardId), + boardId: fullBoardId, filters: filterParams, - isGroup: boardType === BoardType.group, - isProject: boardType === BoardType.project, + ...(issuableType === issuableTypes.issue && { + isGroup: boardType === BoardType.group, + isProject: boardType === BoardType.project, + }), }; return gqlClient .query({ - query: boardListsQuery, + query: listsQuery[issuableType].query, variables, }) .then(({ data }) => { @@ -141,7 +130,7 @@ export default { { state, commit, dispatch, getters }, { backlog, labelId, milestoneId, assigneeId, iterationId }, ) => { - const { boardId } = state; + const { fullBoardId } = state; const existingList = getters.getListByLabelId(labelId); @@ -154,7 +143,7 @@ export default { .mutate({ mutation: createBoardListMutation, variables: { - boardId: fullBoardId(boardId), + boardId: fullBoardId, backlog, labelId, milestoneId, @@ -242,10 +231,13 @@ export default { dispatch('updateList', { listId, position: newPosition, backupList }); }, - updateList: ({ commit }, { listId, position, collapsed, backupList }) => { + updateList: ( + { commit, state: { issuableType } }, + { listId, position, collapsed, backupList }, + ) => { gqlClient .mutate({ - mutation: updateBoardListMutation, + mutation: updateListQueries[issuableType].mutation, variables: { listId, position, @@ -266,14 +258,14 @@ export default { commit(types.TOGGLE_LIST_COLLAPSED, { listId, collapsed }); }, - removeList: ({ state, commit }, listId) => { - const listsBackup = { ...state.boardLists }; + removeList: ({ state: { issuableType, boardLists }, commit }, listId) => { + const listsBackup = { ...boardLists }; commit(types.REMOVE_LIST, listId); return gqlClient .mutate({ - mutation: destroyBoardListMutation, + mutation: deleteListQueries[issuableType].mutation, variables: { listId, }, @@ -297,11 +289,11 @@ export default { fetchItemsForList: ({ state, commit }, { listId, fetchNext = false }) => { commit(types.REQUEST_ITEMS_FOR_LIST, { listId, fetchNext }); - const { fullPath, boardId, boardType, filterParams } = state; + const { fullPath, fullBoardId, boardType, filterParams } = state; const variables = { fullPath, - boardId: fullBoardId(boardId), + boardId: fullBoardId, id: listId, filters: filterParams, isGroup: boardType === BoardType.group, @@ -430,7 +422,7 @@ export default { try { const { itemId, fromListId, toListId, moveBeforeId, moveAfterId } = moveData; const { - boardId, + fullBoardId, boardItems: { [itemId]: { iid, referencePath }, }, @@ -441,7 +433,7 @@ export default { variables: { iid, projectPath: referencePath.split(/[#]/)[0], - boardId: fullBoardId(boardId), + boardId: fullBoardId, fromListId: getIdFromGraphQLId(fromListId), toListId: getIdFromGraphQLId(toListId), moveBeforeId, @@ -653,6 +645,15 @@ export default { }); }, + setActiveItemConfidential: ({ commit, getters }, confidential) => { + const { activeBoardItem } = getters; + commit(types.UPDATE_BOARD_ITEM_BY_ID, { + itemId: activeBoardItem.id, + prop: 'confidential', + value: confidential, + }); + }, + fetchGroupProjects: ({ commit, state }, { search = '', fetchNext = false }) => { commit(types.REQUEST_GROUP_PROJECTS, fetchNext); @@ -731,28 +732,4 @@ export default { unsetError: ({ commit }) => { commit(types.SET_ERROR, undefined); }, - - fetchBacklog: () => { - notImplemented(); - }, - - bulkUpdateIssues: () => { - notImplemented(); - }, - - fetchIssue: () => { - notImplemented(); - }, - - toggleIssueSubscription: () => { - notImplemented(); - }, - - showPage: () => { - notImplemented(); - }, - - toggleEmptyState: () => { - notImplemented(); - }, }; diff --git a/app/assets/javascripts/boards/stores/getters.js b/app/assets/javascripts/boards/stores/getters.js index 0589851c658..b61ecc5ccb6 100644 --- a/app/assets/javascripts/boards/stores/getters.js +++ b/app/assets/javascripts/boards/stores/getters.js @@ -21,7 +21,7 @@ export default { groupPathForActiveIssue: (_, getters) => { const { referencePath = '' } = getters.activeBoardItem; - return referencePath.slice(0, referencePath.indexOf('/')); + return referencePath.slice(0, referencePath.lastIndexOf('/')); }, projectPathForActiveIssue: (_, getters) => { diff --git a/app/assets/javascripts/boards/stores/mutation_types.js b/app/assets/javascripts/boards/stores/mutation_types.js index 22b9905ee62..ccea2917c2c 100644 --- a/app/assets/javascripts/boards/stores/mutation_types.js +++ b/app/assets/javascripts/boards/stores/mutation_types.js @@ -9,9 +9,7 @@ export const GENERATE_DEFAULT_LISTS_FAILURE = 'GENERATE_DEFAULT_LISTS_FAILURE'; export const RECEIVE_BOARD_LISTS_SUCCESS = 'RECEIVE_BOARD_LISTS_SUCCESS'; export const RECEIVE_BOARD_LISTS_FAILURE = 'RECEIVE_BOARD_LISTS_FAILURE'; export const SHOW_PROMOTION_LIST = 'SHOW_PROMOTION_LIST'; -export const REQUEST_ADD_LIST = 'REQUEST_ADD_LIST'; export const RECEIVE_ADD_LIST_SUCCESS = 'RECEIVE_ADD_LIST_SUCCESS'; -export const RECEIVE_ADD_LIST_ERROR = 'RECEIVE_ADD_LIST_ERROR'; export const MOVE_LIST = 'MOVE_LIST'; export const UPDATE_LIST_FAILURE = 'UPDATE_LIST_FAILURE'; export const TOGGLE_LIST_COLLAPSED = 'TOGGLE_LIST_COLLAPSED'; @@ -20,19 +18,11 @@ export const REMOVE_LIST_FAILURE = 'REMOVE_LIST_FAILURE'; export const REQUEST_ITEMS_FOR_LIST = 'REQUEST_ITEMS_FOR_LIST'; export const RECEIVE_ITEMS_FOR_LIST_FAILURE = 'RECEIVE_ITEMS_FOR_LIST_FAILURE'; export const RECEIVE_ITEMS_FOR_LIST_SUCCESS = 'RECEIVE_ITEMS_FOR_LIST_SUCCESS'; -export const REQUEST_ADD_ISSUE = 'REQUEST_ADD_ISSUE'; -export const RECEIVE_ADD_ISSUE_SUCCESS = 'RECEIVE_ADD_ISSUE_SUCCESS'; -export const RECEIVE_ADD_ISSUE_ERROR = 'RECEIVE_ADD_ISSUE_ERROR'; export const UPDATE_BOARD_ITEM = 'UPDATE_BOARD_ITEM'; export const REMOVE_BOARD_ITEM = 'REMOVE_BOARD_ITEM'; -export const REQUEST_UPDATE_ISSUE = 'REQUEST_UPDATE_ISSUE'; export const MUTATE_ISSUE_SUCCESS = 'MUTATE_ISSUE_SUCCESS'; -export const RECEIVE_UPDATE_ISSUE_SUCCESS = 'RECEIVE_UPDATE_ISSUE_SUCCESS'; -export const RECEIVE_UPDATE_ISSUE_ERROR = 'RECEIVE_UPDATE_ISSUE_ERROR'; export const ADD_BOARD_ITEM_TO_LIST = 'ADD_BOARD_ITEM_TO_LIST'; export const REMOVE_BOARD_ITEM_FROM_LIST = 'REMOVE_BOARD_ITEM_FROM_LIST'; -export const SET_CURRENT_PAGE = 'SET_CURRENT_PAGE'; -export const TOGGLE_EMPTY_STATE = 'TOGGLE_EMPTY_STATE'; export const SET_ACTIVE_ID = 'SET_ACTIVE_ID'; export const UPDATE_BOARD_ITEM_BY_ID = 'UPDATE_BOARD_ITEM_BY_ID'; export const SET_ASSIGNEE_LOADING = 'SET_ASSIGNEE_LOADING'; diff --git a/app/assets/javascripts/boards/stores/mutations.js b/app/assets/javascripts/boards/stores/mutations.js index 561c21b78c1..667628b2998 100644 --- a/app/assets/javascripts/boards/stores/mutations.js +++ b/app/assets/javascripts/boards/stores/mutations.js @@ -6,11 +6,6 @@ import { formatIssue } from '../boards_util'; import { issuableTypes } from '../constants'; import * as mutationTypes from './mutation_types'; -const notImplemented = () => { - /* eslint-disable-next-line @gitlab/require-i18n-strings */ - throw new Error('Not implemented!'); -}; - const updateListItemsCount = ({ state, listId, value }) => { const list = state.boardLists[listId]; if (state.issuableType === issuableTypes.epic) { @@ -40,8 +35,9 @@ export const addItemToList = ({ state, listId, itemId, moveBeforeId, moveAfterId export default { [mutationTypes.SET_INITIAL_BOARD_DATA](state, data) { - const { boardType, disabled, boardId, fullPath, boardConfig, issuableType } = data; + const { boardType, disabled, boardId, fullBoardId, fullPath, boardConfig, issuableType } = data; state.boardId = boardId; + state.fullBoardId = fullBoardId; state.fullPath = fullPath; state.boardType = boardType; state.disabled = disabled; @@ -93,18 +89,10 @@ export default { state.error = s__('Boards|An error occurred while generating lists. Please reload the page.'); }, - [mutationTypes.REQUEST_ADD_LIST]: () => { - notImplemented(); - }, - [mutationTypes.RECEIVE_ADD_LIST_SUCCESS]: (state, list) => { Vue.set(state.boardLists, list.id, list); }, - [mutationTypes.RECEIVE_ADD_LIST_ERROR]: () => { - notImplemented(); - }, - [mutationTypes.MOVE_LIST]: (state, { movedList, listAtNewIndex }) => { const { boardLists } = state; Vue.set(boardLists, movedList.id, movedList); @@ -171,35 +159,11 @@ export default { state.isSettingAssignees = isLoading; }, - [mutationTypes.REQUEST_ADD_ISSUE]: () => { - notImplemented(); - }, - - [mutationTypes.RECEIVE_ADD_ISSUE_SUCCESS]: () => { - notImplemented(); - }, - - [mutationTypes.RECEIVE_ADD_ISSUE_ERROR]: () => { - notImplemented(); - }, - [mutationTypes.MUTATE_ISSUE_SUCCESS]: (state, { issue }) => { const issueId = getIdFromGraphQLId(issue.id); Vue.set(state.boardItems, issueId, formatIssue({ ...issue, id: issueId })); }, - [mutationTypes.REQUEST_UPDATE_ISSUE]: () => { - notImplemented(); - }, - - [mutationTypes.RECEIVE_UPDATE_ISSUE_SUCCESS]: () => { - notImplemented(); - }, - - [mutationTypes.RECEIVE_UPDATE_ISSUE_ERROR]: () => { - notImplemented(); - }, - [mutationTypes.ADD_BOARD_ITEM_TO_LIST]: ( state, { itemId, listId, moveBeforeId, moveAfterId, atIndex }, @@ -219,14 +183,6 @@ export default { Vue.delete(state.boardItems, itemId); }, - [mutationTypes.SET_CURRENT_PAGE]: () => { - notImplemented(); - }, - - [mutationTypes.TOGGLE_EMPTY_STATE]: () => { - notImplemented(); - }, - [mutationTypes.REQUEST_GROUP_PROJECTS]: (state, fetchNext) => { Vue.set(state, 'groupProjectsFlags', { [fetchNext ? 'isLoadingMore' : 'isLoading']: true, |