diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-20 18:10:24 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-20 18:10:24 +0300 |
commit | c70a70ea42e3f8742623e690dcd74d17c7c3b0ed (patch) | |
tree | e60d0a3728112b773e1330a9926e1a6c6d058d53 /app/assets/javascripts/import_entities | |
parent | b70394d26f7349ecfa4a740d7d7b115d738eff8e (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/import_entities')
3 files changed, 12 insertions, 13 deletions
diff --git a/app/assets/javascripts/import_entities/import_projects/components/import_projects_table.vue b/app/assets/javascripts/import_entities/import_projects/components/import_projects_table.vue index 14d08caef34..0cd3519bcec 100644 --- a/app/assets/javascripts/import_entities/import_projects/components/import_projects_table.vue +++ b/app/assets/javascripts/import_entities/import_projects/components/import_projects_table.vue @@ -32,7 +32,7 @@ export default { }, computed: { - ...mapState(['filter', 'repositories', 'namespaces', 'defaultTargetNamespace']), + ...mapState(['filter', 'repositories', 'namespaces', 'defaultTargetNamespace', 'pageInfo']), ...mapGetters([ 'isLoading', 'isImportingAnyRepo', @@ -43,7 +43,7 @@ export default { ]), pagePaginationStateKey() { - return `${this.filter}-${this.repositories.length}`; + return `${this.filter}-${this.repositories.length}-${this.pageInfo.page}`; }, availableNamespaces() { diff --git a/app/assets/javascripts/import_entities/import_projects/store/actions.js b/app/assets/javascripts/import_entities/import_projects/store/actions.js index 5cbc6e85bf3..92be028b8a9 100644 --- a/app/assets/javascripts/import_entities/import_projects/store/actions.js +++ b/app/assets/javascripts/import_entities/import_projects/store/actions.js @@ -53,7 +53,6 @@ const importAll = ({ state, dispatch }) => { const fetchReposFactory = ({ reposPath = isRequired() }) => ({ state, commit }) => { const nextPage = state.pageInfo.page + 1; - commit(types.SET_PAGE, nextPage); commit(types.REQUEST_REPOS); const { provider, filter } = state; @@ -67,11 +66,10 @@ const fetchReposFactory = ({ reposPath = isRequired() }) => ({ state, commit }) }), ) .then(({ data }) => { + commit(types.SET_PAGE, nextPage); commit(types.RECEIVE_REPOS_SUCCESS, convertObjectPropsToCamelCase(data, { deep: true })); }) .catch((e) => { - commit(types.SET_PAGE, nextPage - 1); - if (hasRedirectInError(e)) { redirectToUrlInError(e); } else if (tooManyRequests(e)) { diff --git a/app/assets/javascripts/import_entities/import_projects/store/mutations.js b/app/assets/javascripts/import_entities/import_projects/store/mutations.js index c5e1922597a..45f7a684161 100644 --- a/app/assets/javascripts/import_entities/import_projects/store/mutations.js +++ b/app/assets/javascripts/import_entities/import_projects/store/mutations.js @@ -9,7 +9,7 @@ const makeNewImportedProject = (importedProject) => ({ sanitizedName: importedProject.name, providerLink: importedProject.providerLink, }, - importedProject, + importedProject: { ...importedProject }, }); const makeNewIncompatibleProject = (project) => ({ @@ -63,15 +63,16 @@ export default { factory: makeNewIncompatibleProject, }); - state.repositories = [ - ...newImportedProjects, - ...state.repositories, - ...repositories.providerRepos.map((project) => ({ + const existingProjects = [...newImportedProjects, ...state.repositories]; + const existingProjectNames = new Set(existingProjects.map((p) => p.importSource.fullName)); + const newProjects = repositories.providerRepos + .filter((project) => !existingProjectNames.has(project.fullName)) + .map((project) => ({ importSource: project, importedProject: null, - })), - ...newIncompatibleProjects, - ]; + })); + + state.repositories = [...existingProjects, ...newProjects, ...newIncompatibleProjects]; if (incompatibleRepos.length === 0 && repositories.providerRepos.length === 0) { state.pageInfo.page -= 1; |