From 0653e08efd039a5905f3fa4f6e9cef9f5d2f799c Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Mon, 20 Sep 2021 13:18:24 +0000 Subject: Add latest changes from gitlab-org/gitlab@14-3-stable-ee --- app/assets/javascripts/alert_management/list.js | 1 + app/assets/javascripts/analytics/shared/utils.js | 5 + .../javascripts/analytics/usage_trends/index.js | 2 +- app/assets/javascripts/api.js | 8 + app/assets/javascripts/api/projects_api.js | 8 + .../two_factor_auth/components/recovery_codes.vue | 2 +- app/assets/javascripts/autosave.js | 2 +- .../javascripts/badges/components/badge_form.vue | 11 +- .../batch_comments/components/draft_note.vue | 3 +- .../batch_comments/components/review_bar.vue | 10 +- app/assets/javascripts/batch_comments/constants.js | 2 + app/assets/javascripts/batch_comments/index.js | 13 +- .../behaviors/markdown/nodes/playable.js | 40 +- .../javascripts/behaviors/shortcuts/keybindings.js | 2 +- .../behaviors/shortcuts/shortcuts_toggle.vue | 2 +- app/assets/javascripts/blob/blob_file_dropzone.js | 1 - app/assets/javascripts/blob/notebook/index.js | 3 + .../javascripts/blob/notebook/notebook_viewer.vue | 6 + .../blob/pipeline_tour_success_modal.vue | 4 +- .../suggest_gitlab_ci_yml/components/popover.vue | 2 +- app/assets/javascripts/boards/boards_util.js | 12 +- .../boards/components/board_add_new_column.vue | 32 +- .../javascripts/boards/components/board_app.vue | 29 + .../boards/components/board_card_deprecated.vue | 61 - .../boards/components/board_card_inner.vue | 9 + .../components/board_card_layout_deprecated.vue | 101 -- .../boards/components/board_column_deprecated.vue | 112 -- .../boards/components/board_content.vue | 31 +- .../boards/components/board_content_sidebar.vue | 2 +- .../javascripts/boards/components/board_form.vue | 19 +- .../javascripts/boards/components/board_list.vue | 4 +- .../boards/components/board_list_deprecated.vue | 459 ----- .../boards/components/board_list_header.vue | 2 +- .../components/board_list_header_deprecated.vue | 361 ---- .../components/board_new_issue_deprecated.vue | 138 -- .../boards/components/board_settings_sidebar.vue | 53 +- .../javascripts/boards/components/board_sidebar.js | 115 -- .../components/boards_selector_deprecated.vue | 360 ---- .../boards/components/config_toggle.vue | 8 - .../components/issue_board_filtered_search.vue | 47 +- .../components/issue_card_inner_deprecated.vue | 247 --- .../components/issue_time_estimate_deprecated.vue | 48 - .../boards/components/new_list_dropdown.js | 119 -- .../components/project_select_deprecated.vue | 146 -- app/assets/javascripts/boards/config_toggle.js | 3 +- app/assets/javascripts/boards/constants.js | 5 + app/assets/javascripts/boards/ee_functions.js | 4 - .../javascripts/boards/filtered_search_boards.js | 15 +- .../graphql/group_board_iterations.query.graphql | 10 + .../boards/graphql/issue.fragment.graphql | 1 + .../graphql/project_board_iterations.query.graphql | 10 + .../graphql/project_milestones.query.graphql | 2 +- app/assets/javascripts/boards/index.js | 344 +--- app/assets/javascripts/boards/models/assignee.js | 13 - app/assets/javascripts/boards/models/issue.js | 99 -- app/assets/javascripts/boards/models/iteration.js | 9 - app/assets/javascripts/boards/models/label.js | 11 - app/assets/javascripts/boards/models/list.js | 182 -- app/assets/javascripts/boards/models/milestone.js | 15 - app/assets/javascripts/boards/models/project.js | 7 - .../boards/mount_multiple_boards_switcher.js | 15 +- app/assets/javascripts/boards/stores/actions.js | 74 +- .../javascripts/boards/stores/boards_store.js | 883 ---------- .../javascripts/boards/stores/boards_store_ee.js | 5 - app/assets/javascripts/boards/stores/getters.js | 6 +- .../javascripts/boards/stores/mutation_types.js | 4 + app/assets/javascripts/boards/stores/mutations.js | 18 +- app/assets/javascripts/boards/stores/state.js | 2 + .../javascripts/captcha/init_recaptcha_script.js | 2 +- .../components/ci_variable_modal.vue | 2 +- .../javascripts/ci_variable_list/constants.js | 2 +- app/assets/javascripts/clusters/clusters_bundle.js | 8 +- .../components/remove_cluster_confirmation.vue | 3 +- .../clusters_list/components/clusters.vue | 2 + app/assets/javascripts/commit/image_file.js | 7 +- .../commit/pipelines/pipelines_bundle.js | 9 +- app/assets/javascripts/commit/pipelines/utils.js | 11 + .../components/project_form_group.vue | 37 +- .../content_editor/components/content_editor.vue | 6 +- .../components/formatting_bubble_menu.vue | 6 +- .../content_editor/components/wrappers/image.vue | 1 + .../components/wrappers/table_cell_base.vue | 142 ++ .../components/wrappers/table_cell_body.vue | 23 + .../components/wrappers/table_cell_header.vue | 23 + app/assets/javascripts/content_editor/constants.js | 4 + .../content_editor/content_editor.stories.js | 27 + .../javascripts/content_editor/extensions/audio.js | 9 + .../content_editor/extensions/blockquote.js | 34 +- .../content_editor/extensions/bullet_list.js | 20 +- .../extensions/code_block_highlight.js | 6 +- .../content_editor/extensions/description_item.js | 49 + .../content_editor/extensions/description_list.js | 23 + .../content_editor/extensions/division.js | 17 + .../javascripts/content_editor/extensions/emoji.js | 18 +- .../content_editor/extensions/figure.js | 16 + .../content_editor/extensions/figure_caption.js | 16 + .../content_editor/extensions/html_marks.js | 66 + .../javascripts/content_editor/extensions/image.js | 23 +- .../content_editor/extensions/inline_diff.js | 6 +- .../javascripts/content_editor/extensions/link.js | 16 +- .../content_editor/extensions/ordered_list.js | 16 +- .../content_editor/extensions/playable.js | 66 + .../content_editor/extensions/reference.js | 41 +- .../content_editor/extensions/subscript.js | 10 +- .../content_editor/extensions/superscript.js | 10 +- .../content_editor/extensions/table_cell.js | 9 +- .../content_editor/extensions/table_header.js | 8 +- .../content_editor/extensions/task_item.js | 6 +- .../content_editor/extensions/task_list.js | 28 +- .../javascripts/content_editor/extensions/video.js | 10 + .../services/create_content_editor.js | 16 + .../content_editor/services/feature_flags.js | 3 + .../content_editor/services/mark_utils.js | 17 + .../content_editor/services/markdown_serializer.js | 163 +- .../content_editor/services/markdown_sourcemap.js | 40 + .../services/serialization_helpers.js | 345 ++++ .../components/service_credentials_form.vue | 74 +- .../create_cluster/eks_cluster/constants.js | 4 +- .../cycle_analytics/components/banner.vue | 54 - .../cycle_analytics/components/base.vue | 57 +- .../cycle_analytics/components/stage_table.vue | 13 +- .../components/value_stream_filters.vue | 47 +- app/assets/javascripts/cycle_analytics/index.js | 14 +- .../javascripts/cycle_analytics/store/actions.js | 15 +- .../javascripts/cycle_analytics/store/getters.js | 17 + .../javascripts/cycle_analytics/store/mutations.js | 18 +- .../javascripts/cycle_analytics/store/state.js | 3 - .../components/deploy_freeze_table.vue | 63 +- .../javascripts/deploy_freeze/store/actions.js | 16 + .../deploy_freeze/store/mutation_types.js | 4 + .../javascripts/deploy_freeze/store/mutations.js | 33 +- .../deprecated_jquery_dropdown/render.js | 2 +- app/assets/javascripts/deprecated_notes.js | 1746 ++++++++++++++++++++ .../components/design_notes/design_reply_form.vue | 2 +- .../design_management/components/design_scaler.vue | 18 +- .../components/design_sidebar.vue | 2 +- .../design_management/components/image.vue | 22 + .../graphql/fragments/version.fragment.graphql | 7 + .../mutations/upload_design.mutation.graphql | 6 +- .../design_management/pages/design/index.vue | 12 +- .../javascripts/design_management/pages/index.vue | 3 + .../utils/design_management_utils.js | 7 + .../design_management/utils/error_messages.js | 1 + app/assets/javascripts/diffs/components/app.vue | 113 +- .../javascripts/diffs/components/commit_item.vue | 10 +- .../javascripts/diffs/components/diff_file.vue | 5 +- .../diffs/components/diff_file_header.vue | 4 +- .../javascripts/diffs/components/diff_row.vue | 5 +- .../javascripts/diffs/components/diff_view.vue | 5 +- .../javascripts/diffs/components/pre_renderer.vue | 1 - app/assets/javascripts/diffs/constants.js | 5 - app/assets/javascripts/diffs/index.js | 96 +- app/assets/javascripts/diffs/store/actions.js | 22 +- app/assets/javascripts/diffs/store/getters.js | 3 + .../javascripts/diffs/store/modules/diff_state.js | 6 +- .../javascripts/diffs/store/mutation_types.js | 2 +- app/assets/javascripts/diffs/store/mutations.js | 4 +- app/assets/javascripts/diffs/utils/preferences.js | 13 - app/assets/javascripts/dropzone_input.js | 8 +- app/assets/javascripts/due_date_select.js | 191 --- app/assets/javascripts/emoji/index.js | 5 +- .../emoji/support/unicode_support_map.js | 2 +- .../environments/components/container.vue | 6 +- .../environments/components/edit_environment.vue | 2 +- .../environments/components/environment_form.vue | 15 + .../environments/components/environment_item.vue | 50 +- .../environments/components/environments_app.vue | 41 +- .../components/environments_detail_header.vue | 8 +- .../environments/components/environments_table.vue | 7 - app/assets/javascripts/environments/constants.js | 2 - .../folder/environments_folder_bundle.js | 3 - .../folder/environments_folder_view.vue | 5 - app/assets/javascripts/environments/index.js | 4 +- app/assets/javascripts/environments/mount_show.js | 1 - .../components/error_tracking_list.vue | 2 +- .../error_tracking/components/stacktrace_entry.vue | 3 +- .../error_tracking/store/list/mutations.js | 4 +- .../error_tracking_settings/components/app.vue | 79 +- .../javascripts/error_tracking_settings/index.js | 11 +- .../error_tracking_settings/store/actions.js | 4 + .../store/mutation_types.js | 1 + .../error_tracking_settings/store/mutations.js | 14 +- .../error_tracking_settings/store/state.js | 1 + .../javascripts/error_tracking_settings/utils.js | 10 +- app/assets/javascripts/experimentation/utils.js | 25 +- .../feature_flags/components/edit_feature_flag.vue | 2 +- .../components/feature_flags_table.vue | 2 +- .../services/recent_searches_service.js | 2 +- .../javascripts/frequent_items/components/app.vue | 2 +- .../components/frequent_items_list_item.vue | 4 +- .../javascripts/frequent_items/store/actions.js | 2 +- app/assets/javascripts/graphql_shared/constants.js | 4 + app/assets/javascripts/groups/components/app.vue | 2 +- .../javascripts/groups/components/groups.vue | 8 +- .../groups/components/invite_members_banner.vue | 18 +- .../javascripts/groups/components/item_stats.vue | 11 +- .../groups/init_invite_members_banner.js | 13 +- .../javascripts/header_search/components/app.vue | 83 + .../components/header_search_default_items.vue | 42 + .../components/header_search_scoped_items.vue | 31 + app/assets/javascripts/header_search/constants.js | 17 + app/assets/javascripts/header_search/index.js | 26 + .../javascripts/header_search/store/actions.js | 5 + .../javascripts/header_search/store/getters.js | 135 ++ .../javascripts/header_search/store/index.js | 18 + .../header_search/store/mutation_types.js | 1 + .../javascripts/header_search/store/mutations.js | 7 + .../javascripts/header_search/store/state.js | 8 + .../components/commit_sidebar/success_message.vue | 3 +- .../javascripts/ide/components/error_message.vue | 8 +- .../javascripts/ide/components/jobs/detail.vue | 3 +- app/assets/javascripts/ide/services/terminals.js | 4 +- app/assets/javascripts/ide/utils.js | 5 +- .../components/import_actions_cell.vue | 69 + .../components/import_source_cell.vue | 53 + .../import_groups/components/import_table.vue | 76 +- .../components/import_target_cell.vue | 57 +- .../import_groups/graphql/client_factory.js | 89 +- .../bulk_import_source_group_item.fragment.graphql | 4 + .../mutations/set_import_progress.mutation.graphql | 18 +- .../graphql/services/source_groups_manager.js | 24 +- .../import_groups/graphql/typedefs.graphql | 13 +- .../import_entities/import_groups/utils.js | 9 + .../components/import_projects_table.vue | 4 +- .../import_projects/store/actions.js | 4 +- .../import_projects/store/mutations.js | 17 +- app/assets/javascripts/incidents/list.js | 2 +- app/assets/javascripts/init_changes_dropdown.js | 12 - app/assets/javascripts/init_deprecated_notes.js | 10 + app/assets/javascripts/init_diff_stats_dropdown.js | 30 + app/assets/javascripts/init_issuable_sidebar.js | 10 +- app/assets/javascripts/init_notes.js | 10 - .../edit/components/jira_trigger_fields.vue | 4 +- .../components/import_a_project_modal.vue | 157 ++ .../components/invite_members_trigger.vue | 2 +- .../invite_members/components/project_select.vue | 143 ++ .../invite_members/init_import_a_project_modal.js | 23 + .../issuable/components/csv_export_modal.vue | 4 +- .../issuable_list/components/issuable_item.vue | 9 +- .../javascripts/issue_show/components/app.vue | 19 +- .../issue_show/components/description.vue | 3 +- .../issue_show/components/locked_warning.vue | 6 +- .../issues_list/components/issuable.vue | 2 +- .../issues_list/components/issues_list_app.vue | 131 +- app/assets/javascripts/issues_list/constants.js | 22 +- app/assets/javascripts/issues_list/index.js | 22 +- .../issues_list/queries/get_issues.query.graphql | 35 +- .../queries/get_issues_count.query.graphql | 30 - .../queries/get_issues_counts.query.graphql | 105 ++ .../issues_list/queries/issue.fragment.graphql | 1 + .../issues_list/queries/iteration.fragment.graphql | 4 + .../issues_list/queries/label.fragment.graphql | 6 + .../issues_list/queries/milestone.fragment.graphql | 4 + .../queries/reorder_issues.mutation.graphql | 8 +- .../queries/search_iterations.query.graphql | 18 +- .../queries/search_labels.query.graphql | 18 +- .../queries/search_milestones.query.graphql | 16 +- .../issues_list/queries/search_users.query.graphql | 20 +- .../issues_list/queries/user.fragment.graphql | 6 + .../jira_connect/subscriptions/utils.js | 4 +- app/assets/javascripts/jobs/components/job_app.vue | 8 +- .../jobs/components/table/cells/actions_cell.vue | 183 +- .../javascripts/jobs/components/table/constants.js | 23 + .../javascripts/jobs/components/table/event_hub.js | 3 + .../table/graphql/fragments/job.fragment.graphql | 3 + .../graphql/mutations/job_cancel.mutation.graphql | 10 + .../graphql/mutations/job_play.mutation.graphql | 10 + .../graphql/mutations/job_retry.mutation.graphql | 10 + .../mutations/job_unschedule.mutation.graphql | 10 + .../table/graphql/queries/get_jobs.query.graphql | 1 + .../javascripts/jobs/components/table/index.js | 5 + .../jobs/components/table/jobs_table.vue | 2 +- .../jobs/components/table/jobs_table_app.vue | 10 + app/assets/javascripts/labels_select.js | 52 +- .../javascripts/learn_gitlab/track_learn_gitlab.js | 10 - .../javascripts/lib/apollo/instrumentation_link.js | 29 + app/assets/javascripts/lib/dompurify.js | 6 +- app/assets/javascripts/lib/graphql.js | 20 +- app/assets/javascripts/lib/logger/hello.js | 16 + .../javascripts/lib/logger/hello_deferred.js | 5 + app/assets/javascripts/lib/logger/index.js | 6 + app/assets/javascripts/lib/utils/accessor.js | 28 +- app/assets/javascripts/lib/utils/common_utils.js | 11 +- .../lib/utils/datetime/date_format_utility.js | 105 +- app/assets/javascripts/lib/utils/dom_utils.js | 12 + app/assets/javascripts/lib/utils/number_utils.js | 9 +- app/assets/javascripts/lib/utils/text_markdown.js | 4 +- app/assets/javascripts/lib/utils/url_utility.js | 37 - app/assets/javascripts/main.js | 37 +- app/assets/javascripts/main_jh.js | 1 + app/assets/javascripts/merge_request.js | 29 +- app/assets/javascripts/merge_request_tabs.js | 71 +- app/assets/javascripts/milestone_select.js | 118 +- .../milestones/components/milestone_combobox.vue | 3 +- .../javascripts/milestones/stores/mutations.js | 4 +- .../monitoring/components/charts/empty_chart.vue | 3 +- app/assets/javascripts/mr_notes/index.js | 36 +- app/assets/javascripts/notebook/cells/markdown.vue | 16 +- .../javascripts/notebook/cells/output/html.vue | 9 +- app/assets/javascripts/notes.js | 1744 ------------------- .../javascripts/notes/components/comment_form.vue | 85 +- .../notes/components/comment_type_dropdown.vue | 114 ++ .../notes/components/diff_with_note.vue | 7 +- .../notes/components/discussion_counter.vue | 6 +- .../discussion_resolve_with_issue_button.vue | 2 +- .../notes/components/note_actions/reply_button.vue | 2 +- .../javascripts/notes/components/note_body.vue | 7 +- .../javascripts/notes/components/note_form.vue | 3 +- .../javascripts/notes/components/note_header.vue | 3 +- app/assets/javascripts/notes/stores/actions.js | 1 + .../details/components/package_history.vue | 1 + .../javascripts/packages/shared/constants.js | 1 + .../components/details/additional_metadata.vue | 105 +- .../components/details/metadata/composer.vue | 55 + .../components/details/metadata/conan.vue | 32 + .../components/details/metadata/maven.vue | 42 + .../components/details/metadata/nuget.vue | 46 + .../components/details/metadata/pypi.vue | 34 + .../components/details/package_history.vue | 1 + .../components/details/package_title.vue | 17 +- .../components/list/package_search.vue | 57 + .../components/list/package_title.vue | 47 + .../components/list/packages_list.vue | 129 ++ .../components/list/packages_list_app.vue | 132 ++ .../components/list/tokens/package_type_token.vue | 26 + .../package_registry/constants.js | 1 + .../package_registry/pages/list.js | 16 + .../project/components/registry_settings_app.vue | 2 +- .../index/components/customize_homepage_banner.vue | 2 +- .../javascripts/pages/groups/issues/index.js | 34 +- app/assets/javascripts/pages/groups/new/index.js | 3 + .../pages/groups/new/toggle_invite_members.js | 14 + .../javascripts/pages/projects/blob/show/index.js | 2 +- .../pages/projects/commit/show/index.js | 8 +- .../pages/projects/compare/show/index.js | 4 +- .../javascripts/pages/projects/issues/show.js | 2 +- .../pages/projects/issues/show/index.js | 3 +- .../learn_gitlab/components/learn_gitlab.vue | 78 + .../learn_gitlab/components/learn_gitlab_a.vue | 78 - .../learn_gitlab/components/learn_gitlab_b.vue | 116 -- .../components/learn_gitlab_section_link.vue | 2 +- .../pages/projects/learn_gitlab/index/index.js | 10 +- .../merge_requests/init_merge_request_show.js | 13 +- .../pages/projects/merge_requests/show/index.js | 11 +- .../new/components/new_project_url_select.vue | 98 ++ app/assets/javascripts/pages/projects/new/index.js | 40 +- ...es_where_user_can_create_projects.query.graphql | 14 + .../pages/projects/packages/packages/show/index.js | 14 +- .../shared/components/interval_pattern_input.vue | 4 +- .../components/pipeline_schedules_callout.vue | 2 +- .../pages/projects/project_members/index.js | 2 + .../pages/projects/usage_quotas/index.js | 23 + .../javascripts/pages/projects/wikis/index.js | 2 + .../pages/projects/work_items/index/index.js | 3 + .../pages/sessions/new/signin_tabs_memoizer.js | 2 +- .../components/performance_bar_app.vue | 8 +- .../components/request_selector.vue | 12 +- .../performance_bar/components/request_warning.vue | 9 +- .../components/commit/commit_section.vue | 18 +- .../components/editor/text_editor.vue | 12 +- .../components/file_nav/branch_switcher.vue | 4 +- .../file_nav/pipeline_editor_file_nav.vue | 9 +- .../components/header/pipeline_editor_header.vue | 11 +- .../components/header/pipeline_status.vue | 23 +- .../components/pipeline_editor_tabs.vue | 7 +- .../components/ui/pipeline_editor_empty_state.vue | 5 +- .../javascripts/pipeline_editor/constants.js | 2 + .../mutations/update_commit_sha.mutation.graphql | 3 - .../graphql/queries/client/commit_sha.graphql | 3 - .../queries/latest_commit_sha.query.graphql | 11 +- .../pipeline_editor/graphql/resolvers.js | 9 - app/assets/javascripts/pipeline_editor/index.js | 15 +- .../pipeline_editor/pipeline_editor_app.vue | 61 +- .../pipeline_editor/pipeline_editor_home.vue | 14 +- .../pipeline_new/components/pipeline_new_form.vue | 10 +- .../pipelines/components/graph/accessors.js | 25 - .../pipelines/components/graph/constants.js | 3 - .../components/graph/job_group_dropdown.vue | 8 +- .../pipelines/components/graph/job_item.vue | 20 +- .../pipelines/components/graph/linked_pipeline.vue | 32 +- .../components/graph/linked_pipelines_column.vue | 4 +- .../components/graph/stage_column_component.vue | 24 +- .../pipelines/components/header_component.vue | 2 +- .../pipelines/components/parsing_utils.js | 78 +- .../pipelines_list/pipeline_multi_actions.vue | 3 +- .../pipelines_list/pipeline_stop_modal.vue | 3 +- .../pipelines_list/pipelines_filtered_search.vue | 13 +- .../components/pipelines_list/pipelines_table.vue | 1 + .../components/pipelines_list/tokens/constants.js | 52 + .../tokens/pipeline_source_token.vue | 71 +- .../pipelines/pipeline_details_bundle.js | 60 +- .../pipelines/pipeline_details_graph.js | 2 - .../javascripts/pipelines/pipeline_test_details.js | 34 + app/assets/javascripts/pipelines/utils.js | 52 +- .../javascripts/popovers/components/popovers.vue | 21 +- .../javascripts/project_select_combo_button.js | 2 +- .../components/commit_box_pipeline_mini_graph.vue | 1 + .../queries/get_linked_pipelines.query.graphql | 1 + .../info/init_commit_pipeline_mini_graph.js | 7 +- .../charts/components/pipeline_charts.vue | 12 +- .../javascripts/projects/pipelines/charts/index.js | 2 +- app/assets/javascripts/projects/project_new.js | 22 +- .../settings/components/shared_runners_toggle.vue | 5 +- .../components/service_desk_setting.vue | 54 +- .../projects/storage_counter/components/app.vue | 106 ++ .../storage_counter/components/storage_table.vue | 78 + .../projects/storage_counter/constants.js | 61 + .../javascripts/projects/storage_counter/index.js | 51 + .../queries/project_storage.query.graphql | 16 + .../javascripts/projects/storage_counter/utils.js | 40 + .../components/terraform_notification.vue | 53 +- .../projects/terraform_notification/constants.js | 3 + .../projects/terraform_notification/index.js | 14 +- .../prometheus_alerts/components/reset_key.vue | 3 +- .../protected_branches/protected_branch_create.js | 2 +- .../javascripts/ref/components/ref_selector.vue | 3 +- .../releases/components/release_block.vue | 6 +- .../javascripts/reports/components/issue_body.js | 16 +- .../javascripts/reports/components/report_item.vue | 6 +- .../repository/components/blob_content_viewer.vue | 6 +- .../components/blob_viewers/image_viewer.vue | 19 + .../repository/components/blob_viewers/index.js | 6 + .../repository/components/last_commit.vue | 10 +- .../repository/components/preview/index.vue | 7 +- .../repository/components/table/index.vue | 4 +- .../repository/components/table/row.vue | 7 +- .../repository/components/tree_content.vue | 21 +- app/assets/javascripts/repository/constants.js | 2 + .../javascripts/repository/mixins/preload.js | 3 +- app/assets/javascripts/repository/pages/blob.vue | 15 + app/assets/javascripts/rest_api.js | 2 +- app/assets/javascripts/right_sidebar.js | 7 +- .../runner/admin_runners/admin_runners_app.vue | 32 +- .../components/runner_filtered_search_bar.vue | 88 +- .../runner/components/runner_update_form.vue | 2 +- .../search_tokens/status_token_config.js | 32 + .../runner/components/search_tokens/tag_token.vue | 1 + .../components/search_tokens/tag_token_config.js | 12 + .../components/search_tokens/type_token_config.js | 20 + app/assets/javascripts/runner/constants.js | 6 + .../runner/graphql/get_group_runners.query.graphql | 35 + .../runner/group_runners/group_runners_app.vue | 137 +- .../javascripts/runner/group_runners/index.js | 11 +- .../javascripts/runner/runner_search_utils.js | 1 - .../search/highlight_blob_search_result.js | 2 +- app/assets/javascripts/search/store/actions.js | 2 +- app/assets/javascripts/search/store/utils.js | 4 +- .../security_configuration/components/constants.js | 15 + app/assets/javascripts/sentry/sentry_config.js | 1 - .../set_status_modal/set_status_modal_wrapper.vue | 8 +- .../components/assignees/assignee_title.vue | 2 +- .../assignees/sidebar_assignees_widget.vue | 3 +- .../sidebar/components/labels/sidebar_labels.vue | 5 - .../sidebar/components/lock/issuable_lock_form.vue | 2 +- .../participants/sidebar_participants_widget.vue | 6 + .../components/reviewers/reviewer_title.vue | 2 +- .../sidebar/components/sidebar_dropdown_widget.vue | 1 + .../sidebar/components/sidebar_editable_item.vue | 2 +- .../components/time_tracking/spent_only_pane.vue | 3 +- app/assets/javascripts/sidebar/mount_sidebar.js | 58 +- .../sidebar/services/sidebar_service.js | 5 - app/assets/javascripts/sidebar/sidebar_bundle.js | 6 +- app/assets/javascripts/sidebar/sidebar_mediator.js | 17 - .../javascripts/sidebar/stores/sidebar_store.js | 14 - .../javascripts/sidebar/track_invite_members.js | 6 +- app/assets/javascripts/snippet/snippet_show.js | 4 +- .../components/snippet_description_view.vue | 6 +- .../renderers/render_identifier_instance_text.js | 2 +- app/assets/javascripts/tracking/constants.js | 4 + app/assets/javascripts/tracking/index.js | 7 +- app/assets/javascripts/tracking/tracking.js | 40 +- app/assets/javascripts/tracking/utils.js | 24 + app/assets/javascripts/user_popovers.js | 4 - app/assets/javascripts/users_select/index.js | 5 - .../components/mr_widget_related_links.vue | 12 +- .../components/mr_widget_suggest_pipeline.vue | 4 +- .../components/review_app_link.vue | 2 +- .../components/states/commits_header.vue | 7 +- .../components/states/merge_checks_failed.vue | 75 + .../components/states/mr_widget_rebase.vue | 3 +- .../components/states/new_ready_to_merge.vue | 49 + .../components/states/nothing_to_merge.vue | 9 +- .../components/states/ready_to_merge.vue | 21 +- .../components/states/unresolved_discussions.vue | 2 +- .../components/states/work_in_progress.vue | 2 +- .../components/terraform/terraform_plan.vue | 2 +- .../vue_merge_request_widget/constants.js | 2 + .../javascripts/vue_merge_request_widget/index.js | 7 +- .../mixins/ready_to_merge.js | 8 + .../vue_merge_request_widget/mr_widget_options.vue | 20 +- .../states/new_ready_to_merge.query.graphql | 9 + .../stores/get_state_key.js | 6 +- .../stores/mr_widget_store.js | 9 + .../vue_merge_request_widget/stores/state_maps.js | 2 + .../components/system_notes/system_note.vue | 3 +- .../vue_shared/components/awards_list.vue | 11 +- .../components/blob_viewers/simple_viewer.vue | 5 +- .../vue_shared/components/code_block.vue | 7 +- .../components/color_picker/color_picker.vue | 2 +- .../javascripts/vue_shared/components/commit.vue | 28 +- .../content_viewer/viewers/markdown_viewer.vue | 7 +- .../vue_shared/components/diff_stats_dropdown.vue | 159 ++ .../components/filtered_search_bar/constants.js | 17 +- .../filtered_search_bar/filtered_search_utils.js | 11 +- .../filtered_search_bar/tokens/milestone_token.vue | 12 +- .../vue_shared/components/header_ci_component.vue | 21 +- .../issuable/init_issuable_header_warning.js | 12 +- .../issuable/issuable_header_warnings.vue | 24 +- .../components/issue/related_issuable_item.vue | 7 +- .../vue_shared/components/markdown/field.vue | 22 +- .../components/markdown/suggestion_diff_header.vue | 3 +- .../vue_shared/components/markdown/toolbar.vue | 2 +- .../components/notes/noteable_warning.vue | 5 +- .../vue_shared/components/notes/system_note.vue | 7 +- .../paginated_table_with_search_and_tabs.vue | 15 +- .../project_selector/project_list_item.vue | 3 +- .../vue_shared/components/registry/title_area.vue | 21 +- .../runner_aws_deployments_modal.vue | 8 +- .../components/settings/settings_block.stories.js | 26 + .../components/settings/settings_block.vue | 84 +- .../sidebar/labels_select_vue/dropdown_value.vue | 6 +- .../sidebar/labels_select_vue/label_item.vue | 2 +- .../labels_select_widget/dropdown_button.vue | 42 - .../labels_select_widget/dropdown_contents.vue | 132 +- .../dropdown_contents_create_view.vue | 29 + .../dropdown_contents_labels_view.vue | 145 +- .../labels_select_widget/dropdown_title.vue | 40 - .../labels_select_widget/dropdown_value.vue | 13 +- .../graphql/create_label.mutation.graphql | 2 - .../sidebar/labels_select_widget/label_item.vue | 83 +- .../labels_select_widget/labels_select_root.vue | 278 +--- .../sidebar/labels_select_widget/store/actions.js | 12 - .../sidebar/labels_select_widget/store/getters.js | 52 - .../sidebar/labels_select_widget/store/index.js | 12 - .../labels_select_widget/store/mutation_types.js | 8 - .../labels_select_widget/store/mutations.js | 50 - .../sidebar/labels_select_widget/store/state.js | 28 - .../sidebar/labels_select_widget/utils.js | 22 + .../storage_counter/usage_graph.stories.js | 38 + .../components/storage_counter/usage_graph.vue | 148 ++ .../vue_shared/components/timezone_dropdown.vue | 2 +- .../components/user_popover/user_popover.vue | 23 +- .../vue_shared/security_reports/constants.js | 1 + .../security_reports/store/modules/sast/state.js | 2 - .../store/modules/secret_detection/state.js | 2 - .../webpack_non_compiled_placeholder.js | 22 +- .../javascripts/whats_new/components/feature.vue | 6 +- .../javascripts/work_items/components/app.vue | 9 + .../work_items/graphql/typedefs.graphql | 0 app/assets/javascripts/work_items/index.js | 13 + 550 files changed, 9735 insertions(+), 9239 deletions(-) create mode 100644 app/assets/javascripts/boards/components/board_app.vue delete mode 100644 app/assets/javascripts/boards/components/board_card_deprecated.vue delete mode 100644 app/assets/javascripts/boards/components/board_card_layout_deprecated.vue delete mode 100644 app/assets/javascripts/boards/components/board_column_deprecated.vue delete mode 100644 app/assets/javascripts/boards/components/board_list_deprecated.vue delete mode 100644 app/assets/javascripts/boards/components/board_list_header_deprecated.vue delete mode 100644 app/assets/javascripts/boards/components/board_new_issue_deprecated.vue delete mode 100644 app/assets/javascripts/boards/components/board_sidebar.js delete mode 100644 app/assets/javascripts/boards/components/boards_selector_deprecated.vue delete mode 100644 app/assets/javascripts/boards/components/issue_card_inner_deprecated.vue delete mode 100644 app/assets/javascripts/boards/components/issue_time_estimate_deprecated.vue delete mode 100644 app/assets/javascripts/boards/components/new_list_dropdown.js delete mode 100644 app/assets/javascripts/boards/components/project_select_deprecated.vue delete mode 100644 app/assets/javascripts/boards/ee_functions.js create mode 100644 app/assets/javascripts/boards/graphql/group_board_iterations.query.graphql create mode 100644 app/assets/javascripts/boards/graphql/project_board_iterations.query.graphql delete mode 100644 app/assets/javascripts/boards/models/assignee.js delete mode 100644 app/assets/javascripts/boards/models/issue.js delete mode 100644 app/assets/javascripts/boards/models/iteration.js delete mode 100644 app/assets/javascripts/boards/models/label.js delete mode 100644 app/assets/javascripts/boards/models/list.js delete mode 100644 app/assets/javascripts/boards/models/milestone.js delete mode 100644 app/assets/javascripts/boards/models/project.js delete mode 100644 app/assets/javascripts/boards/stores/boards_store.js delete mode 100644 app/assets/javascripts/boards/stores/boards_store_ee.js create mode 100644 app/assets/javascripts/commit/pipelines/utils.js create mode 100644 app/assets/javascripts/content_editor/components/wrappers/table_cell_base.vue create mode 100644 app/assets/javascripts/content_editor/components/wrappers/table_cell_body.vue create mode 100644 app/assets/javascripts/content_editor/components/wrappers/table_cell_header.vue create mode 100644 app/assets/javascripts/content_editor/content_editor.stories.js create mode 100644 app/assets/javascripts/content_editor/extensions/audio.js create mode 100644 app/assets/javascripts/content_editor/extensions/description_item.js create mode 100644 app/assets/javascripts/content_editor/extensions/description_list.js create mode 100644 app/assets/javascripts/content_editor/extensions/division.js create mode 100644 app/assets/javascripts/content_editor/extensions/figure.js create mode 100644 app/assets/javascripts/content_editor/extensions/figure_caption.js create mode 100644 app/assets/javascripts/content_editor/extensions/html_marks.js create mode 100644 app/assets/javascripts/content_editor/extensions/playable.js create mode 100644 app/assets/javascripts/content_editor/extensions/video.js create mode 100644 app/assets/javascripts/content_editor/services/feature_flags.js create mode 100644 app/assets/javascripts/content_editor/services/mark_utils.js create mode 100644 app/assets/javascripts/content_editor/services/markdown_sourcemap.js create mode 100644 app/assets/javascripts/content_editor/services/serialization_helpers.js delete mode 100644 app/assets/javascripts/cycle_analytics/components/banner.vue create mode 100644 app/assets/javascripts/deprecated_notes.js delete mode 100644 app/assets/javascripts/diffs/utils/preferences.js delete mode 100644 app/assets/javascripts/due_date_select.js create mode 100644 app/assets/javascripts/header_search/components/app.vue create mode 100644 app/assets/javascripts/header_search/components/header_search_default_items.vue create mode 100644 app/assets/javascripts/header_search/components/header_search_scoped_items.vue create mode 100644 app/assets/javascripts/header_search/constants.js create mode 100644 app/assets/javascripts/header_search/index.js create mode 100644 app/assets/javascripts/header_search/store/actions.js create mode 100644 app/assets/javascripts/header_search/store/getters.js create mode 100644 app/assets/javascripts/header_search/store/index.js create mode 100644 app/assets/javascripts/header_search/store/mutation_types.js create mode 100644 app/assets/javascripts/header_search/store/mutations.js create mode 100644 app/assets/javascripts/header_search/store/state.js create mode 100644 app/assets/javascripts/import_entities/import_groups/components/import_actions_cell.vue create mode 100644 app/assets/javascripts/import_entities/import_groups/components/import_source_cell.vue delete mode 100644 app/assets/javascripts/init_changes_dropdown.js create mode 100644 app/assets/javascripts/init_deprecated_notes.js create mode 100644 app/assets/javascripts/init_diff_stats_dropdown.js delete mode 100644 app/assets/javascripts/init_notes.js create mode 100644 app/assets/javascripts/invite_members/components/import_a_project_modal.vue create mode 100644 app/assets/javascripts/invite_members/components/project_select.vue create mode 100644 app/assets/javascripts/invite_members/init_import_a_project_modal.js delete mode 100644 app/assets/javascripts/issues_list/queries/get_issues_count.query.graphql create mode 100644 app/assets/javascripts/issues_list/queries/get_issues_counts.query.graphql create mode 100644 app/assets/javascripts/issues_list/queries/iteration.fragment.graphql create mode 100644 app/assets/javascripts/issues_list/queries/label.fragment.graphql create mode 100644 app/assets/javascripts/issues_list/queries/milestone.fragment.graphql create mode 100644 app/assets/javascripts/issues_list/queries/user.fragment.graphql create mode 100644 app/assets/javascripts/jobs/components/table/event_hub.js create mode 100644 app/assets/javascripts/jobs/components/table/graphql/fragments/job.fragment.graphql create mode 100644 app/assets/javascripts/jobs/components/table/graphql/mutations/job_cancel.mutation.graphql create mode 100644 app/assets/javascripts/jobs/components/table/graphql/mutations/job_play.mutation.graphql create mode 100644 app/assets/javascripts/jobs/components/table/graphql/mutations/job_retry.mutation.graphql create mode 100644 app/assets/javascripts/jobs/components/table/graphql/mutations/job_unschedule.mutation.graphql delete mode 100644 app/assets/javascripts/learn_gitlab/track_learn_gitlab.js create mode 100644 app/assets/javascripts/lib/apollo/instrumentation_link.js create mode 100644 app/assets/javascripts/lib/logger/hello.js create mode 100644 app/assets/javascripts/lib/logger/hello_deferred.js create mode 100644 app/assets/javascripts/lib/logger/index.js create mode 100644 app/assets/javascripts/main_jh.js delete mode 100644 app/assets/javascripts/notes.js create mode 100644 app/assets/javascripts/notes/components/comment_type_dropdown.vue create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/components/details/metadata/composer.vue create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/components/details/metadata/conan.vue create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/components/details/metadata/maven.vue create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/components/details/metadata/nuget.vue create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/components/details/metadata/pypi.vue create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/components/list/package_search.vue create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/components/list/package_title.vue create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/components/list/packages_list.vue create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/components/list/packages_list_app.vue create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/components/list/tokens/package_type_token.vue create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/pages/list.js create mode 100644 app/assets/javascripts/pages/groups/new/toggle_invite_members.js create mode 100644 app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab.vue delete mode 100644 app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab_a.vue delete mode 100644 app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab_b.vue create mode 100644 app/assets/javascripts/pages/projects/new/components/new_project_url_select.vue create mode 100644 app/assets/javascripts/pages/projects/new/queries/search_namespaces_where_user_can_create_projects.query.graphql create mode 100644 app/assets/javascripts/pages/projects/usage_quotas/index.js create mode 100644 app/assets/javascripts/pages/projects/work_items/index/index.js delete mode 100644 app/assets/javascripts/pipeline_editor/graphql/mutations/update_commit_sha.mutation.graphql delete mode 100644 app/assets/javascripts/pipeline_editor/graphql/queries/client/commit_sha.graphql delete mode 100644 app/assets/javascripts/pipelines/components/graph/accessors.js create mode 100644 app/assets/javascripts/pipelines/components/pipelines_list/tokens/constants.js create mode 100644 app/assets/javascripts/pipelines/pipeline_test_details.js create mode 100644 app/assets/javascripts/projects/storage_counter/components/app.vue create mode 100644 app/assets/javascripts/projects/storage_counter/components/storage_table.vue create mode 100644 app/assets/javascripts/projects/storage_counter/constants.js create mode 100644 app/assets/javascripts/projects/storage_counter/index.js create mode 100644 app/assets/javascripts/projects/storage_counter/queries/project_storage.query.graphql create mode 100644 app/assets/javascripts/projects/storage_counter/utils.js create mode 100644 app/assets/javascripts/projects/terraform_notification/constants.js create mode 100644 app/assets/javascripts/repository/components/blob_viewers/image_viewer.vue create mode 100644 app/assets/javascripts/runner/components/search_tokens/status_token_config.js create mode 100644 app/assets/javascripts/runner/components/search_tokens/tag_token_config.js create mode 100644 app/assets/javascripts/runner/components/search_tokens/type_token_config.js create mode 100644 app/assets/javascripts/runner/graphql/get_group_runners.query.graphql create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/states/merge_checks_failed.vue create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/states/new_ready_to_merge.vue create mode 100644 app/assets/javascripts/vue_merge_request_widget/queries/states/new_ready_to_merge.query.graphql create mode 100644 app/assets/javascripts/vue_shared/components/diff_stats_dropdown.vue create mode 100644 app/assets/javascripts/vue_shared/components/settings/settings_block.stories.js delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_button.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_title.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/actions.js delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/getters.js delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/index.js delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/mutation_types.js delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/mutations.js delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/state.js create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/utils.js create mode 100644 app/assets/javascripts/vue_shared/components/storage_counter/usage_graph.stories.js create mode 100644 app/assets/javascripts/vue_shared/components/storage_counter/usage_graph.vue create mode 100644 app/assets/javascripts/work_items/components/app.vue create mode 100644 app/assets/javascripts/work_items/graphql/typedefs.graphql create mode 100644 app/assets/javascripts/work_items/index.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/alert_management/list.js b/app/assets/javascripts/alert_management/list.js index e9d19f18ab5..57d1f135606 100644 --- a/app/assets/javascripts/alert_management/list.js +++ b/app/assets/javascripts/alert_management/list.js @@ -39,6 +39,7 @@ export default () => { return defaultDataIdFromObject(object); }, }, + assumeImmutableResults: true, }, ), }); diff --git a/app/assets/javascripts/analytics/shared/utils.js b/app/assets/javascripts/analytics/shared/utils.js index 84189b675f2..52901d4c5bb 100644 --- a/app/assets/javascripts/analytics/shared/utils.js +++ b/app/assets/javascripts/analytics/shared/utils.js @@ -1,4 +1,9 @@ +import dateFormat from 'dateformat'; +import { dateFormats } from './constants'; + export const filterBySearchTerm = (data = [], searchTerm = '', filterByKey = 'name') => { if (!searchTerm?.length) return data; return data.filter((item) => item[filterByKey].toLowerCase().includes(searchTerm.toLowerCase())); }; + +export const toYmd = (date) => dateFormat(date, dateFormats.isoDate); diff --git a/app/assets/javascripts/analytics/usage_trends/index.js b/app/assets/javascripts/analytics/usage_trends/index.js index d1880b09f15..3e85832edcf 100644 --- a/app/assets/javascripts/analytics/usage_trends/index.js +++ b/app/assets/javascripts/analytics/usage_trends/index.js @@ -6,7 +6,7 @@ import UsageTrendsApp from './components/app.vue'; Vue.use(VueApollo); const apolloProvider = new VueApollo({ - defaultClient: createDefaultClient(), + defaultClient: createDefaultClient({}, { assumeImmutableResults: true }), }); export default () => { diff --git a/app/assets/javascripts/api.js b/app/assets/javascripts/api.js index 84a5d5ae4b3..01e463c1965 100644 --- a/app/assets/javascripts/api.js +++ b/app/assets/javascripts/api.js @@ -870,6 +870,14 @@ const Api = { return axios.put(url, freezePeriod); }, + deleteFreezePeriod(id, freezePeriodId) { + const url = Api.buildUrl(this.freezePeriodPath) + .replace(':id', encodeURIComponent(id)) + .replace(':freeze_period_id', encodeURIComponent(freezePeriodId)); + + return axios.delete(url); + }, + trackRedisCounterEvent(event) { if (!gon.features?.usageDataApi) { return null; diff --git a/app/assets/javascripts/api/projects_api.js b/app/assets/javascripts/api/projects_api.js index 1cd7fb0b954..b018db9a02d 100644 --- a/app/assets/javascripts/api/projects_api.js +++ b/app/assets/javascripts/api/projects_api.js @@ -3,6 +3,7 @@ import axios from '../lib/utils/axios_utils'; import { buildApiUrl } from './api_utils'; const PROJECTS_PATH = '/api/:version/projects.json'; +const PROJECT_IMPORT_MEMBERS_PATH = '/api/:version/projects/:id/import_project_members/:project_id'; export function getProjects(query, options, callback = () => {}) { const url = buildApiUrl(PROJECTS_PATH); @@ -25,3 +26,10 @@ export function getProjects(query, options, callback = () => {}) { return { data, headers }; }); } + +export function importProjectMembers(sourceId, targetId) { + const url = buildApiUrl(PROJECT_IMPORT_MEMBERS_PATH) + .replace(':id', sourceId) + .replace(':project_id', targetId); + return axios.post(url); +} diff --git a/app/assets/javascripts/authentication/two_factor_auth/components/recovery_codes.vue b/app/assets/javascripts/authentication/two_factor_auth/components/recovery_codes.vue index f89600fbed3..fe801cd460f 100644 --- a/app/assets/javascripts/authentication/two_factor_auth/components/recovery_codes.vue +++ b/app/assets/javascripts/authentication/two_factor_auth/components/recovery_codes.vue @@ -165,7 +165,7 @@ export default { :title="$options.i18n.proceedButton" variant="confirm" data-qa-selector="proceed_button" - data-track-event="click_button" + data-track-action="click_button" :data-track-label="`${$options.trackingLabelPrefix}proceed_button`" >{{ $options.i18n.proceedButton }} diff --git a/app/assets/javascripts/autosave.js b/app/assets/javascripts/autosave.js index 0a05e0d44ce..8381dcec9c3 100644 --- a/app/assets/javascripts/autosave.js +++ b/app/assets/javascripts/autosave.js @@ -6,7 +6,7 @@ export default class Autosave { constructor(field, key, fallbackKey, lockVersion) { this.field = field; - this.isLocalStorageAvailable = AccessorUtilities.isLocalStorageAccessSafe(); + this.isLocalStorageAvailable = AccessorUtilities.canUseLocalStorage(); if (key.join != null) { key = key.join('/'); } diff --git a/app/assets/javascripts/badges/components/badge_form.vue b/app/assets/javascripts/badges/components/badge_form.vue index 7e605099655..2c7e878f044 100644 --- a/app/assets/javascripts/badges/components/badge_form.vue +++ b/app/assets/javascripts/badges/components/badge_form.vue @@ -1,6 +1,5 @@ @@ -184,7 +187,7 @@ export default {
-

+

-

+

-/* eslint-disable vue/no-v-html */ import { GlButton } from '@gitlab/ui'; import { mapActions, mapGetters, mapState } from 'vuex'; import NoteableNote from '~/notes/components/noteable_note.vue'; @@ -106,7 +105,7 @@ export default {

diff --git a/app/assets/javascripts/batch_comments/components/review_bar.vue b/app/assets/javascripts/batch_comments/components/review_bar.vue index 080a5543e53..bce13751448 100644 --- a/app/assets/javascripts/batch_comments/components/review_bar.vue +++ b/app/assets/javascripts/batch_comments/components/review_bar.vue @@ -1,5 +1,6 @@ + + diff --git a/app/assets/javascripts/blob/pipeline_tour_success_modal.vue b/app/assets/javascripts/blob/pipeline_tour_success_modal.vue index fdaa4b082f7..a3278f8bde2 100644 --- a/app/assets/javascripts/blob/pipeline_tour_success_modal.vue +++ b/app/assets/javascripts/blob/pipeline_tour_success_modal.vue @@ -124,7 +124,7 @@ export default { :href="goToMergeRequestPath" :data-track-property="humanAccess" :data-track-value="$options.goToTrackValueMergeRequest" - :data-track-event="$options.trackEvent" + :data-track-action="$options.trackEvent" :data-track-label="trackLabel" > {{ $options.i18n.mergeRequestButton }} @@ -135,7 +135,7 @@ export default { variant="success" :data-track-property="humanAccess" :data-track-value="$options.goToTrackValuePipelines" - :data-track-event="$options.trackEvent" + :data-track-action="$options.trackEvent" :data-track-label="trackLabel" > {{ $options.i18n.pipelinesButton }} diff --git a/app/assets/javascripts/blob/suggest_gitlab_ci_yml/components/popover.vue b/app/assets/javascripts/blob/suggest_gitlab_ci_yml/components/popover.vue index aee8bf15e44..e0b0857f7b4 100644 --- a/app/assets/javascripts/blob/suggest_gitlab_ci_yml/components/popover.vue +++ b/app/assets/javascripts/blob/suggest_gitlab_ci_yml/components/popover.vue @@ -121,7 +121,7 @@ export default { icon="close" :data-track-property="humanAccess" :data-track-value="$options.dismissTrackValue" - :data-track-event="$options.clickTrackValue" + :data-track-action="$options.clickTrackValue" :data-track-label="trackLabel" @click="onDismiss" /> diff --git a/app/assets/javascripts/boards/boards_util.js b/app/assets/javascripts/boards/boards_util.js index 3219d74f85f..d113a1d39d8 100644 --- a/app/assets/javascripts/boards/boards_util.js +++ b/app/assets/javascripts/boards/boards_util.js @@ -1,6 +1,5 @@ import { sortBy, cloneDeep } from 'lodash'; -import { getIdFromGraphQLId } from '~/graphql_shared/utils'; -import { ListType } from './constants'; +import { ListType, MilestoneIDs } from './constants'; export function getMilestone() { return null; @@ -49,12 +48,10 @@ export function formatListIssues(listIssues) { return { ...map, [list.id]: sortedIssues.map((i) => { - const id = getIdFromGraphQLId(i.id); + const { id } = i; const listIssue = { ...i, - id, - fullId: i.id, labels: i.labels?.nodes || [], assignees: i.assignees?.nodes || [], }; @@ -108,7 +105,10 @@ export function formatIssueInput(issueInput, boardConfig) { return { ...issueInput, - milestoneId: milestoneId ? fullMilestoneId(milestoneId) : null, + milestoneId: + milestoneId && milestoneId !== MilestoneIDs.ANY + ? fullMilestoneId(milestoneId) + : issueInput?.milestoneId, labelIds: [...labelIds, ...(labels?.map((l) => fullLabelId(l)) || [])], assigneeIds: [...assigneeIds, ...(assigneeId ? [fullUserId(assigneeId)] : [])], }; diff --git a/app/assets/javascripts/boards/components/board_add_new_column.vue b/app/assets/javascripts/boards/components/board_add_new_column.vue index d4b559add6e..22ad619e76b 100644 --- a/app/assets/javascripts/boards/components/board_add_new_column.vue +++ b/app/assets/javascripts/boards/components/board_add_new_column.vue @@ -2,9 +2,6 @@ import { GlFormRadio, GlFormRadioGroup, GlTooltipDirective as GlTooltip } from '@gitlab/ui'; import { mapActions, mapGetters, mapState } from 'vuex'; import BoardAddNewColumnForm from '~/boards/components/board_add_new_column_form.vue'; -import { ListType } from '~/boards/constants'; -import boardsStore from '~/boards/stores/boards_store'; -import { getIdFromGraphQLId } from '~/graphql_shared/utils'; export default { components: { @@ -24,7 +21,7 @@ export default { }, computed: { ...mapState(['labels', 'labelsLoading']), - ...mapGetters(['getListByLabelId', 'shouldUseGraphQL']), + ...mapGetters(['getListByLabelId']), columnForSelected() { return this.getListByLabelId(this.selectedId); }, @@ -34,17 +31,6 @@ export default { }, methods: { ...mapActions(['createList', 'fetchLabels', 'highlightList', 'setAddColumnFormVisibility']), - highlight(listId) { - if (this.shouldUseGraphQL) { - this.highlightList(listId); - } else { - const list = boardsStore.state.lists.find(({ id }) => id === listId); - list.highlighted = true; - setTimeout(() => { - list.highlighted = false; - }, 2000); - } - }, addList() { if (!this.selectedLabel) { return; @@ -54,23 +40,11 @@ export default { if (this.columnForSelected) { const listId = this.columnForSelected.id; - this.highlight(listId); + this.highlightList(listId); return; } - if (this.shouldUseGraphQL) { - this.createList({ labelId: this.selectedId }); - } else { - const listObj = { - labelId: getIdFromGraphQLId(this.selectedId), - title: this.selectedLabel.title, - position: boardsStore.state.lists.length - 2, - list_type: ListType.label, - label: this.selectedLabel, - }; - - boardsStore.new(listObj); - } + this.createList({ labelId: this.selectedId }); }, filterItems(searchTerm) { diff --git a/app/assets/javascripts/boards/components/board_app.vue b/app/assets/javascripts/boards/components/board_app.vue new file mode 100644 index 00000000000..28f4a267077 --- /dev/null +++ b/app/assets/javascripts/boards/components/board_app.vue @@ -0,0 +1,29 @@ + + + diff --git a/app/assets/javascripts/boards/components/board_card_deprecated.vue b/app/assets/javascripts/boards/components/board_card_deprecated.vue deleted file mode 100644 index e12a2836f67..00000000000 --- a/app/assets/javascripts/boards/components/board_card_deprecated.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - diff --git a/app/assets/javascripts/boards/components/board_card_inner.vue b/app/assets/javascripts/boards/components/board_card_inner.vue index 5658a34e9a6..db80d48239b 100644 --- a/app/assets/javascripts/boards/components/board_card_inner.vue +++ b/app/assets/javascripts/boards/components/board_card_inner.vue @@ -214,10 +214,19 @@ export default { class="confidential-icon gl-mr-2" :aria-label="__('Confidential')" /> + {{ item.title }} diff --git a/app/assets/javascripts/boards/components/board_card_layout_deprecated.vue b/app/assets/javascripts/boards/components/board_card_layout_deprecated.vue deleted file mode 100644 index 3381e4c3a7d..00000000000 --- a/app/assets/javascripts/boards/components/board_card_layout_deprecated.vue +++ /dev/null @@ -1,101 +0,0 @@ - - - diff --git a/app/assets/javascripts/boards/components/board_column_deprecated.vue b/app/assets/javascripts/boards/components/board_column_deprecated.vue deleted file mode 100644 index 7c090dfaa53..00000000000 --- a/app/assets/javascripts/boards/components/board_column_deprecated.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - diff --git a/app/assets/javascripts/boards/components/board_content.vue b/app/assets/javascripts/boards/components/board_content.vue index 4df6ff75249..27ea2e7a608 100644 --- a/app/assets/javascripts/boards/components/board_content.vue +++ b/app/assets/javascripts/boards/components/board_content.vue @@ -5,31 +5,22 @@ import Draggable from 'vuedraggable'; import { mapState, mapGetters, mapActions } from 'vuex'; import BoardAddNewColumn from 'ee_else_ce/boards/components/board_add_new_column.vue'; import defaultSortableConfig from '~/sortable/sortable_config'; -import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import { DraggableItemTypes } from '../constants'; import BoardColumn from './board_column.vue'; -import BoardColumnDeprecated from './board_column_deprecated.vue'; export default { draggableItemTypes: DraggableItemTypes, components: { BoardAddNewColumn, BoardColumn, - BoardColumnDeprecated, BoardContentSidebar: () => import('~/boards/components/board_content_sidebar.vue'), EpicBoardContentSidebar: () => import('ee_component/boards/components/epic_board_content_sidebar.vue'), EpicsSwimlanes: () => import('ee_component/boards/components/epics_swimlanes.vue'), GlAlert, }, - mixins: [glFeatureFlagMixin()], inject: ['canAdminList'], props: { - lists: { - type: Array, - required: false, - default: () => [], - }, disabled: { type: Boolean, required: true, @@ -37,20 +28,15 @@ export default { }, computed: { ...mapState(['boardLists', 'error', 'addColumnForm']), - ...mapGetters(['isSwimlanesOn', 'isEpicBoard']), - useNewBoardColumnComponent() { - return this.glFeatures.graphqlBoardLists || this.isSwimlanesOn || this.isEpicBoard; - }, + ...mapGetters(['isSwimlanesOn', 'isEpicBoard', 'isIssueBoard']), addColumnFormVisible() { return this.addColumnForm?.visible; }, boardListsToUse() { - return this.useNewBoardColumnComponent - ? sortBy([...Object.values(this.boardLists)], 'position') - : this.lists; + return sortBy([...Object.values(this.boardLists)], 'position'); }, canDragColumns() { - return (this.isEpicBoard || this.glFeatures.graphqlBoardLists) && this.canAdminList; + return this.canAdminList; }, boardColumnWrapper() { return this.canDragColumns ? Draggable : 'div'; @@ -68,9 +54,6 @@ export default { return this.canDragColumns ? options : {}; }, - boardColumnComponent() { - return this.useNewBoardColumnComponent ? BoardColumn : BoardColumnDeprecated; - }, }, methods: { ...mapActions(['moveList', 'unsetError']), @@ -95,8 +78,7 @@ export default { class="boards-list gl-w-full gl-py-5 gl-px-3 gl-white-space-nowrap" @end="moveList" > - - +

diff --git a/app/assets/javascripts/boards/components/board_content_sidebar.vue b/app/assets/javascripts/boards/components/board_content_sidebar.vue index 7a936e75676..e0105d63d99 100644 --- a/app/assets/javascripts/boards/components/board_content_sidebar.vue +++ b/app/assets/javascripts/boards/components/board_content_sidebar.vue @@ -96,7 +96,7 @@ export default {