Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-02-10 00:09:12 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-02-10 00:09:12 +0300
commitd183d2d76bcc25f983c0836805c712af096bcc2f (patch)
tree982987f91e1cf268dbad55e51c4ea57292abbbd6 /app/assets/javascripts/import_entities
parent453634293e24164ffaa5cd708e47a1cebc07bcd3 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/import_entities')
-rw-r--r--app/assets/javascripts/import_entities/import_groups/components/import_table.vue21
-rw-r--r--app/assets/javascripts/import_entities/import_groups/constants.js3
2 files changed, 18 insertions, 6 deletions
diff --git a/app/assets/javascripts/import_entities/import_groups/components/import_table.vue b/app/assets/javascripts/import_entities/import_groups/components/import_table.vue
index 68e255e14b9..d686522c748 100644
--- a/app/assets/javascripts/import_entities/import_groups/components/import_table.vue
+++ b/app/assets/javascripts/import_entities/import_groups/components/import_table.vue
@@ -17,6 +17,7 @@ import {
import { debounce } from 'lodash';
import { createAlert } from '~/flash';
import { s__, __, n__, sprintf } from '~/locale';
+import { HTTP_STATUS_TOO_MANY_REQUESTS } from '~/lib/utils/http_status';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import PaginationBar from '~/vue_shared/components/pagination_bar/pagination_bar.vue';
import HelpPopover from '~/vue_shared/components/help_popover.vue';
@@ -181,7 +182,7 @@ export default {
const status = this.getStatus(group);
const flags = {
- isInvalid: importTarget.validationErrors?.length > 0,
+ isInvalid: (importTarget.validationErrors ?? []).filter((e) => !e.nonBlocking).length > 0,
isAvailableForImport: isAvailableForImport(group) && status !== STATUSES.SCHEDULING,
isFinished: isFinished(group),
};
@@ -376,11 +377,19 @@ export default {
variables: { importRequests },
});
} catch (error) {
- createAlert({
- message: i18n.ERROR_IMPORT,
- captureError: true,
- error,
- });
+ if (error.networkError?.response?.status === HTTP_STATUS_TOO_MANY_REQUESTS) {
+ newPendingGroupsIds.forEach((id) => {
+ this.importTargets[id].validationErrors = [
+ { field: NEW_NAME_FIELD, message: i18n.ERROR_TOO_MANY_REQUESTS, nonBlocking: true },
+ ];
+ });
+ } else {
+ createAlert({
+ message: i18n.ERROR_IMPORT,
+ captureError: true,
+ error,
+ });
+ }
} finally {
this.pendingGroupsIds = this.pendingGroupsIds.filter(
(id) => !newPendingGroupsIds.includes(id),
diff --git a/app/assets/javascripts/import_entities/import_groups/constants.js b/app/assets/javascripts/import_entities/import_groups/constants.js
index 7e532dfec05..60938272d11 100644
--- a/app/assets/javascripts/import_entities/import_groups/constants.js
+++ b/app/assets/javascripts/import_entities/import_groups/constants.js
@@ -11,6 +11,9 @@ export const i18n = {
),
ERROR_IMPORT: s__('BulkImport|Importing the group failed.'),
ERROR_IMPORT_COMPLETED: s__('BulkImport|Import is finished. Pick another name for re-import'),
+ ERROR_TOO_MANY_REQUESTS: s__(
+ 'Bulkmport|Over six imports in one minute were attempted. Wait at least one minute and try again.',
+ ),
NO_GROUPS_FOUND: s__('BulkImport|No groups found'),
OWNER: __('Owner'),