From 85dc423f7090da0a52c73eb66faf22ddb20efff9 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Sat, 19 Sep 2020 01:45:44 +0000 Subject: Add latest changes from gitlab-org/gitlab@13-4-stable-ee --- .../setup_metrics_and_profiling.js | 7 +- .../cohorts/components/usage_ping_disabled.vue | 48 ++ .../components/usage_ping_disabled.vue | 53 ++ .../admin/statistics_panel/store/getters.js | 1 - app/assets/javascripts/ajax_loading_spinner.js | 34 - app/assets/javascripts/alert_handler.js | 13 + .../alert_management/components/alert_details.vue | 42 +- .../components/alert_management_table.vue | 61 +- .../alert_management/components/alert_status.vue | 6 +- .../components/sidebar/sidebar_assignees.vue | 53 +- .../components/sidebar/sidebar_todo.vue | 18 +- .../components/system_notes/system_note.vue | 3 +- .../javascripts/alert_management/constants.js | 2 +- app/assets/javascripts/alert_management/details.js | 9 +- .../graphql/fragments/list_item.fragment.graphql | 3 + .../mutations/alert_set_assignees.mutation.graphql | 3 + .../alert_todo_mark_done.mutation.graphql | 8 - app/assets/javascripts/api.js | 8 +- app/assets/javascripts/authentication/mount_2fa.js | 19 +- .../javascripts/authentication/u2f/authenticate.js | 3 +- .../javascripts/authentication/u2f/register.js | 26 +- .../authentication/webauthn/authenticate.js | 69 ++ .../javascripts/authentication/webauthn/error.js | 28 + .../javascripts/authentication/webauthn/flow.js | 24 + .../javascripts/authentication/webauthn/index.js | 13 + .../authentication/webauthn/register.js | 78 ++ .../javascripts/authentication/webauthn/util.js | 120 +++ app/assets/javascripts/badges/components/badge.vue | 9 +- .../javascripts/badges/components/badge_form.vue | 30 +- .../badges/components/badge_list_row.vue | 9 +- .../batch_comments/components/draft_note.vue | 1 + .../batch_comments/components/preview_dropdown.vue | 33 +- .../batch_comments/components/preview_item.vue | 9 +- .../batch_comments/components/review_bar.vue | 1 + app/assets/javascripts/batch_comments/index.js | 1 - app/assets/javascripts/behaviors/autosize.js | 11 +- app/assets/javascripts/behaviors/index.js | 22 +- .../behaviors/markdown/gfm_auto_complete.js | 5 +- .../javascripts/behaviors/markdown/render_gfm.js | 21 +- .../javascripts/behaviors/markdown/render_math.js | 3 +- app/assets/javascripts/behaviors/shortcuts.js | 6 +- .../javascripts/behaviors/shortcuts/shortcuts.js | 99 ++- .../behaviors/shortcuts/shortcuts_find_file.js | 17 +- .../blob/components/blob_edit_content.vue | 2 +- .../blob/components/blob_embeddable.vue | 41 - .../javascripts/blob/file_template_mediator.js | 8 +- .../javascripts/blob/file_template_selector.js | 8 +- .../blob/pipeline_tour_success_modal.vue | 45 +- .../suggest_gitlab_ci_yml/components/popover.vue | 6 +- .../blob/suggest_gitlab_ci_yml/index.js | 1 + .../components/web_ide_alert.vue | 50 ++ .../javascripts/blob/suggest_web_ide_ci/index.js | 20 + app/assets/javascripts/blob/template_selector.js | 4 +- .../blob/template_selectors/ci_yaml_selector.js | 3 +- .../blob/template_selectors/dockerfile_selector.js | 3 +- .../blob/template_selectors/gitignore_selector.js | 3 +- .../blob/template_selectors/license_selector.js | 3 +- .../metrics_dashboard_selector.js | 3 +- .../blob/template_selectors/type_selector.js | 3 +- app/assets/javascripts/blob/utils.js | 8 +- app/assets/javascripts/blob_edit/blob_bundle.js | 11 +- app/assets/javascripts/blob_edit/edit_blob.js | 15 +- app/assets/javascripts/boards/boards_util.js | 64 +- .../boards/components/board_blank_state.vue | 18 +- .../javascripts/boards/components/board_card.vue | 112 +-- .../boards/components/board_card_layout.vue | 93 +++ .../javascripts/boards/components/board_column.vue | 63 +- .../boards/components/board_content.vue | 70 +- .../javascripts/boards/components/board_form.vue | 6 +- .../javascripts/boards/components/board_list.vue | 27 +- .../boards/components/board_list_header.vue | 60 +- .../boards/components/board_new_issue.vue | 47 +- .../boards/components/board_settings_sidebar.vue | 30 +- .../javascripts/boards/components/board_sidebar.js | 4 +- .../boards/components/boards_selector.vue | 10 +- .../boards/components/issuable_title.vue | 21 + .../boards/components/issue_card_inner.vue | 24 +- .../boards/components/issue_due_date.vue | 7 +- .../boards/components/issue_time_estimate.vue | 7 +- .../boards/components/modal/empty_state.vue | 24 +- .../javascripts/boards/components/modal/footer.vue | 10 +- .../javascripts/boards/components/modal/header.vue | 26 +- .../javascripts/boards/components/modal/index.vue | 25 +- .../javascripts/boards/components/modal/list.vue | 16 +- .../boards/components/modal/lists_dropdown.vue | 7 +- .../boards/components/new_list_dropdown.js | 3 +- .../boards/components/project_select.vue | 22 +- .../components/sidebar/board_editable_item.vue | 79 ++ app/assets/javascripts/boards/constants.js | 3 + .../javascripts/boards/filtered_search_boards.js | 5 + app/assets/javascripts/boards/index.js | 82 +- app/assets/javascripts/boards/models/issue.js | 2 +- app/assets/javascripts/boards/models/list.js | 2 +- .../boards/mount_multiple_boards_switcher.js | 2 +- .../queries/board_list_create.mutation.graphql | 10 + .../queries/board_list_shared.fragment.graphql | 2 +- .../queries/board_list_update.mutation.graphql | 10 + .../queries/group_lists_issues.query.graphql | 18 - .../boards/queries/issue.fragment.graphql | 6 +- .../queries/issue_move_list.mutation.graphql | 28 + .../boards/queries/lists_issues.query.graphql | 39 + .../queries/project_lists_issues.query.graphql | 18 - app/assets/javascripts/boards/stores/actions.js | 270 +++++- .../javascripts/boards/stores/boards_store.js | 34 +- app/assets/javascripts/boards/stores/getters.js | 22 + .../javascripts/boards/stores/mutation_types.js | 21 +- app/assets/javascripts/boards/stores/mutations.js | 135 ++- app/assets/javascripts/boards/stores/state.js | 10 +- .../javascripts/branches/ajax_loading_spinner.js | 31 + .../javascripts/ci_lint/components/ci_lint.vue | 14 + .../ci_lint/components/ci_lint_results.vue | 9 + app/assets/javascripts/ci_lint/index.js | 18 + .../ci_variable_list/ci_variable_list.js | 2 +- .../components/ci_environments_dropdown.vue | 2 +- .../components/ci_variable_table.vue | 1 + .../javascripts/ci_variable_list/constants.js | 1 - .../javascripts/ci_variable_list/store/getters.js | 3 - app/assets/javascripts/clusters/clusters_bundle.js | 2 +- .../clusters/components/application_row.vue | 45 +- .../clusters/components/knative_domain_editor.vue | 17 +- .../clusters/components/new_cluster.vue | 34 + .../components/remove_cluster_confirmation.vue | 33 +- .../components/uninstall_application_button.vue | 8 +- .../uninstall_application_confirmation_modal.vue | 1 + .../update_application_confirmation_modal.vue | 1 + app/assets/javascripts/clusters/new_cluster.js | 19 + .../clusters/stores/new_cluster/index.js | 12 + .../clusters/stores/new_cluster/state.js | 3 + .../clusters_list/components/clusters.vue | 2 +- .../commit/pipelines/pipelines_table.vue | 2 +- app/assets/javascripts/commons/jquery.js | 3 - app/assets/javascripts/compare_autocomplete.js | 3 +- .../components/dropdown.vue | 11 +- .../components/project_form_group.vue | 5 +- .../javascripts/contributors/stores/actions.js | 1 - .../components/eks_cluster_configuration_form.vue | 1 + .../components/service_credentials_form.vue | 16 +- .../create_cluster/eks_cluster/constants.js | 8 +- .../create_cluster/eks_cluster/store/actions.js | 1 + .../create_cluster/eks_cluster/store/getters.js | 1 - .../create_cluster/eks_cluster/store/state.js | 2 +- app/assets/javascripts/create_item_dropdown.js | 8 +- .../components/custom_metrics_form_fields.vue | 14 +- .../cycle_analytics/components/banner.vue | 7 +- .../components/stage_review_component.vue | 4 +- .../components/stage_staging_component.vue | 7 +- .../components/stage_test_component.vue | 7 +- .../cycle_analytics/cycle_analytics_store.js | 3 - .../javascripts/deploy_keys/components/app.vue | 9 +- .../javascripts/deploy_keys/components/key.vue | 16 +- .../javascripts/deploy_keys/service/index.js | 10 +- .../deprecated_jquery_dropdown/gl_dropdown.js | 689 ++++++++++++++++ .../gl_dropdown_filter.js | 135 +++ .../gl_dropdown_input.js | 44 + .../gl_dropdown_remote.js | 42 + .../deprecated_jquery_dropdown/index.js | 11 + .../deprecated_jquery_dropdown/render.js | 166 ++++ .../design_management/components/delete_button.vue | 3 +- .../components/design_notes/design_discussion.vue | 92 +-- .../components/design_notes/design_note.vue | 45 +- .../components/design_notes/design_reply_form.vue | 21 +- .../components/design_overlay.vue | 49 +- .../components/design_sidebar.vue | 59 +- .../components/design_todo_button.vue | 168 ++++ .../design_management/components/list/item.vue | 29 +- .../components/upload/design_version_dropdown.vue | 14 +- .../javascripts/design_management/constants.js | 1 + .../javascripts/design_management/graphql.js | 59 +- .../graphql/fragments/design_list.fragment.graphql | 5 + .../graphql/fragments/design_note.fragment.graphql | 5 + .../mutations/create_design_todo.mutation.graphql | 17 + .../graphql/queries/get_design.query.graphql | 1 + app/assets/javascripts/design_management/index.js | 2 +- .../design_management/pages/design/index.vue | 29 +- .../javascripts/design_management/pages/index.vue | 11 +- .../design_management/utils/cache_update.js | 283 ++++--- .../utils/design_management_utils.js | 34 + .../design_management/utils/error_messages.js | 8 + .../design_management/utils/tracking.js | 1 - .../design_management_legacy/components/app.vue | 3 - .../components/delete_button.vue | 64 -- .../components/design_destroyer.vue | 66 -- .../components/design_note_pin.vue | 61 -- .../components/design_notes/design_discussion.vue | 297 ------- .../components/design_notes/design_note.vue | 156 ---- .../components/design_notes/design_reply_form.vue | 141 ---- .../design_notes/toggle_replies_widget.vue | 70 -- .../components/design_overlay.vue | 287 ------- .../components/design_presentation.vue | 322 -------- .../components/design_scaler.vue | 65 -- .../components/design_sidebar.vue | 178 ---- .../design_management_legacy/components/image.vue | 110 --- .../components/list/item.vue | 174 ---- .../components/toolbar/index.vue | 126 --- .../components/toolbar/pagination.vue | 83 -- .../components/toolbar/pagination_button.vue | 48 -- .../components/upload/button.vue | 58 -- .../components/upload/design_dropzone.vue | 134 --- .../components/upload/design_version_dropdown.vue | 76 -- .../design_management_legacy/constants.js | 16 - .../design_management_legacy/graphql.js | 45 - .../graphql/fragments/design.fragment.graphql | 24 - .../graphql/fragments/design_list.fragment.graphql | 8 - .../graphql/fragments/design_note.fragment.graphql | 29 - .../graphql/fragments/diff_refs.fragment.graphql | 5 - .../discussion_resolved_status.fragment.graphql | 9 - .../fragments/note_permissions.fragment.graphql | 3 - .../graphql/fragments/version.fragment.graphql | 4 - .../create_image_diff_note.mutation.graphql | 21 - .../graphql/mutations/create_note.mutation.graphql | 10 - .../mutations/destroy_design.mutation.graphql | 10 - .../toggle_resolve_discussion.mutation.graphql | 17 - .../update_active_discussion.mutation.graphql | 3 - .../update_image_diff_note.mutation.graphql | 10 - .../graphql/mutations/update_note.mutation.graphql | 10 - .../mutations/upload_design.mutation.graphql | 21 - .../queries/active_discussion.query.graphql | 6 - .../graphql/queries/app_data.query.graphql | 4 - .../queries/design_permissions.query.graphql | 10 - .../graphql/queries/get_design.query.graphql | 31 - .../graphql/queries/get_design_list.query.graphql | 26 - .../graphql/typedefs.graphql | 12 - .../javascripts/design_management_legacy/index.js | 61 -- .../design_management_legacy/mixins/all_designs.js | 49 -- .../mixins/all_versions.js | 62 -- .../pages/design/index.vue | 378 --------- .../design_management_legacy/pages/index.vue | 323 -------- .../design_management_legacy/router/constants.js | 3 - .../design_management_legacy/router/index.js | 35 - .../design_management_legacy/router/routes.js | 44 - .../design_management_legacy/utils/cache_update.js | 276 ------- .../utils/design_management_utils.js | 128 --- .../utils/error_messages.js | 95 --- .../design_management_legacy/utils/tracking.js | 27 - .../diff_notes/components/jump_to_discussion.js | 1 + app/assets/javascripts/diffs/components/app.vue | 231 +++--- .../diffs/components/collapsed_files_warning.vue | 71 ++ .../javascripts/diffs/components/commit_item.vue | 14 +- .../diffs/components/compare_dropdown_layout.vue | 6 +- .../diffs/components/compare_versions.vue | 35 +- .../javascripts/diffs/components/diff_content.vue | 17 +- .../diffs/components/diff_discussions.vue | 6 +- .../diffs/components/diff_expansion_cell.vue | 52 +- .../javascripts/diffs/components/diff_file.vue | 53 +- .../diffs/components/diff_file_header.vue | 59 +- .../javascripts/diffs/components/diff_file_row.vue | 24 +- .../diffs/components/diff_gutter_avatars.vue | 7 +- .../javascripts/diffs/components/diff_stats.vue | 6 +- .../javascripts/diffs/components/edit_button.vue | 7 +- .../diffs/components/image_diff_overlay.vue | 8 +- .../diffs/components/inline_diff_table_row.vue | 156 +++- .../diffs/components/inline_diff_view.vue | 3 +- .../diffs/components/merge_conflict_warning.vue | 72 ++ .../javascripts/diffs/components/no_changes.vue | 28 +- .../diffs/components/parallel_diff_table_row.vue | 273 ++++++- .../diffs/components/settings_dropdown.vue | 138 ++-- .../javascripts/diffs/components/tree_list.vue | 12 +- app/assets/javascripts/diffs/constants.js | 6 +- app/assets/javascripts/diffs/diff_file.js | 1 - app/assets/javascripts/diffs/i18n.js | 14 + app/assets/javascripts/diffs/store/actions.js | 75 +- app/assets/javascripts/diffs/store/getters.js | 9 + .../diffs/store/getters_versions_dropdowns.js | 31 +- .../javascripts/diffs/store/modules/diff_state.js | 2 +- .../javascripts/diffs/store/mutation_types.js | 2 +- app/assets/javascripts/diffs/store/mutations.js | 18 +- app/assets/javascripts/diffs/store/utils.js | 80 +- app/assets/javascripts/diffs/utils/uuids.js | 3 - app/assets/javascripts/due_date_select.js | 3 +- app/assets/javascripts/editor/constants.js | 7 + .../javascripts/editor/editor_file_template_ext.js | 7 + app/assets/javascripts/editor/editor_lite.js | 113 ++- .../javascripts/editor/editor_markdown_ext.js | 14 +- .../components/confirm_rollback_modal.vue | 1 + .../components/environment_actions.vue | 33 +- .../environments/components/environment_delete.vue | 7 +- .../environments/components/environment_item.vue | 11 +- .../components/environment_monitoring.vue | 16 +- .../environments/components/environment_pin.vue | 18 +- .../components/environment_rollback.vue | 24 +- .../components/environment_terminal_button.vue | 7 +- .../environments/components/environments_table.vue | 9 + .../components/stop_environment_modal.vue | 2 +- .../folder/environments_folder_bundle.js | 22 +- .../folder/environments_folder_view.vue | 3 +- app/assets/javascripts/environments/index.js | 21 +- .../environments/mixins/canary_callout_mixin.js | 2 +- .../javascripts/environments/stores/helpers.js | 1 - .../error_tracking/components/error_details.vue | 6 +- .../error_tracking/components/stacktrace_entry.vue | 8 +- .../error_tracking/store/details/actions.js | 1 - .../error_tracking/store/details/getters.js | 1 - .../components/error_tracking_form.vue | 7 +- .../issuable_filtered_search_token_keys.js | 5 + app/assets/javascripts/flash.js | 2 +- .../components/frequent_items_list_item.vue | 2 +- .../components/frequent_items_search_input.vue | 6 +- app/assets/javascripts/frequent_items/index.js | 12 +- .../javascripts/frequent_items/store/getters.js | 1 - app/assets/javascripts/gfm_auto_complete.js | 22 +- app/assets/javascripts/gl_dropdown.js | 901 --------------------- app/assets/javascripts/gl_dropdown/render.js | 158 ---- app/assets/javascripts/gpg_badges.js | 3 +- .../components/grafana_integration.vue | 7 +- .../fragments/author.fragment.graphql | 1 + .../graphql_shared/fragments/epic.fragment.graphql | 10 + .../fragments/label.fragment.graphql | 7 + .../mutations/todo_mark_done.mutation.graphql | 8 + app/assets/javascripts/groups/components/app.vue | 1 + .../javascripts/groups/components/group_item.vue | 1 + .../groups/components/invite_members_banner.vue | 76 ++ .../javascripts/groups/components/item_actions.vue | 8 +- .../javascripts/groups/components/item_caret.vue | 6 +- .../groups/components/item_stats_value.vue | 6 +- .../groups/components/item_type_icon.vue | 6 +- .../groups/init_invite_members_banner.js | 23 + .../javascripts/groups/members/components/app.vue | 11 + app/assets/javascripts/groups/members/index.js | 30 + app/assets/javascripts/groups/transfer_dropdown.js | 3 +- app/assets/javascripts/groups_select.js | 11 +- app/assets/javascripts/header.js | 79 +- .../javascripts/helpers/startup_css_helper.js | 46 ++ .../javascripts/ide/components/activity_bar.vue | 14 +- .../javascripts/ide/components/branches/item.vue | 6 +- .../ide/components/branches/search_list.vue | 7 +- .../ide/components/commit_sidebar/actions.vue | 1 + .../ide/components/commit_sidebar/form.vue | 46 +- .../ide/components/commit_sidebar/list.vue | 9 +- .../components/commit_sidebar/list_collapsed.vue | 10 +- .../ide/components/commit_sidebar/list_item.vue | 6 +- .../components/commit_sidebar/message_field.vue | 6 +- .../components/commit_sidebar/success_message.vue | 1 + .../javascripts/ide/components/error_message.vue | 1 + .../javascripts/ide/components/file_row_extra.vue | 6 +- app/assets/javascripts/ide/components/ide.vue | 3 +- .../javascripts/ide/components/ide_file_row.vue | 12 +- .../javascripts/ide/components/ide_review.vue | 4 +- .../javascripts/ide/components/ide_side_bar.vue | 2 +- .../javascripts/ide/components/ide_status_bar.vue | 7 +- .../javascripts/ide/components/ide_status_list.vue | 7 +- app/assets/javascripts/ide/components/ide_tree.vue | 4 +- .../javascripts/ide/components/ide_tree_list.vue | 2 +- .../javascripts/ide/components/jobs/detail.vue | 15 +- .../ide/components/jobs/detail/description.vue | 14 +- .../ide/components/jobs/detail/scroll_button.vue | 6 +- .../javascripts/ide/components/jobs/stage.vue | 7 +- .../ide/components/merge_requests/item.vue | 6 +- .../ide/components/merge_requests/list.vue | 9 +- .../javascripts/ide/components/mr_file_icon.vue | 6 +- .../ide/components/nav_dropdown_button.vue | 8 +- .../ide/components/new_dropdown/button.vue | 6 +- .../ide/components/new_dropdown/index.vue | 6 +- .../ide/components/new_dropdown/modal.vue | 12 +- .../ide/components/new_dropdown/upload.vue | 3 +- .../ide/components/panes/collapsible_sidebar.vue | 2 - .../javascripts/ide/components/pipelines/list.vue | 12 +- .../ide/components/preview/navigator.vue | 11 +- .../javascripts/ide/components/repo_editor.vue | 16 +- .../ide/components/repo_file_status_icon.vue | 6 +- app/assets/javascripts/ide/components/repo_tab.vue | 13 +- .../javascripts/ide/components/repo_tabs.vue | 7 +- .../ide/components/shared/tokened_input.vue | 6 +- .../ide/components/terminal/empty_state.vue | 1 + .../terminal_sync/terminal_sync_status.vue | 7 +- app/assets/javascripts/ide/ide_router.js | 1 - app/assets/javascripts/ide/lib/diff/diff.js | 2 - app/assets/javascripts/ide/lib/editor.js | 7 +- .../javascripts/ide/lib/editorconfig/parser.js | 1 - app/assets/javascripts/ide/lib/errors.js | 39 + app/assets/javascripts/ide/lib/files.js | 19 +- app/assets/javascripts/ide/lib/schemas/index.js | 4 - .../javascripts/ide/lib/schemas/json/index.js | 8 - .../javascripts/ide/lib/schemas/yaml/gitlab_ci.js | 4 - .../javascripts/ide/lib/schemas/yaml/index.js | 12 - app/assets/javascripts/ide/services/gql.js | 1 - app/assets/javascripts/ide/services/index.js | 6 +- app/assets/javascripts/ide/stores/actions.js | 22 +- app/assets/javascripts/ide/stores/actions/file.js | 14 +- app/assets/javascripts/ide/stores/actions/tree.js | 6 +- app/assets/javascripts/ide/stores/getters.js | 19 + .../ide/stores/modules/commit/actions.js | 28 +- .../ide/stores/modules/commit/mutation_types.js | 3 + .../ide/stores/modules/commit/mutations.js | 6 + .../javascripts/ide/stores/modules/commit/state.js | 1 + .../javascripts/ide/stores/modules/pane/getters.js | 1 - .../ide/stores/modules/pipelines/actions.js | 22 +- .../ide/stores/modules/pipelines/constants.js | 1 - .../ide/stores/modules/pipelines/mutation_types.js | 6 +- .../ide/stores/modules/pipelines/mutations.js | 6 +- .../ide/stores/modules/pipelines/utils.js | 1 - .../ide/stores/modules/router/actions.js | 1 - .../ide/stores/modules/router/mutation_types.js | 1 - .../ide/stores/modules/terminal/getters.js | 1 - app/assets/javascripts/ide/stores/mutations.js | 19 +- app/assets/javascripts/ide/stores/utils.js | 17 - .../javascripts/ide/sync_router_and_store.js | 1 - app/assets/javascripts/ide/utils.js | 31 +- .../components/import_projects_table.vue | 185 ++--- .../components/imported_project_table_row.vue | 59 -- .../components/incompatible_repo_table_row.vue | 32 - .../components/page_query_param_sync.vue | 39 - .../components/provider_repo_table_row.vue | 48 +- .../javascripts/import_projects/store/actions.js | 39 +- .../javascripts/import_projects/store/getters.js | 13 +- .../javascripts/import_projects/store/mutations.js | 116 ++- .../javascripts/import_projects/store/state.js | 2 +- app/assets/javascripts/import_projects/utils.js | 12 +- .../incidents/components/incidents_list.vue | 67 +- app/assets/javascripts/incidents/constants.js | 3 +- .../fragments/incident_fields.fragment.graphql | 3 + .../graphql/queries/get_incidents.query.graphql | 4 +- .../incidents_settings/components/alerts_form.vue | 23 +- .../javascripts/incidents_settings/constants.js | 3 + app/assets/javascripts/incidents_settings/index.js | 2 + app/assets/javascripts/init_changes_dropdown.js | 3 +- app/assets/javascripts/init_issuable_sidebar.js | 4 +- .../edit/components/active_checkbox.vue | 48 ++ .../integrations/edit/components/active_toggle.vue | 50 -- .../integrations/edit/components/dynamic_field.vue | 1 + .../edit/components/integration_form.vue | 59 +- .../edit/components/jira_issues_fields.vue | 7 +- .../edit/components/override_dropdown.vue | 39 +- .../javascripts/integrations/edit/constants.js | 17 + app/assets/javascripts/integrations/edit/index.js | 26 +- .../javascripts/integrations/edit/store/actions.js | 3 +- .../javascripts/integrations/edit/store/getters.js | 6 +- .../javascripts/integrations/edit/store/index.js | 1 - .../integrations/edit/store/mutation_types.js | 3 +- .../integrations/edit/store/mutations.js | 6 + .../javascripts/integrations/edit/store/state.js | 8 +- .../integrations/integration_settings_form.js | 116 +-- .../javascripts/issuable_bulk_update_sidebar.js | 2 +- .../components/issuable_create_root.vue | 44 + .../issuable_create/components/issuable_form.vue | 127 +++ app/assets/javascripts/issuable_form.js | 1 + .../issuable_list/components/issuable_item.vue | 140 ++++ .../components/issuable_list_root.vue | 153 ++++ .../issuable_list/components/issuable_tabs.vue | 53 ++ .../issuable_suggestions/components/app.vue | 7 +- .../issuable_suggestions/components/item.vue | 11 +- .../issuables_list/components/issuable.vue | 424 ---------- .../components/issuable_list_root_app.vue | 112 --- .../components/issuables_list_app.vue | 424 ---------- app/assets/javascripts/issuables_list/constants.js | 56 -- app/assets/javascripts/issuables_list/eventhub.js | 3 - app/assets/javascripts/issuables_list/index.js | 67 -- .../queries/get_issues_list_details.query.graphql | 21 - .../issuables_list/service_desk_helper.js | 55 -- app/assets/javascripts/issue.js | 21 +- .../javascripts/issue_show/components/app.vue | 25 +- .../issue_show/components/description.vue | 19 +- .../issue_show/components/edit_actions.vue | 35 +- .../components/fields/description_template.vue | 21 +- .../incidents/graphql/queries/get_alert.graphql | 20 + .../components/incidents/highlight_bar.vue | 42 + .../components/incidents/incident_tabs.vue | 71 ++ .../issue_show/components/locked_warning.vue | 1 + .../issue_show/components/pinned_links.vue | 19 +- .../javascripts/issue_show/components/title.vue | 30 +- app/assets/javascripts/issue_show/incident.js | 36 + app/assets/javascripts/issue_show/index.js | 17 - app/assets/javascripts/issue_show/issue.js | 16 + app/assets/javascripts/issue_show/stores/index.js | 5 +- .../javascripts/issue_show/utils/parse_data.js | 14 +- app/assets/javascripts/issue_status_select.js | 3 +- .../issues_list/components/issuable.vue | 432 ++++++++++ .../issues_list/components/issuables_list_app.vue | 424 ++++++++++ .../components/jira_issues_list_root.vue | 112 +++ app/assets/javascripts/issues_list/constants.js | 56 ++ app/assets/javascripts/issues_list/eventhub.js | 3 + app/assets/javascripts/issues_list/index.js | 67 ++ .../queries/get_issues_list_details.query.graphql | 21 + .../javascripts/issues_list/service_desk_helper.js | 111 +++ app/assets/javascripts/jira_connect.js | 56 ++ .../jira_import/components/jira_import_form.vue | 26 +- .../jira_import/utils/jira_import_utils.js | 2 +- .../jobs/components/artifacts_block.vue | 16 +- app/assets/javascripts/jobs/components/job_app.vue | 14 +- .../jobs/components/job_container_item.vue | 9 +- .../jobs/components/job_log_controllers.vue | 34 +- .../javascripts/jobs/components/log/line.vue | 2 +- .../jobs/components/log/line_header.vue | 8 +- .../jobs/components/manual_variables_form.vue | 26 +- app/assets/javascripts/jobs/components/sidebar.vue | 22 +- .../jobs/components/sidebar_detail_row.vue | 5 +- app/assets/javascripts/jobs/index.js | 2 + app/assets/javascripts/labels_select.js | 9 +- app/assets/javascripts/layout_nav.js | 13 +- app/assets/javascripts/lib/graphql.js | 33 +- .../javascripts/lib/utils/axios_startup_calls.js | 73 +- .../javascripts/lib/utils/datetime_utility.js | 38 +- app/assets/javascripts/lib/utils/forms.js | 37 + app/assets/javascripts/lib/utils/image_utility.js | 2 - app/assets/javascripts/lib/utils/jquery_at_who.js | 3 + app/assets/javascripts/lib/utils/poll.js | 6 +- app/assets/javascripts/lib/utils/set.js | 1 - app/assets/javascripts/lib/utils/simple_poll.js | 4 +- app/assets/javascripts/lib/utils/text_markdown.js | 77 +- app/assets/javascripts/lib/utils/text_utility.js | 75 ++ app/assets/javascripts/lib/utils/type_utility.js | 1 - app/assets/javascripts/lib/utils/url_utility.js | 27 +- app/assets/javascripts/lib/utils/webpack.js | 1 - app/assets/javascripts/line_highlighter.js | 1 + app/assets/javascripts/logs/stores/getters.js | 14 +- app/assets/javascripts/main.js | 31 +- app/assets/javascripts/members.js | 3 +- app/assets/javascripts/merge_request.js | 8 + app/assets/javascripts/merge_request_tabs.js | 1 + app/assets/javascripts/milestone_select.js | 162 ++-- .../milestones/project_milestone_combobox.vue | 76 +- .../monitoring/components/alert_widget.vue | 2 +- .../monitoring/components/alert_widget_form.vue | 10 +- .../monitoring/components/charts/empty_chart.vue | 1 + .../monitoring/components/charts/time_series.vue | 7 +- .../monitoring/components/dashboard.vue | 7 +- .../components/dashboard_actions_menu.vue | 50 +- .../monitoring/components/dashboard_header.vue | 30 +- .../monitoring/components/dashboard_panel.vue | 6 +- .../monitoring/components/dashboards_dropdown.vue | 48 +- .../monitoring/components/embeds/embed_group.vue | 11 +- .../monitoring/components/group_empty_state.vue | 1 + .../monitoring/components/refresh_button.vue | 26 +- .../monitoring/components/variables_section.vue | 7 +- app/assets/javascripts/monitoring/csv_export.js | 1 - .../monitoring/stores/embed_group/actions.js | 1 - .../monitoring/stores/embed_group/getters.js | 1 - .../stores/embed_group/mutation_types.js | 1 - .../mr_popover/components/mr_popover.vue | 2 +- app/assets/javascripts/namespace_select.js | 4 +- app/assets/javascripts/notebook/cells/markdown.vue | 1 + .../javascripts/notebook/cells/output/html.vue | 1 + app/assets/javascripts/notes.js | 5 +- .../javascripts/notes/components/comment_form.vue | 51 +- .../notes/components/diff_discussion_header.vue | 1 + .../notes/components/diff_with_note.vue | 3 +- .../notes/components/discussion_counter.vue | 13 +- .../notes/components/discussion_filter.vue | 6 +- .../notes/components/discussion_filter_note.vue | 8 +- .../components/discussion_jump_to_next_button.vue | 7 +- .../notes/components/discussion_locked_widget.vue | 7 +- .../notes/components/discussion_resolve_button.vue | 9 +- .../javascripts/notes/components/note_actions.vue | 80 +- .../notes/components/note_actions/reply_button.vue | 18 +- .../javascripts/notes/components/note_body.vue | 1 + .../javascripts/notes/components/note_form.vue | 3 +- .../javascripts/notes/components/note_header.vue | 13 +- .../notes/components/note_signed_out_widget.vue | 6 +- .../notes/components/noteable_discussion.vue | 5 +- .../javascripts/notes/components/noteable_note.vue | 14 +- .../notes/components/toggle_replies_widget.vue | 8 +- app/assets/javascripts/notes/constants.js | 2 + app/assets/javascripts/notes/stores/actions.js | 22 +- .../javascripts/notes/stores/modules/index.js | 1 + .../javascripts/notes/stores/mutation_types.js | 1 + app/assets/javascripts/notes/stores/mutations.js | 3 + .../details/components/additional_metadata.vue | 2 +- .../packages/details/components/app.vue | 63 +- .../details/components/code_instruction.vue | 63 -- .../details/components/composer_installation.vue | 18 +- .../details/components/conan_installation.vue | 16 +- .../packages/details/components/dependency_row.vue | 2 +- .../details/components/history_element.vue | 35 - .../details/components/maven_installation.vue | 17 +- .../details/components/npm_installation.vue | 17 +- .../details/components/nuget_installation.vue | 15 +- .../details/components/package_history.vue | 24 +- .../packages/details/components/package_title.vue | 112 +-- .../details/components/pypi_installation.vue | 12 +- .../javascripts/packages/details/store/actions.js | 13 +- .../javascripts/packages/details/store/getters.js | 4 +- .../javascripts/packages/details/store/index.js | 6 +- .../packages/list/components/packages_list.vue | 6 +- .../packages/list/components/packages_list_app.vue | 20 +- app/assets/javascripts/packages/list/constants.js | 1 - .../javascripts/packages/list/stores/actions.js | 2 +- .../shared/components/package_list_row.vue | 54 +- .../packages/shared/components/package_tags.vue | 6 +- .../shared/components/packages_list_loader.vue | 58 +- .../packages/shared/components/publish_method.vue | 22 +- .../javascripts/packages/shared/constants.js | 5 + .../metrics_and_profiling/index.js | 2 +- .../application_settings/payload_previewer.js | 4 +- .../javascripts/pages/admin/clusters/new/index.js | 5 + .../javascripts/pages/admin/cohorts/index.js | 22 + .../pages/admin/dev_ops_report/index.js | 27 + .../index/components/delete_project_modal.vue | 69 +- .../pages/admin/projects/index/index.js | 21 +- .../pages/admin/services/index/index.js | 6 + .../admin/users/components/delete_user_modal.vue | 46 +- .../user_operation_confirmation_modal.vue | 1 + app/assets/javascripts/pages/constants.js | 2 - .../index/components/customize_homepage_banner.vue | 36 + .../pages/dashboard/todos/index/todos.js | 4 +- .../javascripts/pages/groups/clusters/new/index.js | 5 + .../pages/groups/group_members/index.js | 6 + .../javascripts/pages/groups/issues/index.js | 2 +- .../pages/groups/shared/group_details.js | 2 + .../instance_statistics/dev_ops_score/index.js | 3 - .../shared/components/delete_milestone_modal.vue | 6 +- .../javascripts/pages/projects/blob/show/index.js | 31 + .../pages/projects/branches/index/index.js | 2 +- .../pages/projects/ci/lints/ci_lint_editor.js | 47 +- .../pages/projects/ci/lints/new/index.js | 10 +- .../pages/projects/clusters/new/index.js | 5 + .../pages/projects/commit/show/index.js | 30 +- app/assets/javascripts/pages/projects/constants.js | 2 - .../pages/projects/environments/show/index.js | 2 +- .../forks/new/components/fork_groups_list_item.vue | 4 +- .../pages/projects/graphs/charts/index.js | 269 +++--- .../integrations/jira/issues/index/index.js | 2 +- .../pages/projects/issues/index/index.js | 2 +- .../pages/projects/issues/service_desk/index.js | 2 +- .../javascripts/pages/projects/issues/show.js | 22 +- .../pages/projects/issues/show/index.js | 2 + .../creations/new/target_project_dropdown.js | 5 +- .../merge_requests/init_merge_request_show.js | 2 + .../components/pipeline_schedules_callout.vue | 7 +- .../shared/components/target_branch_dropdown.js | 3 +- .../shared/components/timezone_dropdown.js | 4 +- app/assets/javascripts/pages/projects/project.js | 86 +- .../permissions/components/project_setting_row.vue | 7 +- app/assets/javascripts/pages/search/show/index.js | 6 +- app/assets/javascripts/pages/search/show/search.js | 6 +- .../shared/wikis/components/delete_wiki_modal.vue | 11 +- app/assets/javascripts/pdf/page/index.vue | 10 +- .../performance_bar/components/detailed_metric.vue | 6 +- .../components/performance_bar_app.vue | 1 + .../components/request_selector.vue | 1 + .../performance_bar/components/request_warning.vue | 1 + app/assets/javascripts/performance_bar/index.js | 30 +- .../performance_bar/performance_bar_log.js | 28 + .../services/performance_bar_service.js | 18 +- .../stores/performance_bar_store.js | 5 +- .../pipeline_new/components/pipeline_new_form.vue | 91 ++- app/assets/javascripts/pipeline_new/index.js | 2 + .../components/graph/action_component.vue | 7 +- .../pipelines/components/graph/graph_component.vue | 19 + .../components/graph/job_group_dropdown.vue | 4 +- .../pipelines/components/graph/job_item.vue | 18 +- .../components/graph/job_name_component.vue | 4 +- .../pipelines/components/graph/linked_pipeline.vue | 65 +- .../components/graph/linked_pipelines_column.vue | 4 + .../components/graph/stage_column_component.vue | 6 + .../gitlab_ci_yaml_visualization.vue | 76 ++ .../components/pipeline_graph/job_pill.vue | 24 + .../components/pipeline_graph/pipeline_graph.vue | 57 ++ .../components/pipeline_graph/stage_pill.vue | 35 + .../components/pipelines_list/nav_controls.vue | 22 +- .../pipelines_list/pipeline_stop_modal.vue | 1 + .../components/pipelines_list/pipelines.vue | 8 +- .../pipelines_list/pipelines_actions.vue | 32 +- .../pipelines_list/pipelines_artifacts.vue | 7 +- .../pipelines_list/pipelines_table_row.vue | 29 +- .../pipelines/components/pipelines_list/stage.vue | 7 +- .../components/pipelines_list/time_ago.vue | 13 +- .../components/test_reports/test_reports.vue | 7 +- .../components/test_reports/test_suite_table.vue | 99 +-- .../components/test_reports/test_summary.vue | 19 +- .../components/test_reports/test_summary_table.vue | 122 ++- .../pipelines/pipeline_details_bundle.js | 22 +- .../pipelines/stores/test_reports/getters.js | 4 +- .../pipelines/stores/test_reports/utils.js | 26 +- app/assets/javascripts/pipelines/utils.js | 44 +- .../account/components/delete_account_modal.vue | 95 ++- .../profile/account/components/update_username.vue | 1 + app/assets/javascripts/profile/account/index.js | 3 + app/assets/javascripts/project_select.js | 11 +- .../projects/commits/components/author_select.vue | 38 +- .../projects/components/project_delete_button.vue | 4 +- .../projects/components/shared/delete_button.vue | 2 +- .../components/app.vue | 1 + .../components/welcome.vue | 1 + app/assets/javascripts/projects/project_new.js | 9 +- .../projects/settings/access_dropdown.js | 3 +- .../components/service_desk_root.vue | 5 +- .../components/service_desk_setting.vue | 18 +- .../prometheus_alerts/components/reset_key.vue | 1 + .../protected_tag_access_dropdown.js | 3 +- .../protected_tags/protected_tag_create.js | 2 +- .../ref/components/ref_results_section.vue | 14 +- .../javascripts/ref/components/ref_selector.vue | 44 +- app/assets/javascripts/ref_select_dropdown.js | 4 +- .../registry/explorer/components/delete_button.vue | 1 - .../components/details_page/details_header.vue | 11 +- .../explorer/components/details_page/tags_list.vue | 1 - .../components/details_page/tags_list_row.vue | 4 +- .../registry/explorer/components/list_item.vue | 128 --- .../explorer/components/list_page/cli_commands.vue | 102 +-- .../explorer/components/list_page/image_list.vue | 1 - .../components/list_page/image_list_row.vue | 2 +- .../components/list_page/registry_header.vue | 66 +- .../explorer/components/registry_breadcrumb.vue | 6 +- .../javascripts/registry/explorer/stores/index.js | 1 - app/assets/javascripts/registry/explorer/utils.js | 1 - .../registry/settings/components/settings_form.vue | 13 +- .../registry/shared/components/details_row.vue | 42 - .../components/add_issuable_form.vue | 207 +++++ .../related_issues/components/issue_token.vue | 115 +++ .../components/related_issuable_input.vue | 231 ++++++ .../components/related_issues_block.vue | 215 +++++ .../components/related_issues_list.vue | 146 ++++ .../components/related_issues_root.vue | 247 ++++++ app/assets/javascripts/related_issues/constants.js | 106 +++ app/assets/javascripts/related_issues/index.js | 27 + .../services/related_issues_service.js | 34 + .../related_issues/stores/related_issues_store.js | 50 ++ .../components/related_merge_requests.vue | 7 +- .../releases/components/app_edit_new.vue | 3 +- .../javascripts/releases/components/app_index.vue | 39 +- .../javascripts/releases/components/app_show.vue | 2 +- .../releases/components/evidence_block.vue | 4 +- .../releases/components/release_block.vue | 1 + .../releases/components/release_block_assets.vue | 8 +- .../releases/components/release_block_footer.vue | 9 +- .../releases/components/release_block_header.vue | 9 +- .../releases/components/release_block_metadata.vue | 9 +- .../components/release_block_milestones.vue | 7 +- .../releases/components/releases_pagination.vue | 20 + .../components/releases_pagination_graphql.vue | 35 + .../components/releases_pagination_rest.vue | 24 + app/assets/javascripts/releases/mount_edit.js | 3 + app/assets/javascripts/releases/mount_index.js | 17 +- app/assets/javascripts/releases/mount_new.js | 3 + app/assets/javascripts/releases/mount_show.js | 3 + .../releases/queries/all_releases.query.graphql | 69 ++ app/assets/javascripts/releases/stores/index.js | 3 - .../releases/stores/modules/list/actions.js | 30 +- .../releases/stores/modules/list/index.js | 8 +- .../releases/stores/modules/list/state.js | 14 +- app/assets/javascripts/releases/util.js | 89 ++ .../reports/accessibility_report/store/index.js | 15 +- .../reports/codequality_report/store/index.js | 15 +- .../reports/components/issue_status_icon.vue | 6 +- app/assets/javascripts/reports/store/getters.js | 1 - app/assets/javascripts/reports/store/index.js | 15 +- .../repository/components/breadcrumbs.vue | 8 +- .../repository/components/last_commit.vue | 8 +- .../repository/components/preview/index.vue | 1 + .../repository/components/table/index.vue | 26 +- .../repository/components/table/row.vue | 3 +- .../repository/components/tree_content.vue | 19 +- .../repository/components/web_ide_link.vue | 47 -- app/assets/javascripts/repository/graphql.js | 1 + app/assets/javascripts/repository/index.js | 28 +- app/assets/javascripts/repository/log_tree.js | 13 +- app/assets/javascripts/repository/router.js | 3 +- app/assets/javascripts/repository/utils/commit.js | 1 - app/assets/javascripts/repository/utils/icon.js | 1 - app/assets/javascripts/repository/utils/readme.js | 1 - .../state_filter/components/state_filter.vue | 94 +++ .../javascripts/search/state_filter/constants.js | 39 + .../javascripts/search/state_filter/index.js | 34 + app/assets/javascripts/search_autocomplete.js | 12 +- .../self_monitor/components/self_monitor_form.vue | 1 + .../serverless/components/functions.vue | 1 + .../javascripts/set_status_modal/event_hub.js | 3 - .../set_status_modal/set_status_modal_trigger.vue | 27 - .../set_status_modal/set_status_modal_wrapper.vue | 20 +- app/assets/javascripts/shared/milestones/form.js | 1 + .../components/assignees/assignee_avatar_link.vue | 2 +- .../assignees/collapsed_assignee_list.vue | 5 +- .../components/assignees/issuable_assignees.vue | 37 + .../components/assignees/sidebar_assignees.vue | 2 +- .../assignees/uncollapsed_assignee_list.vue | 6 +- .../confidential/confidential_issue_sidebar.vue | 18 +- .../sidebar/components/labels/sidebar_labels.vue | 97 +++ .../sidebar/components/lock/issuable_lock_form.vue | 8 +- .../components/participants/participants.vue | 5 +- .../sidebar/components/severity/constants.js | 41 + .../update_issuable_severity.mutation.graphql | 9 + .../sidebar/components/severity/severity.vue | 42 + .../components/severity/sidebar_severity.vue | 187 +++++ .../components/subscriptions/subscriptions.vue | 6 +- .../components/time_tracking/collapsed_state.vue | 6 +- .../components/time_tracking/help_state.vue | 1 + .../components/time_tracking/spent_only_pane.vue | 1 + .../components/time_tracking/time_tracker.vue | 2 +- .../sidebar/components/todo_toggle/todo.vue | 8 +- app/assets/javascripts/sidebar/event_hub.js | 4 +- .../javascripts/sidebar/lib/sidebar_move_issue.js | 4 +- app/assets/javascripts/sidebar/mount_sidebar.js | 61 +- ...DetailsForHealthStatusFeatureFlag.query.graphql | 7 - .../sidebar/services/sidebar_service.js | 7 +- app/assets/javascripts/snippet/snippet_edit.js | 1 + app/assets/javascripts/snippet/snippet_show.js | 2 + .../javascripts/snippets/components/edit.vue | 36 +- .../snippets/components/embed_dropdown.vue | 78 ++ .../javascripts/snippets/components/show.vue | 12 +- .../snippets/components/snippet_blob_edit.vue | 7 +- .../components/snippet_description_view.vue | 1 + .../snippets/components/snippet_header.vue | 7 +- .../components/snippet_visibility_edit.vue | 50 +- app/assets/javascripts/snippets/constants.js | 12 + app/assets/javascripts/snippets/index.js | 18 +- app/assets/javascripts/snippets/mixins/snippets.js | 1 - .../queries/snippet_visibility.query.graphql | 5 + app/assets/javascripts/snippets/utils/blob.js | 15 + .../static_site_editor/components/edit_area.vue | 43 +- .../static_site_editor/components/edit_drawer.vue | 32 + .../components/front_matter_controls.vue | 57 ++ .../components/publish_toolbar.vue | 16 +- .../static_site_editor/services/formatter.js | 44 +- .../static_site_editor/services/image_service.js | 1 - .../services/parse_source_file.js | 66 +- app/assets/javascripts/subscription_select.js | 3 +- .../templates/issuable_template_selector.js | 4 +- .../javascripts/tooltips/components/tooltips.vue | 116 +++ app/assets/javascripts/tooltips/index.js | 120 +++ app/assets/javascripts/tracking.js | 12 +- app/assets/javascripts/ui_development_kit.js | 3 +- app/assets/javascripts/users_select/index.js | 197 ++--- .../approvals/approvals_summary_optional.vue | 7 +- .../components/deployment/constants.js | 6 + .../deployment/deployment_action_button.vue | 23 +- .../components/deployment/deployment_actions.vue | 22 +- .../deployment/deployment_view_button.vue | 77 +- .../components/deployment/memory_usage.vue | 66 +- .../components/mr_collapsible_extension.vue | 7 +- .../components/mr_widget_alert_message.vue | 7 +- .../components/mr_widget_header.vue | 106 +-- .../components/mr_widget_icon.vue | 6 +- .../components/mr_widget_pipeline.vue | 51 +- .../components/mr_widget_pipeline_container.vue | 1 + .../components/mr_widget_related_links.vue | 1 + .../components/mr_widget_suggest_pipeline.vue | 4 +- .../components/review_app_link.vue | 18 +- .../components/source_branch_removal_status.vue | 10 +- .../components/states/commits_header.vue | 22 +- .../states/mr_widget_failed_to_merge.vue | 10 +- .../components/states/mr_widget_merged.vue | 39 +- .../components/states/mr_widget_missing_branch.vue | 4 +- .../components/states/mr_widget_rebase.vue | 1 + .../components/states/nothing_to_merge.vue | 1 + .../components/states/ready_to_merge.vue | 13 +- .../components/states/squash_before_merge.vue | 6 +- .../components/states/work_in_progress.vue | 8 +- .../terraform/mr_widget_terraform_container.vue | 2 +- .../vue_merge_request_widget/mr_widget_options.vue | 34 +- .../queries/get_state.query.graphql | 22 +- .../services/mr_widget_service.js | 8 +- .../stores/artifacts_list/getters.js | 1 - .../stores/get_state_key.js | 2 +- .../stores/mr_widget_store.js | 63 +- .../vue_shared/components/actions_button.vue | 90 ++ .../vue_shared/components/alert_details_table.vue | 70 ++ .../vue_shared/components/awards_list.vue | 1 + .../components/blob_viewers/rich_viewer.vue | 6 +- .../components/blob_viewers/simple_viewer.vue | 1 + .../vue_shared/components/changed_file_icon.vue | 7 +- .../vue_shared/components/ci_badge_link.vue | 7 +- .../javascripts/vue_shared/components/ci_icon.vue | 6 +- .../vue_shared/components/clone_dropdown.vue | 16 +- .../javascripts/vue_shared/components/commit.vue | 15 +- .../content_viewer/viewers/download_viewer.vue | 7 +- .../content_viewer/viewers/markdown_viewer.vue | 3 +- .../date_time_picker/date_time_picker.vue | 35 +- .../vue_shared/components/dismissible_alert.vue | 1 + .../components/dropdown/dropdown_search_input.vue | 7 - .../components/droplab_dropdown_button.vue | 7 +- .../vue_shared/components/file_finder/index.vue | 40 +- .../vue_shared/components/file_finder/item.vue | 8 +- .../javascripts/vue_shared/components/file_row.vue | 18 +- .../components/filtered_search_bar/constants.js | 19 +- .../filtered_search_bar_root.vue | 43 +- .../filtered_search_bar/filtered_search_utils.js | 166 +++- .../filtered_search_bar/tokens/author_token.vue | 18 +- .../filtered_search_bar/tokens/branch_token.vue | 115 +++ .../filtered_search_bar/tokens/label_token.vue | 18 +- .../filtered_search_bar/tokens/milestone_token.vue | 13 +- .../components/filtered_search_dropdown.vue | 154 ---- .../vue_shared/components/gl_mentions.vue | 16 + .../vue_shared/components/header_ci_component.vue | 1 + .../vue_shared/components/help_popover.vue | 6 +- .../javascripts/vue_shared/components/icon.vue | 72 -- .../components/issue/issue_milestone.vue | 7 +- .../components/issue/related_issuable_item.vue | 36 +- .../vue_shared/components/lib/utils/diff_utils.js | 2 - .../vue_shared/components/markdown/field.vue | 10 +- .../vue_shared/components/markdown/header.vue | 40 +- .../components/markdown/suggestion_diff_header.vue | 23 +- .../components/markdown/suggestion_diff_row.vue | 12 +- .../vue_shared/components/markdown/suggestions.vue | 6 +- .../components/markdown/toolbar_button.vue | 28 +- .../vue_shared/components/modal_copy_button.vue | 7 +- .../components/notes/noteable_warning.vue | 8 +- .../vue_shared/components/notes/skeleton_note.vue | 2 +- .../vue_shared/components/notes/system_note.vue | 48 +- .../project_selector/project_list_item.vue | 25 +- .../project_selector/project_selector.vue | 2 +- .../vue_shared/components/recaptcha_modal.vue | 1 + .../components/registry/code_instruction.vue | 82 ++ .../vue_shared/components/registry/details_row.vue | 42 + .../components/registry/history_item.vue | 36 + .../vue_shared/components/registry/list_item.vue | 135 +++ .../components/registry/metadata_item.vue | 63 ++ .../vue_shared/components/registry/title_area.vue | 66 ++ .../components/resizable_chart/constants.js | 6 +- .../components/resizable_chart/skeleton_loader.vue | 64 +- .../services/build_custom_renderer.js | 15 +- .../services/build_html_to_markdown_renderer.js | 19 +- .../renderers/render_attribute_definition.js | 7 + .../services/renderers/render_heading.js | 6 + .../renderers/render_identifier_paragraph.js | 31 +- .../services/renderers/render_kramdown_list.js | 24 - .../services/renderers/render_kramdown_text.js | 9 - .../services/renderers/render_list_item.js | 6 + .../services/renderers/render_utils.js | 28 + .../components/sidebar/collapsed_calendar_icon.vue | 6 +- .../components/sidebar/labels_select/base.vue | 23 +- .../labels_select/dropdown_create_label.vue | 55 +- .../sidebar/labels_select/dropdown_header.vue | 16 +- .../labels_select/dropdown_value_collapsed.vue | 6 +- .../labels_select_vue/labels_select_root.vue | 12 +- .../sidebar/labels_select_vue/store/actions.js | 3 + .../labels_select_vue/store/mutation_types.js | 1 + .../sidebar/labels_select_vue/store/mutations.js | 4 + .../vue_shared/components/timezone_dropdown.vue | 8 +- .../vue_shared/components/todo_button.vue | 28 + .../vue_shared/components/toggle_button.vue | 2 +- .../vue_shared/components/tooltip_on_truncate.vue | 4 +- .../javascripts/vue_shared/components/url_sync.vue | 4 +- .../components/user_popover/user_popover.vue | 12 +- .../vue_shared/components/web_ide_link.vue | 118 +++ .../vue_shared/mixins/related_issuable_mixin.js | 4 - app/assets/javascripts/vuex_shared/bindings.js | 1 - .../vuex_shared/modules/members/index.js | 6 + .../vuex_shared/modules/members/state.js | 5 + .../javascripts/whats_new/components/app.vue | 56 +- .../javascripts/whats_new/components/trigger.vue | 19 - app/assets/javascripts/whats_new/index.js | 46 +- 930 files changed, 16601 insertions(+), 12539 deletions(-) create mode 100644 app/assets/javascripts/admin/cohorts/components/usage_ping_disabled.vue create mode 100644 app/assets/javascripts/admin/dev_ops_report/components/usage_ping_disabled.vue delete mode 100644 app/assets/javascripts/ajax_loading_spinner.js create mode 100644 app/assets/javascripts/alert_handler.js delete mode 100644 app/assets/javascripts/alert_management/graphql/mutations/alert_todo_mark_done.mutation.graphql create mode 100644 app/assets/javascripts/authentication/webauthn/authenticate.js create mode 100644 app/assets/javascripts/authentication/webauthn/error.js create mode 100644 app/assets/javascripts/authentication/webauthn/flow.js create mode 100644 app/assets/javascripts/authentication/webauthn/index.js create mode 100644 app/assets/javascripts/authentication/webauthn/register.js create mode 100644 app/assets/javascripts/authentication/webauthn/util.js delete mode 100644 app/assets/javascripts/blob/components/blob_embeddable.vue create mode 100644 app/assets/javascripts/blob/suggest_web_ide_ci/components/web_ide_alert.vue create mode 100644 app/assets/javascripts/blob/suggest_web_ide_ci/index.js create mode 100644 app/assets/javascripts/boards/components/board_card_layout.vue create mode 100644 app/assets/javascripts/boards/components/issuable_title.vue create mode 100644 app/assets/javascripts/boards/components/sidebar/board_editable_item.vue create mode 100644 app/assets/javascripts/boards/queries/board_list_create.mutation.graphql create mode 100644 app/assets/javascripts/boards/queries/board_list_update.mutation.graphql delete mode 100644 app/assets/javascripts/boards/queries/group_lists_issues.query.graphql create mode 100644 app/assets/javascripts/boards/queries/issue_move_list.mutation.graphql create mode 100644 app/assets/javascripts/boards/queries/lists_issues.query.graphql delete mode 100644 app/assets/javascripts/boards/queries/project_lists_issues.query.graphql create mode 100644 app/assets/javascripts/branches/ajax_loading_spinner.js create mode 100644 app/assets/javascripts/ci_lint/components/ci_lint.vue create mode 100644 app/assets/javascripts/ci_lint/components/ci_lint_results.vue create mode 100644 app/assets/javascripts/ci_lint/index.js create mode 100644 app/assets/javascripts/clusters/components/new_cluster.vue create mode 100644 app/assets/javascripts/clusters/new_cluster.js create mode 100644 app/assets/javascripts/clusters/stores/new_cluster/index.js create mode 100644 app/assets/javascripts/clusters/stores/new_cluster/state.js create mode 100644 app/assets/javascripts/deprecated_jquery_dropdown/gl_dropdown.js create mode 100644 app/assets/javascripts/deprecated_jquery_dropdown/gl_dropdown_filter.js create mode 100644 app/assets/javascripts/deprecated_jquery_dropdown/gl_dropdown_input.js create mode 100644 app/assets/javascripts/deprecated_jquery_dropdown/gl_dropdown_remote.js create mode 100644 app/assets/javascripts/deprecated_jquery_dropdown/index.js create mode 100644 app/assets/javascripts/deprecated_jquery_dropdown/render.js create mode 100644 app/assets/javascripts/design_management/components/design_todo_button.vue create mode 100644 app/assets/javascripts/design_management/graphql/mutations/create_design_todo.mutation.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/components/app.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/delete_button.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/design_destroyer.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/design_note_pin.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/design_notes/design_discussion.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/design_notes/design_note.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/design_notes/design_reply_form.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/design_notes/toggle_replies_widget.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/design_overlay.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/design_presentation.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/design_scaler.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/design_sidebar.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/image.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/list/item.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/toolbar/index.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/toolbar/pagination.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/toolbar/pagination_button.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/upload/button.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/upload/design_dropzone.vue delete mode 100644 app/assets/javascripts/design_management_legacy/components/upload/design_version_dropdown.vue delete mode 100644 app/assets/javascripts/design_management_legacy/constants.js delete mode 100644 app/assets/javascripts/design_management_legacy/graphql.js delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/fragments/design.fragment.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/fragments/design_list.fragment.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/fragments/design_note.fragment.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/fragments/diff_refs.fragment.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/fragments/discussion_resolved_status.fragment.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/fragments/note_permissions.fragment.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/fragments/version.fragment.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/mutations/create_image_diff_note.mutation.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/mutations/create_note.mutation.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/mutations/destroy_design.mutation.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/mutations/toggle_resolve_discussion.mutation.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/mutations/update_active_discussion.mutation.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/mutations/update_image_diff_note.mutation.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/mutations/update_note.mutation.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/mutations/upload_design.mutation.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/queries/active_discussion.query.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/queries/app_data.query.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/queries/design_permissions.query.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/queries/get_design.query.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/queries/get_design_list.query.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/graphql/typedefs.graphql delete mode 100644 app/assets/javascripts/design_management_legacy/index.js delete mode 100644 app/assets/javascripts/design_management_legacy/mixins/all_designs.js delete mode 100644 app/assets/javascripts/design_management_legacy/mixins/all_versions.js delete mode 100644 app/assets/javascripts/design_management_legacy/pages/design/index.vue delete mode 100644 app/assets/javascripts/design_management_legacy/pages/index.vue delete mode 100644 app/assets/javascripts/design_management_legacy/router/constants.js delete mode 100644 app/assets/javascripts/design_management_legacy/router/index.js delete mode 100644 app/assets/javascripts/design_management_legacy/router/routes.js delete mode 100644 app/assets/javascripts/design_management_legacy/utils/cache_update.js delete mode 100644 app/assets/javascripts/design_management_legacy/utils/design_management_utils.js delete mode 100644 app/assets/javascripts/design_management_legacy/utils/error_messages.js delete mode 100644 app/assets/javascripts/design_management_legacy/utils/tracking.js create mode 100644 app/assets/javascripts/diffs/components/collapsed_files_warning.vue create mode 100644 app/assets/javascripts/diffs/components/merge_conflict_warning.vue create mode 100644 app/assets/javascripts/diffs/i18n.js create mode 100644 app/assets/javascripts/editor/constants.js create mode 100644 app/assets/javascripts/editor/editor_file_template_ext.js delete mode 100644 app/assets/javascripts/gl_dropdown.js delete mode 100644 app/assets/javascripts/gl_dropdown/render.js create mode 100644 app/assets/javascripts/graphql_shared/fragments/epic.fragment.graphql create mode 100644 app/assets/javascripts/graphql_shared/fragments/label.fragment.graphql create mode 100644 app/assets/javascripts/graphql_shared/mutations/todo_mark_done.mutation.graphql create mode 100644 app/assets/javascripts/groups/components/invite_members_banner.vue create mode 100644 app/assets/javascripts/groups/init_invite_members_banner.js create mode 100644 app/assets/javascripts/groups/members/components/app.vue create mode 100644 app/assets/javascripts/groups/members/index.js create mode 100644 app/assets/javascripts/helpers/startup_css_helper.js create mode 100644 app/assets/javascripts/ide/lib/errors.js delete mode 100644 app/assets/javascripts/ide/lib/schemas/index.js delete mode 100644 app/assets/javascripts/ide/lib/schemas/json/index.js delete mode 100644 app/assets/javascripts/ide/lib/schemas/yaml/gitlab_ci.js delete mode 100644 app/assets/javascripts/ide/lib/schemas/yaml/index.js delete mode 100644 app/assets/javascripts/import_projects/components/imported_project_table_row.vue delete mode 100644 app/assets/javascripts/import_projects/components/incompatible_repo_table_row.vue delete mode 100644 app/assets/javascripts/import_projects/components/page_query_param_sync.vue create mode 100644 app/assets/javascripts/incidents/graphql/fragments/incident_fields.fragment.graphql create mode 100644 app/assets/javascripts/integrations/edit/components/active_checkbox.vue delete mode 100644 app/assets/javascripts/integrations/edit/components/active_toggle.vue create mode 100644 app/assets/javascripts/integrations/edit/constants.js create mode 100644 app/assets/javascripts/issuable_create/components/issuable_create_root.vue create mode 100644 app/assets/javascripts/issuable_create/components/issuable_form.vue create mode 100644 app/assets/javascripts/issuable_list/components/issuable_item.vue create mode 100644 app/assets/javascripts/issuable_list/components/issuable_list_root.vue create mode 100644 app/assets/javascripts/issuable_list/components/issuable_tabs.vue delete mode 100644 app/assets/javascripts/issuables_list/components/issuable.vue delete mode 100644 app/assets/javascripts/issuables_list/components/issuable_list_root_app.vue delete mode 100644 app/assets/javascripts/issuables_list/components/issuables_list_app.vue delete mode 100644 app/assets/javascripts/issuables_list/constants.js delete mode 100644 app/assets/javascripts/issuables_list/eventhub.js delete mode 100644 app/assets/javascripts/issuables_list/index.js delete mode 100644 app/assets/javascripts/issuables_list/queries/get_issues_list_details.query.graphql delete mode 100644 app/assets/javascripts/issuables_list/service_desk_helper.js create mode 100644 app/assets/javascripts/issue_show/components/incidents/graphql/queries/get_alert.graphql create mode 100644 app/assets/javascripts/issue_show/components/incidents/highlight_bar.vue create mode 100644 app/assets/javascripts/issue_show/components/incidents/incident_tabs.vue create mode 100644 app/assets/javascripts/issue_show/incident.js delete mode 100644 app/assets/javascripts/issue_show/index.js create mode 100644 app/assets/javascripts/issue_show/issue.js create mode 100644 app/assets/javascripts/issues_list/components/issuable.vue create mode 100644 app/assets/javascripts/issues_list/components/issuables_list_app.vue create mode 100644 app/assets/javascripts/issues_list/components/jira_issues_list_root.vue create mode 100644 app/assets/javascripts/issues_list/constants.js create mode 100644 app/assets/javascripts/issues_list/eventhub.js create mode 100644 app/assets/javascripts/issues_list/index.js create mode 100644 app/assets/javascripts/issues_list/queries/get_issues_list_details.query.graphql create mode 100644 app/assets/javascripts/issues_list/service_desk_helper.js create mode 100644 app/assets/javascripts/jira_connect.js create mode 100644 app/assets/javascripts/lib/utils/jquery_at_who.js delete mode 100644 app/assets/javascripts/packages/details/components/code_instruction.vue delete mode 100644 app/assets/javascripts/packages/details/components/history_element.vue create mode 100644 app/assets/javascripts/pages/admin/clusters/new/index.js create mode 100644 app/assets/javascripts/pages/admin/cohorts/index.js create mode 100644 app/assets/javascripts/pages/admin/dev_ops_report/index.js create mode 100644 app/assets/javascripts/pages/admin/services/index/index.js create mode 100644 app/assets/javascripts/pages/groups/clusters/new/index.js delete mode 100644 app/assets/javascripts/pages/instance_statistics/dev_ops_score/index.js create mode 100644 app/assets/javascripts/pages/projects/clusters/new/index.js create mode 100644 app/assets/javascripts/performance_bar/performance_bar_log.js create mode 100644 app/assets/javascripts/pipelines/components/pipeline_graph/gitlab_ci_yaml_visualization.vue create mode 100644 app/assets/javascripts/pipelines/components/pipeline_graph/job_pill.vue create mode 100644 app/assets/javascripts/pipelines/components/pipeline_graph/pipeline_graph.vue create mode 100644 app/assets/javascripts/pipelines/components/pipeline_graph/stage_pill.vue delete mode 100644 app/assets/javascripts/registry/explorer/components/list_item.vue delete mode 100644 app/assets/javascripts/registry/shared/components/details_row.vue create mode 100644 app/assets/javascripts/related_issues/components/add_issuable_form.vue create mode 100644 app/assets/javascripts/related_issues/components/issue_token.vue create mode 100644 app/assets/javascripts/related_issues/components/related_issuable_input.vue create mode 100644 app/assets/javascripts/related_issues/components/related_issues_block.vue create mode 100644 app/assets/javascripts/related_issues/components/related_issues_list.vue create mode 100644 app/assets/javascripts/related_issues/components/related_issues_root.vue create mode 100644 app/assets/javascripts/related_issues/constants.js create mode 100644 app/assets/javascripts/related_issues/index.js create mode 100644 app/assets/javascripts/related_issues/services/related_issues_service.js create mode 100644 app/assets/javascripts/related_issues/stores/related_issues_store.js create mode 100644 app/assets/javascripts/releases/components/releases_pagination.vue create mode 100644 app/assets/javascripts/releases/components/releases_pagination_graphql.vue create mode 100644 app/assets/javascripts/releases/components/releases_pagination_rest.vue create mode 100644 app/assets/javascripts/releases/queries/all_releases.query.graphql delete mode 100644 app/assets/javascripts/repository/components/web_ide_link.vue create mode 100644 app/assets/javascripts/search/state_filter/components/state_filter.vue create mode 100644 app/assets/javascripts/search/state_filter/constants.js create mode 100644 app/assets/javascripts/search/state_filter/index.js delete mode 100644 app/assets/javascripts/set_status_modal/event_hub.js delete mode 100644 app/assets/javascripts/set_status_modal/set_status_modal_trigger.vue create mode 100644 app/assets/javascripts/sidebar/components/assignees/issuable_assignees.vue create mode 100644 app/assets/javascripts/sidebar/components/labels/sidebar_labels.vue create mode 100644 app/assets/javascripts/sidebar/components/severity/constants.js create mode 100644 app/assets/javascripts/sidebar/components/severity/graphql/mutations/update_issuable_severity.mutation.graphql create mode 100644 app/assets/javascripts/sidebar/components/severity/severity.vue create mode 100644 app/assets/javascripts/sidebar/components/severity/sidebar_severity.vue delete mode 100644 app/assets/javascripts/sidebar/queries/sidebarDetailsForHealthStatusFeatureFlag.query.graphql create mode 100644 app/assets/javascripts/snippets/components/embed_dropdown.vue create mode 100644 app/assets/javascripts/snippets/queries/snippet_visibility.query.graphql create mode 100644 app/assets/javascripts/static_site_editor/components/edit_drawer.vue create mode 100644 app/assets/javascripts/static_site_editor/components/front_matter_controls.vue create mode 100644 app/assets/javascripts/tooltips/components/tooltips.vue create mode 100644 app/assets/javascripts/tooltips/index.js create mode 100644 app/assets/javascripts/vue_shared/components/actions_button.vue create mode 100644 app/assets/javascripts/vue_shared/components/alert_details_table.vue create mode 100644 app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/branch_token.vue delete mode 100644 app/assets/javascripts/vue_shared/components/filtered_search_dropdown.vue delete mode 100644 app/assets/javascripts/vue_shared/components/icon.vue create mode 100644 app/assets/javascripts/vue_shared/components/registry/code_instruction.vue create mode 100644 app/assets/javascripts/vue_shared/components/registry/details_row.vue create mode 100644 app/assets/javascripts/vue_shared/components/registry/history_item.vue create mode 100644 app/assets/javascripts/vue_shared/components/registry/list_item.vue create mode 100644 app/assets/javascripts/vue_shared/components/registry/metadata_item.vue create mode 100644 app/assets/javascripts/vue_shared/components/registry/title_area.vue create mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_attribute_definition.js create mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_heading.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_kramdown_list.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_kramdown_text.js create mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_list_item.js create mode 100644 app/assets/javascripts/vue_shared/components/todo_button.vue create mode 100644 app/assets/javascripts/vue_shared/components/web_ide_link.vue create mode 100644 app/assets/javascripts/vuex_shared/modules/members/index.js create mode 100644 app/assets/javascripts/vuex_shared/modules/members/state.js delete mode 100644 app/assets/javascripts/whats_new/components/trigger.vue (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/admin/application_settings/setup_metrics_and_profiling.js b/app/assets/javascripts/admin/application_settings/setup_metrics_and_profiling.js index b4803be4d52..f89533aeb1d 100644 --- a/app/assets/javascripts/admin/application_settings/setup_metrics_and_profiling.js +++ b/app/assets/javascripts/admin/application_settings/setup_metrics_and_profiling.js @@ -1,8 +1,7 @@ import PayloadPreviewer from '~/pages/admin/application_settings/payload_previewer'; export default () => { - new PayloadPreviewer( - document.querySelector('.js-usage-ping-payload-trigger'), - document.querySelector('.js-usage-ping-payload'), - ).init(); + Array.from(document.querySelectorAll('.js-payload-preview-trigger')).forEach(trigger => { + new PayloadPreviewer(trigger).init(); + }); }; diff --git a/app/assets/javascripts/admin/cohorts/components/usage_ping_disabled.vue b/app/assets/javascripts/admin/cohorts/components/usage_ping_disabled.vue new file mode 100644 index 00000000000..2ea55d44420 --- /dev/null +++ b/app/assets/javascripts/admin/cohorts/components/usage_ping_disabled.vue @@ -0,0 +1,48 @@ + + diff --git a/app/assets/javascripts/admin/dev_ops_report/components/usage_ping_disabled.vue b/app/assets/javascripts/admin/dev_ops_report/components/usage_ping_disabled.vue new file mode 100644 index 00000000000..5429ec403d3 --- /dev/null +++ b/app/assets/javascripts/admin/dev_ops_report/components/usage_ping_disabled.vue @@ -0,0 +1,53 @@ + + diff --git a/app/assets/javascripts/admin/statistics_panel/store/getters.js b/app/assets/javascripts/admin/statistics_panel/store/getters.js index 2aa34b8f38e..1c1868b5bca 100644 --- a/app/assets/javascripts/admin/statistics_panel/store/getters.js +++ b/app/assets/javascripts/admin/statistics_panel/store/getters.js @@ -3,7 +3,6 @@ * and returns an array of the following form: * [{ key: "forks", label: "Forks", value: 50 }] */ -// eslint-disable-next-line import/prefer-default-export export const getStatistics = state => labels => Object.keys(labels).map(key => { const result = { diff --git a/app/assets/javascripts/ajax_loading_spinner.js b/app/assets/javascripts/ajax_loading_spinner.js deleted file mode 100644 index 54e86f329e4..00000000000 --- a/app/assets/javascripts/ajax_loading_spinner.js +++ /dev/null @@ -1,34 +0,0 @@ -import $ from 'jquery'; - -export default class AjaxLoadingSpinner { - static init() { - const $elements = $('.js-ajax-loading-spinner'); - - $elements.on('ajax:beforeSend', AjaxLoadingSpinner.ajaxBeforeSend); - $elements.on('ajax:complete', AjaxLoadingSpinner.ajaxComplete); - } - - static ajaxBeforeSend(e) { - e.target.setAttribute('disabled', ''); - const iconElement = e.target.querySelector('i'); - // get first fa- icon - const originalIcon = iconElement.className.match(/(fa-)([^\s]+)/g)[0]; - iconElement.dataset.icon = originalIcon; - AjaxLoadingSpinner.toggleLoadingIcon(iconElement); - $(e.target).off('ajax:beforeSend', AjaxLoadingSpinner.ajaxBeforeSend); - } - - static ajaxComplete(e) { - e.target.removeAttribute('disabled'); - const iconElement = e.target.querySelector('i'); - AjaxLoadingSpinner.toggleLoadingIcon(iconElement); - $(e.target).off('ajax:complete', AjaxLoadingSpinner.ajaxComplete); - } - - static toggleLoadingIcon(iconElement) { - const { classList } = iconElement; - classList.toggle(iconElement.dataset.icon); - classList.toggle('fa-spinner'); - classList.toggle('fa-spin'); - } -} diff --git a/app/assets/javascripts/alert_handler.js b/app/assets/javascripts/alert_handler.js new file mode 100644 index 00000000000..8fffb61d1dd --- /dev/null +++ b/app/assets/javascripts/alert_handler.js @@ -0,0 +1,13 @@ +// This allows us to dismiss alerts that we've migrated from bootstrap +// Note: This ONLY works on alerts that are created on page load +// You can follow this effort in the following epic +// https://gitlab.com/groups/gitlab-org/-/epics/4070 + +export default function initAlertHandler() { + const ALERT_SELECTOR = '.gl-alert'; + const CLOSE_SELECTOR = '.gl-alert-dismiss'; + + const dismissAlert = ({ target }) => target.closest(ALERT_SELECTOR).remove(); + const closeButtons = document.querySelectorAll(`${ALERT_SELECTOR} ${CLOSE_SELECTOR}`); + closeButtons.forEach(alert => alert.addEventListener('click', dismissAlert)); +} diff --git a/app/assets/javascripts/alert_management/components/alert_details.vue b/app/assets/javascripts/alert_management/components/alert_details.vue index 5d260fcc200..c6605452616 100644 --- a/app/assets/javascripts/alert_management/components/alert_details.vue +++ b/app/assets/javascripts/alert_management/components/alert_details.vue @@ -1,4 +1,5 @@ diff --git a/app/assets/javascripts/alert_management/components/sidebar/sidebar_todo.vue b/app/assets/javascripts/alert_management/components/sidebar/sidebar_todo.vue index 5bd69a1f0ec..84d54466a10 100644 --- a/app/assets/javascripts/alert_management/components/sidebar/sidebar_todo.vue +++ b/app/assets/javascripts/alert_management/components/sidebar/sidebar_todo.vue @@ -1,8 +1,9 @@