From db384e6b19af03b4c3c82a5760d83a3fd79f7982 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Fri, 18 Aug 2023 10:50:51 +0000 Subject: Add latest changes from gitlab-org/gitlab@16-3-stable-ee --- .../components/access_token_table_app.vue | 116 +- .../components/new_access_token_app.vue | 26 +- .../javascripts/access_tokens/components/token.vue | 8 + .../access_tokens/components/tokens_app.vue | 1 + app/assets/javascripts/access_tokens/index.js | 2 - .../add_context_commits_modal_wrapper.vue | 1 + .../add_context_commits_modal/components/token.vue | 1 + .../add_context_commits_modal/store/index.js | 1 + .../abuse_report/components/report_actions.vue | 10 +- .../abuse_reports/components/abuse_report_row.vue | 33 +- .../abuse_reports_filtered_search_bar.vue | 46 +- .../javascripts/admin/abuse_reports/constants.js | 40 +- .../javascripts/admin/abuse_reports/index.js | 1 + .../javascripts/admin/abuse_reports/utils.js | 18 +- .../admin/broadcast_messages/components/base.vue | 60 +- .../broadcast_messages/components/message_form.vue | 45 +- .../components/messages_table.vue | 37 +- .../admin/deploy_keys/components/table.vue | 176 +- .../admin/statistics_panel/components/app.vue | 1 + .../admin/statistics_panel/store/index.js | 1 + app/assets/javascripts/admin/topics/index.js | 4 - .../admin/users/components/actions/activate.vue | 1 + .../admin/users/components/actions/approve.vue | 1 + .../admin/users/components/actions/ban.vue | 3 +- .../admin/users/components/actions/block.vue | 1 + .../admin/users/components/actions/deactivate.vue | 1 + .../admin/users/components/actions/delete.vue | 1 + .../admin/users/components/actions/reject.vue | 1 + .../admin/users/components/actions/unban.vue | 1 + .../admin/users/components/actions/unblock.vue | 1 + .../admin/users/components/actions/unlock.vue | 1 + .../components/alerts_integrations_list.vue | 28 +- .../components/alerts_settings_form.vue | 540 ++-- .../components/alerts_settings_wrapper.vue | 83 +- .../javascripts/alerts_settings/constants.js | 3 + .../analytics/cycle_analytics/components/base.vue | 1 + .../cycle_analytics/components/filter_bar.vue | 1 + .../cycle_analytics/components/stage_table.vue | 15 +- .../analytics/cycle_analytics/store/index.js | 1 + .../devops_reports/components/devops_score.vue | 2 +- .../analytics/shared/components/daterange.vue | 1 + app/assets/javascripts/api.js | 15 + app/assets/javascripts/api/groups_api.js | 17 +- .../two_factor_auth/components/recovery_codes.vue | 7 +- .../authentication/two_factor_auth/constants.js | 2 - app/assets/javascripts/badges/components/badge.vue | 1 + .../javascripts/badges/components/badge_form.vue | 73 +- .../javascripts/badges/components/badge_list.vue | 169 +- .../badges/components/badge_list_row.vue | 81 - .../badges/components/badge_settings.vue | 86 +- app/assets/javascripts/badges/constants.js | 2 + app/assets/javascripts/badges/store/index.js | 1 + .../batch_comments/components/diff_file_drafts.vue | 1 + .../batch_comments/components/draft_note.vue | 1 + .../batch_comments/components/drafts_count.vue | 1 + .../batch_comments/components/preview_dropdown.vue | 1 + .../batch_comments/components/preview_item.vue | 1 + .../batch_comments/components/review_bar.vue | 1 + .../batch_comments/components/submit_dropdown.vue | 80 +- app/assets/javascripts/batch_comments/index.js | 6 +- .../batch_comments/mixins/resolved_status.js | 1 + .../javascripts/batch_comments/stores/index.js | 1 + app/assets/javascripts/behaviors/index.js | 3 + .../javascripts/behaviors/shortcuts/keybindings.js | 20 +- .../javascripts/behaviors/shortcuts/shortcut.vue | 1 + .../behaviors/shortcuts/shortcuts_issuable.js | 34 +- app/assets/javascripts/behaviors/toasts.js | 9 + .../javascripts/blob/components/blob_content.vue | 17 +- .../javascripts/blob/components/table_contents.vue | 1 - .../javascripts/blob/file_template_mediator.js | 202 -- .../javascripts/blob/file_template_selector.js | 105 - .../filepath_form/components/filepath_form.vue | 63 + .../filepath_form/components/template_selector.vue | 161 ++ app/assets/javascripts/blob/filepath_form/index.js | 41 + .../javascripts/blob/filepath_form_mediator.js | 105 + .../javascripts/blob/legacy_template_selector.js | 110 + app/assets/javascripts/blob/line_highlighter.js | 2 +- .../suggest_gitlab_ci_yml/components/popover.vue | 2 + app/assets/javascripts/blob/template_selector.js | 110 - .../blob/template_selectors/ci_yaml_selector.js | 30 - .../blob/template_selectors/dockerfile_selector.js | 31 - .../blob/template_selectors/gitignore_selector.js | 29 - .../blob/template_selectors/license_selector.js | 46 - app/assets/javascripts/blob_edit/blob_bundle.js | 4 - app/assets/javascripts/blob_edit/edit_blob.js | 23 +- .../boards/components/board_add_new_column.vue | 73 +- .../javascripts/boards/components/board_app.vue | 33 +- .../javascripts/boards/components/board_card.vue | 5 +- .../boards/components/board_card_inner.vue | 3 +- .../components/board_card_move_to_position.vue | 1 + .../javascripts/boards/components/board_column.vue | 1 + .../boards/components/board_content.vue | 23 +- .../boards/components/board_content_sidebar.vue | 27 +- .../boards/components/board_filtered_search.vue | 4 +- .../javascripts/boards/components/board_form.vue | 1 + .../javascripts/boards/components/board_list.vue | 137 +- .../boards/components/board_list_header.vue | 47 +- .../boards/components/board_new_issue.vue | 1 + .../boards/components/board_settings_sidebar.vue | 45 +- .../boards/components/board_top_bar.vue | 8 + .../boards/components/boards_selector.vue | 43 +- .../boards/components/config_toggle.vue | 3 +- .../sidebar/board_sidebar_time_tracker.vue | 39 - .../components/sidebar/board_sidebar_title.vue | 1 + .../boards/graphql/group_boards.query.graphql | 8 +- .../graphql/group_recent_boards.query.graphql | 8 +- .../boards/graphql/project_boards.query.graphql | 8 +- .../graphql/project_recent_boards.query.graphql | 8 +- app/assets/javascripts/boards/index.js | 2 +- app/assets/javascripts/boards/stores/index.js | 1 + .../components/ci_group_variables.vue | 11 +- .../components/ci_variable_drawer.vue | 233 ++ .../components/ci_variable_modal.vue | 68 +- .../components/ci_variable_settings.vue | 32 +- .../components/ci_variable_table.vue | 397 +-- .../javascripts/ci/ci_variable_list/constants.js | 17 +- .../javascripts/ci/ci_variable_list/index.js | 8 - .../components/editor/ci_editor_header.vue | 1 - .../header/pipeline_editor_mini_graph.vue | 6 +- .../components/header/pipeline_status.vue | 6 +- .../components/ui/pipeline_editor_empty_state.vue | 1 + .../components/validate/ci_validate.vue | 1 - .../ci/pipeline_editor/pipeline_editor_home.vue | 2 +- .../pipeline_new/components/pipeline_new_form.vue | 1 - .../components/pipeline_schedules.vue | 16 +- .../components/pipeline_schedules_form.vue | 66 +- .../components/table/pipeline_schedules_table.vue | 13 +- .../ci/reports/codequality_report/store/index.js | 1 + .../ci/reports/components/report_item.vue | 2 +- .../ci/reports/components/report_section.vue | 5 +- .../ci/runner/admin_runners/admin_runners_app.vue | 6 +- .../javascripts/ci/runner/admin_runners/index.js | 16 +- .../javascripts/ci/runner/admin_runners/provide.js | 22 + .../registration/registration_instructions.vue | 2 +- .../components/registration/registration_token.vue | 1 + .../ci/runner/components/runner_details.vue | 5 +- .../components/runner_filtered_search_bar.vue | 2 + .../search_tokens/paused_token_config.js | 19 +- .../search_tokens/status_token_config.js | 23 +- .../runner/components/search_tokens/tag_token.vue | 11 +- .../ci_secure_files/components/metadata/button.vue | 3 +- .../ci_secure_files/components/metadata/modal.vue | 1 + .../ci_secure_files/components/metadata/table.vue | 1 + .../components/secure_files_list.vue | 148 +- .../ci_settings_general_pipeline/index.js | 19 + .../components/triggers_list.vue | 66 +- .../clusters/agents/components/show.vue | 1 + .../components/remove_cluster_confirmation.vue | 1 - .../clusters/forms/components/integration_form.vue | 4 +- .../javascripts/clusters/forms/stores/index.js | 1 + .../clusters_list/components/agent_token.vue | 1 + .../clusters_list/components/agents.vue | 1 + .../clusters_list/components/ancestor_notice.vue | 1 + .../clusters_list/components/clusters.vue | 2 + .../clusters_list/components/clusters_actions.vue | 6 +- .../clusters_list/components/clusters_view_all.vue | 1 + .../components/install_agent_modal.vue | 28 + app/assets/javascripts/clusters_list/constants.js | 4 + .../javascripts/clusters_list/store/index.js | 1 + .../javascripts/code_navigation/components/app.vue | 1 + .../code_navigation/components/popover.vue | 1 + app/assets/javascripts/code_navigation/index.js | 1 + .../javascripts/code_navigation/store/index.js | 1 + .../comment_templates/components/form.vue | 15 +- .../comment_templates/components/list.vue | 48 +- .../comment_templates/components/list_item.vue | 8 +- .../javascripts/comment_templates/pages/edit.vue | 1 + .../javascripts/comment_templates/pages/index.vue | 48 +- .../commit/components/signature_badge.vue | 4 +- .../commit/pipelines/pipelines_table_wrapper.vue | 0 .../components/dropdown.vue | 1 + .../content_editor/components/content_editor.vue | 9 +- .../content_editor/extensions/copy_paste.js | 10 + .../services/highlight_js_language_loader.js | 4 + .../contribution_event_closed.vue | 43 + .../contribution_event_commented.vue | 71 + .../contribution_event_created.vue | 62 + .../contribution_event_reopened.vue | 36 + .../components/contribution_events.vue | 20 + .../contribution_events/components/target_link.vue | 2 +- .../javascripts/contribution_events/constants.js | 123 + .../javascripts/contribution_events/utils.js | 9 + .../contributors/components/contributors.vue | 2 + .../javascripts/contributors/stores/index.js | 1 + .../crm/contacts/components/contacts_root.vue | 1 - .../components/organizations_root.vue | 1 - .../javascripts/custom_emoji/components/app.vue | 15 + .../custom_emoji/components/delete_item.vue | 90 + .../javascripts/custom_emoji/components/form.vue | 143 + .../javascripts/custom_emoji/components/list.vue | 154 ++ .../custom_emoji/custom_emoji_bundle.js | 39 + .../javascripts/custom_emoji/graphql_client.js | 3 + .../javascripts/custom_emoji/pages/index.vue | 67 + app/assets/javascripts/custom_emoji/pages/new.vue | 24 + .../queries/create_custom_emoji.mutation.graphql | 5 + .../queries/custom_emojis.query.graphql | 25 + .../queries/delete_custom_emoji.mutation.graphql | 7 + .../queries/user_permissions.query.graphql | 8 + app/assets/javascripts/custom_emoji/routes.js | 35 + .../components/deploy_freeze_modal.vue | 25 +- .../components/deploy_freeze_table.vue | 121 +- .../javascripts/deploy_freeze/store/index.js | 1 + .../javascripts/deploy_keys/components/app.vue | 49 +- .../javascripts/deploy_keys/components/key.vue | 85 +- .../deploy_keys/components/keys_panel.vue | 11 +- .../deploy_tokens/components/new_deploy_token.vue | 30 +- .../deploy_tokens/components/revoke_button.vue | 4 +- .../deploy_tokens/deploy_token_translations.js | 3 +- app/assets/javascripts/deprecated_notes.js | 4 +- .../components/design_notes/design_note.vue | 3 +- .../design_management/components/image.vue | 1 + .../design_management/components/list/item.vue | 1 + .../design_management/components/toolbar/index.vue | 1 + .../design_management/components/upload/button.vue | 1 + .../design_management/pages/design/index.vue | 1 + .../javascripts/design_management/pages/index.vue | 1 + app/assets/javascripts/diffs/components/app.vue | 43 +- .../diffs/components/collapsed_files_warning.vue | 1 + .../diffs/components/compare_versions.vue | 5 +- .../diffs/components/diff_code_quality.vue | 51 - .../diffs/components/diff_code_quality_item.vue | 62 - .../diffs/components/diff_comment_cell.vue | 1 + .../javascripts/diffs/components/diff_content.vue | 12 +- .../diffs/components/diff_discussion_reply.vue | 1 + .../diffs/components/diff_discussions.vue | 1 + .../diffs/components/diff_expansion_cell.vue | 1 + .../javascripts/diffs/components/diff_file.vue | 8 + .../diffs/components/diff_file_header.vue | 1 + .../diffs/components/diff_inline_findings.vue | 6 +- .../diffs/components/diff_inline_findings_item.vue | 63 + .../javascripts/diffs/components/diff_line.vue | 23 +- .../diffs/components/diff_line_note_form.vue | 6 + .../javascripts/diffs/components/diff_row.vue | 29 +- .../javascripts/diffs/components/diff_row_utils.js | 4 - .../javascripts/diffs/components/diff_view.vue | 38 +- .../diffs/components/diffs_file_tree.vue | 79 + .../diffs/components/image_diff_overlay.vue | 1 + .../diffs/components/inline_findings.vue | 41 + .../javascripts/diffs/components/no_changes.vue | 1 + .../diffs/components/settings_dropdown.vue | 1 + .../diffs/components/shared/findings_drawer.vue | 2 +- .../javascripts/diffs/components/tree_list.vue | 1 + app/assets/javascripts/diffs/index.js | 1 + .../javascripts/diffs/mixins/draft_comments.js | 1 + app/assets/javascripts/diffs/mixins/image_diff.js | 1 + app/assets/javascripts/diffs/store/actions.js | 59 +- .../javascripts/diffs/store/mutation_types.js | 1 + app/assets/javascripts/diffs/store/mutations.js | 3 + app/assets/javascripts/diffs/store/utils.js | 1 + .../javascripts/diffs/utils/tree_worker_utils.js | 4 +- app/assets/javascripts/editor/schema/ci.json | 140 +- app/assets/javascripts/emoji/awards_app/index.js | 1 + .../javascripts/emoji/awards_app/store/index.js | 1 + .../javascripts/emoji/components/category.vue | 3 +- app/assets/javascripts/emoji/components/picker.vue | 1 + app/assets/javascripts/emoji/no_emoji_validator.js | 2 +- .../javascripts/environments/components/commit.vue | 1 + .../environments/components/container.vue | 1 + .../environments/components/deployment.vue | 1 + .../environments/components/edit_environment.vue | 7 +- .../environment_flux_resource_selector.vue | 210 ++ .../environments/components/environment_form.vue | 35 +- .../environments/components/environments_app.vue | 1 - .../components/kubernetes_overview.vue | 17 +- .../components/kubernetes_status_bar.vue | 180 +- .../environments/components/new_environment.vue | 1 + .../components/new_environment_item.vue | 22 +- app/assets/javascripts/environments/constants.js | 64 + .../components/deployment_actions.vue | 1 - .../environments/environment_details/index.vue | 1 + .../environment_details/pagination.vue | 1 + .../javascripts/environments/graphql/client.js | 17 + .../graphql/queries/environment.query.graphql | 1 + .../environment_cluster_agent.query.graphql | 1 + ..._cluster_agent_with_flux_resource.query.graphql | 21 + ...ment_cluster_agent_with_namespace.query.graphql | 20 - .../environment_with_flux_resource.query.graphql | 16 + .../queries/environment_with_namespace.graphql | 15 - .../queries/flux_helm_release_status.query.graphql | 17 + .../queries/flux_helm_releases.query.graphql | 9 + .../flux_kustomization_status.query.graphql | 17 + .../queries/flux_kustomizations.query.graphql | 9 + .../javascripts/environments/graphql/resolvers.js | 320 +-- .../environments/graphql/resolvers/base.js | 165 ++ .../environments/graphql/resolvers/flux.js | 115 + .../environments/graphql/resolvers/kubernetes.js | 155 ++ .../environments/graphql/typedefs.graphql | 15 + .../environments/helpers/k8s_integration_helper.js | 2 +- app/assets/javascripts/environments/index.js | 2 + .../error_tracking/components/error_details.vue | 1 + .../components/error_tracking_list.vue | 1 + .../error_tracking/components/stacktrace.vue | 1 + .../javascripts/error_tracking/store/index.js | 1 + .../error_tracking_settings/components/app.vue | 1 + .../components/error_tracking_form.vue | 1 + .../error_tracking_settings/store/index.js | 1 + .../feature_flags/components/edit_feature_flag.vue | 1 + .../feature_flags/components/empty_state.vue | 1 + .../feature_flags/components/feature_flags.vue | 8 +- .../javascripts/feature_flags/components/form.vue | 1 + .../feature_flags/components/new_feature_flag.vue | 1 + .../components/strategies/default.vue | 1 + .../components/strategies/gitlab_user_list.vue | 1 + .../feature_flags/components/strategy.vue | 1 + app/assets/javascripts/feature_flags/edit.js | 1 + app/assets/javascripts/feature_flags/index.js | 1 + app/assets/javascripts/feature_flags/new.js | 1 + .../javascripts/feature_flags/store/edit/index.js | 1 + .../javascripts/feature_flags/store/index/index.js | 1 + .../javascripts/feature_flags/store/new/index.js | 1 + .../javascripts/forks/components/forks_button.vue | 86 + app/assets/javascripts/forks/init_forks_button.js | 41 + .../javascripts/frequent_items/store/index.js | 1 + app/assets/javascripts/google_cloud/aiml/panel.vue | 1 + .../google_cloud/configuration/panel.vue | 1 + .../javascripts/google_cloud/databases/panel.vue | 1 + .../javascripts/google_cloud/deployments/panel.vue | 1 + .../javascripts/google_cloud/gcp_regions/form.vue | 1 + .../javascripts/google_cloud/gcp_regions/list.vue | 1 + .../google_cloud/service_accounts/form.vue | 1 + .../google_cloud/service_accounts/list.vue | 1 + .../javascripts/graphql_shared/issuable_client.js | 10 + .../javascripts/graphql_shared/possible_types.json | 3 + .../queries/users_autocomplete.query.graphql | 20 + .../components/shared_runners_form.vue | 81 +- .../group_settings/mount_shared_runners.js | 8 +- app/assets/javascripts/groups/components/app.vue | 9 - .../javascripts/groups/components/group_item.vue | 12 +- .../groups/components/group_name_and_path.vue | 4 +- .../javascripts/groups/components/groups.vue | 1 + app/assets/javascripts/groups/groups_list.js | 18 - app/assets/javascripts/groups/index.js | 61 +- .../groups/service/archived_projects_service.js | 3 +- .../groups/settings/components/access_dropdown.vue | 1 - .../components/transfer_locations.vue | 1 + .../javascripts/header_search/components/app.vue | 3 +- .../header_search_autocomplete_items.vue | 1 + .../components/header_search_default_items.vue | 1 + .../components/header_search_scoped_items.vue | 1 + .../javascripts/header_search/store/index.js | 1 + .../javascripts/ide/components/activity_bar.vue | 1 + .../javascripts/ide/components/branches/item.vue | 1 + .../ide/components/branches/search_list.vue | 1 + .../ide/components/commit_sidebar/actions.vue | 2 + .../components/commit_sidebar/editor_header.vue | 1 + .../ide/components/commit_sidebar/empty_state.vue | 1 + .../ide/components/commit_sidebar/form.vue | 2 + .../ide/components/commit_sidebar/list.vue | 2 + .../ide/components/commit_sidebar/list_item.vue | 1 + .../commit_sidebar/new_merge_request_option.vue | 1 + .../ide/components/commit_sidebar/radio_group.vue | 1 + .../components/commit_sidebar/success_message.vue | 1 + .../javascripts/ide/components/error_message.vue | 1 + .../javascripts/ide/components/file_row_extra.vue | 1 + .../ide/components/file_templates/bar.vue | 2 + .../ide/components/file_templates/dropdown.vue | 2 + app/assets/javascripts/ide/components/ide.vue | 2 + .../javascripts/ide/components/ide_file_row.vue | 1 + .../javascripts/ide/components/ide_review.vue | 1 + .../javascripts/ide/components/ide_side_bar.vue | 1 + .../javascripts/ide/components/ide_status_bar.vue | 1 + .../javascripts/ide/components/ide_status_list.vue | 1 + app/assets/javascripts/ide/components/ide_tree.vue | 1 + .../javascripts/ide/components/ide_tree_list.vue | 1 + .../javascripts/ide/components/jobs/detail.vue | 2 + .../ide/components/jobs/detail/description.vue | 1 + .../javascripts/ide/components/jobs/item.vue | 1 + .../javascripts/ide/components/jobs/list.vue | 2 + .../javascripts/ide/components/jobs/stage.vue | 1 + .../ide/components/merge_requests/item.vue | 1 + .../ide/components/merge_requests/list.vue | 2 + .../javascripts/ide/components/nav_dropdown.vue | 1 + .../ide/components/nav_dropdown_button.vue | 1 + .../ide/components/new_dropdown/button.vue | 1 + .../ide/components/new_dropdown/index.vue | 2 + .../ide/components/new_dropdown/modal.vue | 2 + .../ide/components/new_dropdown/upload.vue | 1 + .../ide/components/panes/collapsible_sidebar.vue | 1 + .../javascripts/ide/components/panes/right.vue | 1 + .../ide/components/pipelines/empty_state.vue | 1 + .../javascripts/ide/components/pipelines/list.vue | 2 + .../ide/components/repo_commit_section.vue | 1 + .../javascripts/ide/components/repo_editor.vue | 4 +- app/assets/javascripts/ide/components/repo_tab.vue | 1 + .../javascripts/ide/components/repo_tabs.vue | 1 + .../javascripts/ide/components/resizable_panel.vue | 1 + .../ide/components/terminal/session.vue | 2 + .../ide/components/terminal/terminal.vue | 2 + .../javascripts/ide/components/terminal/view.vue | 2 + .../terminal_sync/terminal_sync_status.vue | 1 + .../terminal_sync/terminal_sync_status_safe.vue | 1 + app/assets/javascripts/ide/index.js | 1 + .../javascripts/ide/lib/alerts/environments.vue | 1 + app/assets/javascripts/ide/stores/index.js | 1 + app/assets/javascripts/ide/utils.js | 13 - .../import_entities/components/group_dropdown.vue | 2 + .../import_entities/components/import_status.vue | 8 +- .../components/import_target_dropdown.vue | 119 + .../components/import_actions_cell.vue | 54 +- .../components/github_status_table.vue | 1 + .../components/import_projects_table.vue | 1 + .../components/provider_repo_table_row.vue | 41 +- .../import_entities/import_projects/store/index.js | 1 + .../incidents/components/incidents_list.vue | 1 - .../components/incidents_settings_tabs.vue | 2 +- .../edit/components/active_checkbox.vue | 1 + .../integrations/edit/components/dynamic_field.vue | 1 + .../edit/components/integration_form.vue | 55 +- .../edit/components/integration_form_actions.vue | 125 +- .../edit/components/integration_forms/section.vue | 54 +- .../edit/components/jira_auth_fields.vue | 1 + .../edit/components/jira_issues_fields.vue | 1 + .../edit/components/jira_trigger_fields.vue | 1 + .../edit/components/override_dropdown.vue | 1 + .../edit/components/sections/apple_app_store.vue | 1 + .../edit/components/sections/configuration.vue | 1 + .../edit/components/sections/connection.vue | 1 + .../edit/components/sections/google_play.vue | 5 +- .../edit/components/sections/jira_issues.vue | 1 + .../edit/components/sections/jira_trigger.vue | 1 + .../edit/components/sections/trigger.vue | 1 + .../integrations/edit/components/trigger_field.vue | 1 + .../edit/components/trigger_fields.vue | 1 + .../javascripts/integrations/edit/store/index.js | 1 + .../index/components/integrations_list.vue | 49 +- .../index/components/integrations_table.vue | 31 +- .../invite_members/components/confetti.vue | 1 + .../invite_members/components/group_select.vue | 38 +- .../components/import_project_members_modal.vue | 144 +- .../components/user_limit_notification.vue | 19 - app/assets/javascripts/invite_members/constants.js | 8 - .../components/issuable_header_warnings.vue | 1 + .../issuable/issuable_bulk_update_actions.js | 1 + .../issuable/issuable_bulk_update_sidebar.js | 2 + .../issuable/issuable_template_selector.js | 4 +- .../issues/create_merge_request_dropdown.js | 36 +- .../dashboard/components/issues_dashboard_app.vue | 25 + .../dashboard/queries/get_issues.query.graphql | 8 + .../queries/get_issues_counts.query.graphql | 16 + app/assets/javascripts/issues/index.js | 9 +- .../issues/list/components/issues_list_app.vue | 154 ++ app/assets/javascripts/issues/list/constants.js | 33 + app/assets/javascripts/issues/list/graphql.js | 5 +- app/assets/javascripts/issues/list/index.js | 7 + .../issues/list/queries/get_issues.query.graphql | 12 + .../list/queries/get_issues_counts.query.graphql | 28 + app/assets/javascripts/issues/list/utils.js | 82 +- .../components/related_merge_requests.vue | 1 + .../issues/related_merge_requests/store/index.js | 1 + .../javascripts/issues/show/components/app.vue | 77 +- .../issues/show/components/description.vue | 1 + .../javascripts/issues/show/components/edited.vue | 1 + .../issues/show/components/fields/description.vue | 1 + .../issues/show/components/fields/title.vue | 1 + .../issues/show/components/fields/type.vue | 1 + .../javascripts/issues/show/components/form.vue | 9 +- .../issues/show/components/header_actions.vue | 12 +- .../components/incidents/timeline_events_form.vue | 1 - .../components/incidents/timeline_events_item.vue | 2 +- .../issues/show/components/issue_header.vue | 128 + .../show/components/new_header_actions_popover.vue | 46 +- .../show/components/sentry_error_stack_trace.vue | 1 + .../javascripts/issues/show/components/title.vue | 8 +- app/assets/javascripts/issues/show/index.js | 71 +- .../jira_connect/branches/pages/index.vue | 1 + .../javascripts/jira_connect/subscriptions/api.js | 7 +- .../components/add_namespace_modal/groups_list.vue | 13 +- .../add_namespace_modal/groups_list_item.vue | 1 + .../jira_connect/subscriptions/components/app.vue | 1 + .../components/sign_in_oauth_button.vue | 1 + .../components/subscriptions_list.vue | 1 + .../sign_in/sign_in_gitlab_multiversion/index.vue | 1 + .../subscriptions/pages/subscriptions_page.vue | 1 + .../jira_connect/subscriptions/store/index.js | 1 + .../jira_connect/subscriptions/store/state.js | 3 +- .../javascripts/jobs/components/job/job_app.vue | 1 + .../jobs/components/job/manual_variables_form.vue | 2 +- .../components/job/sidebar/artifacts_block.vue | 56 +- .../job/sidebar/job_sidebar_retry_button.vue | 1 + .../jobs/components/job/sidebar/sidebar.vue | 1 + .../jobs/components/job/sidebar/sidebar_header.vue | 1 + .../job/sidebar/sidebar_job_details_container.vue | 1 + .../javascripts/jobs/components/log/line.vue | 14 +- .../jobs/components/log/line_header.vue | 8 + app/assets/javascripts/jobs/components/log/log.vue | 2 + app/assets/javascripts/jobs/store/index.js | 1 + app/assets/javascripts/labels/index.js | 3 + .../javascripts/lib/apollo/persistence_mapper.js | 2 +- app/assets/javascripts/lib/mousetrap.js | 2 + app/assets/javascripts/lib/print_markdown_dom.js | 50 + app/assets/javascripts/lib/utils/constants.js | 1 + app/assets/javascripts/lib/utils/error_utils.js | 149 + app/assets/javascripts/lib/utils/file_utility.js | 12 + app/assets/javascripts/lib/utils/text_utility.js | 30 - app/assets/javascripts/lib/utils/url_utility.js | 32 +- .../javascripts/lib/utils/vue3compat/vue_router.js | 11 +- .../javascripts/lib/utils/vuex_module_mappers.js | 1 + .../approve_access_request_button.vue | 1 + .../action_buttons/remove_group_link_button.vue | 1 + .../action_buttons/remove_member_button.vue | 1 + .../action_buttons/resend_invite_button.vue | 1 + .../remove_member_dropdown_item.vue | 1 + app/assets/javascripts/members/components/app.vue | 1 + .../filter_sort/filter_sort_container.vue | 1 + .../filter_sort/members_filtered_search_bar.vue | 1 + .../components/filter_sort/sort_dropdown.vue | 1 + .../members/components/members_tabs.vue | 1 + .../members/components/modals/leave_modal.vue | 1 + .../components/modals/remove_group_link_modal.vue | 1 + .../components/modals/remove_member_modal.vue | 2 +- .../components/table/expiration_datepicker.vue | 1 + .../members/components/table/members_table.vue | 1 + .../members/components/table/role_dropdown.vue | 1 + app/assets/javascripts/members/index.js | 1 + .../components/diff_file_editor.vue | 1 + .../components/inline_conflict_lines.vue | 1 + .../components/parallel_conflict_lines.vue | 1 + .../merge_conflict_resolver_app.vue | 1 + .../javascripts/merge_conflicts/store/index.js | 1 + app/assets/javascripts/merge_request_tabs.js | 2 +- .../merge_requests/components/sticky_header.vue | 1 + .../milestones/components/milestone_combobox.vue | 1 + app/assets/javascripts/milestones/stores/index.js | 1 + app/assets/javascripts/mr_notes/init_notes.js | 4 +- app/assets/javascripts/mr_notes/stores/index.js | 1 + .../javascripts/nav/components/new_nav_toggle.vue | 7 +- app/assets/javascripts/nav/mount.js | 1 + app/assets/javascripts/nav/stores/index.js | 1 + app/assets/javascripts/notebook/cells/markdown.vue | 1 + .../javascripts/notebook/cells/output/html.vue | 1 + .../javascripts/notebook/cells/output/image.vue | 1 + .../javascripts/notebook/cells/output/index.vue | 1 + app/assets/javascripts/notebook/cells/prompt.vue | 1 + app/assets/javascripts/notebook/index.vue | 1 + .../notes/components/attachments_warning.vue | 2 +- .../javascripts/notes/components/comment_form.vue | 1 + .../notes/components/diff_discussion_header.vue | 1 + .../notes/components/diff_with_note.vue | 1 + .../notes/components/discussion_counter.vue | 1 + .../notes/components/discussion_filter.vue | 1 + .../notes/components/discussion_notes.vue | 1 + .../components/email_participants_warning.vue | 2 +- .../notes/components/mr_discussion_filter.vue | 1 + .../notes/components/multiline_comment_form.vue | 1 + .../javascripts/notes/components/note_actions.vue | 1 + .../notes/components/note_awards_list.vue | 1 + .../javascripts/notes/components/note_body.vue | 1 + .../javascripts/notes/components/note_form.vue | 72 +- .../javascripts/notes/components/note_header.vue | 1 + .../notes/components/note_signed_out_widget.vue | 1 + .../notes/components/noteable_discussion.vue | 1 + .../javascripts/notes/components/noteable_note.vue | 1 + .../javascripts/notes/components/notes_app.vue | 3 +- .../notes/components/sidebar_subscription.vue | 1 + .../notes/components/timeline_toggle.vue | 1 + app/assets/javascripts/notes/constants.js | 3 + .../notes/mixins/diff_line_note_form.js | 1 + .../notes/mixins/discussion_navigation.js | 1 + .../javascripts/notes/mixins/issuable_state.js | 1 + app/assets/javascripts/notes/mixins/resolvable.js | 8 - app/assets/javascripts/notes/stores/actions.js | 43 +- app/assets/javascripts/notes/stores/index.js | 1 + app/assets/javascripts/notes/stores/mutations.js | 22 +- .../components/notifications_dropdown_item.vue | 1 - .../oauth_application/components/oauth_secret.vue | 1 + app/assets/javascripts/observability/client.js | 167 +- .../components/observability_container.vue | 4 +- .../components/skeleton/dashboards.vue | 1 + .../observability/components/skeleton/embed.vue | 1 + .../observability/components/skeleton/explore.vue | 1 + .../observability/components/skeleton/index.vue | 1 + .../observability/components/skeleton/manage.vue | 1 + .../javascripts/observability/mock_traces.json | 2859 ++------------------ .../groups_and_projects/components/app.vue | 202 +- .../groups_and_projects/components/groups_page.vue | 43 + .../components/projects_page.vue | 46 + .../organizations/groups_and_projects/constants.js | 29 + .../graphql/queries/groups.query.graphql | 22 + .../graphql/queries/projects.query.graphql | 1 + .../groups_and_projects/graphql/resolvers.js | 12 +- .../organizations/groups_and_projects/index.js | 17 + .../organizations/groups_and_projects/utils.js | 23 + .../components/details_page/details_header.vue | 40 +- .../explorer/components/details_page/tags_list.vue | 53 +- .../components/details_page/tags_list_row.vue | 3 - .../explorer/components/list_page/image_list.vue | 21 - .../components/list_page/image_list_row.vue | 1 - .../explorer/constants/details.js | 1 + .../container_registry/explorer/pages/details.vue | 12 +- .../container_registry/explorer/pages/index.vue | 1 + .../container_registry/explorer/pages/list.vue | 68 +- .../container_registry/explorer/utils.js | 24 + .../dependency_proxy/app.vue | 8 +- .../dependency_proxy/components/manifests_list.vue | 6 - .../harbor_registry/pages/index.vue | 1 + .../details/components/app.vue | 1 + .../details/components/details_title.vue | 6 +- .../details/components/terraform_installation.vue | 1 + .../infrastructure_registry/details/store/index.js | 1 + .../list/components/infrastructure_search.vue | 1 + .../list/components/packages_list.vue | 1 + .../list/components/packages_list_app.vue | 1 + .../infrastructure_registry/list/stores/index.js | 1 + .../shared/package_list_row.vue | 2 +- .../components/details/metadata/composer.vue | 1 + .../components/details/metadata/conan.vue | 1 + .../components/details/metadata/maven.vue | 1 + .../components/details/metadata/nuget.vue | 1 + .../components/details/metadata/pypi.vue | 1 + .../components/details/package_files.vue | 5 - .../components/details/package_title.vue | 2 +- .../components/list/package_list_row.vue | 29 +- .../package_registry/pages/details.vue | 5 +- .../package_registry/pages/index.vue | 1 + .../package_registry/pages/list.vue | 7 +- .../settings/group/constants.js | 2 +- .../shared/components/persisted_pagination.vue | 56 + .../shared/components/persisted_search.vue | 39 +- .../shared/components/registry_list.vue | 4 - .../packages_and_registries/shared/utils.js | 8 + .../javascripts/pages/explore/groups/index.js | 2 - .../javascripts/pages/groups/work_items/index.js | 3 + .../components/bulk_imports_history_app.vue | 51 +- .../pages/import/bulk_imports/history/index.js | 6 + .../import/bulk_imports/history/utils/index.js | 7 + .../javascripts/pages/profiles/keys/index.js | 2 + .../javascripts/pages/projects/blob/show/index.js | 3 + .../feature_flags_user_lists/edit/index.js | 1 + .../feature_flags_user_lists/index/index.js | 1 + .../projects/feature_flags_user_lists/new/index.js | 1 + .../pages/projects/merge_requests/show/index.js | 2 +- .../projects/pipeline_schedules/create/index.js | 3 - .../shared/components/interval_pattern_input.vue | 6 +- .../projects/pipeline_schedules/update/index.js | 3 - .../pages/projects/settings/ci_cd/show/index.js | 2 + .../permissions/components/settings_panel.vue | 30 +- .../javascripts/pages/projects/show/index.js | 4 + .../pages/projects/tracing/show/index.js | 4 + app/assets/javascripts/pages/sessions/new/index.js | 2 + .../pages/shared/wikis/components/wiki_export.vue | 40 + .../pages/shared/wikis/components/wiki_form.vue | 2 +- app/assets/javascripts/pages/shared/wikis/show.js | 21 + app/assets/javascripts/pages/shared/wikis/wikis.js | 7 - app/assets/javascripts/pdf/index.vue | 1 + app/assets/javascripts/pdf/page/index.vue | 1 + .../performance_bar/components/detailed_metric.vue | 2 +- .../components/performance_bar_app.vue | 5 + .../pipeline_wizard/components/commit.vue | 2 - .../pipeline_wizard/components/widgets/text.vue | 2 +- .../javascripts/pipelines/components/dag/dag.vue | 1 + .../components/graph/job_group_dropdown.vue | 2 +- .../components/jobs/failed_jobs_table.vue | 6 +- .../graphql_pipeline_mini_graph.vue | 149 - .../components/pipeline_mini_graph/job_item.vue | 186 +- .../pipeline_mini_graph/legacy_job_item.vue | 168 ++ .../legacy_pipeline_mini_graph.vue | 98 + .../pipeline_mini_graph/legacy_pipeline_stage.vue | 176 ++ .../pipeline_mini_graph/pipeline_mini_graph.vue | 185 +- .../pipeline_mini_graph/pipeline_stage.vue | 195 +- .../pipeline_mini_graph/pipeline_stages.vue | 22 +- .../pipelines/components/pipeline_tabs.vue | 19 +- .../failure_widget/failed_job_details.vue | 49 +- .../failure_widget/failed_jobs_list.vue | 31 +- .../failure_widget/pipeline_failed_jobs_widget.vue | 78 +- .../pipelines_list/pipeline_multi_actions.vue | 36 +- .../components/pipelines_list/pipelines.vue | 1 + .../components/pipelines_list/pipelines_table.vue | 12 +- .../components/test_reports/test_reports.vue | 1 + .../components/test_reports/test_suite_table.vue | 1 + .../components/test_reports/test_summary_table.vue | 1 + app/assets/javascripts/pipelines/constants.js | 4 + .../queries/get_pipeline_failed_jobs.query.graphql | 5 +- .../queries/get_pipeline_stage.query.graphql | 32 + app/assets/javascripts/pipelines/pipeline_tabs.js | 1 + app/assets/javascripts/pipelines/utils.js | 12 +- .../javascripts/popovers/components/popovers.vue | 1 + .../javascripts/profile/add_ssh_key_validation.js | 3 + .../javascripts/profile/components/follow.vue | 1 + .../profile/edit/components/profile_edit_app.vue | 182 +- .../profile/edit/components/user_avatar.vue | 174 ++ app/assets/javascripts/profile/edit/constants.js | 34 + app/assets/javascripts/profile/edit/index.js | 30 +- app/assets/javascripts/profile/gl_crop.js | 8 +- .../commit/components/branches_dropdown.vue | 1 + .../projects/commit/components/form_modal.vue | 1 + .../commit/components/projects_dropdown.vue | 1 + .../javascripts/projects/commit/store/index.js | 1 + .../components/commit_box_pipeline_mini_graph.vue | 8 +- .../projects/commits/components/author_select.vue | 1 + app/assets/javascripts/projects/commits/index.js | 1 + .../javascripts/projects/commits/store/index.js | 1 + .../projects/components/shared/delete_button.vue | 148 +- .../projects/components/shared/delete_modal.vue | 155 ++ .../feature_flags_user_lists/show/index.js | 1 + .../new/components/new_project_url_select.vue | 4 +- .../javascripts/projects/pipelines/charts/index.js | 5 + .../javascripts/projects/project_name_rules.js | 2 +- app/assets/javascripts/projects/project_new.js | 2 +- .../settings/components/shared_runners_toggle.vue | 41 +- .../settings/mount_shared_runners_toggle.js | 8 + .../settings/repository/branch_rules/app.vue | 70 +- .../branch_rules/components/branch_rule.vue | 50 +- .../topics/components/topics_token_selector.vue | 2 +- .../components/custom_email.vue | 139 + .../components/custom_email_confirm_modal.vue | 74 + .../components/custom_email_form.vue | 291 ++ .../components/custom_email_wrapper.vue | 245 ++ .../components/service_desk_root.vue | 18 + .../custom_email_constants.js | 146 + .../projects/settings_service_desk/index.js | 5 + .../protected_tag_access_dropdown.js | 29 - .../javascripts/ref/components/ref_selector.vue | 1 + app/assets/javascripts/ref/stores/index.js | 1 + .../releases/components/app_edit_new.vue | 1 + .../releases/components/asset_links_form.vue | 1 + .../releases/components/confirm_delete_modal.vue | 1 + .../javascripts/releases/components/tag_create.vue | 1 + .../javascripts/releases/components/tag_field.vue | 1 + .../releases/components/tag_field_existing.vue | 1 + .../releases/components/tag_field_new.vue | 2 +- .../javascripts/releases/components/tag_search.vue | 1 + app/assets/javascripts/releases/mount_edit.js | 1 + app/assets/javascripts/releases/mount_new.js | 1 + app/assets/javascripts/releases/stores/index.js | 1 + .../javascripts/repository/commits_service.js | 8 +- .../repository/components/blob_button_group.vue | 6 + .../repository/components/blob_content_viewer.vue | 55 +- .../components/blob_viewers/image_viewer.vue | 2 +- .../repository/components/blob_viewers/index.js | 6 +- .../repository/components/breadcrumbs.vue | 15 +- .../repository/components/delete_blob_modal.vue | 199 +- .../repository/components/last_commit.vue | 6 + .../repository/components/preview/index.vue | 1 + .../repository/components/table/header.vue | 1 + .../repository/components/table/index.vue | 1 + .../repository/components/table/parent_row.vue | 6 +- .../repository/components/table/row.vue | 27 +- .../repository/components/tree_content.vue | 4 +- app/assets/javascripts/repository/constants.js | 4 + app/assets/javascripts/repository/index.js | 11 +- .../repository/mixins/highlight_mixin.js | 5 +- .../javascripts/repository/mixins/preload.js | 2 +- app/assets/javascripts/repository/pages/blob.vue | 9 +- app/assets/javascripts/repository/pages/index.vue | 10 +- app/assets/javascripts/repository/pages/tree.vue | 11 + app/assets/javascripts/repository/router.js | 15 +- .../repository/utils/ref_switcher_utils.js | 2 +- .../javascripts/search/sidebar/components/app.vue | 42 +- .../sidebar/components/archived_filter/data.js | 19 + .../sidebar/components/archived_filter/index.vue | 55 + .../sidebar/components/archived_filter/tracking.js | 38 + .../search/sidebar/components/blobs_filters.vue | 18 + .../search/sidebar/components/checkbox_filter.vue | 94 - .../sidebar/components/confidentiality_filter.vue | 25 - .../components/confidentiality_filter/data.js | 36 + .../components/confidentiality_filter/index.vue | 23 + .../search/sidebar/components/filters_template.vue | 60 + .../search/sidebar/components/issues_filters.vue | 66 +- .../sidebar/components/label_filter/index.vue | 15 +- .../components/language_filter/checkbox_filter.vue | 5 +- .../sidebar/components/language_filter/index.vue | 145 +- .../sidebar/components/language_filter/tracking.js | 10 - .../sidebar/components/merge_requests_filters.vue | 18 + .../search/sidebar/components/projects_filters.vue | 18 + .../search/sidebar/components/radio_filter.vue | 5 +- .../search/sidebar/components/results_filters.vue | 54 - .../sidebar/components/scope_legacy_navigation.vue | 1 + .../components/scope_sidebar_navigation.vue | 3 +- .../search/sidebar/components/status_filter.vue | 25 - .../sidebar/components/status_filter/data.js | 42 + .../sidebar/components/status_filter/index.vue | 18 + .../sidebar/constants/confidential_filter_data.js | 36 - .../javascripts/search/sidebar/constants/index.js | 2 +- .../search/sidebar/constants/state_filter_data.js | 42 - .../javascripts/search/sort/components/app.vue | 1 + app/assets/javascripts/search/store/actions.js | 20 +- app/assets/javascripts/search/store/constants.js | 8 +- app/assets/javascripts/search/store/getters.js | 9 +- app/assets/javascripts/search/store/index.js | 1 + .../javascripts/search/topbar/components/app.vue | 1 + .../search/topbar/components/group_filter.vue | 1 + .../search/topbar/components/project_filter.vue | 1 + .../security_configuration/components/app.vue | 2 +- .../security_configuration/components/constants.js | 2 +- .../components/empty_state_with_any_issues.vue | 58 + .../components/empty_state_without_any_issues.vue | 74 + .../service_desk/components/info_banner.vue | 2 +- .../components/service_desk_list_app.vue | 324 ++- app/assets/javascripts/service_desk/constants.js | 238 +- app/assets/javascripts/service_desk/index.js | 25 +- .../service_desk/queries/label.fragment.graphql | 6 + .../queries/milestone.fragment.graphql | 4 + .../queries/search_project_labels.query.graphql | 14 + .../search_project_milestones.query.graphql | 17 + .../javascripts/service_desk/search_tokens.js | 97 + app/assets/javascripts/service_desk/utils.js | 37 + .../sessions/new/components/email_verification.vue | 211 ++ .../sessions/new/components/update_email.vue | 133 + app/assets/javascripts/sessions/new/constants.js | 30 + app/assets/javascripts/sessions/new/index.js | 29 + .../set_status_modal/set_status_form.vue | 35 +- .../sidebar/components/assignees/assignees.vue | 3 +- .../confidential/confidentiality_dropdown.vue | 55 + .../components/incidents/escalation_status.vue | 67 +- .../labels/labels_select_vue/dropdown_button.vue | 1 + .../labels/labels_select_vue/dropdown_contents.vue | 1 + .../dropdown_contents_create_view.vue | 1 + .../dropdown_contents_labels_view.vue | 1 + .../labels/labels_select_vue/dropdown_title.vue | 1 + .../labels/labels_select_vue/dropdown_value.vue | 1 + .../labels_select_vue/labels_select_root.vue | 1 + .../dropdown_contents_labels_view.vue | 7 +- .../labels_select_widget/labels_select_root.vue | 3 +- .../sidebar/components/lock/edit_form_buttons.vue | 1 + .../sidebar/components/lock/issuable_lock_form.vue | 1 + .../components/participants/participants.vue | 1 + .../sidebar/components/reviewers/reviewers.vue | 1 + .../sidebar/components/severity/severity.vue | 1 + .../components/subscriptions/subscriptions.vue | 1 + .../sidebar/components/time_tracking/constants.js | 1 + .../sidebar/components/time_tracking/report.vue | 1 + .../time_tracking/set_time_estimate_form.vue | 215 ++ .../time_tracking/sidebar_time_tracking.vue | 6 + .../components/time_tracking/time_tracker.vue | 62 +- .../sidebar/components/todo_toggle/todo.vue | 1 + .../javascripts/sidebar/mount_milestone_sidebar.js | 1 + app/assets/javascripts/sidebar/mount_sidebar.js | 17 + .../issue_set_time_estimate.mutation.graphql | 10 + ...erge_request_set_time_estimate.mutation.graphql | 10 + .../javascripts/snippets/components/edit.vue | 2 +- .../javascripts/snippets/components/show.vue | 1 + .../super_sidebar/components/brand_logo.vue | 2 +- .../super_sidebar/components/context_header.vue | 56 + .../super_sidebar/components/context_switcher.vue | 9 +- .../components/context_switcher_toggle.vue | 41 +- .../super_sidebar/components/counter.vue | 1 + .../super_sidebar/components/create_menu.vue | 1 + .../super_sidebar/components/flyout_menu.vue | 65 + .../components/frequent_items_list.vue | 45 +- .../command_palette/command_palette_items.vue | 8 +- .../command_palette/fake_search_input.vue | 4 +- .../global_search/components/frequent_groups.vue | 40 + .../global_search/components/frequent_item.vue | 64 + .../global_search/components/frequent_items.vue | 133 + .../global_search/components/frequent_projects.vue | 40 + .../global_search/components/global_search.vue | 26 +- .../global_search_autocomplete_items.vue | 8 +- .../components/global_search_default_issuables.vue | 45 + .../components/global_search_default_items.vue | 63 +- .../components/global_search_default_places.vue | 35 + .../components/global_search_scoped_items.vue | 1 + .../components/global_search/constants.js | 2 +- .../components/global_search/store/getters.js | 26 +- .../components/global_search/store/index.js | 1 + .../super_sidebar/components/items_list.vue | 8 +- .../super_sidebar/components/menu_section.vue | 42 +- .../super_sidebar/components/nav_item.vue | 23 +- .../super_sidebar/components/pinned_section.vue | 16 +- .../super_sidebar/components/sidebar_menu.vue | 28 +- .../components/sidebar_peek_behavior.vue | 11 + .../super_sidebar/components/super_sidebar.vue | 21 +- .../components/super_sidebar_toggle.vue | 2 +- .../super_sidebar/components/user_bar.vue | 47 +- .../super_sidebar/components/user_name_group.vue | 1 + .../super_sidebar/super_sidebar_bundle.js | 9 + app/assets/javascripts/super_sidebar/utils.js | 44 +- .../tags/components/delete_tag_modal.vue | 72 +- .../javascripts/tags/components/sort_dropdown.vue | 1 - app/assets/javascripts/tags/constants.js | 37 + .../terraform/components/init_command_modal.vue | 1 - .../components/inbound_token_access.vue | 76 +- .../components/outbound_token_access.vue | 60 +- .../token_access/components/token_access_app.vue | 4 +- .../javascripts/tooltips/components/tooltips.vue | 8 + .../tracing/components/tracing_details.vue | 90 + .../tracing/components/tracing_empty_state.vue | 21 +- .../tracing/components/tracing_list.vue | 46 +- .../components/tracing_list_filtered_search.vue | 87 + .../tracing/components/tracing_table_list.vue | 38 +- app/assets/javascripts/tracing/details_index.vue | 49 + app/assets/javascripts/tracing/filters.js | 104 + app/assets/javascripts/tracking/constants.js | 1 + app/assets/javascripts/tracking/index.js | 1 + app/assets/javascripts/tracking/internal_events.js | 31 +- .../storage/components/project_storage_app.vue | 76 +- .../storage/components/project_storage_detail.vue | 72 +- .../storage/components/usage_graph.vue | 7 - .../javascripts/usage_quotas/storage/constants.js | 50 +- .../usage_quotas/storage/init_project_storage.js | 2 - .../javascripts/usage_quotas/storage/utils.js | 52 +- .../user_lists/components/add_user_modal.vue | 1 - .../user_lists/components/edit_user_list.vue | 1 + .../user_lists/components/new_user_list.vue | 1 + .../user_lists/components/user_list.vue | 2 + .../user_lists/components/user_lists.vue | 1 + .../javascripts/user_lists/store/edit/index.js | 1 + .../javascripts/user_lists/store/index/index.js | 1 + .../javascripts/user_lists/store/new/index.js | 1 + .../javascripts/user_lists/store/show/index.js | 1 + .../actions/components/user_actions_app.vue | 60 +- .../javascripts/users/profile/actions/index.js | 14 +- app/assets/javascripts/users/profile/index.js | 2 +- app/assets/javascripts/users_select/constants.js | 2 - app/assets/javascripts/users_select/index.js | 2 +- .../components/artifacts_list_app.vue | 1 + .../components/deployment/deployment.vue | 3 +- .../components/deployment/deployment_list.vue | 6 +- .../components/extensions/base.vue | 1 + .../components/loading.vue | 1 + .../components/mr_collapsible_extension.vue | 2 +- .../components/mr_widget_how_to_merge_modal.vue | 9 +- .../components/mr_widget_pipeline.vue | 66 +- .../components/widget/action_buttons.vue | 58 +- .../components/widget/app.vue | 11 +- .../components/widget/dynamic_content.vue | 18 +- .../components/widget/widget.vue | 69 +- .../vue_merge_request_widget/constants.js | 8 +- .../extensions/code_quality/index.vue | 157 ++ .../javascripts/vue_merge_request_widget/index.js | 2 +- .../vue_merge_request_widget/mr_widget_options.vue | 15 - .../stores/artifacts_list/index.js | 1 + .../stores/mr_widget_store.js | 11 + .../vue_shared/components/actions_button.vue | 74 - .../components/badges/beta_badge.stories.js | 24 + .../vue_shared/components/badges/beta_badge.vue | 67 + .../components/blob_viewers/rich_viewer.vue | 3 + .../vue_shared/components/ci_badge_link.vue | 15 +- .../ci_cd_analytics/ci_cd_analytics_area_chart.vue | 9 + .../ci_cd_analytics/ci_cd_analytics_charts.vue | 19 +- .../components/color_picker/color_picker.vue | 2 +- .../javascripts/vue_shared/components/commit.vue | 1 + .../components/diff_viewer/viewers/renamed.vue | 2 + .../vue_shared/components/file_finder/index.vue | 1 + .../vue_shared/components/file_finder/item.vue | 1 + .../components/filtered_search_bar/constants.js | 18 + .../filtered_search_bar_root.vue | 7 +- .../filtered_search_bar/filtered_search_utils.js | 129 +- .../filtered_search_bar/tokens/date_token.vue | 73 + .../filtered_search_bar/tokens/emoji_token.vue | 2 +- .../vue_shared/components/form/index.js | 59 + .../form/input_copy_toggle_visibility.stories.js | 7 +- .../form/input_copy_toggle_visibility.vue | 70 +- .../vue_shared/components/form/title.vue | 1 + .../vue_shared/components/gl_modal_vuex.vue | 1 + .../components/groups_list/groups_list.stories.js | 19 + .../components/groups_list/groups_list.vue | 29 + .../components/groups_list/groups_list_item.vue | 168 ++ .../vue_shared/components/help_popover.vue | 13 +- .../listbox_input/init_listbox_inputs.js | 3 +- .../components/listbox_input/listbox_input.vue | 8 +- .../markdown/comment_templates_dropdown.vue | 9 + .../vue_shared/components/markdown/constants.js | 2 + .../vue_shared/components/markdown/field.vue | 4 +- .../vue_shared/components/markdown/header.vue | 36 +- .../components/markdown/markdown_editor.vue | 25 +- .../vue_shared/components/markdown/suggestions.vue | 1 + .../vue_shared/components/markdown/toolbar.vue | 3 +- .../components/markdown/toolbar_button.vue | 18 + .../vue_shared/components/markdown/tracking.js | 18 +- .../components/metric_images/metric_images_tab.vue | 1 + .../metric_images/metric_images_table.vue | 1 + .../components/metric_images/store/index.js | 1 + .../vue_shared/components/mr_more_dropdown.vue | 1 - .../components/notes/noteable_warning.vue | 2 +- .../components/notes/placeholder_note.vue | 1 + .../vue_shared/components/notes/system_note.vue | 1 + .../vue_shared/components/page_size_selector.vue | 37 +- .../components/projects_list/constants.js | 2 + .../components/projects_list/projects_list.vue | 1 + .../projects_list/projects_list_item.vue | 303 ++- .../registry/persisted_dropdown_selection.vue | 30 +- .../components/registry/registry_search.vue | 8 +- .../vue_shared/components/registry/title_area.vue | 14 +- .../components/source_viewer/components/chunk.vue | 1 + .../components/source_viewer/constants.js | 3 + .../components/source_viewer/languages/svelte.js | 81 + .../components/source_viewer/source_viewer.vue | 52 +- .../components/source_viewer/source_viewer_new.vue | 4 + .../vue_shared/components/web_ide_link.vue | 85 +- app/assets/javascripts/vue_shared/constants.js | 2 +- .../vue_shared/global_search/constants.js | 1 + .../issuable/create/components/issuable_form.vue | 37 +- .../create/components/issuable_label_selector.vue | 4 +- .../issuable/list/components/issuable_item.vue | 64 +- .../list/components/issuable_list_root.vue | 16 + .../show/components/issuable_edit_form.vue | 1 - .../issuable/show/components/issuable_header.vue | 191 +- .../new_namespace/components/welcome.vue | 3 +- .../components/manage_via_mr.vue | 1 - .../webhooks/components/form_url_app.vue | 1 + .../javascripts/whats_new/components/app.vue | 1 + .../javascripts/whats_new/components/feature.vue | 3 +- app/assets/javascripts/whats_new/index.js | 1 + app/assets/javascripts/whats_new/store/index.js | 1 + .../work_items/components/item_state.vue | 79 - .../work_items/components/item_title.vue | 2 +- .../components/notes/work_item_add_note.vue | 1 + .../components/notes/work_item_comment_form.vue | 81 +- .../work_items/components/notes/work_item_note.vue | 5 +- .../shared/work_item_link_child_contents.vue | 196 ++ .../shared/work_item_link_child_metadata.vue | 92 + .../components/shared/work_item_links_menu.vue | 29 + .../work_items/components/work_item_actions.vue | 76 +- .../work_items/components/work_item_assignees.vue | 4 +- .../components/work_item_attributes_wrapper.vue | 8 - .../components/work_item_award_emoji.vue | 11 +- .../components/work_item_created_updated.vue | 53 +- .../work_items/components/work_item_detail.vue | 70 +- .../work_items/components/work_item_due_date.vue | 2 - .../work_items/components/work_item_labels.vue | 15 +- .../work_item_links/okr_actions_split_button.vue | 58 +- .../work_item_links/work_item_link_child.vue | 130 +- .../work_item_link_child_metadata.vue | 92 - .../components/work_item_links/work_item_links.vue | 40 +- .../work_item_links/work_item_links_form.vue | 1 + .../work_item_links/work_item_links_menu.vue | 29 - .../components/work_item_links/work_item_tree.vue | 1 + .../work_items/components/work_item_state.vue | 116 - .../components/work_item_state_badge.vue | 41 + .../components/work_item_state_toggle_button.vue | 113 + .../work_items/components/work_item_type_icon.vue | 13 +- app/assets/javascripts/work_items/constants.js | 12 +- .../work_items/graphql/milestone.fragment.graphql | 1 + ...update_work_item_notifications.mutation.graphql | 14 +- .../graphql/work_item_by_iid.query.graphql | 2 +- .../list/components/work_items_list_app.vue | 73 + app/assets/javascripts/work_items/list/index.js | 26 + .../list/queries/get_work_items.query.graphql | 56 + app/assets/javascripts/work_items/utils.js | 6 +- .../work_items_hierarchy/components/hierarchy.vue | 1 + app/assets/stylesheets/_page_specific_files.scss | 1 - .../stylesheets/components/content_editor.scss | 12 + app/assets/stylesheets/framework/awards.scss | 4 + app/assets/stylesheets/framework/buttons.scss | 21 +- app/assets/stylesheets/framework/diffs.scss | 18 +- app/assets/stylesheets/framework/emojis.scss | 14 +- app/assets/stylesheets/framework/files.scss | 5 + app/assets/stylesheets/framework/header.scss | 38 +- .../stylesheets/framework/markdown_area.scss | 2 +- app/assets/stylesheets/framework/mixins.scss | 5 - app/assets/stylesheets/framework/new_card.scss | 61 + .../framework/secondary_navigation_elements.scss | 2 +- .../stylesheets/framework/super_sidebar.scss | 51 +- app/assets/stylesheets/framework/variables.scss | 2 +- .../highlight/diff_custom_colors_addition.scss | 2 +- .../highlight/diff_custom_colors_deletion.scss | 2 +- app/assets/stylesheets/highlight/themes/dark.scss | 10 +- .../stylesheets/highlight/themes/monokai.scss | 10 +- app/assets/stylesheets/highlight/themes/none.scss | 2 +- .../highlight/themes/solarized-dark.scss | 10 +- .../highlight/themes/solarized-light.scss | 10 +- app/assets/stylesheets/highlight/white_base.scss | 2 +- .../stylesheets/page_bundles/_pipeline_mixins.scss | 12 +- app/assets/stylesheets/page_bundles/editor.scss | 37 +- .../page_bundles/incident_management_list.scss | 122 - .../stylesheets/page_bundles/issues_list.scss | 10 + .../stylesheets/page_bundles/merge_request.scss | 354 +++ .../stylesheets/page_bundles/merge_requests.scss | 61 +- app/assets/stylesheets/page_bundles/profile.scss | 2 +- app/assets/stylesheets/page_bundles/tree.scss | 8 +- .../stylesheets/page_bundles/work_items.scss | 35 +- app/assets/stylesheets/pages/labels.scss | 4 +- app/assets/stylesheets/pages/merge_requests.scss | 368 --- app/assets/stylesheets/pages/notes.scss | 1 + app/assets/stylesheets/pages/projects.scss | 39 - app/assets/stylesheets/pages/settings.scss | 57 +- app/assets/stylesheets/print.scss | 36 + app/assets/stylesheets/snippets.scss | 4 + app/assets/stylesheets/themes/_dark.scss | 6 + app/assets/stylesheets/themes/theme_blue.scss | 9 + app/assets/stylesheets/themes/theme_gray.scss | 9 + app/assets/stylesheets/themes/theme_green.scss | 9 + app/assets/stylesheets/themes/theme_helper.scss | 60 + app/assets/stylesheets/themes/theme_indigo.scss | 9 + .../stylesheets/themes/theme_light_blue.scss | 9 + .../stylesheets/themes/theme_light_green.scss | 9 + .../stylesheets/themes/theme_light_indigo.scss | 9 + app/assets/stylesheets/themes/theme_light_red.scss | 9 + app/assets/stylesheets/themes/theme_red.scss | 9 + app/assets/stylesheets/utilities.scss | 21 +- 1080 files changed, 19051 insertions(+), 10239 deletions(-) delete mode 100644 app/assets/javascripts/badges/components/badge_list_row.vue create mode 100644 app/assets/javascripts/behaviors/toasts.js delete mode 100644 app/assets/javascripts/blob/file_template_mediator.js delete mode 100644 app/assets/javascripts/blob/file_template_selector.js create mode 100644 app/assets/javascripts/blob/filepath_form/components/filepath_form.vue create mode 100644 app/assets/javascripts/blob/filepath_form/components/template_selector.vue create mode 100644 app/assets/javascripts/blob/filepath_form/index.js create mode 100644 app/assets/javascripts/blob/filepath_form_mediator.js create mode 100644 app/assets/javascripts/blob/legacy_template_selector.js delete mode 100644 app/assets/javascripts/blob/template_selector.js delete mode 100644 app/assets/javascripts/blob/template_selectors/ci_yaml_selector.js delete mode 100644 app/assets/javascripts/blob/template_selectors/dockerfile_selector.js delete mode 100644 app/assets/javascripts/blob/template_selectors/gitignore_selector.js delete mode 100644 app/assets/javascripts/blob/template_selectors/license_selector.js delete mode 100644 app/assets/javascripts/boards/components/sidebar/board_sidebar_time_tracker.vue create mode 100644 app/assets/javascripts/ci/ci_variable_list/components/ci_variable_drawer.vue create mode 100644 app/assets/javascripts/ci/runner/admin_runners/provide.js create mode 100644 app/assets/javascripts/ci_settings_general_pipeline/index.js create mode 100644 app/assets/javascripts/commit/pipelines/pipelines_table_wrapper.vue create mode 100644 app/assets/javascripts/contribution_events/components/contribution_event/contribution_event_closed.vue create mode 100644 app/assets/javascripts/contribution_events/components/contribution_event/contribution_event_commented.vue create mode 100644 app/assets/javascripts/contribution_events/components/contribution_event/contribution_event_created.vue create mode 100644 app/assets/javascripts/contribution_events/components/contribution_event/contribution_event_reopened.vue create mode 100644 app/assets/javascripts/contribution_events/utils.js create mode 100644 app/assets/javascripts/custom_emoji/components/app.vue create mode 100644 app/assets/javascripts/custom_emoji/components/delete_item.vue create mode 100644 app/assets/javascripts/custom_emoji/components/form.vue create mode 100644 app/assets/javascripts/custom_emoji/components/list.vue create mode 100644 app/assets/javascripts/custom_emoji/custom_emoji_bundle.js create mode 100644 app/assets/javascripts/custom_emoji/graphql_client.js create mode 100644 app/assets/javascripts/custom_emoji/pages/index.vue create mode 100644 app/assets/javascripts/custom_emoji/pages/new.vue create mode 100644 app/assets/javascripts/custom_emoji/queries/create_custom_emoji.mutation.graphql create mode 100644 app/assets/javascripts/custom_emoji/queries/custom_emojis.query.graphql create mode 100644 app/assets/javascripts/custom_emoji/queries/delete_custom_emoji.mutation.graphql create mode 100644 app/assets/javascripts/custom_emoji/queries/user_permissions.query.graphql create mode 100644 app/assets/javascripts/custom_emoji/routes.js delete mode 100644 app/assets/javascripts/diffs/components/diff_code_quality.vue delete mode 100644 app/assets/javascripts/diffs/components/diff_code_quality_item.vue create mode 100644 app/assets/javascripts/diffs/components/diff_inline_findings_item.vue create mode 100644 app/assets/javascripts/diffs/components/diffs_file_tree.vue create mode 100644 app/assets/javascripts/diffs/components/inline_findings.vue create mode 100644 app/assets/javascripts/environments/components/environment_flux_resource_selector.vue create mode 100644 app/assets/javascripts/environments/graphql/queries/environment_cluster_agent_with_flux_resource.query.graphql delete mode 100644 app/assets/javascripts/environments/graphql/queries/environment_cluster_agent_with_namespace.query.graphql create mode 100644 app/assets/javascripts/environments/graphql/queries/environment_with_flux_resource.query.graphql delete mode 100644 app/assets/javascripts/environments/graphql/queries/environment_with_namespace.graphql create mode 100644 app/assets/javascripts/environments/graphql/queries/flux_helm_release_status.query.graphql create mode 100644 app/assets/javascripts/environments/graphql/queries/flux_helm_releases.query.graphql create mode 100644 app/assets/javascripts/environments/graphql/queries/flux_kustomization_status.query.graphql create mode 100644 app/assets/javascripts/environments/graphql/queries/flux_kustomizations.query.graphql create mode 100644 app/assets/javascripts/environments/graphql/resolvers/base.js create mode 100644 app/assets/javascripts/environments/graphql/resolvers/flux.js create mode 100644 app/assets/javascripts/environments/graphql/resolvers/kubernetes.js create mode 100644 app/assets/javascripts/forks/components/forks_button.vue create mode 100644 app/assets/javascripts/forks/init_forks_button.js create mode 100644 app/assets/javascripts/graphql_shared/queries/users_autocomplete.query.graphql delete mode 100644 app/assets/javascripts/groups/groups_list.js create mode 100644 app/assets/javascripts/import_entities/components/import_target_dropdown.vue create mode 100644 app/assets/javascripts/issues/show/components/issue_header.vue create mode 100644 app/assets/javascripts/lib/print_markdown_dom.js create mode 100644 app/assets/javascripts/lib/utils/error_utils.js create mode 100644 app/assets/javascripts/lib/utils/file_utility.js create mode 100644 app/assets/javascripts/organizations/groups_and_projects/components/groups_page.vue create mode 100644 app/assets/javascripts/organizations/groups_and_projects/components/projects_page.vue create mode 100644 app/assets/javascripts/organizations/groups_and_projects/constants.js create mode 100644 app/assets/javascripts/organizations/groups_and_projects/graphql/queries/groups.query.graphql create mode 100644 app/assets/javascripts/organizations/groups_and_projects/utils.js create mode 100644 app/assets/javascripts/packages_and_registries/shared/components/persisted_pagination.vue create mode 100644 app/assets/javascripts/pages/groups/work_items/index.js create mode 100644 app/assets/javascripts/pages/import/bulk_imports/history/utils/index.js delete mode 100644 app/assets/javascripts/pages/projects/pipeline_schedules/create/index.js delete mode 100644 app/assets/javascripts/pages/projects/pipeline_schedules/update/index.js create mode 100644 app/assets/javascripts/pages/projects/tracing/show/index.js create mode 100644 app/assets/javascripts/pages/shared/wikis/components/wiki_export.vue delete mode 100644 app/assets/javascripts/pipelines/components/pipeline_mini_graph/graphql_pipeline_mini_graph.vue create mode 100644 app/assets/javascripts/pipelines/components/pipeline_mini_graph/legacy_job_item.vue create mode 100644 app/assets/javascripts/pipelines/components/pipeline_mini_graph/legacy_pipeline_mini_graph.vue create mode 100644 app/assets/javascripts/pipelines/components/pipeline_mini_graph/legacy_pipeline_stage.vue create mode 100644 app/assets/javascripts/pipelines/graphql/queries/get_pipeline_stage.query.graphql create mode 100644 app/assets/javascripts/profile/edit/components/user_avatar.vue create mode 100644 app/assets/javascripts/profile/edit/constants.js create mode 100644 app/assets/javascripts/projects/components/shared/delete_modal.vue create mode 100644 app/assets/javascripts/projects/settings_service_desk/components/custom_email.vue create mode 100644 app/assets/javascripts/projects/settings_service_desk/components/custom_email_confirm_modal.vue create mode 100644 app/assets/javascripts/projects/settings_service_desk/components/custom_email_form.vue create mode 100644 app/assets/javascripts/projects/settings_service_desk/components/custom_email_wrapper.vue create mode 100644 app/assets/javascripts/projects/settings_service_desk/custom_email_constants.js delete mode 100644 app/assets/javascripts/protected_tags/protected_tag_access_dropdown.js create mode 100644 app/assets/javascripts/search/sidebar/components/archived_filter/data.js create mode 100644 app/assets/javascripts/search/sidebar/components/archived_filter/index.vue create mode 100644 app/assets/javascripts/search/sidebar/components/archived_filter/tracking.js create mode 100644 app/assets/javascripts/search/sidebar/components/blobs_filters.vue delete mode 100644 app/assets/javascripts/search/sidebar/components/checkbox_filter.vue delete mode 100644 app/assets/javascripts/search/sidebar/components/confidentiality_filter.vue create mode 100644 app/assets/javascripts/search/sidebar/components/confidentiality_filter/data.js create mode 100644 app/assets/javascripts/search/sidebar/components/confidentiality_filter/index.vue create mode 100644 app/assets/javascripts/search/sidebar/components/filters_template.vue create mode 100644 app/assets/javascripts/search/sidebar/components/merge_requests_filters.vue create mode 100644 app/assets/javascripts/search/sidebar/components/projects_filters.vue delete mode 100644 app/assets/javascripts/search/sidebar/components/results_filters.vue delete mode 100644 app/assets/javascripts/search/sidebar/components/status_filter.vue create mode 100644 app/assets/javascripts/search/sidebar/components/status_filter/data.js create mode 100644 app/assets/javascripts/search/sidebar/components/status_filter/index.vue delete mode 100644 app/assets/javascripts/search/sidebar/constants/confidential_filter_data.js delete mode 100644 app/assets/javascripts/search/sidebar/constants/state_filter_data.js create mode 100644 app/assets/javascripts/service_desk/components/empty_state_with_any_issues.vue create mode 100644 app/assets/javascripts/service_desk/components/empty_state_without_any_issues.vue create mode 100644 app/assets/javascripts/service_desk/queries/label.fragment.graphql create mode 100644 app/assets/javascripts/service_desk/queries/milestone.fragment.graphql create mode 100644 app/assets/javascripts/service_desk/queries/search_project_labels.query.graphql create mode 100644 app/assets/javascripts/service_desk/queries/search_project_milestones.query.graphql create mode 100644 app/assets/javascripts/service_desk/search_tokens.js create mode 100644 app/assets/javascripts/service_desk/utils.js create mode 100644 app/assets/javascripts/sessions/new/components/email_verification.vue create mode 100644 app/assets/javascripts/sessions/new/components/update_email.vue create mode 100644 app/assets/javascripts/sessions/new/constants.js create mode 100644 app/assets/javascripts/sessions/new/index.js create mode 100644 app/assets/javascripts/sidebar/components/confidential/confidentiality_dropdown.vue create mode 100644 app/assets/javascripts/sidebar/components/time_tracking/set_time_estimate_form.vue create mode 100644 app/assets/javascripts/sidebar/queries/issue_set_time_estimate.mutation.graphql create mode 100644 app/assets/javascripts/sidebar/queries/merge_request_set_time_estimate.mutation.graphql create mode 100644 app/assets/javascripts/super_sidebar/components/context_header.vue create mode 100644 app/assets/javascripts/super_sidebar/components/flyout_menu.vue create mode 100644 app/assets/javascripts/super_sidebar/components/global_search/components/frequent_groups.vue create mode 100644 app/assets/javascripts/super_sidebar/components/global_search/components/frequent_item.vue create mode 100644 app/assets/javascripts/super_sidebar/components/global_search/components/frequent_items.vue create mode 100644 app/assets/javascripts/super_sidebar/components/global_search/components/frequent_projects.vue create mode 100644 app/assets/javascripts/super_sidebar/components/global_search/components/global_search_default_issuables.vue create mode 100644 app/assets/javascripts/super_sidebar/components/global_search/components/global_search_default_places.vue create mode 100644 app/assets/javascripts/tags/constants.js create mode 100644 app/assets/javascripts/tracing/components/tracing_details.vue create mode 100644 app/assets/javascripts/tracing/components/tracing_list_filtered_search.vue create mode 100644 app/assets/javascripts/tracing/details_index.vue create mode 100644 app/assets/javascripts/tracing/filters.js create mode 100644 app/assets/javascripts/vue_merge_request_widget/extensions/code_quality/index.vue delete mode 100644 app/assets/javascripts/vue_shared/components/actions_button.vue create mode 100644 app/assets/javascripts/vue_shared/components/badges/beta_badge.stories.js create mode 100644 app/assets/javascripts/vue_shared/components/badges/beta_badge.vue create mode 100644 app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/date_token.vue create mode 100644 app/assets/javascripts/vue_shared/components/form/index.js create mode 100644 app/assets/javascripts/vue_shared/components/groups_list/groups_list.stories.js create mode 100644 app/assets/javascripts/vue_shared/components/groups_list/groups_list.vue create mode 100644 app/assets/javascripts/vue_shared/components/groups_list/groups_list_item.vue create mode 100644 app/assets/javascripts/vue_shared/components/markdown/constants.js create mode 100644 app/assets/javascripts/vue_shared/components/projects_list/constants.js create mode 100644 app/assets/javascripts/vue_shared/components/source_viewer/languages/svelte.js delete mode 100644 app/assets/javascripts/work_items/components/item_state.vue create mode 100644 app/assets/javascripts/work_items/components/shared/work_item_link_child_contents.vue create mode 100644 app/assets/javascripts/work_items/components/shared/work_item_link_child_metadata.vue create mode 100644 app/assets/javascripts/work_items/components/shared/work_item_links_menu.vue delete mode 100644 app/assets/javascripts/work_items/components/work_item_links/work_item_link_child_metadata.vue delete mode 100644 app/assets/javascripts/work_items/components/work_item_links/work_item_links_menu.vue delete mode 100644 app/assets/javascripts/work_items/components/work_item_state.vue create mode 100644 app/assets/javascripts/work_items/components/work_item_state_badge.vue create mode 100644 app/assets/javascripts/work_items/components/work_item_state_toggle_button.vue create mode 100644 app/assets/javascripts/work_items/list/components/work_items_list_app.vue create mode 100644 app/assets/javascripts/work_items/list/index.js create mode 100644 app/assets/javascripts/work_items/list/queries/get_work_items.query.graphql create mode 100644 app/assets/stylesheets/page_bundles/merge_request.scss delete mode 100644 app/assets/stylesheets/pages/merge_requests.scss (limited to 'app/assets') diff --git a/app/assets/javascripts/access_tokens/components/access_token_table_app.vue b/app/assets/javascripts/access_tokens/components/access_token_table_app.vue index d15c8e6e703..85b3c994e02 100644 --- a/app/assets/javascripts/access_tokens/components/access_token_table_app.vue +++ b/app/assets/javascripts/access_tokens/components/access_token_table_app.vue @@ -32,7 +32,6 @@ export default { i18n: { emptyField: __('Never'), expired: __('Expired'), - header: __('Active %{accessTokenTypePlural} (%{totalAccessTokens})'), modalMessage: __( 'Are you sure you want to revoke this %{accessTokenType}? This action cannot be undone.', ), @@ -45,7 +44,6 @@ export default { 'initialActiveAccessTokens', 'noActiveTokensMessage', 'showRole', - 'information', ], data() { return { @@ -74,12 +72,6 @@ export default { return FIELDS.filter(({ key }) => !ignoredFields.includes(key)); }, - header() { - return sprintf(this.$options.i18n.header, { - accessTokenTypePlural: this.accessTokenTypePlural, - totalAccessTokens: this.activeAccessTokens.length, - }); - }, modalMessage() { return sprintf(this.$options.i18n.modalMessage, { accessTokenType: this.accessTokenType, @@ -114,65 +106,66 @@ export default {