From 585826cb22ecea5998a2c2a4675735c94bdeedac Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 14 Nov 2023 08:41:52 +0000 Subject: Add latest changes from gitlab-org/gitlab@16-6-stable-ee --- .../add_context_commits_modal/store/actions.js | 2 +- .../abuse_report/components/abuse_report_app.vue | 7 + .../abuse_report/components/abuse_report_notes.vue | 92 + .../components/activity_events_list.vue | 2 +- .../components/graphql/abuse_report.query.graphql | 13 - .../graphql/abuse_report_labels.query.graphql | 11 - .../create_abuse_report_label.mutation.graphql | 10 - .../abuse_report/components/labels_select.vue | 2 +- .../components/notes/abuse_report_discussion.vue | 104 ++ .../components/notes/abuse_report_note.vue | 81 + .../components/notes/abuse_report_note_body.vue | 48 + .../abuse_report/components/report_details.vue | 2 +- .../abuse_report/components/reported_content.vue | 4 +- .../javascripts/admin/abuse_report/constants.js | 2 + .../graphql/abuse_report.query.graphql | 14 + .../graphql/abuse_report_labels.query.graphql | 11 + .../create_abuse_report_label.mutation.graphql | 10 + .../notes/abuse_report_note.fragment.graphql | 30 + .../abuse_report_note_permissions.fragment.graphql | 3 + .../graphql/notes/abuse_report_notes.query.graphql | 18 + .../create_abuse_report_note.mutation.graphql | 18 + .../delete_abuse_report_note.fragment.graphql | 8 + .../update_abuse_report_note.mutation.graphql | 10 + .../admin/background_migrations/index.js | 2 +- .../broadcast_messages/components/message_form.vue | 7 +- .../admin/users/components/actions/index.js | 4 + .../admin/users/components/actions/trust_user.vue | 62 + .../users/components/actions/untrust_user.vue | 56 + .../javascripts/admin/users/components/app.vue | 63 +- .../admin/users/components/user_avatar.vue | 67 - .../admin/users/components/users_table.vue | 142 -- app/assets/javascripts/admin/users/constants.js | 6 +- app/assets/javascripts/alert.js | 2 +- .../components/alerts_settings_form.vue | 2 +- .../analytics/cycle_analytics/store/mutations.js | 4 +- .../analytics/cycle_analytics/store/state.js | 4 +- .../product_analytics/activity_charts_bundle.js | 28 - .../components/activity_chart.vue | 45 - .../analytics/shared/components/metric_tile.vue | 1 + .../components/usage_trends_count_chart.vue | 2 +- .../usage_trends/components/users_chart.vue | 2 +- app/assets/javascripts/api/bulk_imports_api.js | 15 + .../javascripts/badges/components/badge_form.vue | 6 +- .../batch_comments/components/submit_dropdown.vue | 247 ++- .../queries/can_approve.query.graphql | 11 + .../stores/modules/batch_comments/actions.js | 18 +- app/assets/javascripts/behaviors/index.js | 3 - .../javascripts/behaviors/load_startup_css.js | 15 - .../javascripts/behaviors/shortcuts/keybindings.js | 7 + .../behaviors/shortcuts/shortcuts_navigation.js | 2 + .../javascripts/blob/components/blob_header.vue | 21 +- .../components/blob_header_viewer_switcher.vue | 34 + .../javascripts/blob/components/constants.js | 3 + .../filepath_form/components/template_selector.vue | 5 +- .../blob/pipeline_tour_success_modal.vue | 6 +- app/assets/javascripts/boards/boards_util.js | 4 +- .../components/board_add_new_column_form.vue | 1 - .../boards/components/board_card_inner.vue | 7 +- .../boards/components/board_content.vue | 1 - .../javascripts/boards/components/board_list.vue | 19 +- .../boards/components/board_list_header.vue | 3 - .../boards/components/new_board_button.vue | 2 +- app/assets/javascripts/boards/constants.js | 1 + .../javascripts/boards/graphql/cache_updates.js | 7 +- app/assets/javascripts/boards/stores/actions.js | 8 +- app/assets/javascripts/boards/stores/index.js | 15 +- .../branches/components/branch_more_actions.vue | 1 - .../branches/components/delete_branch_modal.vue | 1 - .../ci/admin/jobs_table/admin_jobs_table_app.vue | 3 - .../artifacts/components/job_artifacts_table.vue | 6 +- .../components/details/ci_resource_components.vue | 37 +- .../components/details/ci_resource_details.vue | 6 +- .../components/details/ci_resource_header.vue | 11 +- .../ci/catalog/components/list/catalog_header.vue | 14 +- .../components/list/ci_resources_list_item.vue | 11 +- .../catalog/components/pages/ci_resources_page.vue | 112 ++ .../javascripts/ci/catalog/global_catalog.vue | 10 + .../fragments/catalog_resource.fragment.graphql | 1 - .../queries/get_ci_catalog_resources.query.graphql | 16 + app/assets/javascripts/ci/catalog/index.js | 37 + .../components/ci_variable_drawer.vue | 12 +- .../components/ci_variable_modal.vue | 511 ------ .../components/ci_variable_settings.vue | 28 +- .../components/ci_variable_table.vue | 8 +- .../javascripts/ci/ci_variable_list/constants.js | 2 - .../javascripts/ci/common/pipelines_table.vue | 10 +- .../ci/common/private/job_action_component.vue | 14 +- .../ci/common/private/job_links_layer.vue | 10 +- .../ci/common/private/job_name_component.vue | 2 +- app/assets/javascripts/ci/constants.js | 1 + .../ci/job_details/components/job_header.vue | 6 +- .../ci/job_details/components/log/line_header.vue | 3 +- .../components/sidebar/job_container_item.vue | 4 +- .../components/sidebar/stages_dropdown.vue | 15 +- app/assets/javascripts/ci/job_details/job_app.vue | 2 +- .../javascripts/ci/job_details/store/actions.js | 2 +- .../javascripts/ci/job_details/store/utils.js | 45 +- .../ci/jobs_page/components/job_cells/job_cell.vue | 4 +- .../jobs_page/components/job_cells/status_cell.vue | 6 +- .../javascripts/ci/jobs_page/jobs_page_app.vue | 3 - .../javascripts/ci/pipeline_details/constants.js | 1 - .../graph/components/graph_component.vue | 18 +- .../graph/components/graph_view_selector.vue | 20 +- .../pipeline_details/graph/components/job_item.vue | 6 +- .../graph/components/linked_graph_wrapper.vue | 17 +- .../graph/components/linked_pipeline.vue | 28 +- .../graph/components/linked_pipelines_column.vue | 39 +- .../graph/components/root_graph_layout.vue | 42 +- .../graph/components/stage_column_component.vue | 60 +- .../header/pipeline_details_header.vue | 36 +- .../jobs/components/failed_jobs_table.vue | 6 +- .../ci/pipeline_details/pipeline_details_header.js | 4 + .../ci/pipeline_details/pipeline_shared_client.js | 7 +- .../ci/pipeline_details/pipelines_index.js | 4 - .../components/editor/ci_editor_header.vue | 2 +- .../components/file_nav/branch_switcher.vue | 97 +- .../components/header/pipeline_status.vue | 13 +- .../javascripts/ci/pipeline_editor/options.js | 1 - .../ci/pipeline_editor/pipeline_editor_home.vue | 2 +- .../ci/pipeline_mini_graph/legacy_job_item.vue | 1 - .../pipeline_mini_graph/legacy_pipeline_stage.vue | 13 +- .../linked_pipelines_mini_list.vue | 14 +- .../pipeline_new/components/pipeline_new_form.vue | 2 +- .../components/pipeline_schedules_form.vue | 6 +- .../table/cells/pipeline_schedule_actions.vue | 3 + .../cells/pipeline_schedule_last_pipeline.vue | 7 +- .../components/empty_state/ios_templates.vue | 220 --- .../components/empty_state/no_ci_empty_state.vue | 33 +- .../pipelines_page/components/pipeline_labels.vue | 28 +- .../components/pipeline_status_badge.vue | 11 +- .../components/pipeline_triggerer.vue | 4 - .../javascripts/ci/pipelines_page/constants.js | 3 + .../javascripts/ci/pipelines_page/pipelines.vue | 14 +- .../admin_new_runner/admin_new_runner_app.vue | 4 - .../ci/runner/admin_runners/admin_runners_app.vue | 20 +- .../components/cells/runner_summary_cell.vue | 33 +- .../registration/registration_feedback_banner.vue | 41 - .../registration/registration_instructions.vue | 4 +- .../ci/runner/components/runner_created_at.vue | 72 + .../ci/runner/components/runner_details.vue | 18 +- .../ci/runner/components/runner_header.vue | 29 +- .../ci/runner/components/runner_jobs_table.vue | 6 +- .../ci/runner/components/runner_list_header.vue | 17 + .../runner/components/search_tokens/tag_token.vue | 2 +- .../search_tokens/version_token_config.js | 12 + app/assets/javascripts/ci/runner/constants.js | 7 +- .../edit/runner_fields_shared.fragment.graphql | 5 + .../runner/graphql/list/all_runners.query.graphql | 2 + .../graphql/list/all_runners_count.query.graphql | 10 +- .../show/runner_details_shared.fragment.graphql | 5 + .../runner/graphql/show/runner_jobs.query.graphql | 2 +- .../group_new_runner/group_new_runner_app.vue | 4 - .../ci/runner/group_runners/group_runners_app.vue | 18 +- .../project_new_runner/project_new_runner_app.vue | 4 - .../javascripts/ci/runner/runner_search_utils.js | 10 +- app/assets/javascripts/ci/runner/sentry_utils.js | 2 +- app/assets/javascripts/ci/utils.js | 2 +- .../components/secure_files_list.vue | 2 +- .../components/triggers_list.vue | 8 +- .../javascripts/clusters_list/store/actions.js | 2 +- app/assets/javascripts/commons/gitlab_ui.js | 2 + .../components/suggestions_dropdown.vue | 2 + .../content_editor/content_editor.stories.js | 1 + .../extensions/code_block_highlight.js | 9 + .../content_editor/extensions/copy_paste.js | 40 +- .../javascripts/content_editor/extensions/emoji.js | 4 +- .../content_editor/extensions/html_marks.js | 3 +- .../content_editor/extensions/loading.js | 56 +- .../content_editor/extensions/suggestions.js | 27 +- .../content_editor/extensions/word_break.js | 2 +- .../content_editor/services/content_editor.js | 2 +- .../contribution_event/contribution_event_base.vue | 10 +- ...ustomer_relations_organization.mutation.graphql | 10 + .../graphql/update_organization.mutation.graphql | 10 - .../components/organization_form_wrapper.vue | 4 +- .../custom_emoji/components/delete_item.vue | 2 +- .../components/deploy_freeze_modal.vue | 2 - app/assets/javascripts/deprecated_notes.js | 2 +- .../design_management/components/delete_button.vue | 2 +- .../components/design_notes/design_discussion.vue | 3 +- .../components/design_notes/design_note.vue | 28 +- .../design_notes/design_note_signed_out.vue | 2 +- .../components/design_notes/design_reply_form.vue | 4 +- .../components/design_overlay.vue | 2 +- .../design_management/components/list/item.vue | 17 +- .../javascripts/design_management/pages/index.vue | 6 +- app/assets/javascripts/diffs/components/app.vue | 127 +- .../javascripts/diffs/components/commit_item.vue | 2 +- .../diffs/components/diff_discussions.vue | 7 - .../javascripts/diffs/components/diff_file.vue | 5 - ..._codequality_and_security_reports.query.graphql | 82 + .../get_mr_codequality_reports.query.graphql | 46 - .../diffs/components/shared/findings_drawer.vue | 165 +- .../components/shared/findings_drawer_item.vue | 30 + .../javascripts/diffs/components/tree_list.vue | 140 +- .../diffs/components/tree_list_height.vue | 108 ++ app/assets/javascripts/diffs/constants.js | 1 + app/assets/javascripts/diffs/index.js | 4 +- app/assets/javascripts/diffs/store/actions.js | 13 +- app/assets/javascripts/diffs/store/mutations.js | 7 +- app/assets/javascripts/diffs/store/utils.js | 2 +- app/assets/javascripts/diffs/utils/file_reviews.js | 2 +- .../diffs/utils/sort_findings_by_file.js | 11 +- app/assets/javascripts/editor/constants.js | 5 - app/assets/javascripts/editor/schema/ci.json | 12 +- .../javascripts/emoji/awards_app/store/actions.js | 2 +- app/assets/javascripts/emoji/components/picker.vue | 4 +- app/assets/javascripts/emoji/constants.js | 12 + app/assets/javascripts/emoji/index.js | 107 +- app/assets/javascripts/ensure_data.js | 2 +- app/assets/javascripts/entrypoints/analytics.js | 6 + .../components/confirm_rollback_modal.vue | 2 +- .../environments/components/environment_form.vue | 1 + .../environments/components/environment_item.vue | 2 +- .../environments/components/environments_app.vue | 30 +- .../environments/components/environments_table.vue | 8 +- .../components/kubernetes_overview.vue | 2 +- .../components/kubernetes_status_bar.vue | 16 +- app/assets/javascripts/environments/constants.js | 4 +- .../environments/environment_details/index.vue | 2 +- .../javascripts/environments/graphql/client.js | 1 - .../graphql/queries/environment_app.query.graphql | 2 +- .../queries/flux_helm_release_status.query.graphql | 15 +- .../flux_kustomization_status.query.graphql | 10 +- .../graphql/queries/folder.query.graphql | 2 +- .../environments/graphql/resolvers/base.js | 4 +- .../environments/graphql/resolvers/flux.js | 116 +- .../environments/graphql/resolvers/kubernetes.js | 51 +- .../error_tracking/components/error_details.vue | 6 +- .../feature_flags/components/feature_flags.vue | 1 - .../add_extra_tokens_for_merge_requests.js | 19 +- .../filtered_search/available_dropdown_mappings.js | 23 +- app/assets/javascripts/gfm_auto_complete.js | 2 +- .../components/pages_pipeline_wizard.vue | 2 +- app/assets/javascripts/graphql_shared/constants.js | 1 + .../fragments/issue.fragment.graphql | 1 + .../javascripts/graphql_shared/possible_types.json | 2 + .../queries/groups_autocomplete.query.graphql | 10 + .../javascripts/groups/components/item_actions.vue | 1 - .../groups/settings/init_access_dropdown.js | 2 +- .../components/transfer_locations.vue | 6 +- app/assets/javascripts/header.js | 3 + app/assets/javascripts/header_search/index.js | 2 +- app/assets/javascripts/header_search/init.js | 2 +- app/assets/javascripts/helpers/help_page_helper.js | 2 +- .../javascripts/helpers/init_simple_app_helper.js | 29 +- .../javascripts/ide/components/ide_status_bar.vue | 1 - .../ide/components/jobs/detail/description.vue | 2 - .../javascripts/ide/components/pipelines/list.vue | 2 +- .../javascripts/ide/components/repo_editor.vue | 9 +- app/assets/javascripts/ide/lib/alerts/index.js | 3 +- .../ide/stores/modules/file_templates/getters.js | 3 +- .../ide/stores/modules/terminal/mutations.js | 2 +- app/assets/javascripts/import/constants.js | 12 + .../details/components/bulk_import_details_app.vue | 44 + .../details/components/import_details_app.vue | 38 +- .../details/components/import_details_table.vue | 96 +- .../import_entities/components/import_status.vue | 57 +- .../javascripts/import_entities/constants.js | 53 +- .../import_groups/components/import_status.vue | 83 + .../import_groups/components/import_table.vue | 21 +- .../graphql/services/local_storage_cache.js | 2 +- .../components/advanced_settings.vue | 2 +- .../components/github_organizations_box.vue | 2 +- .../components/github_status_table.vue | 1 - .../components/import_projects_table.vue | 1 - .../components/provider_repo_table_row.vue | 12 +- .../import_projects/store/actions.js | 2 +- .../incidents/components/incidents_list.vue | 3 +- .../edit/components/integration_form.vue | 2 +- .../overrides/components/integration_overrides.vue | 2 +- .../components/invite_groups_modal.vue | 2 +- .../components/invite_members_modal.vue | 80 +- .../components/invite_modal_base.vue | 10 +- .../components/members_token_select.vue | 12 +- .../invite_members/components/project_select.vue | 1 - .../invite_members/init_invite_members_modal.js | 3 + .../invite_members/utils/member_utils.js | 4 + .../issuable/components/locked_badge.vue | 9 +- .../issuable/components/related_issuable_item.vue | 11 +- .../issuable/components/status_badge.vue | 10 +- .../issuable/popover/components/mr_popover.vue | 4 +- .../dashboard/components/issues_dashboard_app.vue | 5 +- app/assets/javascripts/issues/issue.js | 2 + .../issues/list/components/issues_list_app.vue | 12 +- .../components/service_desk_list_app.vue | 5 +- .../issues/show/components/fields/description.vue | 1 - .../issues/show/components/header_actions.vue | 259 +-- .../issues/show/components/issue_header.vue | 10 +- .../issues/show/components/sticky_header.vue | 14 +- .../javascripts/issues/show/utils/parse_data.js | 2 +- .../jira_connect/subscriptions/constants.js | 6 + .../setup_instructions.vue | 58 +- app/assets/javascripts/lib/graphql.js | 14 +- app/assets/javascripts/lib/utils/color_utils.js | 2 +- app/assets/javascripts/lib/utils/common_utils.js | 15 + app/assets/javascripts/lib/utils/constants.js | 3 + .../lib/utils/datetime/timeago_utility.js | 16 +- app/assets/javascripts/lib/utils/forms.js | 22 +- app/assets/javascripts/lib/utils/keys.js | 1 + app/assets/javascripts/main.js | 2 - .../members/components/avatars/group_avatar.vue | 48 +- .../members/components/icons/private_icon.vue | 19 + .../members/components/table/member_source.vue | 20 +- .../members/components/table/members_table.vue | 1 + .../members/components/table/role_dropdown.vue | 70 +- app/assets/javascripts/members/store/actions.js | 5 +- app/assets/javascripts/members/utils.js | 34 +- app/assets/javascripts/merge_request_tabs.js | 7 +- .../merge_requests/components/sticky_header.vue | 37 +- .../milestones/components/milestone_combobox.vue | 206 +-- .../javascripts/milestones/stores/mutations.js | 4 +- .../routes/experiments/index/constants.js | 4 +- .../routes/experiments/show/constants.js | 7 - .../experiments/show/ml_experiments_show.vue | 8 +- .../javascripts/ml/model_registry/apps/index.js | 4 +- .../ml/model_registry/apps/index_ml_models.vue | 61 + .../ml/model_registry/apps/show_ml_model.vue | 59 +- .../model_registry/apps/show_ml_model_version.vue | 16 + .../ml/model_registry/components/model_row.vue | 45 + .../ml/model_registry/components/search_bar.vue | 71 + .../javascripts/ml/model_registry/constants.js | 13 + .../models/index/components/ml_models_index.vue | 49 - .../routes/models/index/components/model_row.vue | 35 - .../ml/model_registry/routes/models/index/index.js | 3 - .../routes/models/index/translations.js | 16 - .../javascripts/ml/model_registry/translations.js | 16 + app/assets/javascripts/mr_notes/init.js | 1 + .../notes/components/comment_field_layout.vue | 8 +- .../notes/components/discussion_locked_widget.vue | 4 +- .../notes/components/discussion_resolve_button.vue | 6 +- .../discussion_resolve_with_issue_button.vue | 2 +- .../notes/components/note_signed_out_widget.vue | 2 +- .../notes/components/noteable_discussion.vue | 4 - .../javascripts/notes/components/noteable_note.vue | 5 + .../notes/components/notes_activity_header.vue | 2 +- app/assets/javascripts/notes/stores/mutations.js | 5 - app/assets/javascripts/observability/client.js | 133 +- .../observability/components/loader/constants.js | 20 + .../observability/components/loader/index.vue | 139 ++ .../components/observability_container.vue | 58 +- .../components/observability_empty_state.vue | 36 + .../provisioned_observability_container.vue | 95 + .../observability/components/skeleton/index.vue | 151 -- app/assets/javascripts/observability/constants.js | 24 +- app/assets/javascripts/organizations/mock_data.js | 27 +- .../organizations/new/components/app.vue | 18 +- .../mutations/create_organization.mutation.graphql | 9 - .../mutations/organization_create.mutation.graphql | 9 + .../organizations/new/graphql/typedefs.graphql | 5 - app/assets/javascripts/organizations/new/index.js | 3 +- .../organizations/profile/preferences/index.js | 41 + .../settings/general/components/app.vue | 14 + .../general/components/organization_settings.vue | 77 + .../mutations/update_organization.mutation.graphql | 9 + .../settings/general/graphql/typedefs.graphql | 5 + .../organizations/settings/general/index.js | 38 + .../shared/components/new_edit_form.vue | 117 +- .../javascripts/organizations/shared/constants.js | 3 + .../graphql/queries/organization.query.graphql | 9 + .../organizations/shared/graphql/resolvers.js | 6 +- .../organizations/users/components/app.vue | 51 + .../users/graphql/organization_users.query.graphql | 17 + .../javascripts/organizations/users/index.js | 29 + .../explorer/components/details_page/tags_list.vue | 1 - .../container_registry/explorer/pages/list.vue | 1 - .../components/list/harbor_list_row.vue | 7 +- .../harbor_registry/pages/details.vue | 1 - .../details/components/app.vue | 2 +- .../details/components/details_title.vue | 2 +- .../components/details/additional_metadata.vue | 5 +- .../components/details/package_files.vue | 5 +- .../components/details/package_history.vue | 2 +- .../components/details/package_title.vue | 1 - .../components/details/package_versions_list.vue | 2 +- .../components/list/package_list_row.vue | 7 +- .../components/list/publish_method.vue | 9 +- .../package_registry/pages/list.vue | 2 +- .../group/components/packages_settings.vue | 13 + .../settings/group/constants.js | 1 + .../package_settings_fields.fragment.graphql | 2 + .../shared/components/package_path.vue | 2 +- .../shared/components/registry_list.vue | 2 +- .../appearances/preview_sign_in/index.js | 3 + .../metrics_and_profiling/index.js | 2 + .../service_usage_data/index.js | 3 - .../javascripts/pages/explore/catalog/index.js | 3 + .../pages/import/bulk_imports/details/index.js | 20 + .../components/bulk_imports_history_app.vue | 39 +- .../pages/import/bulk_imports/history/index.js | 3 +- .../history/components/import_history_app.vue | 14 +- .../organizations/organizations/users/index.js | 3 + .../pages/organizations/settings/general/index.js | 3 + .../javascripts/pages/passwords/new/index.js | 3 + .../pages/profiles/preferences/show/index.js | 2 + .../javascripts/pages/projects/blob/show/index.js | 7 +- .../projects/forks/new/components/fork_form.vue | 50 +- .../javascripts/pages/projects/forks/new/index.js | 2 + .../pages/projects/merge_requests/page.js | 3 +- .../pages/projects/ml/model_versions/show/index.js | 4 + .../pages/projects/ml/models/index/index.js | 4 +- .../pages/projects/ml/models/show/index.js | 2 +- .../projects/product_analytics/graphs/index.js | 3 - .../javascripts/pages/registrations/new/index.js | 2 + app/assets/javascripts/pages/sessions/new/index.js | 2 + app/assets/javascripts/pages/users/index.js | 11 +- app/assets/javascripts/pages/users/show/index.js | 5 - app/assets/javascripts/pages/users/user_tabs.js | 5 +- .../components/performance_bar_app.vue | 5 - app/assets/javascripts/persistent_user_callouts.js | 2 +- .../pipeline_wizard/components/wrapper.vue | 3 +- .../pipeline_wizard/pipeline_wizard.vue | 3 +- .../pipeline_wizard/templates/pages.yml | 20 +- .../profile/edit/components/profile_edit_app.vue | 7 +- .../preferences/components/profile_preferences.vue | 6 +- app/assets/javascripts/profile/profile.js | 8 +- .../commit/components/commit_options_dropdown.vue | 7 +- .../projects/commit/components/form_modal.vue | 2 - .../info/components/commit_box_pipeline_status.vue | 12 +- .../info/init_commit_pipeline_mini_graph.js | 2 +- .../commit_box/info/init_commit_pipeline_status.js | 2 +- .../javascripts/projects/commits/store/actions.js | 2 +- .../projects/default_project_templates.js | 4 + .../new/components/new_project_url_select.vue | 6 +- .../charts/components/statistics_list.vue | 12 +- .../branch_rules/components/view/index.vue | 4 +- .../components/view/protection_row.vue | 1 - .../components/default_branch_selector.vue | 1 - .../projects/settings/init_access_dropdown.js | 3 +- .../settings/repository/branch_rules/app.vue | 2 +- .../branch_rules/components/branch_rule.vue | 4 +- .../components/custom_email_form.vue | 57 +- .../components/custom_email_wrapper.vue | 1 - .../components/service_desk_root.vue | 13 +- .../components/service_desk_setting.vue | 59 +- .../components/service_desk_template_dropdown.vue | 1 - .../custom_email_constants.js | 7 + .../projects/settings_service_desk/index.js | 2 + .../tree/components/commit_pipeline_status.vue | 11 +- .../protected_branches/protected_branch_edit.js | 14 +- .../protected_tags/protected_tag_create.js | 2 +- .../protected_tags/protected_tag_edit.vue | 2 +- .../protected_tags/protected_tag_edit_list.js | 2 +- .../releases/components/app_edit_new.vue | 25 +- .../releases/components/release_block_header.vue | 2 +- .../repository/components/blob_button_group.vue | 7 +- .../repository/components/blob_content_viewer.vue | 17 +- .../repository/components/commit_info.vue | 18 +- .../repository/components/delete_blob_modal.vue | 2 +- .../repository/components/last_commit.vue | 13 +- .../repository/components/table/row.vue | 6 +- .../javascripts/search/sidebar/components/app.vue | 24 +- .../sidebar/components/archived_filter/data.js | 11 +- .../search/sidebar/components/blobs_filters.vue | 7 +- .../search/sidebar/components/issues_filters.vue | 5 +- .../sidebar/components/label_filter/index.vue | 61 +- .../sidebar/components/merge_requests_filters.vue | 7 +- .../sidebar/components/wiki_blobs_filters.vue | 18 + .../javascripts/search/sidebar/constants/index.js | 2 + app/assets/javascripts/search/store/getters.js | 39 +- .../components/training_provider_list.vue | 2 +- app/assets/javascripts/sentry/init_sentry.js | 6 +- app/assets/javascripts/sentry/legacy_index.js | 2 +- .../javascripts/sentry/sentry_browser_wrapper.js | 16 +- app/assets/javascripts/service_ping_consent.js | 35 - .../sessions/new/components/update_email.vue | 4 +- app/assets/javascripts/sessions/new/constants.js | 1 - .../components/assignees/assignee_title.vue | 1 - .../sidebar/components/assignees/assignees.vue | 1 - .../labels/labels_select_vue/dropdown_value.vue | 1 - .../labels_select_widget/dropdown_header.vue | 1 - .../sidebar/components/lock/edit_form.vue | 6 +- .../sidebar/components/lock/issuable_lock_form.vue | 25 +- .../components/move/issuable_move_dropdown.vue | 210 +-- .../participants/sidebar_participants_widget.vue | 3 - .../components/reviewers/reviewer_avatar.vue | 1 - .../sidebar/components/reviewers/reviewers.vue | 7 +- .../severity/sidebar_severity_widget.vue | 4 +- .../sidebar/components/toggle/toggle_sidebar.vue | 10 +- app/assets/javascripts/sidebar/mount_sidebar.js | 3 +- .../javascripts/sidebar/queries/constants.js | 4 +- .../silent_mode_settings/components/app.vue | 10 +- app/assets/javascripts/single_file_diff.js | 5 +- .../snippets/components/snippet_header.vue | 16 +- .../super_sidebar/components/create_menu.vue | 1 - .../super_sidebar/components/flyout_menu.vue | 4 +- .../command_palette/command_palette_items.vue | 2 +- .../global_search/components/global_search.vue | 11 +- .../components/global_search_default_places.vue | 9 +- .../super_sidebar/components/menu_section.vue | 8 +- .../super_sidebar/components/nav_item.vue | 27 +- .../super_sidebar/components/pinned_section.vue | 6 +- .../super_sidebar/components/sidebar_menu.vue | 22 +- .../super_sidebar/components/user_bar.vue | 1 + .../super_sidebar/components/user_menu.vue | 11 +- .../super_sidebar/super_sidebar_bundle.js | 12 +- app/assets/javascripts/super_sidebar/utils.js | 2 +- .../tags/components/delete_tag_modal.vue | 1 - .../terraform/components/init_command_modal.vue | 11 +- .../terraform/components/states_table.vue | 8 +- .../time_tracking/components/timelogs_app.vue | 2 +- .../components/inbound_token_access.vue | 6 - .../components/outbound_token_access.vue | 6 - .../components/token_projects_table.vue | 11 +- .../token_access/graphql/cache_config.js | 14 + app/assets/javascripts/token_access/index.js | 3 +- app/assets/javascripts/tracking/constants.js | 3 + .../tracking/dispatch_snowplow_event.js | 2 +- .../actions/components/user_actions_app.vue | 8 +- .../profile/components/report_abuse_button.vue | 58 - app/assets/javascripts/users/profile/index.js | 23 - .../components/approvals/approvals.vue | 24 +- .../components/approvals/approvals_summary.vue | 2 +- .../components/checks/conflicts.vue | 4 +- .../components/checks/constants.js | 6 + .../components/checks/message.vue | 27 +- .../components/checks/rebase.stories.js | 85 + .../components/checks/rebase.vue | 220 +++ .../components/checks/unresolved_discussions.vue | 39 + .../components/extensions/base.vue | 4 +- .../components/merge_checks.stories.js | 16 +- .../components/merge_checks.vue | 19 +- .../components/mr_widget_pipeline.vue | 16 +- .../components/mr_widget_status_icon.vue | 2 +- .../components/mr_widget_suggest_pipeline.vue | 6 +- .../components/states/ready_to_merge.vue | 118 +- .../components/states/work_in_progress.vue | 4 +- .../components/widget/app.vue | 7 + .../components/widget/dynamic_content.vue | 9 +- .../components/widget/widget.vue | 2 +- .../vue_merge_request_widget/constants.js | 5 +- .../extensions/accessibility/index.js | 123 -- .../extensions/accessibility/index.vue | 154 ++ .../extensions/code_quality/index.vue | 2 +- .../mr_widget_security_reports.vue | 52 +- .../extensions/test_report/index.vue | 4 +- .../vue_merge_request_widget/mixins/approvals.js | 10 +- .../mixins/ready_to_merge.js | 7 - .../vue_merge_request_widget/mr_widget_options.vue | 19 +- .../queries/merge_checks.query.graphql | 5 +- .../alert_details/components/alert_details.vue | 4 +- .../components/sidebar/sidebar_assignees.vue | 8 +- .../components/chronic_duration_input.vue | 2 +- .../vue_shared/components/ci_badge_link.vue | 157 -- .../javascripts/vue_shared/components/ci_icon.vue | 128 +- .../vue_shared/components/diff_stats_dropdown.vue | 122 +- .../components/entity_select/constants.js | 10 + .../components/entity_select/entity_select.vue | 16 +- .../components/entity_select/group_select.vue | 2 +- .../entity_select/organization_select.vue | 150 ++ .../components/entity_select/project_select.vue | 2 +- .../filtered_search_bar_root.vue | 5 +- .../filtered_search_bar/tokens/base_token.vue | 36 +- .../filtered_search_bar/tokens/user_token.vue | 106 +- .../components/form/errors_alert.stories.js | 21 + .../vue_shared/components/form/errors_alert.vue | 42 + .../form/input_copy_toggle_visibility.vue | 16 +- .../components/list_selector/constants.js | 6 + .../components/list_selector/group_item.vue | 55 + .../vue_shared/components/list_selector/index.vue | 193 ++ .../components/list_selector/user_item.vue | 55 + .../vue_shared/components/markdown/header.vue | 2 +- .../components/markdown/markdown_editor.vue | 2 +- .../components/markdown_drawer/utils/fetch.js | 2 +- .../components/notes/noteable_warning.vue | 4 +- .../vue_shared/components/notes/system_note.vue | 25 +- .../source_viewer/components/blame_info.vue | 20 +- .../source_viewer/components/chunk_new.vue | 66 +- .../source_viewer/queries/blame_data.query.graphql | 36 + .../components/source_viewer/source_viewer_new.vue | 122 +- .../vue_shared/components/source_viewer/utils.js | 19 +- .../vue_shared/components/toggle_labels.vue | 1 - .../vue_shared/components/users_table/constants.js | 3 + .../components/users_table/user_avatar.vue | 76 + .../components/users_table/users_table.vue | 110 ++ .../vue_shared/components/web_ide_link.vue | 4 +- .../javascripts/vue_shared/directives/safe_html.js | 2 +- .../vue_shared/gl_feature_flags_plugin.js | 11 +- .../issuable/show/components/issuable_body.vue | 6 + .../issuable/show/components/issuable_header.vue | 2 +- .../show/components/issuable_show_root.vue | 1 + .../issuable/show/components/issuable_title.vue | 17 +- .../webhooks/components/push_events.vue | 8 +- .../work_items/components/notes/system_note.vue | 22 +- .../components/notes/work_item_add_note.vue | 10 +- .../components/notes/work_item_comment_form.vue | 7 +- .../work_items/components/notes/work_item_note.vue | 11 +- .../components/notes/work_item_note_actions.vue | 4 +- .../notes/work_item_note_awards_list.vue | 2 +- .../components/notes/work_item_note_signed_out.vue | 5 +- .../shared/work_item_link_child_contents.vue | 46 +- .../components/shared/work_item_links_menu.vue | 28 - .../components/shared/work_item_token_input.vue | 126 +- .../work_items/components/work_item_actions.vue | 104 +- .../components/work_item_attributes_wrapper.vue | 4 +- .../components/work_item_award_emoji.vue | 17 +- .../components/work_item_created_updated.vue | 2 +- .../components/work_item_description.vue | 10 +- .../components/work_item_description_rendered.vue | 2 +- .../work_items/components/work_item_detail.vue | 132 +- .../work_items/components/work_item_due_date.vue | 2 +- .../work_items/components/work_item_labels.vue | 7 +- .../work_item_links/work_item_children_wrapper.vue | 11 +- .../work_item_links/work_item_link_child.vue | 9 +- .../components/work_item_links/work_item_links.vue | 23 +- .../components/work_item_links/work_item_tree.vue | 16 + .../work_item_links/work_item_tree_children.vue | 6 + .../work_items/components/work_item_milestone.vue | 134 +- .../work_items/components/work_item_notes.vue | 5 +- .../work_items/components/work_item_parent.vue | 58 +- .../work_item_add_relationship_form.vue | 4 +- .../work_item_relationship_list.vue | 6 + .../work_item_relationships.vue | 28 +- .../components/work_item_state_toggle.vue | 131 ++ .../components/work_item_state_toggle_button.vue | 113 -- .../work_items/components/work_item_title.vue | 9 +- .../work_items/components/work_item_todos.vue | 9 +- app/assets/javascripts/work_items/constants.js | 27 +- .../work_items/graphql/award_emoji.query.graphql | 2 +- .../graphql/group_award_emoji.query.graphql | 27 + .../graphql/group_work_items.query.graphql | 17 + .../graphql/project_work_items.query.graphql | 11 +- .../work_items/graphql/work_item.fragment.graphql | 4 +- .../list/components/work_items_list_app.vue | 2 +- .../work_items/pages/create_work_item.vue | 2 +- app/assets/stylesheets/application.scss | 4 - app/assets/stylesheets/application_utilities.scss | 2 + app/assets/stylesheets/components/detail_page.scss | 3 +- app/assets/stylesheets/framework/buttons.scss | 19 - app/assets/stylesheets/framework/diffs.scss | 1 - app/assets/stylesheets/framework/files.scss | 1 + app/assets/stylesheets/framework/header.scss | 9 +- app/assets/stylesheets/framework/highlight.scss | 2 +- app/assets/stylesheets/framework/icons.scss | 87 +- app/assets/stylesheets/framework/layout.scss | 6 - app/assets/stylesheets/framework/mixins.scss | 9 - app/assets/stylesheets/framework/page_header.scss | 8 - app/assets/stylesheets/framework/sidebar.scss | 6 +- app/assets/stylesheets/framework/variables.scss | 18 +- .../page_bundles/_system_note_styles.scss | 59 + app/assets/stylesheets/page_bundles/boards.scss | 6 + app/assets/stylesheets/page_bundles/branches.scss | 4 + app/assets/stylesheets/page_bundles/build.scss | 8 - app/assets/stylesheets/page_bundles/ci_status.scss | 1 + app/assets/stylesheets/page_bundles/issuable.scss | 53 +- .../stylesheets/page_bundles/merge_request.scss | 18 - .../stylesheets/page_bundles/merge_requests.scss | 99 +- app/assets/stylesheets/page_bundles/pipeline.scss | 86 +- app/assets/stylesheets/page_bundles/pipelines.scss | 4 - app/assets/stylesheets/page_bundles/profile.scss | 6 +- app/assets/stylesheets/page_bundles/projects.scss | 8 - app/assets/stylesheets/page_bundles/wiki.scss | 13 +- .../stylesheets/page_bundles/work_items.scss | 25 +- app/assets/stylesheets/pages/commits.scss | 3 +- app/assets/stylesheets/pages/issues.scss | 19 +- app/assets/stylesheets/pages/notes.scss | 42 +- app/assets/stylesheets/print.scss | 1 - app/assets/stylesheets/startup/_cloaking.scss | 15 - app/assets/stylesheets/startup/startup-dark.scss | 1928 -------------------- .../stylesheets/startup/startup-general.scss | 1781 ------------------ app/assets/stylesheets/startup/startup-signin.scss | 852 --------- .../stylesheets/themes/dark_mode_overrides.scss | 12 +- app/assets/stylesheets/themes/theme_blue.scss | 2 +- app/assets/stylesheets/themes/theme_gray.scss | 2 +- app/assets/stylesheets/themes/theme_green.scss | 2 +- app/assets/stylesheets/themes/theme_indigo.scss | 2 +- .../stylesheets/themes/theme_light_blue.scss | 2 +- .../stylesheets/themes/theme_light_gray.scss | 2 +- .../stylesheets/themes/theme_light_green.scss | 2 +- .../stylesheets/themes/theme_light_indigo.scss | 2 +- app/assets/stylesheets/themes/theme_light_red.scss | 2 +- app/assets/stylesheets/themes/theme_red.scss | 2 +- app/assets/stylesheets/tmp_utilities.scss | 32 + app/assets/stylesheets/utilities.scss | 3 - 674 files changed, 8770 insertions(+), 9973 deletions(-) create mode 100644 app/assets/javascripts/admin/abuse_report/components/abuse_report_notes.vue delete mode 100644 app/assets/javascripts/admin/abuse_report/components/graphql/abuse_report.query.graphql delete mode 100644 app/assets/javascripts/admin/abuse_report/components/graphql/abuse_report_labels.query.graphql delete mode 100644 app/assets/javascripts/admin/abuse_report/components/graphql/create_abuse_report_label.mutation.graphql create mode 100644 app/assets/javascripts/admin/abuse_report/components/notes/abuse_report_discussion.vue create mode 100644 app/assets/javascripts/admin/abuse_report/components/notes/abuse_report_note.vue create mode 100644 app/assets/javascripts/admin/abuse_report/components/notes/abuse_report_note_body.vue create mode 100644 app/assets/javascripts/admin/abuse_report/graphql/abuse_report.query.graphql create mode 100644 app/assets/javascripts/admin/abuse_report/graphql/abuse_report_labels.query.graphql create mode 100644 app/assets/javascripts/admin/abuse_report/graphql/create_abuse_report_label.mutation.graphql create mode 100644 app/assets/javascripts/admin/abuse_report/graphql/notes/abuse_report_note.fragment.graphql create mode 100644 app/assets/javascripts/admin/abuse_report/graphql/notes/abuse_report_note_permissions.fragment.graphql create mode 100644 app/assets/javascripts/admin/abuse_report/graphql/notes/abuse_report_notes.query.graphql create mode 100644 app/assets/javascripts/admin/abuse_report/graphql/notes/create_abuse_report_note.mutation.graphql create mode 100644 app/assets/javascripts/admin/abuse_report/graphql/notes/delete_abuse_report_note.fragment.graphql create mode 100644 app/assets/javascripts/admin/abuse_report/graphql/notes/update_abuse_report_note.mutation.graphql create mode 100644 app/assets/javascripts/admin/users/components/actions/trust_user.vue create mode 100644 app/assets/javascripts/admin/users/components/actions/untrust_user.vue delete mode 100644 app/assets/javascripts/admin/users/components/user_avatar.vue delete mode 100644 app/assets/javascripts/admin/users/components/users_table.vue delete mode 100644 app/assets/javascripts/analytics/product_analytics/activity_charts_bundle.js delete mode 100644 app/assets/javascripts/analytics/product_analytics/components/activity_chart.vue create mode 100644 app/assets/javascripts/batch_comments/queries/can_approve.query.graphql delete mode 100644 app/assets/javascripts/behaviors/load_startup_css.js create mode 100644 app/assets/javascripts/ci/catalog/components/pages/ci_resources_page.vue create mode 100644 app/assets/javascripts/ci/catalog/global_catalog.vue create mode 100644 app/assets/javascripts/ci/catalog/graphql/queries/get_ci_catalog_resources.query.graphql create mode 100644 app/assets/javascripts/ci/catalog/index.js delete mode 100644 app/assets/javascripts/ci/ci_variable_list/components/ci_variable_modal.vue delete mode 100644 app/assets/javascripts/ci/pipelines_page/components/empty_state/ios_templates.vue delete mode 100644 app/assets/javascripts/ci/runner/components/registration/registration_feedback_banner.vue create mode 100644 app/assets/javascripts/ci/runner/components/runner_created_at.vue create mode 100644 app/assets/javascripts/ci/runner/components/runner_list_header.vue create mode 100644 app/assets/javascripts/ci/runner/components/search_tokens/version_token_config.js create mode 100644 app/assets/javascripts/crm/organizations/components/graphql/update_customer_relations_organization.mutation.graphql delete mode 100644 app/assets/javascripts/crm/organizations/components/graphql/update_organization.mutation.graphql create mode 100644 app/assets/javascripts/diffs/components/graphql/get_mr_codequality_and_security_reports.query.graphql delete mode 100644 app/assets/javascripts/diffs/components/graphql/get_mr_codequality_reports.query.graphql create mode 100644 app/assets/javascripts/diffs/components/shared/findings_drawer_item.vue create mode 100644 app/assets/javascripts/diffs/components/tree_list_height.vue create mode 100644 app/assets/javascripts/graphql_shared/queries/groups_autocomplete.query.graphql create mode 100644 app/assets/javascripts/import/details/components/bulk_import_details_app.vue create mode 100644 app/assets/javascripts/import_entities/import_groups/components/import_status.vue create mode 100644 app/assets/javascripts/members/components/icons/private_icon.vue create mode 100644 app/assets/javascripts/ml/model_registry/apps/index_ml_models.vue create mode 100644 app/assets/javascripts/ml/model_registry/apps/show_ml_model_version.vue create mode 100644 app/assets/javascripts/ml/model_registry/components/model_row.vue create mode 100644 app/assets/javascripts/ml/model_registry/components/search_bar.vue create mode 100644 app/assets/javascripts/ml/model_registry/constants.js delete mode 100644 app/assets/javascripts/ml/model_registry/routes/models/index/components/ml_models_index.vue delete mode 100644 app/assets/javascripts/ml/model_registry/routes/models/index/components/model_row.vue delete mode 100644 app/assets/javascripts/ml/model_registry/routes/models/index/index.js delete mode 100644 app/assets/javascripts/ml/model_registry/routes/models/index/translations.js create mode 100644 app/assets/javascripts/ml/model_registry/translations.js create mode 100644 app/assets/javascripts/observability/components/loader/constants.js create mode 100644 app/assets/javascripts/observability/components/loader/index.vue create mode 100644 app/assets/javascripts/observability/components/observability_empty_state.vue create mode 100644 app/assets/javascripts/observability/components/provisioned_observability_container.vue delete mode 100644 app/assets/javascripts/observability/components/skeleton/index.vue delete mode 100644 app/assets/javascripts/organizations/new/graphql/mutations/create_organization.mutation.graphql create mode 100644 app/assets/javascripts/organizations/new/graphql/mutations/organization_create.mutation.graphql delete mode 100644 app/assets/javascripts/organizations/new/graphql/typedefs.graphql create mode 100644 app/assets/javascripts/organizations/profile/preferences/index.js create mode 100644 app/assets/javascripts/organizations/settings/general/components/app.vue create mode 100644 app/assets/javascripts/organizations/settings/general/components/organization_settings.vue create mode 100644 app/assets/javascripts/organizations/settings/general/graphql/mutations/update_organization.mutation.graphql create mode 100644 app/assets/javascripts/organizations/settings/general/graphql/typedefs.graphql create mode 100644 app/assets/javascripts/organizations/settings/general/index.js create mode 100644 app/assets/javascripts/organizations/shared/constants.js create mode 100644 app/assets/javascripts/organizations/shared/graphql/queries/organization.query.graphql create mode 100644 app/assets/javascripts/organizations/users/components/app.vue create mode 100644 app/assets/javascripts/organizations/users/graphql/organization_users.query.graphql create mode 100644 app/assets/javascripts/organizations/users/index.js create mode 100644 app/assets/javascripts/pages/admin/application_settings/appearances/preview_sign_in/index.js delete mode 100644 app/assets/javascripts/pages/admin/application_settings/service_usage_data/index.js create mode 100644 app/assets/javascripts/pages/explore/catalog/index.js create mode 100644 app/assets/javascripts/pages/import/bulk_imports/details/index.js create mode 100644 app/assets/javascripts/pages/organizations/organizations/users/index.js create mode 100644 app/assets/javascripts/pages/organizations/settings/general/index.js create mode 100644 app/assets/javascripts/pages/passwords/new/index.js create mode 100644 app/assets/javascripts/pages/projects/ml/model_versions/show/index.js delete mode 100644 app/assets/javascripts/pages/projects/product_analytics/graphs/index.js delete mode 100644 app/assets/javascripts/pages/users/show/index.js create mode 100644 app/assets/javascripts/search/sidebar/components/wiki_blobs_filters.vue delete mode 100644 app/assets/javascripts/service_ping_consent.js create mode 100644 app/assets/javascripts/token_access/graphql/cache_config.js delete mode 100644 app/assets/javascripts/users/profile/components/report_abuse_button.vue delete mode 100644 app/assets/javascripts/users/profile/index.js create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/checks/constants.js create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/checks/rebase.stories.js create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/checks/rebase.vue create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/checks/unresolved_discussions.vue delete mode 100644 app/assets/javascripts/vue_merge_request_widget/extensions/accessibility/index.js create mode 100644 app/assets/javascripts/vue_merge_request_widget/extensions/accessibility/index.vue delete mode 100644 app/assets/javascripts/vue_shared/components/ci_badge_link.vue create mode 100644 app/assets/javascripts/vue_shared/components/entity_select/organization_select.vue create mode 100644 app/assets/javascripts/vue_shared/components/form/errors_alert.stories.js create mode 100644 app/assets/javascripts/vue_shared/components/form/errors_alert.vue create mode 100644 app/assets/javascripts/vue_shared/components/list_selector/constants.js create mode 100644 app/assets/javascripts/vue_shared/components/list_selector/group_item.vue create mode 100644 app/assets/javascripts/vue_shared/components/list_selector/index.vue create mode 100644 app/assets/javascripts/vue_shared/components/list_selector/user_item.vue create mode 100644 app/assets/javascripts/vue_shared/components/source_viewer/queries/blame_data.query.graphql create mode 100644 app/assets/javascripts/vue_shared/components/users_table/constants.js create mode 100644 app/assets/javascripts/vue_shared/components/users_table/user_avatar.vue create mode 100644 app/assets/javascripts/vue_shared/components/users_table/users_table.vue delete mode 100644 app/assets/javascripts/work_items/components/shared/work_item_links_menu.vue create mode 100644 app/assets/javascripts/work_items/components/work_item_state_toggle.vue delete mode 100644 app/assets/javascripts/work_items/components/work_item_state_toggle_button.vue create mode 100644 app/assets/javascripts/work_items/graphql/group_award_emoji.query.graphql create mode 100644 app/assets/javascripts/work_items/graphql/group_work_items.query.graphql create mode 100644 app/assets/stylesheets/page_bundles/_system_note_styles.scss delete mode 100644 app/assets/stylesheets/startup/_cloaking.scss delete mode 100644 app/assets/stylesheets/startup/startup-dark.scss delete mode 100644 app/assets/stylesheets/startup/startup-general.scss delete mode 100644 app/assets/stylesheets/startup/startup-signin.scss create mode 100644 app/assets/stylesheets/tmp_utilities.scss (limited to 'app/assets') diff --git a/app/assets/javascripts/add_context_commits_modal/store/actions.js b/app/assets/javascripts/add_context_commits_modal/store/actions.js index f085b0d0e5e..890db374160 100644 --- a/app/assets/javascripts/add_context_commits_modal/store/actions.js +++ b/app/assets/javascripts/add_context_commits_modal/store/actions.js @@ -1,5 +1,5 @@ import _ from 'lodash'; -import * as Sentry from '@sentry/browser'; +import * as Sentry from '~/sentry/sentry_browser_wrapper'; import Api from '~/api'; import { createAlert } from '~/alert'; import axios from '~/lib/utils/axios_utils'; diff --git a/app/assets/javascripts/admin/abuse_report/components/abuse_report_app.vue b/app/assets/javascripts/admin/abuse_report/components/abuse_report_app.vue index 3c46de7c2be..f0540ffa71e 100644 --- a/app/assets/javascripts/admin/abuse_report/components/abuse_report_app.vue +++ b/app/assets/javascripts/admin/abuse_report/components/abuse_report_app.vue @@ -7,6 +7,7 @@ import ReportDetails from './report_details.vue'; import ReportedContent from './reported_content.vue'; import ActivityEventsList from './activity_events_list.vue'; import ActivityHistoryItem from './activity_history_item.vue'; +import AbuseReportNotes from './abuse_report_notes.vue'; const alertDefaults = { visible: false, @@ -24,6 +25,7 @@ export default { ReportedContent, ActivityEventsList, ActivityHistoryItem, + AbuseReportNotes, }, mixins: [glFeatureFlagsMixin()], props: { @@ -96,5 +98,10 @@ export default { /> + + diff --git a/app/assets/javascripts/admin/abuse_report/components/abuse_report_notes.vue b/app/assets/javascripts/admin/abuse_report/components/abuse_report_notes.vue new file mode 100644 index 00000000000..80af7d7400a --- /dev/null +++ b/app/assets/javascripts/admin/abuse_report/components/abuse_report_notes.vue @@ -0,0 +1,92 @@ + + + diff --git a/app/assets/javascripts/admin/abuse_report/components/activity_events_list.vue b/app/assets/javascripts/admin/abuse_report/components/activity_events_list.vue index 8c4c1da28b8..2206e600543 100644 --- a/app/assets/javascripts/admin/abuse_report/components/activity_events_list.vue +++ b/app/assets/javascripts/admin/abuse_report/components/activity_events_list.vue @@ -11,7 +11,7 @@ export default {
-

{{ $options.i18n.activity }}

+

{{ $options.i18n.activity }}

diff --git a/app/assets/javascripts/admin/abuse_report/components/graphql/abuse_report.query.graphql b/app/assets/javascripts/admin/abuse_report/components/graphql/abuse_report.query.graphql deleted file mode 100644 index f5b075cb9af..00000000000 --- a/app/assets/javascripts/admin/abuse_report/components/graphql/abuse_report.query.graphql +++ /dev/null @@ -1,13 +0,0 @@ -query abuseReportQuery($id: AbuseReportID!) { - abuseReport(id: $id) { - labels { - nodes { - id - title - description - color - textColor - } - } - } -} diff --git a/app/assets/javascripts/admin/abuse_report/components/graphql/abuse_report_labels.query.graphql b/app/assets/javascripts/admin/abuse_report/components/graphql/abuse_report_labels.query.graphql deleted file mode 100644 index 4e724b4db2c..00000000000 --- a/app/assets/javascripts/admin/abuse_report/components/graphql/abuse_report_labels.query.graphql +++ /dev/null @@ -1,11 +0,0 @@ -query abuseReportLabelsQuery($searchTerm: String) { - labels: abuseReportLabels(searchTerm: $searchTerm) { - nodes { - id - title - description - color - textColor - } - } -} diff --git a/app/assets/javascripts/admin/abuse_report/components/graphql/create_abuse_report_label.mutation.graphql b/app/assets/javascripts/admin/abuse_report/components/graphql/create_abuse_report_label.mutation.graphql deleted file mode 100644 index 0781b8e634b..00000000000 --- a/app/assets/javascripts/admin/abuse_report/components/graphql/create_abuse_report_label.mutation.graphql +++ /dev/null @@ -1,10 +0,0 @@ -#import "~/graphql_shared/fragments/label.fragment.graphql" - -mutation createAbuseReportLabel($title: String!, $color: String) { - labelCreate: abuseReportLabelCreate(input: { title: $title, color: $color }) { - label { - ...Label - } - errors - } -} diff --git a/app/assets/javascripts/admin/abuse_report/components/labels_select.vue b/app/assets/javascripts/admin/abuse_report/components/labels_select.vue index 747c9a1a947..d2d143f0460 100644 --- a/app/assets/javascripts/admin/abuse_report/components/labels_select.vue +++ b/app/assets/javascripts/admin/abuse_report/components/labels_select.vue @@ -11,7 +11,7 @@ import DropdownContentsCreateView from '~/sidebar/components/labels/labels_selec import DropdownHeader from '~/sidebar/components/labels/labels_select_widget/dropdown_header.vue'; import DropdownFooter from '~/sidebar/components/labels/labels_select_widget/dropdown_footer.vue'; import DropdownWidget from '~/vue_shared/components/dropdown/dropdown_widget/dropdown_widget.vue'; -import abuseReportLabelsQuery from './graphql/abuse_report_labels.query.graphql'; +import abuseReportLabelsQuery from '../graphql/abuse_report_labels.query.graphql'; export default { components: { diff --git a/app/assets/javascripts/admin/abuse_report/components/notes/abuse_report_discussion.vue b/app/assets/javascripts/admin/abuse_report/components/notes/abuse_report_discussion.vue new file mode 100644 index 00000000000..4d24471fa43 --- /dev/null +++ b/app/assets/javascripts/admin/abuse_report/components/notes/abuse_report_discussion.vue @@ -0,0 +1,104 @@ + + + diff --git a/app/assets/javascripts/admin/abuse_report/components/notes/abuse_report_note.vue b/app/assets/javascripts/admin/abuse_report/components/notes/abuse_report_note.vue new file mode 100644 index 00000000000..6da3017e11e --- /dev/null +++ b/app/assets/javascripts/admin/abuse_report/components/notes/abuse_report_note.vue @@ -0,0 +1,81 @@ + + + diff --git a/app/assets/javascripts/admin/abuse_report/components/notes/abuse_report_note_body.vue b/app/assets/javascripts/admin/abuse_report/components/notes/abuse_report_note_body.vue new file mode 100644 index 00000000000..ab3d7f5fa6c --- /dev/null +++ b/app/assets/javascripts/admin/abuse_report/components/notes/abuse_report_note_body.vue @@ -0,0 +1,48 @@ + + + diff --git a/app/assets/javascripts/admin/abuse_report/components/report_details.vue b/app/assets/javascripts/admin/abuse_report/components/report_details.vue index 10e1dca7f91..89017e6cbd4 100644 --- a/app/assets/javascripts/admin/abuse_report/components/report_details.vue +++ b/app/assets/javascripts/admin/abuse_report/components/report_details.vue @@ -1,8 +1,8 @@ + + diff --git a/app/assets/javascripts/admin/users/components/actions/untrust_user.vue b/app/assets/javascripts/admin/users/components/actions/untrust_user.vue new file mode 100644 index 00000000000..da59833af07 --- /dev/null +++ b/app/assets/javascripts/admin/users/components/actions/untrust_user.vue @@ -0,0 +1,56 @@ + + + diff --git a/app/assets/javascripts/admin/users/components/app.vue b/app/assets/javascripts/admin/users/components/app.vue index a3abd904a6b..b0caffb6ca6 100644 --- a/app/assets/javascripts/admin/users/components/app.vue +++ b/app/assets/javascripts/admin/users/components/app.vue @@ -1,9 +1,15 @@ diff --git a/app/assets/javascripts/admin/users/components/user_avatar.vue b/app/assets/javascripts/admin/users/components/user_avatar.vue deleted file mode 100644 index dd354794cf3..00000000000 --- a/app/assets/javascripts/admin/users/components/user_avatar.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - diff --git a/app/assets/javascripts/admin/users/components/users_table.vue b/app/assets/javascripts/admin/users/components/users_table.vue deleted file mode 100644 index 65737be1e67..00000000000 --- a/app/assets/javascripts/admin/users/components/users_table.vue +++ /dev/null @@ -1,142 +0,0 @@ - - - diff --git a/app/assets/javascripts/admin/users/constants.js b/app/assets/javascripts/admin/users/constants.js index 9cd61d6b1db..73383623aa2 100644 --- a/app/assets/javascripts/admin/users/constants.js +++ b/app/assets/javascripts/admin/users/constants.js @@ -1,9 +1,5 @@ import { s__, __ } from '~/locale'; -export const USER_AVATAR_SIZE = 32; - -export const LENGTH_OF_USER_NOTE_TOOLTIP = 100; - export const I18N_USER_ACTIONS = { edit: __('Edit'), userAdministration: s__('AdminUsers|User administration'), @@ -19,4 +15,6 @@ export const I18N_USER_ACTIONS = { deleteWithContributions: s__('AdminUsers|Delete user and contributions'), ban: s__('AdminUsers|Ban user'), unban: s__('AdminUsers|Unban user'), + trust: s__('AdminUsers|Trust user'), + untrust: s__('AdminUsers|Untrust user'), }; diff --git a/app/assets/javascripts/alert.js b/app/assets/javascripts/alert.js index 4d724b17723..fd20d216385 100644 --- a/app/assets/javascripts/alert.js +++ b/app/assets/javascripts/alert.js @@ -1,7 +1,7 @@ -import * as Sentry from '@sentry/browser'; import Vue from 'vue'; import isEmpty from 'lodash/isEmpty'; import { GlAlert, GlLink, GlSprintf } from '@gitlab/ui'; +import * as Sentry from '~/sentry/sentry_browser_wrapper'; import { __ } from '~/locale'; export const VARIANT_SUCCESS = 'success'; diff --git a/app/assets/javascripts/alerts_settings/components/alerts_settings_form.vue b/app/assets/javascripts/alerts_settings/components/alerts_settings_form.vue index fb872243e5e..29156a624fd 100644 --- a/app/assets/javascripts/alerts_settings/components/alerts_settings_form.vue +++ b/app/assets/javascripts/alerts_settings/components/alerts_settings_form.vue @@ -13,8 +13,8 @@ import { GlTabs, GlTab, } from '@gitlab/ui'; -import * as Sentry from '@sentry/browser'; import { isEqual, isEmpty, omit } from 'lodash'; +import * as Sentry from '~/sentry/sentry_browser_wrapper'; import ClipboardButton from '~/vue_shared/components/clipboard_button.vue'; import { PROMO_URL, DOCS_URL_IN_EE_DIR } from 'jh_else_ce/lib/utils/url_utility'; import { diff --git a/app/assets/javascripts/analytics/cycle_analytics/store/mutations.js b/app/assets/javascripts/analytics/cycle_analytics/store/mutations.js index 4fa88279fe0..d1c8d2c24e7 100644 --- a/app/assets/javascripts/analytics/cycle_analytics/store/mutations.js +++ b/app/assets/javascripts/analytics/cycle_analytics/store/mutations.js @@ -1,7 +1,7 @@ import Vue from 'vue'; import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; import { formatMedianValues } from '../utils'; -import { PAGINATION_SORT_FIELD_END_EVENT, PAGINATION_SORT_DIRECTION_DESC } from '../constants'; +import { PAGINATION_SORT_DIRECTION_DESC, PAGINATION_SORT_FIELD_DURATION } from '../constants'; import * as types from './mutation_types'; export default { @@ -41,7 +41,7 @@ export default { Vue.set(state, 'pagination', { page, hasNextPage, - sort: sort || PAGINATION_SORT_FIELD_END_EVENT, + sort: sort || PAGINATION_SORT_FIELD_DURATION, direction: direction || PAGINATION_SORT_DIRECTION_DESC, }); }, diff --git a/app/assets/javascripts/analytics/cycle_analytics/store/state.js b/app/assets/javascripts/analytics/cycle_analytics/store/state.js index 3d9b56b043d..f387bf65093 100644 --- a/app/assets/javascripts/analytics/cycle_analytics/store/state.js +++ b/app/assets/javascripts/analytics/cycle_analytics/store/state.js @@ -1,5 +1,5 @@ import { - PAGINATION_SORT_FIELD_END_EVENT, + PAGINATION_SORT_FIELD_DURATION, PAGINATION_SORT_DIRECTION_DESC, } from '~/analytics/cycle_analytics/constants'; @@ -29,7 +29,7 @@ export default () => ({ pagination: { page: null, hasNextPage: false, - sort: PAGINATION_SORT_FIELD_END_EVENT, + sort: PAGINATION_SORT_FIELD_DURATION, direction: PAGINATION_SORT_DIRECTION_DESC, }, predefinedDateRange: null, diff --git a/app/assets/javascripts/analytics/product_analytics/activity_charts_bundle.js b/app/assets/javascripts/analytics/product_analytics/activity_charts_bundle.js deleted file mode 100644 index 91cb48e181b..00000000000 --- a/app/assets/javascripts/analytics/product_analytics/activity_charts_bundle.js +++ /dev/null @@ -1,28 +0,0 @@ -import Vue from 'vue'; -import ActivityChart from './components/activity_chart.vue'; - -export default () => { - const containers = document.querySelectorAll('.js-project-analytics-chart'); - - if (!containers) { - return false; - } - - return containers.forEach((container) => { - const { chartData } = container.dataset; - const formattedData = JSON.parse(chartData); - - return new Vue({ - el: container, - components: { - ActivityChart, - }, - provide: { - formattedData, - }, - render(createElement) { - return createElement('activity-chart'); - }, - }); - }); -}; diff --git a/app/assets/javascripts/analytics/product_analytics/components/activity_chart.vue b/app/assets/javascripts/analytics/product_analytics/components/activity_chart.vue deleted file mode 100644 index 2be9ebda87a..00000000000 --- a/app/assets/javascripts/analytics/product_analytics/components/activity_chart.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - diff --git a/app/assets/javascripts/analytics/shared/components/metric_tile.vue b/app/assets/javascripts/analytics/shared/components/metric_tile.vue index 54dbe329c7a..9e0262b5175 100644 --- a/app/assets/javascripts/analytics/shared/components/metric_tile.vue +++ b/app/assets/javascripts/analytics/shared/components/metric_tile.vue @@ -44,6 +44,7 @@ export default { :animation-decimal-places="decimalPlaces" :class="{ 'gl-hover-cursor-pointer': hasLinks }" tabindex="0" + use-delimiters @click="clickHandler(metric)" /> diff --git a/app/assets/javascripts/analytics/usage_trends/components/usage_trends_count_chart.vue b/app/assets/javascripts/analytics/usage_trends/components/usage_trends_count_chart.vue index 8d7761694d1..247c147609b 100644 --- a/app/assets/javascripts/analytics/usage_trends/components/usage_trends_count_chart.vue +++ b/app/assets/javascripts/analytics/usage_trends/components/usage_trends_count_chart.vue @@ -1,8 +1,8 @@ diff --git a/app/assets/javascripts/batch_comments/queries/can_approve.query.graphql b/app/assets/javascripts/batch_comments/queries/can_approve.query.graphql new file mode 100644 index 00000000000..f0c9ef7b3c8 --- /dev/null +++ b/app/assets/javascripts/batch_comments/queries/can_approve.query.graphql @@ -0,0 +1,11 @@ +query userCanApprove($projectPath: ID!, $iid: String!) { + project(fullPath: $projectPath) { + id + mergeRequest(iid: $iid) { + id + userPermissions { + canApprove + } + } + } +} diff --git a/app/assets/javascripts/batch_comments/stores/modules/batch_comments/actions.js b/app/assets/javascripts/batch_comments/stores/modules/batch_comments/actions.js index 070ce38c8aa..d97f11a0acd 100644 --- a/app/assets/javascripts/batch_comments/stores/modules/batch_comments/actions.js +++ b/app/assets/javascripts/batch_comments/stores/modules/batch_comments/actions.js @@ -72,22 +72,20 @@ export const fetchDrafts = ({ commit, getters, state, dispatch }) => }), ); -export const publishSingleDraft = ({ commit, dispatch, getters }, draftId) => { +export const publishSingleDraft = ({ commit, getters }, draftId) => { commit(types.REQUEST_PUBLISH_DRAFT, draftId); service .publishDraft(getters.getNotesData.draftsPublishPath, draftId) - .then(() => dispatch('updateDiscussionsAfterPublish')) .then(() => commit(types.RECEIVE_PUBLISH_DRAFT_SUCCESS, draftId)) .catch(() => commit(types.RECEIVE_PUBLISH_DRAFT_ERROR, draftId)); }; -export const publishReview = ({ commit, dispatch, getters }, noteData = {}) => { +export const publishReview = ({ commit, getters }, noteData = {}) => { commit(types.REQUEST_PUBLISH_REVIEW); return service .publish(getters.getNotesData.draftsPublishPath, noteData) - .then(() => dispatch('updateDiscussionsAfterPublish')) .then(() => commit(types.RECEIVE_PUBLISH_REVIEW_SUCCESS)) .catch((e) => { commit(types.RECEIVE_PUBLISH_REVIEW_ERROR); @@ -96,18 +94,6 @@ export const publishReview = ({ commit, dispatch, getters }, noteData = {}) => { }); }; -export const updateDiscussionsAfterPublish = async ({ dispatch, getters, rootGetters }) => { - await dispatch( - 'fetchDiscussions', - { path: getters.getNotesData.discussionsPath }, - { root: true }, - ); - - dispatch('diffs/assignDiscussionsToDiff', rootGetters.discussionsStructuredByLineCode, { - root: true, - }); -}; - export const updateDraft = ( { commit, getters }, { note, noteText, resolveDiscussion, position, flashContainer, callback, errorCallback }, diff --git a/app/assets/javascripts/behaviors/index.js b/app/assets/javascripts/behaviors/index.js index dc9153e61f7..84ff8fa7f33 100644 --- a/app/assets/javascripts/behaviors/index.js +++ b/app/assets/javascripts/behaviors/index.js @@ -3,7 +3,6 @@ import './autosize'; import initCollapseSidebarOnWindowResize from './collapse_sidebar_on_window_resize'; import initCopyToClipboard from './copy_to_clipboard'; import installGlEmojiElement from './gl_emoji'; -import { loadStartupCSS } from './load_startup_css'; import initCopyAsGFM from './markdown/copy_as_gfm'; import './quick_submit'; import './requires_input'; @@ -13,8 +12,6 @@ import { initGlobalAlerts } from './global_alerts'; import './toggler_behavior'; import './preview_markdown'; -loadStartupCSS(); - installGlEmojiElement(); initCopyAsGFM(); diff --git a/app/assets/javascripts/behaviors/load_startup_css.js b/app/assets/javascripts/behaviors/load_startup_css.js deleted file mode 100644 index dbe9ff8b6e7..00000000000 --- a/app/assets/javascripts/behaviors/load_startup_css.js +++ /dev/null @@ -1,15 +0,0 @@ -export const loadStartupCSS = () => { - // We need to fallback to dispatching `load` in case our event listener was added too late - // or the browser environment doesn't load media=print. - // Do this on `window.load` so that the default deferred behavior takes precedence. - // https://gitlab.com/gitlab-org/gitlab/-/issues/239357 - window.addEventListener( - 'load', - () => { - document - .querySelectorAll('link[media=print]') - .forEach((x) => x.dispatchEvent(new Event('load'))); - }, - { once: true }, - ); -}; diff --git a/app/assets/javascripts/behaviors/shortcuts/keybindings.js b/app/assets/javascripts/behaviors/shortcuts/keybindings.js index e8c486f6e74..941662635ea 100644 --- a/app/assets/javascripts/behaviors/shortcuts/keybindings.js +++ b/app/assets/javascripts/behaviors/shortcuts/keybindings.js @@ -381,6 +381,12 @@ export const PROJECT_FILES_GO_TO_PERMALINK = { defaultKeys: ['y'], }; +export const PROJECT_FILES_GO_TO_COMPARE = { + id: 'projectFiles.goToCompare', + description: __('Compare Branches'), + defaultKeys: ['shift+c'], +}; + export const ISSUABLE_COMMENT_OR_REPLY = { id: 'issuables.commentReply', description: __('Comment/Reply (quoting selected text)'), @@ -606,6 +612,7 @@ const PROJECT_FILES_SHORTCUTS_GROUP = { PROJECT_FILES_OPEN_SELECTION, PROJECT_FILES_GO_BACK, PROJECT_FILES_GO_TO_PERMALINK, + PROJECT_FILES_GO_TO_COMPARE, ], }; diff --git a/app/assets/javascripts/behaviors/shortcuts/shortcuts_navigation.js b/app/assets/javascripts/behaviors/shortcuts/shortcuts_navigation.js index d9dc3aae808..4691a4228e6 100644 --- a/app/assets/javascripts/behaviors/shortcuts/shortcuts_navigation.js +++ b/app/assets/javascripts/behaviors/shortcuts/shortcuts_navigation.js @@ -18,6 +18,7 @@ import { GO_TO_PROJECT_KUBERNETES, GO_TO_PROJECT_ENVIRONMENTS, GO_TO_PROJECT_WEBIDE, + PROJECT_FILES_GO_TO_COMPARE, NEW_ISSUE, } from './keybindings'; import Shortcuts from './shortcuts'; @@ -43,6 +44,7 @@ export default class ShortcutsNavigation extends Shortcuts { [GO_TO_PROJECT_SNIPPETS, () => findAndFollowLink('.shortcuts-snippets')], [GO_TO_PROJECT_KUBERNETES, () => findAndFollowLink('.shortcuts-kubernetes')], [GO_TO_PROJECT_ENVIRONMENTS, () => findAndFollowLink('.shortcuts-environments')], + [PROJECT_FILES_GO_TO_COMPARE, () => findAndFollowLink('.shortcuts-compare')], [GO_TO_PROJECT_WEBIDE, ShortcutsNavigation.navigateToWebIDE], [NEW_ISSUE, () => findAndFollowLink('.shortcuts-new-issue')], ]); diff --git a/app/assets/javascripts/blob/components/blob_header.vue b/app/assets/javascripts/blob/components/blob_header.vue index 699a0491183..5411881a8d2 100644 --- a/app/assets/javascripts/blob/components/blob_header.vue +++ b/app/assets/javascripts/blob/components/blob_header.vue @@ -5,7 +5,7 @@ import userInfoQuery from '../queries/user_info.query.graphql'; import applicationInfoQuery from '../queries/application_info.query.graphql'; import BlobFilepath from './blob_header_filepath.vue'; import ViewerSwitcher from './blob_header_viewer_switcher.vue'; -import { SIMPLE_BLOB_VIEWER } from './constants'; +import { SIMPLE_BLOB_VIEWER, BLAME_VIEWER } from './constants'; import TableOfContents from './table_contents.vue'; export default { @@ -85,6 +85,11 @@ export default { required: false, default: '', }, + showBlameToggle: { + type: Boolean, + required: false, + default: false, + }, }, data() { return { @@ -93,9 +98,6 @@ export default { }; }, computed: { - showViewerSwitcher() { - return !this.hideViewerSwitcher && Boolean(this.blob.simpleViewer && this.blob.richViewer); - }, showDefaultActions() { return !this.hideDefaultActions; }, @@ -114,7 +116,7 @@ export default { }, watch: { viewer(newVal, oldVal) { - if (!this.hideViewerSwitcher && newVal !== oldVal) { + if (newVal !== BLAME_VIEWER && newVal !== oldVal) { this.$emit('viewer-changed', newVal); } }, @@ -138,7 +140,14 @@ export default {
- + diff --git a/app/assets/javascripts/blob/components/constants.js b/app/assets/javascripts/blob/components/constants.js index adac4d6408d..bccab09c7a2 100644 --- a/app/assets/javascripts/blob/components/constants.js +++ b/app/assets/javascripts/blob/components/constants.js @@ -11,6 +11,9 @@ export const SIMPLE_BLOB_VIEWER_TITLE = __('Display source'); export const RICH_BLOB_VIEWER = 'rich'; export const RICH_BLOB_VIEWER_TITLE = __('Display rendered file'); +export const BLAME_VIEWER = 'blame'; +export const BLAME_TITLE = __('Display blame info'); + export const BLOB_RENDER_EVENT_LOAD = 'force-content-fetch'; export const BLOB_RENDER_EVENT_SHOW_SOURCE = 'force-switch-viewer'; diff --git a/app/assets/javascripts/blob/filepath_form/components/template_selector.vue b/app/assets/javascripts/blob/filepath_form/components/template_selector.vue index 51c69590796..379d5e38197 100644 --- a/app/assets/javascripts/blob/filepath_form/components/template_selector.vue +++ b/app/assets/javascripts/blob/filepath_form/components/template_selector.vue @@ -2,6 +2,7 @@ import { GlCollapsibleListbox } from '@gitlab/ui'; import SuggestGitlabCiYml from '~/blob/suggest_gitlab_ci_yml/components/popover.vue'; import { __ } from '~/locale'; +import { DEFAULT_CI_CONFIG_PATH, CI_CONFIG_PATH_EXTENSION } from '~/lib/utils/constants'; const templateSelectors = [ { @@ -12,8 +13,8 @@ const templateSelectors = [ }, { key: 'gitlab_ci_ymls', - name: '.gitlab-ci.yml', - pattern: /(.gitlab-ci.yml)/, + name: DEFAULT_CI_CONFIG_PATH, + pattern: CI_CONFIG_PATH_EXTENSION, type: 'gitlab_ci_ymls', }, { diff --git a/app/assets/javascripts/blob/pipeline_tour_success_modal.vue b/app/assets/javascripts/blob/pipeline_tour_success_modal.vue index f3c542c467a..0cc75d28e0b 100644 --- a/app/assets/javascripts/blob/pipeline_tour_success_modal.vue +++ b/app/assets/javascripts/blob/pipeline_tour_success_modal.vue @@ -94,14 +94,12 @@ export default {

diff --git a/app/assets/javascripts/boards/boards_util.js b/app/assets/javascripts/boards/boards_util.js index bf77aa4996c..fd36eea95eb 100644 --- a/app/assets/javascripts/boards/boards_util.js +++ b/app/assets/javascripts/boards/boards_util.js @@ -204,7 +204,8 @@ export function moveItemListHelper(item, fromList, toList) { export function moveItemVariables({ iid, - epicId, + itemId, + epicId = null, fromListId, toListId, moveBeforeId, @@ -225,6 +226,7 @@ export function moveItemVariables({ }; } return { + itemId, epicId, boardId, moveBeforeId, diff --git a/app/assets/javascripts/boards/components/board_add_new_column_form.vue b/app/assets/javascripts/boards/components/board_add_new_column_form.vue index 419d0b41d69..a3c0553d17c 100644 --- a/app/assets/javascripts/boards/components/board_add_new_column_form.vue +++ b/app/assets/javascripts/boards/components/board_add_new_column_form.vue @@ -43,7 +43,6 @@ export default {
0; + }, shouldRenderEpicCountables() { - return this.isEpicBoard && this.item.hasIssues; + return this.isEpicBoard && this.hasChildren; }, shouldRenderEpicProgress() { return this.totalWeight > 0; @@ -396,7 +399,7 @@ export default { item.iid === itemIid); }, async moveBoardItem(variables, newIndex) { - const { fromListId, toListId, iid } = variables; + const { fromListId, toListId, iid, itemId } = variables; this.toListId = toListId; await this.$nextTick(); // we need this next tick to retrieve `toList` from Apollo cache - const itemToMove = this.boardListItems.find((item) => item.iid === iid); + const itemToMove = this.boardListItems.find((item) => item.id === itemId); if (this.shouldCloneCard && this.isItemInTheList(iid)) { return; @@ -445,6 +436,7 @@ export default { ...moveItemVariables({ ...variables, isIssue: !this.isEpicBoard, + epicId: itemId, // for Epic Boards boardId: this.boardId, itemToMove, }), @@ -532,7 +524,8 @@ export default { variables: { ...moveItemVariables({ iid: item.iid, - epicId: item.id, + itemId: item.id, + epicId: item.id, // for Epic Boards fromListId: this.currentList.id, toListId: this.currentList.id, isIssue: !this.isEpicBoard, diff --git a/app/assets/javascripts/boards/components/board_list_header.vue b/app/assets/javascripts/boards/components/board_list_header.vue index 0235edd69ac..bedb3a75a70 100644 --- a/app/assets/javascripts/boards/components/board_list_header.vue +++ b/app/assets/javascripts/boards/components/board_list_header.vue @@ -223,9 +223,6 @@ export default { variables() { return this.countQueryVariables; }, - context: { - isSingleRequest: true, - }, error(error) { setError({ error, diff --git a/app/assets/javascripts/boards/components/new_board_button.vue b/app/assets/javascripts/boards/components/new_board_button.vue index f7914c636cc..96cf0fadd6a 100644 --- a/app/assets/javascripts/boards/components/new_board_button.vue +++ b/app/assets/javascripts/boards/components/new_board_button.vue @@ -38,7 +38,7 @@ export default { diff --git a/app/assets/javascripts/ci/common/private/job_links_layer.vue b/app/assets/javascripts/ci/common/private/job_links_layer.vue index 59260ca3f81..9b3647e9c55 100644 --- a/app/assets/javascripts/ci/common/private/job_links_layer.vue +++ b/app/assets/javascripts/ci/common/private/job_links_layer.vue @@ -1,5 +1,6 @@