From c1ea2a91648ca8bfdb2e17e3ec7e3358da490dc8 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 19 May 2021 21:12:42 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .../javascripts/issue_show/components/app.vue | 40 ++- .../issue_show/components/edit_actions.vue | 138 ++++++---- .../fields/description_template.vue | 4 +- .../issue_show/components/fields/title.vue | 2 +- .../issue_show/components/fields/type.vue | 79 ++++++ .../issue_show/components/form.vue | 48 ++-- .../javascripts/issue_show/constants.js | 11 + app/assets/javascripts/issue_show/graphql.js | 9 + app/assets/javascripts/issue_show/incident.js | 22 +- app/assets/javascripts/issue_show/issue.js | 31 ++- .../queries/get_issue_state.query.graphql | 3 + .../update_issue_state.mutation.graphql | 3 + .../pages/admin/runners/index/index.js | 5 + .../components/cells/runner_name_cell.vue | 44 ++++ .../components/cells/runner_type_cell.vue | 42 +++ .../runner/components/runner_list.vue | 142 ++++++++++ .../components/runner_manual_setup_help.vue | 76 ++++++ .../runner/components/runner_tags.vue | 33 +++ .../runner/components/runner_type_help.vue | 60 +++++ .../runner/graphql/get_runners.query.graphql | 17 ++ .../javascripts/runner/runner_list/index.js | 42 +++ .../runner/runner_list/runner_list_app.vue | 82 ++++++ app/assets/javascripts/sidebar/graphql.js | 25 +- app/controllers/admin/runners_controller.rb | 3 + app/helpers/commits_helper.rb | 4 +- app/helpers/nav/top_nav_helper.rb | 88 ++++--- app/models/ci/build.rb | 16 +- app/models/project.rb | 5 - app/services/issues/base_service.rb | 32 +++ app/services/issues/create_service.rb | 17 -- app/services/issues/update_service.rb | 10 + app/views/admin/runners/_runner.html.haml | 2 +- app/views/admin/runners/index.html.haml | 242 +++++++++--------- .../ci/runner/_how_to_setup_runner.html.haml | 2 +- app/views/layouts/nav/_top_nav.html.haml | 5 + app/workers/concerns/application_worker.rb | 21 ++ app/workers/concerns/worker_attributes.rb | 21 +- ...370-change-issue-type-fe-delete-button.yml | 5 + .../326989_use_cache_for_runners_states.yml | 5 + .../dz-remove-deprecated-global-routes.yml | 5 + .../data_consistency_delayed_execution.yml | 8 + ...states.yml => runner_list_view_vue_ui.yml} | 10 +- config/routes.rb | 32 --- .../packages/container_registry.md | 21 +- .../issues/img/issue_type_change_v13_12.png | Bin 0 -> 52414 bytes doc/user/project/issues/managing_issues.md | 11 + doc/user/reserved_names.md | 4 - lib/gitlab/nav/top_nav_view_model_builder.rb | 28 +- lib/gitlab/path_regex.rb | 4 - locale/gitlab.pot | 6 +- .../admin/runners_controller_spec.rb | 4 + spec/features/admin/admin_runners_spec.rb | 58 +++-- spec/features/dashboard/shortcuts_spec.rb | 12 - .../incidents/incident_details_spec.rb | 38 +++ spec/features/issues/issue_detail_spec.rb | 63 ++++- .../issue_show/components/app_spec.js | 41 +-- .../issue_show/components/description_spec.js | 2 +- .../components/edit_actions_spec.js | 194 ++++++++------ .../issue_show/components/fields/type_spec.js | 84 ++++++ .../issue_show/components/form_spec.js | 17 ++ .../incidents/incident_tabs_spec.js | 2 +- spec/frontend/issue_show/issue_spec.js | 2 +- .../issue_show/mock_data/apollo_mock.js | 9 + .../issue_show/{ => mock_data}/mock_data.js | 1 + .../components/cells/runner_name_cell_spec.js | 42 +++ .../components/cells/runner_type_cell_spec.js | 48 ++++ .../runner/components/runner_list_spec.js | 115 +++++++++ .../runner_manual_setup_help_spec.js | 84 ++++++ .../runner/components/runner_tags_spec.js | 64 +++++ .../components/runner_type_help_spec.js | 32 +++ spec/frontend/runner/mock_data.js | 37 +++ .../runner_list/runner_list_app_spec.js | 106 ++++++++ spec/helpers/commits_helper_spec.rb | 6 +- spec/helpers/nav/top_nav_helper_spec.rb | 120 +++++++-- spec/lib/gitlab/path_regex_spec.rb | 2 +- spec/models/ci/build_spec.rb | 48 +--- spec/models/project_spec.rb | 106 -------- spec/routing/routing_spec.rb | 14 - spec/services/issues/create_service_spec.rb | 4 +- spec/services/issues/update_service_spec.rb | 84 ++++++ spec/workers/build_hooks_worker_spec.rb | 6 +- .../concerns/application_worker_spec.rb | 52 ++++ 82 files changed, 2384 insertions(+), 678 deletions(-) create mode 100644 app/assets/javascripts/issue_show/components/fields/type.vue create mode 100644 app/assets/javascripts/issue_show/graphql.js create mode 100644 app/assets/javascripts/issue_show/queries/get_issue_state.query.graphql create mode 100644 app/assets/javascripts/issue_show/queries/update_issue_state.mutation.graphql create mode 100644 app/assets/javascripts/runner/components/cells/runner_name_cell.vue create mode 100644 app/assets/javascripts/runner/components/cells/runner_type_cell.vue create mode 100644 app/assets/javascripts/runner/components/runner_list.vue create mode 100644 app/assets/javascripts/runner/components/runner_manual_setup_help.vue create mode 100644 app/assets/javascripts/runner/components/runner_tags.vue create mode 100644 app/assets/javascripts/runner/components/runner_type_help.vue create mode 100644 app/assets/javascripts/runner/graphql/get_runners.query.graphql create mode 100644 app/assets/javascripts/runner/runner_list/index.js create mode 100644 app/assets/javascripts/runner/runner_list/runner_list_app.vue create mode 100644 changelogs/unreleased/268370-change-issue-type-fe-delete-button.yml create mode 100644 changelogs/unreleased/326989_use_cache_for_runners_states.yml create mode 100644 changelogs/unreleased/dz-remove-deprecated-global-routes.yml create mode 100644 config/feature_flags/development/data_consistency_delayed_execution.yml rename config/feature_flags/development/{runners_cached_states.yml => runner_list_view_vue_ui.yml} (64%) create mode 100644 doc/user/project/issues/img/issue_type_change_v13_12.png create mode 100644 spec/frontend/issue_show/components/fields/type_spec.js create mode 100644 spec/frontend/issue_show/mock_data/apollo_mock.js rename spec/frontend/issue_show/{ => mock_data}/mock_data.js (98%) create mode 100644 spec/frontend/runner/components/cells/runner_name_cell_spec.js create mode 100644 spec/frontend/runner/components/cells/runner_type_cell_spec.js create mode 100644 spec/frontend/runner/components/runner_list_spec.js create mode 100644 spec/frontend/runner/components/runner_manual_setup_help_spec.js create mode 100644 spec/frontend/runner/components/runner_tags_spec.js create mode 100644 spec/frontend/runner/components/runner_type_help_spec.js create mode 100644 spec/frontend/runner/mock_data.js create mode 100644 spec/frontend/runner/runner_list/runner_list_app_spec.js diff --git a/app/assets/javascripts/issue_show/components/app.vue b/app/assets/javascripts/issue_show/components/app.vue index 01b4e81a11a..8756965826c 100644 --- a/app/assets/javascripts/issue_show/components/app.vue +++ b/app/assets/javascripts/issue_show/components/app.vue @@ -5,8 +5,16 @@ import { deprecatedCreateFlash as createFlash } from '~/flash'; import Poll from '~/lib/utils/poll'; import { visitUrl } from '~/lib/utils/url_utility'; import { __, s__, sprintf } from '~/locale'; -import { IssuableStatus, IssuableStatusText, IssuableType } from '../constants'; +import { + IssuableStatus, + IssuableStatusText, + IssuableType, + IssueTypePath, + IncidentTypePath, + IncidentType, +} from '../constants'; import eventHub from '../event_hub'; +import getIssueStateQuery from '../queries/get_issue_state.query.graphql'; import Service from '../services/index'; import Store from '../stores'; import descriptionComponent from './description.vue'; @@ -195,8 +203,14 @@ export default { showForm: false, templatesRequested: false, isStickyHeaderShowing: false, + issueState: {}, }; }, + apollo: { + issueState: { + query: getIssueStateQuery, + }, + }, computed: { issuableTemplates() { return this.store.formState.issuableTemplates; @@ -288,7 +302,7 @@ export default { methods: { handleBeforeUnloadEvent(e) { const event = e; - if (this.showForm && this.issueChanged) { + if (this.showForm && this.issueChanged && !this.issueState.isDirty) { event.returnValue = __('Are you sure you want to lose your issue information?'); } return undefined; @@ -346,14 +360,32 @@ export default { }, updateIssuable() { + const { + store: { formState }, + issueState, + } = this; + const issuablePayload = issueState.isDirty + ? { ...formState, issue_type: issueState.issueType } + : formState; this.clearFlash(); return this.service - .updateIssuable(this.store.formState) + .updateIssuable(issuablePayload) .then((res) => res.data) .then((data) => { - if (!window.location.pathname.includes(data.web_url)) { + if ( + !window.location.pathname.includes(data.web_url) && + issueState.issueType !== IncidentType + ) { visitUrl(data.web_url); } + + if (issueState.isDirty) { + const URI = + issueState.issueType === IncidentType + ? data.web_url.replace(IssueTypePath, IncidentTypePath) + : data.web_url; + visitUrl(URI); + } }) .then(this.updateStoreState) .then(() => { diff --git a/app/assets/javascripts/issue_show/components/edit_actions.vue b/app/assets/javascripts/issue_show/components/edit_actions.vue index 7733e366c4f..5b7d232fde7 100644 --- a/app/assets/javascripts/issue_show/components/edit_actions.vue +++ b/app/assets/javascripts/issue_show/components/edit_actions.vue @@ -1,17 +1,24 @@ diff --git a/app/assets/javascripts/issue_show/components/fields/description_template.vue b/app/assets/javascripts/issue_show/components/fields/description_template.vue index 14df87e486b..9bfdbb41e23 100644 --- a/app/assets/javascripts/issue_show/components/fields/description_template.vue +++ b/app/assets/javascripts/issue_show/components/fields/description_template.vue @@ -54,14 +54,14 @@ export default {