Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
5838993b5f
commit
b2e2c43b3c
527 changed files with 1798 additions and 2456 deletions
714
.prettierignore
714
.prettierignore
|
@ -9,717 +9,3 @@ doc/api/graphql/reference/gitlab_schema.graphql
|
|||
*.css
|
||||
*.scss
|
||||
*.md
|
||||
|
||||
## stoic-merkle
|
||||
app/assets/javascripts/filtered_search/stores/recent_searches_store.js
|
||||
app/assets/javascripts/filtered_search/visual_token_value.js
|
||||
app/assets/javascripts/flash.js
|
||||
app/assets/javascripts/fly_out_nav.js
|
||||
app/assets/javascripts/frequent_items/components/app.vue
|
||||
app/assets/javascripts/frequent_items/index.js
|
||||
app/assets/javascripts/frequent_items/store/actions.js
|
||||
app/assets/javascripts/frequent_items/store/getters.js
|
||||
app/assets/javascripts/frequent_items/store/mutations.js
|
||||
app/assets/javascripts/frequent_items/utils.js
|
||||
app/assets/javascripts/gfm_auto_complete.js
|
||||
app/assets/javascripts/gl_field_errors.js
|
||||
app/assets/javascripts/gl_form.js
|
||||
app/assets/javascripts/gpg_badges.js
|
||||
app/assets/javascripts/grafana_integration/store/actions.js
|
||||
app/assets/javascripts/grafana_integration/store/index.js
|
||||
app/assets/javascripts/graphql_shared/utils.js
|
||||
app/assets/javascripts/group.js
|
||||
app/assets/javascripts/group_settings/components/shared_runners_form.vue
|
||||
app/assets/javascripts/groups/components/app.vue
|
||||
app/assets/javascripts/groups/components/visibility_level_dropdown.vue
|
||||
app/assets/javascripts/groups/init_invite_members_banner.js
|
||||
app/assets/javascripts/groups/members/index.js
|
||||
app/assets/javascripts/groups/members/utils.js
|
||||
app/assets/javascripts/groups/store/groups_store.js
|
||||
app/assets/javascripts/groups/transfer_dropdown.js
|
||||
app/assets/javascripts/groups_select.js
|
||||
app/assets/javascripts/helpers/event_hub_factory.js
|
||||
app/assets/javascripts/helpers/monitor_helper.js
|
||||
app/assets/javascripts/helpers/startup_css_helper.js
|
||||
app/assets/javascripts/ide/commit_icon.js
|
||||
|
||||
## great-curie
|
||||
app/assets/javascripts/ide/components/commit_sidebar/list_item.vue
|
||||
app/assets/javascripts/ide/components/file_templates/bar.vue
|
||||
app/assets/javascripts/ide/components/file_templates/dropdown.vue
|
||||
app/assets/javascripts/ide/components/ide.vue
|
||||
app/assets/javascripts/ide/components/ide_sidebar_nav.vue
|
||||
app/assets/javascripts/ide/components/new_dropdown/upload.vue
|
||||
app/assets/javascripts/ide/components/panes/collapsible_sidebar.vue
|
||||
app/assets/javascripts/ide/components/preview/clientside.vue
|
||||
app/assets/javascripts/ide/components/preview/navigator.vue
|
||||
app/assets/javascripts/ide/components/repo_commit_section.vue
|
||||
app/assets/javascripts/ide/components/repo_editor.vue
|
||||
app/assets/javascripts/ide/ide_router.js
|
||||
app/assets/javascripts/ide/lib/common/disposable.js
|
||||
app/assets/javascripts/ide/lib/common/model.js
|
||||
app/assets/javascripts/ide/lib/create_file_diff.js
|
||||
app/assets/javascripts/ide/lib/decorations/controller.js
|
||||
app/assets/javascripts/ide/lib/diff/controller.js
|
||||
app/assets/javascripts/ide/lib/diff/diff.js
|
||||
app/assets/javascripts/ide/lib/diff/diff_worker.js
|
||||
app/assets/javascripts/ide/lib/editor.js
|
||||
app/assets/javascripts/ide/lib/editor_options.js
|
||||
app/assets/javascripts/ide/lib/editorconfig/parser.js
|
||||
app/assets/javascripts/ide/lib/editorconfig/rules_mapper.js
|
||||
app/assets/javascripts/ide/lib/errors.js
|
||||
app/assets/javascripts/ide/lib/files.js
|
||||
app/assets/javascripts/ide/lib/mirror.js
|
||||
app/assets/javascripts/ide/services/index.js
|
||||
app/assets/javascripts/ide/services/terminals.js
|
||||
app/assets/javascripts/ide/stores/actions.js
|
||||
app/assets/javascripts/ide/stores/actions/file.js
|
||||
app/assets/javascripts/ide/stores/actions/merge_request.js
|
||||
app/assets/javascripts/ide/stores/actions/project.js
|
||||
app/assets/javascripts/ide/stores/actions/tree.js
|
||||
|
||||
## gifted-euclid
|
||||
app/assets/javascripts/ide/stores/extend.js
|
||||
app/assets/javascripts/ide/stores/getters.js
|
||||
app/assets/javascripts/ide/stores/modules/branches/actions.js
|
||||
app/assets/javascripts/ide/stores/modules/branches/mutations.js
|
||||
app/assets/javascripts/ide/stores/modules/commit/actions.js
|
||||
app/assets/javascripts/ide/stores/modules/commit/getters.js
|
||||
app/assets/javascripts/ide/stores/modules/editor/setup.js
|
||||
app/assets/javascripts/ide/stores/modules/file_templates/actions.js
|
||||
app/assets/javascripts/ide/stores/modules/file_templates/getters.js
|
||||
app/assets/javascripts/ide/stores/modules/merge_requests/actions.js
|
||||
app/assets/javascripts/ide/stores/modules/merge_requests/mutations.js
|
||||
app/assets/javascripts/ide/stores/modules/pane/getters.js
|
||||
app/assets/javascripts/ide/stores/modules/pipelines/actions.js
|
||||
app/assets/javascripts/ide/stores/modules/pipelines/mutations.js
|
||||
app/assets/javascripts/ide/stores/modules/pipelines/utils.js
|
||||
app/assets/javascripts/ide/stores/modules/terminal/actions/checks.js
|
||||
app/assets/javascripts/ide/stores/modules/terminal/actions/session_controls.js
|
||||
app/assets/javascripts/ide/stores/modules/terminal/actions/session_status.js
|
||||
app/assets/javascripts/ide/stores/modules/terminal/getters.js
|
||||
app/assets/javascripts/ide/stores/modules/terminal/messages.js
|
||||
app/assets/javascripts/ide/stores/modules/terminal/utils.js
|
||||
app/assets/javascripts/ide/stores/modules/terminal_sync/actions.js
|
||||
app/assets/javascripts/ide/stores/mutations.js
|
||||
app/assets/javascripts/ide/stores/mutations/file.js
|
||||
app/assets/javascripts/ide/stores/mutations/tree.js
|
||||
app/assets/javascripts/ide/stores/plugins/terminal.js
|
||||
app/assets/javascripts/ide/stores/plugins/terminal_sync.js
|
||||
app/assets/javascripts/ide/stores/utils.js
|
||||
app/assets/javascripts/ide/sync_router_and_store.js
|
||||
app/assets/javascripts/ide/utils.js
|
||||
app/assets/javascripts/image_diff/helpers/badge_helper.js
|
||||
|
||||
## nervous-mclaren
|
||||
app/assets/javascripts/image_diff/init_discussion_tab.js
|
||||
app/assets/javascripts/image_diff/replaced_image_diff.js
|
||||
app/assets/javascripts/image_diff/view_types.js
|
||||
app/assets/javascripts/import_entities/import_groups/components/import_table.vue
|
||||
app/assets/javascripts/import_entities/import_groups/components/import_table_row.vue
|
||||
app/assets/javascripts/import_entities/import_groups/graphql/client_factory.js
|
||||
app/assets/javascripts/import_entities/import_groups/graphql/services/source_groups_manager.js
|
||||
app/assets/javascripts/import_entities/import_groups/graphql/services/status_poller.js
|
||||
app/assets/javascripts/import_entities/import_projects/store/actions.js
|
||||
app/assets/javascripts/import_entities/import_projects/store/getters.js
|
||||
app/assets/javascripts/import_entities/import_projects/store/mutations.js
|
||||
app/assets/javascripts/init_changes_dropdown.js
|
||||
app/assets/javascripts/integrations/edit/components/dynamic_field.vue
|
||||
app/assets/javascripts/integrations/edit/components/override_dropdown.vue
|
||||
app/assets/javascripts/integrations/edit/store/getters.js
|
||||
app/assets/javascripts/integrations/integration_settings_form.js
|
||||
app/assets/javascripts/invite_member/init_invite_member_modal.js
|
||||
app/assets/javascripts/invite_member/init_invite_member_trigger.js
|
||||
app/assets/javascripts/invite_members/components/invite_members_modal.vue
|
||||
app/assets/javascripts/invite_members/components/members_token_select.vue
|
||||
app/assets/javascripts/invite_members/init_invite_members_modal.js
|
||||
app/assets/javascripts/invite_members/init_invite_members_trigger.js
|
||||
app/assets/javascripts/issuable_bulk_update_actions.js
|
||||
app/assets/javascripts/issuable_bulk_update_sidebar.js
|
||||
app/assets/javascripts/issuable_context.js
|
||||
app/assets/javascripts/issuable_form.js
|
||||
app/assets/javascripts/issuable_index.js
|
||||
app/assets/javascripts/issuable_list/components/issuable_list_root.vue
|
||||
app/assets/javascripts/issuable_suggestions/components/app.vue
|
||||
app/assets/javascripts/issue.js
|
||||
app/assets/javascripts/issue_show/components/app.vue
|
||||
|
||||
## beautiful-franklin
|
||||
app/assets/javascripts/issue_show/components/fields/description_template.vue
|
||||
app/assets/javascripts/issue_show/issue.js
|
||||
app/assets/javascripts/issue_show/utils/parse_data.js
|
||||
app/assets/javascripts/issues_list/components/issuable.vue
|
||||
app/assets/javascripts/issues_list/components/issuables_list_app.vue
|
||||
app/assets/javascripts/issues_list/index.js
|
||||
app/assets/javascripts/jira_connect/index.js
|
||||
app/assets/javascripts/jira_import/components/jira_import_form.vue
|
||||
app/assets/javascripts/jira_import/utils/cache_update.js
|
||||
app/assets/javascripts/jira_import/utils/jira_import_utils.js
|
||||
app/assets/javascripts/jobs/components/job_app.vue
|
||||
app/assets/javascripts/jobs/components/log/line.vue
|
||||
app/assets/javascripts/jobs/components/manual_variables_form.vue
|
||||
app/assets/javascripts/jobs/components/trigger_block.vue
|
||||
app/assets/javascripts/jobs/store/actions.js
|
||||
app/assets/javascripts/jobs/store/getters.js
|
||||
app/assets/javascripts/jobs/store/utils.js
|
||||
app/assets/javascripts/labels_select.js
|
||||
app/assets/javascripts/lazy_loader.js
|
||||
app/assets/javascripts/lib/chrome_84_icon_fix.js
|
||||
app/assets/javascripts/lib/dompurify.js
|
||||
app/assets/javascripts/lib/graphql.js
|
||||
app/assets/javascripts/lib/utils/ajax_cache.js
|
||||
app/assets/javascripts/lib/utils/apollo_startup_js_link.js
|
||||
app/assets/javascripts/lib/utils/autosave.js
|
||||
app/assets/javascripts/lib/utils/axios_startup_calls.js
|
||||
app/assets/javascripts/lib/utils/axios_utils.js
|
||||
app/assets/javascripts/lib/utils/bootstrap_linked_tabs.js
|
||||
app/assets/javascripts/lib/utils/chart_utils.js
|
||||
app/assets/javascripts/lib/utils/color_utils.js
|
||||
app/assets/javascripts/lib/utils/common_utils.js
|
||||
app/assets/javascripts/lib/utils/css_utils.js
|
||||
app/assets/javascripts/lib/utils/datetime_range.js
|
||||
app/assets/javascripts/lib/utils/datetime_utility.js
|
||||
app/assets/javascripts/lib/utils/dom_utils.js
|
||||
app/assets/javascripts/lib/utils/forms.js
|
||||
app/assets/javascripts/lib/utils/grammar.js
|
||||
app/assets/javascripts/lib/utils/icon_utils.js
|
||||
app/assets/javascripts/lib/utils/notify.js
|
||||
app/assets/javascripts/lib/utils/number_utils.js
|
||||
app/assets/javascripts/lib/utils/poll.js
|
||||
app/assets/javascripts/lib/utils/poll_until_complete.js
|
||||
app/assets/javascripts/lib/utils/set.js
|
||||
app/assets/javascripts/lib/utils/simple_poll.js
|
||||
app/assets/javascripts/lib/utils/sticky.js
|
||||
app/assets/javascripts/lib/utils/text_markdown.js
|
||||
app/assets/javascripts/lib/utils/text_utility.js
|
||||
app/assets/javascripts/lib/utils/type_utility.js
|
||||
|
||||
## musing-khayyam
|
||||
app/assets/javascripts/performance_bar/services/performance_bar_service.js
|
||||
app/assets/javascripts/performance_bar/stores/performance_bar_store.js
|
||||
app/assets/javascripts/persistent_user_callout.js
|
||||
app/assets/javascripts/persistent_user_callouts.js
|
||||
app/assets/javascripts/pipeline_editor/graphql/resolvers.js
|
||||
app/assets/javascripts/pipeline_new/components/pipeline_new_form.vue
|
||||
app/assets/javascripts/pipeline_new/utils/format_refs.js
|
||||
app/assets/javascripts/pipelines/components/dag/dag.vue
|
||||
app/assets/javascripts/pipelines/components/dag/dag_graph.vue
|
||||
app/assets/javascripts/pipelines/components/dag/drawing_utils.js
|
||||
app/assets/javascripts/pipelines/components/dag/interactions.js
|
||||
app/assets/javascripts/pipelines/components/graph/graph_component_legacy.vue
|
||||
app/assets/javascripts/pipelines/components/graph/utils.js
|
||||
app/assets/javascripts/pipelines/components/header_component.vue
|
||||
app/assets/javascripts/pipelines/components/parsing_utils.js
|
||||
app/assets/javascripts/pipelines/components/pipeline_graph/drawing_utils.js
|
||||
app/assets/javascripts/pipelines/components/pipeline_graph/pipeline_graph.vue
|
||||
app/assets/javascripts/pipelines/components/pipelines_list/pipelines.vue
|
||||
app/assets/javascripts/pipelines/components/pipelines_list/pipelines_filtered_search.vue
|
||||
app/assets/javascripts/pipelines/components/pipelines_list/stage.vue
|
||||
app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_branch_name_token.vue
|
||||
app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_status_token.vue
|
||||
app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_tag_name_token.vue
|
||||
app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_trigger_author_token.vue
|
||||
app/assets/javascripts/pipelines/components/unwrapping_utils.js
|
||||
app/assets/javascripts/pipelines/mixins/graph_pipeline_bundle_mixin.js
|
||||
app/assets/javascripts/pipelines/mixins/pipelines.js
|
||||
app/assets/javascripts/pipelines/pipeline_details_bundle.js
|
||||
app/assets/javascripts/pipelines/pipeline_details_header.js
|
||||
app/assets/javascripts/pipelines/pipeline_details_mediator.js
|
||||
app/assets/javascripts/pipelines/stores/pipeline_store.js
|
||||
|
||||
## musing-engelbart
|
||||
app/assets/javascripts/pipelines/stores/test_reports/getters.js
|
||||
app/assets/javascripts/pipelines/stores/test_reports/index.js
|
||||
app/assets/javascripts/pipelines/stores/test_reports/utils.js
|
||||
app/assets/javascripts/pipelines/utils.js
|
||||
app/assets/javascripts/popovers/components/popovers.vue
|
||||
app/assets/javascripts/popovers/index.js
|
||||
app/assets/javascripts/profile/account/components/update_username.vue
|
||||
app/assets/javascripts/profile/add_ssh_key_validation.js
|
||||
app/assets/javascripts/profile/preferences/profile_preferences_bundle.js
|
||||
app/assets/javascripts/profile/profile.js
|
||||
app/assets/javascripts/project_find_file.js
|
||||
app/assets/javascripts/project_select.js
|
||||
app/assets/javascripts/project_select_combo_button.js
|
||||
app/assets/javascripts/project_visibility.js
|
||||
app/assets/javascripts/projects/commit_box/info/load_branches.js
|
||||
app/assets/javascripts/projects/commits/components/author_select.vue
|
||||
app/assets/javascripts/projects/commits/index.js
|
||||
app/assets/javascripts/projects/commits/store/actions.js
|
||||
app/assets/javascripts/projects/experiment_new_project_creation/components/app.vue
|
||||
app/assets/javascripts/projects/pipelines/charts/components/app.vue
|
||||
app/assets/javascripts/projects/pipelines/charts/components/app_legacy.vue
|
||||
app/assets/javascripts/projects/pipelines/charts/index.js
|
||||
app/assets/javascripts/projects/project_new.js
|
||||
app/assets/javascripts/projects/settings/components/shared_runners_toggle.vue
|
||||
app/assets/javascripts/projects/settings_service_desk/components/service_desk_root.vue
|
||||
app/assets/javascripts/projects/tree/components/commit_pipeline_status_component.vue
|
||||
app/assets/javascripts/prometheus_alerts/components/reset_key.vue
|
||||
app/assets/javascripts/prometheus_metrics/custom_metrics.js
|
||||
app/assets/javascripts/prometheus_metrics/prometheus_metrics.js
|
||||
app/assets/javascripts/protected_branches/protected_branch_create.js
|
||||
app/assets/javascripts/protected_branches/protected_branch_edit.js
|
||||
|
||||
## sweet-wilbur
|
||||
app/assets/javascripts/read_more.js
|
||||
app/assets/javascripts/ref/components/ref_results_section.vue
|
||||
app/assets/javascripts/ref/components/ref_selector.vue
|
||||
app/assets/javascripts/ref/stores/actions.js
|
||||
app/assets/javascripts/ref/stores/mutations.js
|
||||
app/assets/javascripts/ref_select_dropdown.js
|
||||
app/assets/javascripts/registry/explorer/components/details_page/tags_list.vue
|
||||
app/assets/javascripts/registry/explorer/components/registry_breadcrumb.vue
|
||||
app/assets/javascripts/registry/explorer/pages/details.vue
|
||||
app/assets/javascripts/registry/settings/components/registry_settings_app.vue
|
||||
app/assets/javascripts/registry/settings/components/settings_form.vue
|
||||
app/assets/javascripts/registry/settings/graphql/utils/cache_update.js
|
||||
app/assets/javascripts/registry/settings/utils.js
|
||||
app/assets/javascripts/related_issues/components/related_issuable_input.vue
|
||||
app/assets/javascripts/related_issues/components/related_issues_block.vue
|
||||
app/assets/javascripts/related_issues/components/related_issues_root.vue
|
||||
app/assets/javascripts/related_issues/index.js
|
||||
app/assets/javascripts/related_issues/stores/related_issues_store.js
|
||||
app/assets/javascripts/related_merge_requests/index.js
|
||||
app/assets/javascripts/related_merge_requests/store/actions.js
|
||||
app/assets/javascripts/releases/components/release_block_assets.vue
|
||||
app/assets/javascripts/releases/components/release_block_milestone_info.vue
|
||||
app/assets/javascripts/releases/components/releases_sort.vue
|
||||
app/assets/javascripts/releases/mount_edit.js
|
||||
app/assets/javascripts/releases/mount_index.js
|
||||
app/assets/javascripts/releases/mount_new.js
|
||||
app/assets/javascripts/releases/mount_show.js
|
||||
app/assets/javascripts/releases/stores/getters.js
|
||||
app/assets/javascripts/releases/stores/modules/detail/actions.js
|
||||
app/assets/javascripts/releases/stores/modules/detail/getters.js
|
||||
app/assets/javascripts/releases/stores/modules/detail/index.js
|
||||
app/assets/javascripts/releases/stores/modules/detail/mutations.js
|
||||
|
||||
## awesome-chaum
|
||||
app/assets/javascripts/releases/stores/modules/list/actions.js
|
||||
app/assets/javascripts/releases/stores/modules/list/index.js
|
||||
app/assets/javascripts/releases/util.js
|
||||
app/assets/javascripts/reports/accessibility_report/store/getters.js
|
||||
app/assets/javascripts/reports/accessibility_report/store/index.js
|
||||
app/assets/javascripts/reports/codequality_report/store/actions.js
|
||||
app/assets/javascripts/reports/codequality_report/store/getters.js
|
||||
app/assets/javascripts/reports/codequality_report/store/index.js
|
||||
app/assets/javascripts/reports/codequality_report/store/utils/codequality_comparison.js
|
||||
app/assets/javascripts/reports/codequality_report/workers/codequality_comparison_worker.js
|
||||
app/assets/javascripts/reports/components/grouped_issues_list.vue
|
||||
app/assets/javascripts/reports/components/grouped_test_reports_app.vue
|
||||
app/assets/javascripts/reports/components/issues_list.vue
|
||||
app/assets/javascripts/reports/components/report_item.vue
|
||||
app/assets/javascripts/reports/store/getters.js
|
||||
app/assets/javascripts/reports/store/mutations.js
|
||||
app/assets/javascripts/reports/store/utils.js
|
||||
app/assets/javascripts/repository/components/breadcrumbs.vue
|
||||
app/assets/javascripts/repository/components/directory_download_links.vue
|
||||
app/assets/javascripts/repository/components/last_commit.vue
|
||||
app/assets/javascripts/repository/components/table/parent_row.vue
|
||||
app/assets/javascripts/repository/components/tree_content.vue
|
||||
app/assets/javascripts/repository/graphql.js
|
||||
app/assets/javascripts/repository/router.js
|
||||
app/assets/javascripts/repository/utils/commit.js
|
||||
app/assets/javascripts/repository/utils/readme.js
|
||||
app/assets/javascripts/search/highlight_blob_search_result.js
|
||||
app/assets/javascripts/search/sidebar/index.js
|
||||
app/assets/javascripts/search/store/actions.js
|
||||
app/assets/javascripts/search/store/index.js
|
||||
app/assets/javascripts/search/topbar/index.js
|
||||
|
||||
## keen-sutherland
|
||||
app/assets/javascripts/search_autocomplete.js
|
||||
app/assets/javascripts/self_monitor/store/actions.js
|
||||
app/assets/javascripts/self_monitor/store/index.js
|
||||
app/assets/javascripts/sentry_error_stack_trace/index.js
|
||||
app/assets/javascripts/serverless/components/area.vue
|
||||
app/assets/javascripts/serverless/store/actions.js
|
||||
app/assets/javascripts/serverless/store/getters.js
|
||||
app/assets/javascripts/serverless/utils.js
|
||||
app/assets/javascripts/set_status_modal/utils.js
|
||||
app/assets/javascripts/sidebar/components/assignees/assignees.vue
|
||||
app/assets/javascripts/sidebar/components/assignees/assignees_realtime.vue
|
||||
app/assets/javascripts/sidebar/components/assignees/collapsed_assignee_list.vue
|
||||
app/assets/javascripts/sidebar/components/confidential/edit_form_buttons.vue
|
||||
app/assets/javascripts/sidebar/components/reviewers/collapsed_reviewer_list.vue
|
||||
app/assets/javascripts/sidebar/components/reviewers/reviewers.vue
|
||||
app/assets/javascripts/sidebar/components/severity/sidebar_severity.vue
|
||||
app/assets/javascripts/sidebar/components/time_tracking/sidebar_time_tracking.vue
|
||||
app/assets/javascripts/sidebar/lib/sidebar_move_issue.js
|
||||
app/assets/javascripts/sidebar/mount_milestone_sidebar.js
|
||||
app/assets/javascripts/sidebar/mount_sidebar.js
|
||||
app/assets/javascripts/sidebar/sidebar_mediator.js
|
||||
app/assets/javascripts/sidebar/utils.js
|
||||
app/assets/javascripts/single_file_diff.js
|
||||
app/assets/javascripts/smart_interval.js
|
||||
app/assets/javascripts/snippet/collapsible_input.js
|
||||
app/assets/javascripts/snippets/components/edit.vue
|
||||
app/assets/javascripts/snippets/components/snippet_blob_actions_edit.vue
|
||||
app/assets/javascripts/snippets/components/snippet_blob_edit.vue
|
||||
app/assets/javascripts/snippets/components/snippet_blob_view.vue
|
||||
app/assets/javascripts/snippets/components/snippet_header.vue
|
||||
app/assets/javascripts/snippets/mixins/snippets.js
|
||||
|
||||
## gifted-dewdney
|
||||
ee/app/assets/javascripts/oncall_schedules/utils/cache_updates.js
|
||||
ee/app/assets/javascripts/oncall_schedules/utils/common_utils.js
|
||||
ee/app/assets/javascripts/pages/admin/application_settings/ci_cd/ci_template.js
|
||||
ee/app/assets/javascripts/pages/admin/application_settings/index.js
|
||||
ee/app/assets/javascripts/pages/admin/application_settings/integrations/index.js
|
||||
ee/app/assets/javascripts/pages/admin/emails/show/admin_email_select.js
|
||||
ee/app/assets/javascripts/pages/admin/geo/index.js
|
||||
ee/app/assets/javascripts/pages/admin/licenses/new/index.js
|
||||
ee/app/assets/javascripts/pages/admin/users/pipeline_minutes/reset_button.vue
|
||||
ee/app/assets/javascripts/pages/groups/saml_providers/saml_members/store/actions.js
|
||||
ee/app/assets/javascripts/pages/groups/saml_providers/saml_members/store/index.js
|
||||
ee/app/assets/javascripts/pages/projects/pipelines/show/codequality_report.js
|
||||
ee/app/assets/javascripts/pages/projects/pipelines/show/license_report.js
|
||||
ee/app/assets/javascripts/pages/projects/settings/ci_cd/show/index.js
|
||||
ee/app/assets/javascripts/pages/projects/settings/repository/show/ee_mirror_repos.js
|
||||
ee/app/assets/javascripts/path_locks.js
|
||||
ee/app/assets/javascripts/projects/merge_requests/blocking_mr_input.js
|
||||
ee/app/assets/javascripts/protected_environments/protected_environment_create.js
|
||||
ee/app/assets/javascripts/protected_environments/protected_environment_edit.js
|
||||
ee/app/assets/javascripts/protected_tags/protected_tag_create.js
|
||||
ee/app/assets/javascripts/protected_tags/protected_tag_edit.js
|
||||
ee/app/assets/javascripts/registrations/groups/new/index.js
|
||||
ee/app/assets/javascripts/related_items_tree/components/related_items_tree_app.vue
|
||||
ee/app/assets/javascripts/related_items_tree/related_items_tree_bundle.js
|
||||
ee/app/assets/javascripts/related_items_tree/store/actions.js
|
||||
ee/app/assets/javascripts/related_items_tree/store/getters.js
|
||||
ee/app/assets/javascripts/related_items_tree/utils/epic_utils.js
|
||||
ee/app/assets/javascripts/repository/index.js
|
||||
ee/app/assets/javascripts/repository/utils/commit.js
|
||||
ee/app/assets/javascripts/requirements/components/requirement_item.vue
|
||||
ee/app/assets/javascripts/requirements/components/requirements_root.vue
|
||||
|
||||
## gifted-black
|
||||
ee/app/assets/javascripts/requirements/requirements_bundle.js
|
||||
ee/app/assets/javascripts/roadmap/components/epics_list_section.vue
|
||||
ee/app/assets/javascripts/roadmap/components/roadmap_filters.vue
|
||||
ee/app/assets/javascripts/roadmap/roadmap_bundle.js
|
||||
ee/app/assets/javascripts/roadmap/store/actions.js
|
||||
ee/app/assets/javascripts/roadmap/store/getters.js
|
||||
ee/app/assets/javascripts/roadmap/store/mutations.js
|
||||
ee/app/assets/javascripts/roadmap/utils/epic_utils.js
|
||||
ee/app/assets/javascripts/roadmap/utils/roadmap_item_utils.js
|
||||
ee/app/assets/javascripts/saml_providers/dirty_form_checker.js
|
||||
ee/app/assets/javascripts/saml_providers/saml_settings_form.js
|
||||
ee/app/assets/javascripts/saml_providers/scim_token_toggle_area.js
|
||||
ee/app/assets/javascripts/search/highlight_blob_search_result.js
|
||||
ee/app/assets/javascripts/security_configuration/components/auto_fix_settings.vue
|
||||
ee/app/assets/javascripts/security_configuration/components/create_merge_request_button.vue
|
||||
ee/app/assets/javascripts/security_configuration/dast_profiles/components/dast_profiles.vue
|
||||
ee/app/assets/javascripts/security_configuration/dast_profiles/components/dast_profiles_list.vue
|
||||
ee/app/assets/javascripts/security_configuration/dast_profiles/graphql/cache_utils.js
|
||||
ee/app/assets/javascripts/security_configuration/dast_scanner_profiles/components/dast_scanner_profile_form.vue
|
||||
ee/app/assets/javascripts/security_configuration/dast_site_profiles_form/components/dast_site_profile_form.vue
|
||||
ee/app/assets/javascripts/security_configuration/modules/configuration/actions.js
|
||||
ee/app/assets/javascripts/security_configuration/sast/components/configuration_form.vue
|
||||
ee/app/assets/javascripts/security_configuration/sast/components/dynamic_fields.vue
|
||||
ee/app/assets/javascripts/security_configuration/sast/components/form_input.vue
|
||||
ee/app/assets/javascripts/security_configuration/sast/components/utils.js
|
||||
ee/app/assets/javascripts/security_dashboard/components/filters/standard_filter.vue
|
||||
ee/app/assets/javascripts/security_dashboard/components/first_class_group_security_dashboard_vulnerabilities.vue
|
||||
ee/app/assets/javascripts/security_dashboard/components/first_class_instance_security_dashboard_vulnerabilities.vue
|
||||
ee/app/assets/javascripts/security_dashboard/components/first_class_project_manager/project_manager.vue
|
||||
ee/app/assets/javascripts/security_dashboard/components/first_class_vulnerability_chart.vue
|
||||
ee/app/assets/javascripts/security_dashboard/components/first_class_vulnerability_severities.vue
|
||||
ee/app/assets/javascripts/security_dashboard/components/loading_error.vue
|
||||
ee/app/assets/javascripts/security_dashboard/components/project_security_charts.vue
|
||||
ee/app/assets/javascripts/security_dashboard/components/selection_summary.vue
|
||||
ee/app/assets/javascripts/security_dashboard/components/vulnerability_chart_buttons.vue
|
||||
ee/app/assets/javascripts/security_dashboard/components/vulnerability_count_list.vue
|
||||
ee/app/assets/javascripts/security_dashboard/components/vulnerability_count_list_layout.vue
|
||||
ee/app/assets/javascripts/security_dashboard/components/vulnerability_list.vue
|
||||
|
||||
## confident-dijkstra
|
||||
ee/app/assets/javascripts/security_dashboard/helpers.js
|
||||
ee/app/assets/javascripts/security_dashboard/instance_dashboard_settings_init.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/filters/actions.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/pipeline_jobs/actions.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/pipeline_jobs/getters.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/project_selector/actions.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/project_selector/mutations.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/project_selector/utils/add_page_info.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/projects/actions.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/unscanned_projects/actions.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/unscanned_projects/getters.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/unscanned_projects/utils.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/vulnerabilities/actions.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/vulnerabilities/getters.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/vulnerabilities/mutations.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/vulnerabilities/utils.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/vulnerable_projects/actions.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/vulnerable_projects/getters.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/modules/vulnerable_projects/utils.js
|
||||
ee/app/assets/javascripts/security_dashboard/store/plugins/mediator.js
|
||||
ee/app/assets/javascripts/security_dashboard/utils/first_class_project_manager_utils.js
|
||||
ee/app/assets/javascripts/sidebar/components/status/health_status_dropdown.vue
|
||||
ee/app/assets/javascripts/sidebar/components/status/status.vue
|
||||
ee/app/assets/javascripts/sidebar/mount_sidebar.js
|
||||
ee/app/assets/javascripts/sidebar/sidebar_mediator.js
|
||||
ee/app/assets/javascripts/status_page_settings/store/actions.js
|
||||
ee/app/assets/javascripts/status_page_settings/store/index.js
|
||||
ee/app/assets/javascripts/storage_counter/components/projects_table.vue
|
||||
ee/app/assets/javascripts/storage_counter/components/usage_graph.vue
|
||||
ee/app/assets/javascripts/storage_counter/utils.js
|
||||
ee/app/assets/javascripts/subscriptions/new/store/actions.js
|
||||
ee/app/assets/javascripts/subscriptions/new/store/getters.js
|
||||
ee/app/assets/javascripts/subscriptions/new/store/state.js
|
||||
|
||||
## frosty-cannon
|
||||
ee/app/assets/javascripts/test_case_create/components/test_case_create_root.vue
|
||||
ee/app/assets/javascripts/test_case_create/test_case_create_bundle.js
|
||||
ee/app/assets/javascripts/test_case_list/components/test_case_list_root.vue
|
||||
ee/app/assets/javascripts/test_case_list/test_case_list_bundle.js
|
||||
ee/app/assets/javascripts/test_case_show/components/test_case_show_root.vue
|
||||
ee/app/assets/javascripts/test_case_show/components/test_case_sidebar.vue
|
||||
ee/app/assets/javascripts/test_case_show/mixins/test_case_graphql.js
|
||||
ee/app/assets/javascripts/test_case_show/test_case_show_bundle.js
|
||||
ee/app/assets/javascripts/threat_monitoring/components/alerts/alerts_list.vue
|
||||
ee/app/assets/javascripts/threat_monitoring/components/network_policy_list.vue
|
||||
ee/app/assets/javascripts/threat_monitoring/components/policy_editor/lib/from_yaml.js
|
||||
ee/app/assets/javascripts/threat_monitoring/components/policy_editor/lib/humanize.js
|
||||
ee/app/assets/javascripts/threat_monitoring/components/policy_editor/lib/rules.js
|
||||
ee/app/assets/javascripts/threat_monitoring/components/policy_editor/lib/to_yaml.js
|
||||
ee/app/assets/javascripts/threat_monitoring/components/policy_editor/lib/utils.js
|
||||
ee/app/assets/javascripts/threat_monitoring/components/policy_editor/policy_rule_entity.vue
|
||||
ee/app/assets/javascripts/threat_monitoring/components/statistics_history.vue
|
||||
ee/app/assets/javascripts/threat_monitoring/store/index.js
|
||||
ee/app/assets/javascripts/threat_monitoring/store/modules/network_policies/actions.js
|
||||
ee/app/assets/javascripts/threat_monitoring/store/modules/network_policies/getters.js
|
||||
ee/app/assets/javascripts/threat_monitoring/store/modules/network_policies/mutations.js
|
||||
ee/app/assets/javascripts/threat_monitoring/store/modules/threat_monitoring/actions.js
|
||||
ee/app/assets/javascripts/threat_monitoring/store/modules/threat_monitoring_statistics/actions.js
|
||||
ee/app/assets/javascripts/threat_monitoring/store/modules/threat_monitoring_statistics/index.js
|
||||
ee/app/assets/javascripts/threat_monitoring/store/modules/threat_monitoring_statistics/mutations.js
|
||||
ee/app/assets/javascripts/threat_monitoring/store/utils.js
|
||||
ee/app/assets/javascripts/validators/ip_address.js
|
||||
ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals.vue
|
||||
ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_list.vue
|
||||
ee/app/assets/javascripts/vue_merge_request_widget/components/blocking_merge_requests/blocking_merge_requests_report.vue
|
||||
ee/app/assets/javascripts/vue_merge_request_widget/components/visual_review_app_link.vue
|
||||
|
||||
## pedantic-wu
|
||||
ee/app/assets/javascripts/vue_merge_request_widget/mappers.js
|
||||
ee/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue
|
||||
ee/app/assets/javascripts/vue_merge_request_widget/services/mr_widget_service.js
|
||||
ee/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js
|
||||
ee/app/assets/javascripts/vue_shared/components/accordion/accordion_item.vue
|
||||
ee/app/assets/javascripts/vue_shared/components/gfm_autocomplete/utils.js
|
||||
ee/app/assets/javascripts/vue_shared/components/sidebar/epics_select/store/actions.js
|
||||
ee/app/assets/javascripts/vue_shared/components/sidebar/epics_select/store/getters.js
|
||||
ee/app/assets/javascripts/vue_shared/dashboards/components/project_pipeline.vue
|
||||
ee/app/assets/javascripts/vue_shared/dashboards/store/actions.js
|
||||
ee/app/assets/javascripts/vue_shared/dashboards/store/mutations.js
|
||||
ee/app/assets/javascripts/vue_shared/license_compliance/components/add_license_form_dropdown.vue
|
||||
ee/app/assets/javascripts/vue_shared/license_compliance/components/admin_license_management_row.vue
|
||||
ee/app/assets/javascripts/vue_shared/license_compliance/store/actions.js
|
||||
ee/app/assets/javascripts/vue_shared/license_compliance/store/getters.js
|
||||
ee/app/assets/javascripts/vue_shared/license_compliance/store/mutations.js
|
||||
ee/app/assets/javascripts/vue_shared/license_compliance/store/utils.js
|
||||
ee/app/assets/javascripts/vue_shared/metrics_reports/store/getters.js
|
||||
ee/app/assets/javascripts/vue_shared/metrics_reports/store/mutations.js
|
||||
ee/app/assets/javascripts/vue_shared/security_reports/components/vulnerability_details.vue
|
||||
ee/app/assets/javascripts/vue_shared/security_reports/store/actions.js
|
||||
ee/app/assets/javascripts/vue_shared/security_reports/store/getters.js
|
||||
ee/app/assets/javascripts/vue_shared/security_reports/store/modules/api_fuzzing/actions.js
|
||||
ee/app/assets/javascripts/vue_shared/security_reports/store/modules/api_fuzzing/getters.js
|
||||
ee/app/assets/javascripts/vue_shared/security_reports/store/modules/sast/getters.js
|
||||
ee/app/assets/javascripts/vue_shared/security_reports/store/modules/secret_detection/getters.js
|
||||
ee/app/assets/javascripts/vue_shared/security_reports/store/utils.js
|
||||
ee/app/assets/javascripts/vue_shared/security_reports/store/utils/convert_report_type.js
|
||||
ee/app/assets/javascripts/vue_shared/security_reports/store/utils/get_primary_identifier.js
|
||||
ee/app/assets/javascripts/vulnerabilities/components/details.vue
|
||||
ee/app/assets/javascripts/vulnerabilities/components/footer.vue
|
||||
ee/app/assets/javascripts/vulnerabilities/components/header.vue
|
||||
ee/app/assets/javascripts/vulnerabilities/components/history_entry.vue
|
||||
ee/app/assets/javascripts/vulnerabilities/components/related_issues.vue
|
||||
ee/app/assets/javascripts/vulnerabilities/components/resolution_alert.vue
|
||||
|
||||
## wonderful-proskuriakova
|
||||
ee/app/assets/javascripts/vulnerabilities/helpers.js
|
||||
ee/app/assets/javascripts/vulnerabilities/vulnerabilities_init.js
|
||||
|
||||
## beautiful-benz
|
||||
spec/frontend/monitoring/components/dashboard_actions_menu_spec.js
|
||||
spec/frontend/monitoring/components/dashboard_header_spec.js
|
||||
spec/frontend/monitoring/components/dashboard_panel_spec.js
|
||||
spec/frontend/monitoring/components/dashboard_spec.js
|
||||
spec/frontend/monitoring/components/dashboards_dropdown_spec.js
|
||||
spec/frontend/monitoring/components/duplicate_dashboard_form_spec.js
|
||||
spec/frontend/monitoring/components/embeds/embed_group_spec.js
|
||||
spec/frontend/monitoring/components/graph_group_spec.js
|
||||
spec/frontend/monitoring/components/group_empty_state_spec.js
|
||||
spec/frontend/monitoring/components/links_section_spec.js
|
||||
spec/frontend/monitoring/components/refresh_button_spec.js
|
||||
spec/frontend/monitoring/components/variables/dropdown_field_spec.js
|
||||
spec/frontend/monitoring/fixture_data.js
|
||||
spec/frontend/monitoring/graph_data.js
|
||||
spec/frontend/monitoring/requests/index_spec.js
|
||||
spec/frontend/monitoring/store/actions_spec.js
|
||||
spec/frontend/monitoring/store/getters_spec.js
|
||||
spec/frontend/monitoring/store/mutations_spec.js
|
||||
spec/frontend/monitoring/store/utils_spec.js
|
||||
spec/frontend/monitoring/store_utils.js
|
||||
spec/frontend/monitoring/utils_spec.js
|
||||
spec/frontend/new_branch_spec.js
|
||||
spec/frontend/notebook/cells/code_spec.js
|
||||
spec/frontend/notebook/cells/output/index_spec.js
|
||||
spec/frontend/notebook/cells/prompt_spec.js
|
||||
spec/frontend/notebook/index_spec.js
|
||||
spec/frontend/notes/components/diff_discussion_header_spec.js
|
||||
spec/frontend/notes/components/discussion_counter_spec.js
|
||||
spec/frontend/notes/components/discussion_notes_spec.js
|
||||
spec/frontend/notes/components/discussion_resolve_button_spec.js
|
||||
spec/frontend/notes/components/multiline_comment_utils_spec.js
|
||||
spec/frontend/notes/components/note_actions_spec.js
|
||||
spec/frontend/notes/components/note_attachment_spec.js
|
||||
spec/frontend/notes/components/note_awards_list_spec.js
|
||||
spec/frontend/notes/components/note_body_spec.js
|
||||
spec/frontend/notes/components/note_form_spec.js
|
||||
spec/frontend/notes/components/note_header_spec.js
|
||||
spec/frontend/notes/components/noteable_discussion_spec.js
|
||||
spec/frontend/notes/components/noteable_note_spec.js
|
||||
spec/frontend/notes/components/notes_app_spec.js
|
||||
spec/frontend/notes/components/toggle_replies_widget_spec.js
|
||||
|
||||
## admiring-elion
|
||||
spec/frontend/notes/helpers.js
|
||||
spec/frontend/notes/mixins/discussion_navigation_spec.js
|
||||
spec/frontend/notes/old_notes_spec.js
|
||||
spec/frontend/notes/stores/actions_spec.js
|
||||
spec/frontend/notes/stores/getters_spec.js
|
||||
spec/frontend/notes/stores/mutation_spec.js
|
||||
spec/frontend/oauth_remember_me_spec.js
|
||||
spec/frontend/packages/details/components/additional_metadata_spec.js
|
||||
spec/frontend/packages/details/components/package_history_spec.js
|
||||
spec/frontend/packages/details/store/actions_spec.js
|
||||
spec/frontend/packages/list/components/packages_sort_spec.js
|
||||
spec/frontend/packages/list/stores/actions_spec.js
|
||||
spec/frontend/packages/shared/components/package_path_spec.js
|
||||
spec/frontend/packages/shared/utils_spec.js
|
||||
spec/frontend/pager_spec.js
|
||||
spec/frontend/pages/admin/abuse_reports/abuse_reports_spec.js
|
||||
spec/frontend/pages/admin/application_settings/account_and_limits_spec.js
|
||||
spec/frontend/pages/admin/jobs/index/components/stop_jobs_modal_spec.js
|
||||
spec/frontend/pages/admin/users/components/delete_user_modal_spec.js
|
||||
spec/frontend/pages/admin/users/new/index_spec.js
|
||||
spec/frontend/pages/dashboard/todos/index/todos_spec.js
|
||||
spec/frontend/pages/import/bitbucket_server/components/bitbucket_server_status_table_spec.js
|
||||
spec/frontend/pages/labels/components/promote_label_modal_spec.js
|
||||
spec/frontend/pages/milestones/shared/components/delete_milestone_modal_spec.js
|
||||
spec/frontend/pages/milestones/shared/components/promote_milestone_modal_spec.js
|
||||
spec/frontend/pages/profiles/show/emoji_menu_spec.js
|
||||
spec/frontend/pages/projects/forks/new/components/fork_groups_list_item_spec.js
|
||||
spec/frontend/pages/projects/forks/new/components/fork_groups_list_spec.js
|
||||
spec/frontend/pages/projects/pipeline_schedules/shared/components/interval_pattern_input_spec.js
|
||||
spec/frontend/pages/projects/pipeline_schedules/shared/components/timezone_dropdown_spec.js
|
||||
spec/frontend/pages/projects/shared/permissions/components/project_feature_settings_spec.js
|
||||
spec/frontend/pages/projects/shared/permissions/components/settings_panel_spec.js
|
||||
|
||||
## sweet-colden
|
||||
spec/frontend/pages/search/show/refresh_counts_spec.js
|
||||
spec/frontend/pages/sessions/new/preserve_url_fragment_spec.js
|
||||
spec/frontend/pages/sessions/new/signin_tabs_memoizer_spec.js
|
||||
spec/frontend/pdf/index_spec.js
|
||||
spec/frontend/pdf/page_spec.js
|
||||
spec/frontend/performance_bar/components/detailed_metric_spec.js
|
||||
spec/frontend/performance_bar/stores/performance_bar_store_spec.js
|
||||
spec/frontend/pipeline_editor/components/lint/ci_lint_spec.js
|
||||
spec/frontend/pipeline_editor/pipeline_editor_app_spec.js
|
||||
spec/frontend/pipeline_new/components/pipeline_new_form_spec.js
|
||||
spec/frontend/pipelines/components/dag/dag_graph_spec.js
|
||||
spec/frontend/pipelines/components/dag/dag_spec.js
|
||||
spec/frontend/pipelines/components/pipelines_filtered_search_spec.js
|
||||
spec/frontend/pipelines/graph/action_component_spec.js
|
||||
spec/frontend/pipelines/graph/graph_component_legacy_spec.js
|
||||
spec/frontend/pipelines/graph/job_item_spec.js
|
||||
spec/frontend/pipelines/graph/mock_data.js
|
||||
spec/frontend/pipelines/pipeline_graph/pipeline_graph_spec.js
|
||||
spec/frontend/pipelines/pipeline_url_spec.js
|
||||
spec/frontend/pipelines/pipelines_spec.js
|
||||
spec/frontend/pipelines/pipelines_table_row_spec.js
|
||||
spec/frontend/pipelines/pipelines_table_spec.js
|
||||
spec/frontend/pipelines/stores/pipeline_store_spec.js
|
||||
spec/frontend/pipelines/test_reports/stores/actions_spec.js
|
||||
spec/frontend/pipelines/test_reports/stores/getters_spec.js
|
||||
spec/frontend/pipelines/test_reports/test_suite_table_spec.js
|
||||
spec/frontend/pipelines/test_reports/test_summary_spec.js
|
||||
spec/frontend/pipelines/tokens/pipeline_trigger_author_token_spec.js
|
||||
spec/frontend/pipelines/unwrapping_utils_spec.js
|
||||
spec/frontend/profile/account/components/delete_account_modal_spec.js
|
||||
spec/frontend/project_find_file_spec.js
|
||||
|
||||
## naughty-chebyshev
|
||||
spec/frontend/projects/experiment_new_project_creation/components/app_spec.js
|
||||
spec/frontend/projects/experiment_new_project_creation/components/legacy_container_spec.js
|
||||
spec/frontend/projects/experiment_new_project_creation/components/welcome_spec.js
|
||||
spec/frontend/projects/project_import_gitlab_project_spec.js
|
||||
spec/frontend/projects/settings/access_dropdown_spec.js
|
||||
spec/frontend/projects/settings_service_desk/services/service_desk_service_spec.js
|
||||
spec/frontend/prometheus_metrics/prometheus_metrics_spec.js
|
||||
spec/frontend/ref/components/ref_selector_spec.js
|
||||
spec/frontend/registry/explorer/components/delete_button_spec.js
|
||||
spec/frontend/registry/explorer/components/details_page/delete_alert_spec.js
|
||||
spec/frontend/registry/explorer/components/details_page/delete_modal_spec.js
|
||||
spec/frontend/registry/explorer/components/details_page/tags_list_spec.js
|
||||
spec/frontend/registry/explorer/components/list_page/image_list_row_spec.js
|
||||
spec/frontend/registry/explorer/components/registry_breadcrumb_spec.js
|
||||
spec/frontend/registry/explorer/mock_data.js
|
||||
spec/frontend/registry/explorer/pages/details_spec.js
|
||||
spec/frontend/registry/explorer/pages/list_spec.js
|
||||
spec/frontend/registry/settings/components/expiration_dropdown_spec.js
|
||||
spec/frontend/registry/settings/components/expiration_input_spec.js
|
||||
spec/frontend/registry/settings/components/expiration_run_text_spec.js
|
||||
spec/frontend/registry/settings/components/expiration_toggle_spec.js
|
||||
spec/frontend/registry/settings/components/registry_settings_app_spec.js
|
||||
spec/frontend/registry/settings/components/settings_form_spec.js
|
||||
spec/frontend/registry/settings/mock_data.js
|
||||
spec/frontend/related_merge_requests/components/related_merge_requests_spec.js
|
||||
spec/frontend/related_merge_requests/store/actions_spec.js
|
||||
spec/frontend/releases/components/app_edit_new_spec.js
|
||||
spec/frontend/releases/components/app_index_spec.js
|
||||
spec/frontend/releases/components/app_show_spec.js
|
||||
spec/frontend/releases/components/asset_links_form_spec.js
|
||||
spec/frontend/releases/components/issuable_stats_spec.js
|
||||
spec/frontend/releases/components/release_block_assets_spec.js
|
||||
spec/frontend/releases/components/release_block_milestone_info_spec.js
|
||||
spec/frontend/releases/components/releases_pagination_graphql_spec.js
|
||||
spec/frontend/releases/components/releases_pagination_rest_spec.js
|
||||
spec/frontend/releases/components/releases_pagination_spec.js
|
||||
spec/frontend/releases/components/tag_field_new_spec.js
|
||||
|
||||
## competent-lichterman
|
||||
spec/frontend/releases/stores/modules/detail/actions_spec.js
|
||||
spec/frontend/releases/stores/modules/list/helpers.js
|
||||
spec/frontend/reports/accessibility_report/store/actions_spec.js
|
||||
spec/frontend/reports/codequality_report/store/actions_spec.js
|
||||
spec/frontend/reports/codequality_report/store/utils/codequality_comparison_spec.js
|
||||
spec/frontend/reports/components/grouped_issues_list_spec.js
|
||||
spec/frontend/reports/components/grouped_test_reports_app_spec.js
|
||||
spec/frontend/reports/components/issue_status_icon_spec.js
|
||||
spec/frontend/reports/components/report_section_spec.js
|
||||
spec/frontend/reports/store/actions_spec.js
|
||||
spec/frontend/right_sidebar_spec.js
|
||||
spec/frontend/search/index_spec.js
|
||||
spec/frontend/search/sidebar/components/app_spec.js
|
||||
spec/frontend/search/sidebar/components/confidentiality_filter_spec.js
|
||||
spec/frontend/search/sidebar/components/radio_filter_spec.js
|
||||
spec/frontend/search/sidebar/components/status_filter_spec.js
|
||||
spec/frontend/search/topbar/components/searchable_dropdown_spec.js
|
||||
spec/frontend/search_autocomplete_spec.js
|
||||
spec/frontend/self_monitor/store/actions_spec.js
|
||||
spec/frontend/sentry/sentry_config_spec.js
|
||||
spec/frontend/serverless/components/area_spec.js
|
||||
spec/frontend/serverless/components/function_row_spec.js
|
||||
spec/frontend/serverless/components/missing_prometheus_spec.js
|
||||
spec/frontend/serverless/components/pod_box_spec.js
|
||||
spec/frontend/serverless/components/url_spec.js
|
||||
spec/frontend/serverless/store/actions_spec.js
|
||||
spec/frontend/serverless/utils.js
|
||||
spec/frontend/set_status_modal/set_status_modal_wrapper_spec.js
|
||||
spec/frontend/shared/popover_spec.js
|
||||
spec/frontend/shortcuts_spec.js
|
||||
spec/frontend/sidebar/assignee_title_spec.js
|
||||
|
|
|
@ -19,7 +19,7 @@ class RecentSearchesStore {
|
|||
}
|
||||
|
||||
setRecentSearches(searches = []) {
|
||||
const trimmedSearches = searches.map(search =>
|
||||
const trimmedSearches = searches.map((search) =>
|
||||
typeof search === 'string' ? search.trim() : search,
|
||||
);
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ export default class VisualTokenValue {
|
|||
|
||||
return (
|
||||
UsersCache.retrieve(username)
|
||||
.then(user => {
|
||||
.then((user) => {
|
||||
if (!user) {
|
||||
return;
|
||||
}
|
||||
|
@ -68,9 +68,9 @@ export default class VisualTokenValue {
|
|||
);
|
||||
|
||||
return AjaxCache.retrieve(labelsEndpointWithParams)
|
||||
.then(labels => {
|
||||
.then((labels) => {
|
||||
const matchingLabel = (labels || []).find(
|
||||
label => `~${DropdownUtils.getEscapedText(label.title)}` === tokenValue,
|
||||
(label) => `~${DropdownUtils.getEscapedText(label.title)}` === tokenValue,
|
||||
);
|
||||
|
||||
if (!matchingLabel) {
|
||||
|
@ -96,8 +96,8 @@ export default class VisualTokenValue {
|
|||
);
|
||||
|
||||
return AjaxCache.retrieve(epicsEndpointWithParams)
|
||||
.then(epics => {
|
||||
const matchingEpic = (epics || []).find(epic => epic.id === Number(tokenValue));
|
||||
.then((epics) => {
|
||||
const matchingEpic = (epics || []).find((epic) => epic.id === Number(tokenValue));
|
||||
|
||||
if (!matchingEpic) {
|
||||
return;
|
||||
|
|
|
@ -34,7 +34,7 @@ const hideFlash = (flashEl, fadeTransition = true) => {
|
|||
if (!fadeTransition) flashEl.dispatchEvent(new Event('transitionend'));
|
||||
};
|
||||
|
||||
const createAction = config => `
|
||||
const createAction = (config) => `
|
||||
<a
|
||||
href="${config.href || '#'}"
|
||||
class="flash-action"
|
||||
|
@ -97,7 +97,7 @@ const deprecatedCreateFlash = function deprecatedCreateFlash(
|
|||
if (actionConfig.clickHandler) {
|
||||
flashEl
|
||||
.querySelector('.flash-action')
|
||||
.addEventListener('click', e => actionConfig.clickHandler(e));
|
||||
.addEventListener('click', (e) => actionConfig.clickHandler(e));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -151,7 +151,7 @@ const createFlash = function createFlash({
|
|||
if (actionConfig.clickHandler) {
|
||||
flashEl
|
||||
.querySelector('.flash-action')
|
||||
.addEventListener('click', e => actionConfig.clickHandler(e));
|
||||
.addEventListener('click', (e) => actionConfig.clickHandler(e));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ let sidebar;
|
|||
|
||||
export const mousePos = [];
|
||||
|
||||
export const setSidebar = el => {
|
||||
export const setSidebar = (el) => {
|
||||
sidebar = el;
|
||||
};
|
||||
export const getOpenMenu = () => currentOpenMenu;
|
||||
|
@ -32,7 +32,7 @@ const setHeaderHeight = () => {
|
|||
export const isSidebarCollapsed = () =>
|
||||
sidebar && sidebar.classList.contains(SIDEBAR_COLLAPSED_CLASS);
|
||||
|
||||
export const canShowActiveSubItems = el => {
|
||||
export const canShowActiveSubItems = (el) => {
|
||||
if (el.classList.contains('active') && !isSidebarCollapsed()) {
|
||||
return false;
|
||||
}
|
||||
|
@ -71,7 +71,7 @@ export const calculateTop = (boundingRect, outerHeight) => {
|
|||
: boundingRect.top;
|
||||
};
|
||||
|
||||
export const hideMenu = el => {
|
||||
export const hideMenu = (el) => {
|
||||
if (!el) return;
|
||||
|
||||
const parentEl = el.parentNode;
|
||||
|
@ -112,7 +112,7 @@ export const moveSubItemsToPosition = (el, subItems) => {
|
|||
}
|
||||
};
|
||||
|
||||
export const showSubLevelItems = el => {
|
||||
export const showSubLevelItems = (el) => {
|
||||
const subItems = el.querySelector('.sidebar-sub-level-items');
|
||||
const isIconOnly = subItems && subItems.classList.contains('is-fly-out-only');
|
||||
|
||||
|
@ -139,7 +139,7 @@ export const mouseEnterTopItems = (el, timeout = getHideSubItemsInterval()) => {
|
|||
}, timeout);
|
||||
};
|
||||
|
||||
export const mouseLeaveTopItem = el => {
|
||||
export const mouseLeaveTopItem = (el) => {
|
||||
const subItems = el.querySelector('.sidebar-sub-level-items');
|
||||
|
||||
if (
|
||||
|
@ -152,7 +152,7 @@ export const mouseLeaveTopItem = el => {
|
|||
el.classList.remove(IS_OVER_CLASS);
|
||||
};
|
||||
|
||||
export const documentMouseMove = e => {
|
||||
export const documentMouseMove = (e) => {
|
||||
mousePos.push({
|
||||
x: e.clientX,
|
||||
y: e.clientY,
|
||||
|
@ -161,7 +161,7 @@ export const documentMouseMove = e => {
|
|||
if (mousePos.length > 6) mousePos.shift();
|
||||
};
|
||||
|
||||
export const subItemsMouseLeave = relatedTarget => {
|
||||
export const subItemsMouseLeave = (relatedTarget) => {
|
||||
clearTimeout(timeoutId);
|
||||
|
||||
if (relatedTarget && !relatedTarget.closest(`.${IS_OVER_CLASS}`)) {
|
||||
|
@ -189,15 +189,15 @@ export default () => {
|
|||
|
||||
requestIdleCallback(setHeaderHeight);
|
||||
|
||||
items.forEach(el => {
|
||||
items.forEach((el) => {
|
||||
const subItems = el.querySelector('.sidebar-sub-level-items');
|
||||
|
||||
if (subItems) {
|
||||
subItems.addEventListener('mouseleave', e => subItemsMouseLeave(e.relatedTarget));
|
||||
subItems.addEventListener('mouseleave', (e) => subItemsMouseLeave(e.relatedTarget));
|
||||
}
|
||||
|
||||
el.addEventListener('mouseenter', e => mouseEnterTopItems(e.currentTarget));
|
||||
el.addEventListener('mouseleave', e => mouseLeaveTopItem(e.currentTarget));
|
||||
el.addEventListener('mouseenter', (e) => mouseEnterTopItems(e.currentTarget));
|
||||
el.addEventListener('mouseleave', (e) => mouseLeaveTopItem(e.currentTarget));
|
||||
});
|
||||
|
||||
document.addEventListener('mousemove', documentMouseMove);
|
||||
|
|
|
@ -77,7 +77,7 @@ export default {
|
|||
|
||||
// Check if item already exists in list
|
||||
const itemMatchIndex = storedFrequentItems.findIndex(
|
||||
frequentItem => frequentItem.id === item.id,
|
||||
(frequentItem) => frequentItem.id === item.id,
|
||||
);
|
||||
|
||||
if (itemMatchIndex > -1) {
|
||||
|
|
|
@ -18,7 +18,7 @@ const frequentItemDropdowns = [
|
|||
];
|
||||
|
||||
export default function initFrequentItemDropdowns() {
|
||||
frequentItemDropdowns.forEach(dropdown => {
|
||||
frequentItemDropdowns.forEach((dropdown) => {
|
||||
const { namespace, key } = dropdown;
|
||||
const el = document.getElementById(`js-${namespace}-dropdown`);
|
||||
const navEl = document.getElementById(`nav-${namespace}-dropdown`);
|
||||
|
|
|
@ -59,7 +59,7 @@ export const fetchSearchedItems = ({ state, dispatch }, searchQuery) => {
|
|||
}
|
||||
|
||||
return Api[state.namespace](searchQuery, params)
|
||||
.then(results => {
|
||||
.then((results) => {
|
||||
dispatch('receiveSearchedItemsSuccess', results);
|
||||
})
|
||||
.catch(() => {
|
||||
|
|
|
@ -1 +1 @@
|
|||
export const hasSearchQuery = state => state.searchQuery !== '';
|
||||
export const hasSearchQuery = (state) => state.searchQuery !== '';
|
||||
|
|
|
@ -50,7 +50,7 @@ export default {
|
|||
[types.RECEIVE_SEARCHED_ITEMS_SUCCESS](state, results) {
|
||||
const rawItems = results.data ? results.data : results; // Api.groups returns array, Api.projects returns object
|
||||
Object.assign(state, {
|
||||
items: rawItems.map(rawItem => ({
|
||||
items: rawItems.map((rawItem) => ({
|
||||
id: rawItem.id,
|
||||
name: rawItem.name,
|
||||
namespace: rawItem.name_with_namespace || rawItem.full_name,
|
||||
|
|
|
@ -5,7 +5,7 @@ import { FREQUENT_ITEMS, HOUR_IN_MS } from './constants';
|
|||
|
||||
export const isMobile = () => ['md', 'sm', 'xs'].includes(bp.getBreakpointSize());
|
||||
|
||||
export const getTopFrequentItems = items => {
|
||||
export const getTopFrequentItems = (items) => {
|
||||
if (!items) {
|
||||
return [];
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ export const getTopFrequentItems = items => {
|
|||
? FREQUENT_ITEMS.LIST_COUNT_MOBILE
|
||||
: FREQUENT_ITEMS.LIST_COUNT_DESKTOP;
|
||||
|
||||
const frequentItems = items.filter(item => item.frequency >= FREQUENT_ITEMS.ELIGIBLE_FREQUENCY);
|
||||
const frequentItems = items.filter((item) => item.frequency >= FREQUENT_ITEMS.ELIGIBLE_FREQUENCY);
|
||||
|
||||
if (!frequentItems || frequentItems.length === 0) {
|
||||
return [];
|
||||
|
@ -45,9 +45,9 @@ export const updateExistingFrequentItem = (frequentItem, item) => {
|
|||
};
|
||||
};
|
||||
|
||||
export const sanitizeItem = item => {
|
||||
export const sanitizeItem = (item) => {
|
||||
// Only sanitize if the key exists on the item
|
||||
const maybeSanitize = key => {
|
||||
const maybeSanitize = (key) => {
|
||||
if (!Object.prototype.hasOwnProperty.call(item, key)) {
|
||||
return {};
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ function sanitize(str) {
|
|||
}
|
||||
|
||||
export function membersBeforeSave(members) {
|
||||
return members.map(member => {
|
||||
return members.map((member) => {
|
||||
const GROUP_TYPE = 'Group';
|
||||
|
||||
let title = '';
|
||||
|
@ -156,7 +156,7 @@ class GfmAutoComplete {
|
|||
...this.getDefaultCallbacks(),
|
||||
beforeSave(commands) {
|
||||
if (GfmAutoComplete.isLoading(commands)) return commands;
|
||||
return $.map(commands, c => {
|
||||
return $.map(commands, (c) => {
|
||||
let search = c.name;
|
||||
if (c.aliases.length > 0) {
|
||||
search = `${search} ${c.aliases.join(' ')}`;
|
||||
|
@ -237,7 +237,7 @@ class GfmAutoComplete {
|
|||
});
|
||||
|
||||
// return to the form atwho wants
|
||||
return results.map(name => ({ name }));
|
||||
return results.map((name) => ({ name }));
|
||||
},
|
||||
},
|
||||
});
|
||||
|
@ -288,7 +288,7 @@ class GfmAutoComplete {
|
|||
const subtextNodes = subtext.split(/\n+/g).pop().split(GfmAutoComplete.regexSubtext);
|
||||
|
||||
// Check if @ is followed by '/assign', '/reassign', '/unassign' or '/cc' commands.
|
||||
command = subtextNodes.find(node => {
|
||||
command = subtextNodes.find((node) => {
|
||||
if (Object.values(MEMBER_COMMAND).includes(node)) {
|
||||
return node;
|
||||
}
|
||||
|
@ -298,7 +298,7 @@ class GfmAutoComplete {
|
|||
// Cache assignees list for easier filtering later
|
||||
assignees =
|
||||
SidebarMediator.singleton?.store?.assignees?.map(
|
||||
assignee => `${assignee.username} ${assignee.name}`,
|
||||
(assignee) => `${assignee.username} ${assignee.name}`,
|
||||
) || [];
|
||||
|
||||
const match = GfmAutoComplete.defaultMatcher(flag, subtext, this.app.controllers);
|
||||
|
@ -316,10 +316,10 @@ class GfmAutoComplete {
|
|||
|
||||
if (command === MEMBER_COMMAND.ASSIGN) {
|
||||
// Only include members which are not assigned to Issuable currently
|
||||
return data.filter(member => !assignees.includes(member.search));
|
||||
return data.filter((member) => !assignees.includes(member.search));
|
||||
} else if (command === MEMBER_COMMAND.UNASSIGN) {
|
||||
// Only include members which are assigned to Issuable currently
|
||||
return data.filter(member => assignees.includes(member.search));
|
||||
return data.filter((member) => assignees.includes(member.search));
|
||||
}
|
||||
|
||||
return data;
|
||||
|
@ -346,7 +346,7 @@ class GfmAutoComplete {
|
|||
callbacks: {
|
||||
...this.getDefaultCallbacks(),
|
||||
beforeSave(issues) {
|
||||
return $.map(issues, i => {
|
||||
return $.map(issues, (i) => {
|
||||
if (i.title == null) {
|
||||
return i;
|
||||
}
|
||||
|
@ -380,7 +380,7 @@ class GfmAutoComplete {
|
|||
callbacks: {
|
||||
...this.getDefaultCallbacks(),
|
||||
beforeSave(milestones) {
|
||||
return $.map(milestones, m => {
|
||||
return $.map(milestones, (m) => {
|
||||
if (m.title == null) {
|
||||
return m;
|
||||
}
|
||||
|
@ -413,7 +413,7 @@ class GfmAutoComplete {
|
|||
callbacks: {
|
||||
...this.getDefaultCallbacks(),
|
||||
beforeSave(merges) {
|
||||
return $.map(merges, m => {
|
||||
return $.map(merges, (m) => {
|
||||
if (m.title == null) {
|
||||
return m;
|
||||
}
|
||||
|
@ -454,7 +454,7 @@ class GfmAutoComplete {
|
|||
...this.getDefaultCallbacks(),
|
||||
beforeSave(merges) {
|
||||
if (GfmAutoComplete.isLoading(merges)) return merges;
|
||||
return $.map(merges, m => ({
|
||||
return $.map(merges, (m) => ({
|
||||
title: sanitize(m.title),
|
||||
color: m.color,
|
||||
search: m.title,
|
||||
|
@ -465,7 +465,7 @@ class GfmAutoComplete {
|
|||
const subtextNodes = subtext.split(/\n+/g).pop().split(GfmAutoComplete.regexSubtext);
|
||||
|
||||
// Check if ~ is followed by '/label', '/relabel' or '/unlabel' commands.
|
||||
command = subtextNodes.find(node => {
|
||||
command = subtextNodes.find((node) => {
|
||||
if (
|
||||
node === LABEL_COMMAND.LABEL ||
|
||||
node === LABEL_COMMAND.RELABEL ||
|
||||
|
@ -486,7 +486,7 @@ class GfmAutoComplete {
|
|||
return null;
|
||||
}
|
||||
const lastCandidate = subtext.split(flag).pop();
|
||||
if (labels.find(label => label.title.startsWith(lastCandidate))) {
|
||||
if (labels.find((label) => label.title.startsWith(lastCandidate))) {
|
||||
return lastCandidate;
|
||||
}
|
||||
} else {
|
||||
|
@ -513,10 +513,10 @@ class GfmAutoComplete {
|
|||
// because we want to return all the labels (unfiltered) for that command.
|
||||
if (command === LABEL_COMMAND.LABEL) {
|
||||
// Return labels with set: undefined.
|
||||
return data.filter(label => !label.set);
|
||||
return data.filter((label) => !label.set);
|
||||
} else if (command === LABEL_COMMAND.UNLABEL) {
|
||||
// Return labels with set: true.
|
||||
return data.filter(label => label.set);
|
||||
return data.filter((label) => label.set);
|
||||
}
|
||||
|
||||
return data;
|
||||
|
@ -543,7 +543,7 @@ class GfmAutoComplete {
|
|||
callbacks: {
|
||||
...this.getDefaultCallbacks(),
|
||||
beforeSave(snippets) {
|
||||
return $.map(snippets, m => {
|
||||
return $.map(snippets, (m) => {
|
||||
if (m.title == null) {
|
||||
return m;
|
||||
}
|
||||
|
@ -648,7 +648,7 @@ class GfmAutoComplete {
|
|||
this.loadEmojiData($input, at).catch(() => {});
|
||||
} else if (dataSource) {
|
||||
AjaxCache.retrieve(dataSource, true)
|
||||
.then(data => {
|
||||
.then((data) => {
|
||||
this.loadData($input, at, data);
|
||||
})
|
||||
.catch(() => {
|
||||
|
@ -690,11 +690,11 @@ class GfmAutoComplete {
|
|||
}
|
||||
lookup[key].push({ kind, emoji });
|
||||
};
|
||||
Object.values(emojis).forEach(emoji => {
|
||||
Object.values(emojis).forEach((emoji) => {
|
||||
add(emoji.name, 'name', emoji);
|
||||
add(emoji.d, 'description', emoji);
|
||||
add(emoji.e, 'unicode', emoji);
|
||||
emoji.aliases.forEach(a => add(a, 'alias', emoji));
|
||||
emoji.aliases.forEach((a) => add(a, 'alias', emoji));
|
||||
});
|
||||
this.emojiLookup = lookup;
|
||||
|
||||
|
@ -766,7 +766,7 @@ GfmAutoComplete.atTypeMap = {
|
|||
};
|
||||
|
||||
GfmAutoComplete.typesWithBackendFiltering = ['vulnerabilities'];
|
||||
GfmAutoComplete.isTypeWithBackendFiltering = type =>
|
||||
GfmAutoComplete.isTypeWithBackendFiltering = (type) =>
|
||||
GfmAutoComplete.typesWithBackendFiltering.includes(GfmAutoComplete.atTypeMap[type]);
|
||||
|
||||
function findEmoji(name) {
|
||||
|
|
|
@ -16,14 +16,14 @@ export default class GlFieldErrors {
|
|||
initValidators() {
|
||||
// register selectors here as needed
|
||||
const validateSelectors = [':text', ':password', '[type=email]', '[type=url]', '[type=number]']
|
||||
.map(selector => `input${selector}`)
|
||||
.map((selector) => `input${selector}`)
|
||||
.join(',');
|
||||
|
||||
this.state.inputs = this.form
|
||||
.find(validateSelectors)
|
||||
.toArray()
|
||||
.filter(input => !input.classList.contains(customValidationFlag))
|
||||
.map(input => new GlFieldError({ input, formErrors: this }));
|
||||
.filter((input) => !input.classList.contains(customValidationFlag))
|
||||
.map((input) => new GlFieldError({ input, formErrors: this }));
|
||||
|
||||
this.form.on('submit', GlFieldErrors.catchInvalidFormSubmit);
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ export default class GlFieldErrors {
|
|||
|
||||
/* Public method for triggering validity updates manually */
|
||||
updateFormValidityState() {
|
||||
this.state.inputs.forEach(field => {
|
||||
this.state.inputs.forEach((field) => {
|
||||
if (field.state.submitted) {
|
||||
field.updateValidity();
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ export default class GLForm {
|
|||
|
||||
// Disable autocomplete for keywords which do not have dataSources available
|
||||
const dataSources = (gl.GfmAutoComplete && gl.GfmAutoComplete.dataSources) || {};
|
||||
Object.keys(this.enableGFM).forEach(item => {
|
||||
Object.keys(this.enableGFM).forEach((item) => {
|
||||
if (item !== 'emojis' && !dataSources[item]) {
|
||||
this.enableGFM[item] = false;
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ export default class GpgBadges {
|
|||
return axios
|
||||
.get(endpoint, { params })
|
||||
.then(({ data }) => {
|
||||
data.signatures.forEach(signature => {
|
||||
data.signatures.forEach((signature) => {
|
||||
badges.filter(`[data-commit-sha="${signature.commit_sha}"]`).replaceWith(signature.html);
|
||||
});
|
||||
})
|
||||
|
|
|
@ -24,7 +24,7 @@ export const updateGrafanaIntegration = ({ state, dispatch }) =>
|
|||
},
|
||||
})
|
||||
.then(() => dispatch('receiveGrafanaIntegrationUpdateSuccess'))
|
||||
.catch(error => dispatch('receiveGrafanaIntegrationUpdateError', error));
|
||||
.catch((error) => dispatch('receiveGrafanaIntegrationUpdateError', error));
|
||||
|
||||
export const receiveGrafanaIntegrationUpdateSuccess = () => {
|
||||
/**
|
||||
|
|
|
@ -6,7 +6,7 @@ import mutations from './mutations';
|
|||
|
||||
Vue.use(Vuex);
|
||||
|
||||
export const createStore = initialState =>
|
||||
export const createStore = (initialState) =>
|
||||
new Vuex.Store({
|
||||
state: createState(initialState),
|
||||
actions,
|
||||
|
|
|
@ -51,4 +51,4 @@ export const convertToGraphQLId = (type, id) => {
|
|||
* @param {Array} ids An array of id values
|
||||
* @returns {Array}
|
||||
*/
|
||||
export const convertToGraphQLIds = (type, ids) => ids.map(id => convertToGraphQLId(type, id));
|
||||
export const convertToGraphQLIds = (type, ids) => ids.map((id) => convertToGraphQLId(type, id));
|
||||
|
|
|
@ -12,7 +12,7 @@ export default class Group {
|
|||
this.resetHandler = this.reset.bind(this);
|
||||
this.updateGroupPathSlugHandler = this.updateGroupPathSlug.bind(this);
|
||||
|
||||
this.groupNames.forEach(groupName => {
|
||||
this.groupNames.forEach((groupName) => {
|
||||
if (groupName.value === '') {
|
||||
groupName.addEventListener('keyup', this.updateHandler);
|
||||
|
||||
|
@ -22,7 +22,7 @@ export default class Group {
|
|||
}
|
||||
});
|
||||
|
||||
this.groupPaths.forEach(groupPath => {
|
||||
this.groupPaths.forEach((groupPath) => {
|
||||
groupPath.addEventListener('keydown', this.resetHandler);
|
||||
});
|
||||
}
|
||||
|
@ -30,21 +30,21 @@ export default class Group {
|
|||
update({ currentTarget: { value: updatedValue } }) {
|
||||
const slug = slugify(updatedValue);
|
||||
|
||||
this.groupNames.forEach(element => {
|
||||
this.groupNames.forEach((element) => {
|
||||
element.value = updatedValue;
|
||||
});
|
||||
this.groupPaths.forEach(element => {
|
||||
this.groupPaths.forEach((element) => {
|
||||
element.value = slug;
|
||||
});
|
||||
}
|
||||
|
||||
reset() {
|
||||
this.groupNames.forEach(groupName => {
|
||||
this.groupNames.forEach((groupName) => {
|
||||
groupName.removeEventListener('keyup', this.updateHandler);
|
||||
groupName.removeEventListener('blur', this.checkPathHandler);
|
||||
});
|
||||
|
||||
this.groupPaths.forEach(groupPath => {
|
||||
this.groupPaths.forEach((groupPath) => {
|
||||
groupPath.removeEventListener('keydown', this.resetHandler);
|
||||
});
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ export default class Group {
|
|||
if (exists && suggests.length) {
|
||||
const [suggestedSlug] = suggests;
|
||||
|
||||
this.groupPaths.forEach(element => {
|
||||
this.groupPaths.forEach((element) => {
|
||||
element.value = suggestedSlug;
|
||||
});
|
||||
} else if (exists && !suggests.length) {
|
||||
|
|
|
@ -82,7 +82,7 @@ export default {
|
|||
.then(() => {
|
||||
this.isLoading = false;
|
||||
})
|
||||
.catch(error => {
|
||||
.catch((error) => {
|
||||
const message = [
|
||||
error.response?.data?.error || __('An error occurred while updating configuration.'),
|
||||
ERROR_MESSAGE,
|
||||
|
|
|
@ -108,7 +108,7 @@ export default {
|
|||
fetchGroups({ parentId, page, filterGroupsBy, sortBy, archived, updatePagination }) {
|
||||
return this.service
|
||||
.getGroups(parentId, page, filterGroupsBy, sortBy, archived)
|
||||
.then(res => {
|
||||
.then((res) => {
|
||||
if (updatePagination) {
|
||||
this.updatePagination(res.headers);
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ export default {
|
|||
sortBy,
|
||||
archived,
|
||||
updatePagination: true,
|
||||
}).then(res => {
|
||||
}).then((res) => {
|
||||
this.isLoading = false;
|
||||
this.updateGroups(res, Boolean(filterGroupsBy));
|
||||
});
|
||||
|
@ -149,7 +149,7 @@ export default {
|
|||
sortBy,
|
||||
archived,
|
||||
updatePagination: true,
|
||||
}).then(res => {
|
||||
}).then((res) => {
|
||||
this.isLoading = false;
|
||||
$.scrollTo(0);
|
||||
|
||||
|
@ -173,7 +173,7 @@ export default {
|
|||
this.fetchGroups({
|
||||
parentId: parentGroup.id,
|
||||
})
|
||||
.then(res => {
|
||||
.then((res) => {
|
||||
this.store.setGroupChildren(parentGroup, res);
|
||||
})
|
||||
.catch(() => {
|
||||
|
@ -194,12 +194,12 @@ export default {
|
|||
this.targetGroup.isBeingRemoved = true;
|
||||
this.service
|
||||
.leaveGroup(this.targetGroup.leavePath)
|
||||
.then(res => {
|
||||
.then((res) => {
|
||||
$.scrollTo(0);
|
||||
this.store.removeGroup(this.targetGroup, this.targetParentGroup);
|
||||
this.$toast.show(res.data.notice);
|
||||
})
|
||||
.catch(err => {
|
||||
.catch((err) => {
|
||||
let message = COMMON_STR.FAILURE;
|
||||
if (err.status === 403) {
|
||||
message = COMMON_STR.LEAVE_FORBIDDEN;
|
||||
|
|
|
@ -23,7 +23,7 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
getDefaultOption() {
|
||||
return this.visibilityLevelOptions.find(option => option.level === this.defaultLevel);
|
||||
return this.visibilityLevelOptions.find((option) => option.level === this.defaultLevel);
|
||||
},
|
||||
onClick(option) {
|
||||
this.selectedOption = option;
|
||||
|
|
|
@ -18,6 +18,6 @@ export default function initInviteMembersBanner() {
|
|||
isDismissedKey,
|
||||
trackLabel,
|
||||
},
|
||||
render: createElement => createElement(InviteMembersBanner),
|
||||
render: (createElement) => createElement(InviteMembersBanner),
|
||||
});
|
||||
}
|
||||
|
|
|
@ -38,6 +38,6 @@ export const initGroupMembersApp = (
|
|||
el,
|
||||
components: { App },
|
||||
store,
|
||||
render: createElement => createElement('app'),
|
||||
render: (createElement) => createElement('app'),
|
||||
});
|
||||
};
|
||||
|
|
|
@ -7,7 +7,7 @@ import {
|
|||
GROUP_LINK_ACCESS_LEVEL_PROPERTY_NAME,
|
||||
} from './constants';
|
||||
|
||||
export const parseDataAttributes = el => {
|
||||
export const parseDataAttributes = (el) => {
|
||||
const { members, groupId, memberPath, canManageMembers } = el.dataset;
|
||||
|
||||
return {
|
||||
|
|
|
@ -12,15 +12,15 @@ export default class GroupsStore {
|
|||
|
||||
setGroups(rawGroups) {
|
||||
if (rawGroups && rawGroups.length) {
|
||||
this.state.groups = rawGroups.map(rawGroup => this.formatGroupItem(rawGroup));
|
||||
this.state.groups = rawGroups.map((rawGroup) => this.formatGroupItem(rawGroup));
|
||||
} else {
|
||||
this.state.groups = [];
|
||||
}
|
||||
}
|
||||
|
||||
setSearchedGroups(rawGroups) {
|
||||
const formatGroups = groups =>
|
||||
groups.map(group => {
|
||||
const formatGroups = (groups) =>
|
||||
groups.map((group) => {
|
||||
const formattedGroup = this.formatGroupItem(group);
|
||||
if (formattedGroup.children && formattedGroup.children.length) {
|
||||
formattedGroup.children = formatGroups(formattedGroup.children);
|
||||
|
@ -37,7 +37,7 @@ export default class GroupsStore {
|
|||
|
||||
setGroupChildren(parentGroup, children) {
|
||||
const updatedParentGroup = parentGroup;
|
||||
updatedParentGroup.children = children.map(rawChild => this.formatGroupItem(rawChild));
|
||||
updatedParentGroup.children = children.map((rawChild) => this.formatGroupItem(rawChild));
|
||||
updatedParentGroup.isOpen = true;
|
||||
updatedParentGroup.isChildrenLoading = false;
|
||||
}
|
||||
|
@ -103,9 +103,9 @@ export default class GroupsStore {
|
|||
removeGroup(group, parentGroup) {
|
||||
const updatedParentGroup = parentGroup;
|
||||
if (updatedParentGroup.children && updatedParentGroup.children.length) {
|
||||
updatedParentGroup.children = parentGroup.children.filter(child => group.id !== child.id);
|
||||
updatedParentGroup.children = parentGroup.children.filter((child) => group.id !== child.id);
|
||||
} else {
|
||||
this.state.groups = this.state.groups.filter(child => group.id !== child.id);
|
||||
this.state.groups = this.state.groups.filter((child) => group.id !== child.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,11 +20,11 @@ export default class TransferDropdown {
|
|||
initDeprecatedJQueryDropdown(this.groupDropdown, {
|
||||
selectable: true,
|
||||
filterable: true,
|
||||
toggleLabel: item => item.text,
|
||||
toggleLabel: (item) => item.text,
|
||||
search: { fields: ['text'] },
|
||||
data: extraOptions.concat(this.data),
|
||||
text: item => item.text,
|
||||
clicked: options => {
|
||||
text: (item) => item.text,
|
||||
clicked: (options) => {
|
||||
const { e } = options;
|
||||
e.preventDefault();
|
||||
this.assignSelected(options.selectedObj);
|
||||
|
|
|
@ -6,11 +6,11 @@ import { normalizeHeaders } from './lib/utils/common_utils';
|
|||
import { __ } from '~/locale';
|
||||
import { loadCSSFile } from './lib/utils/css_utils';
|
||||
|
||||
const fetchGroups = params => {
|
||||
const fetchGroups = (params) => {
|
||||
axios[params.type.toLowerCase()](params.url, {
|
||||
params: params.data,
|
||||
})
|
||||
.then(res => {
|
||||
.then((res) => {
|
||||
const results = res.data || [];
|
||||
const headers = normalizeHeaders(res.headers);
|
||||
const currentPage = parseInt(headers['X-PAGE'], 10) || 0;
|
||||
|
@ -67,7 +67,7 @@ const groupsSelect = () => {
|
|||
|
||||
const groups = data.length ? data : data.results || [];
|
||||
const more = data.pagination ? data.pagination.more : false;
|
||||
const results = groups.filter(group => skipGroups.indexOf(group.id) === -1);
|
||||
const results = groups.filter((group) => skipGroups.indexOf(group.id) === -1);
|
||||
|
||||
return {
|
||||
results,
|
||||
|
|
|
@ -45,7 +45,7 @@ class EventHub {
|
|||
$off(type, handler) {
|
||||
const handlers = this.$_all.get(type) || [];
|
||||
|
||||
const newHandlers = handler ? handlers.filter(x => x !== handler) : [];
|
||||
const newHandlers = handler ? handlers.filter((x) => x !== handler) : [];
|
||||
|
||||
if (newHandlers.length) {
|
||||
this.$_all.set(type, newHandlers);
|
||||
|
@ -77,7 +77,7 @@ class EventHub {
|
|||
$emit(type, ...args) {
|
||||
const handlers = this.$_all.get(type) || [];
|
||||
|
||||
handlers.forEach(handler => {
|
||||
handlers.forEach((handler) => {
|
||||
handler(...args);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ const templatedLabel = (queryLabel, metricAttributes) => {
|
|||
* @example
|
||||
* multiMetricLabel('', {__name__: "up", app: "prometheus"}) -> "__name__: up, app: prometheus"
|
||||
*/
|
||||
const multiMetricLabel = metricAttributes => {
|
||||
const multiMetricLabel = (metricAttributes) => {
|
||||
return Object.entries(metricAttributes)
|
||||
.map(([templateVar, label]) => `${templateVar}: ${label}`)
|
||||
.join(', ');
|
||||
|
@ -64,7 +64,7 @@ export const getSeriesLabel = (queryLabel, metricAttributes) => {
|
|||
* @returns {Array} The formatted values
|
||||
*/
|
||||
export const makeDataSeries = (queryResults, defaultConfig) =>
|
||||
queryResults.map(result => {
|
||||
queryResults.map((result) => {
|
||||
return {
|
||||
...defaultConfig,
|
||||
data: result.values,
|
||||
|
|
|
@ -23,13 +23,13 @@ const handleStartupEvents = () => {
|
|||
/* For `waitForCSSLoaded` methods, see docs.gitlab.com/ee/development/fe_guide/performance.html#important-considerations */
|
||||
export const waitForCSSLoaded = (action = () => {}) => {
|
||||
if (!gon?.features?.startupCss || allLinksLoaded()) {
|
||||
return new Promise(resolve => {
|
||||
return new Promise((resolve) => {
|
||||
action();
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
|
||||
return new Promise(resolve => {
|
||||
return new Promise((resolve) => {
|
||||
document.addEventListener(CSS_LOADED_EVENT, resolve, { once: true });
|
||||
document.addEventListener(STARTUP_LINK_LOADED_EVENT, handleStartupEvents);
|
||||
}).then(action);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { commitItemIconMap } from './constants';
|
||||
|
||||
export default file => {
|
||||
export default (file) => {
|
||||
if (file.deleted) {
|
||||
return commitItemIconMap.deleted;
|
||||
} else if (file.tempFile && !file.prevPath) {
|
||||
|
|
|
@ -63,7 +63,7 @@ export default {
|
|||
return this.openPendingTab({
|
||||
file: this.file,
|
||||
keyPrefix: this.keyPrefix,
|
||||
}).then(changeViewer => {
|
||||
}).then((changeViewer) => {
|
||||
if (changeViewer) {
|
||||
this.updateViewer(viewerTypes.diff);
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ export default {
|
|||
'undoFileTemplate',
|
||||
]),
|
||||
setInitialType() {
|
||||
const initialTemplateType = this.templateTypes.find(t => t.name === this.activeFile.name);
|
||||
const initialTemplateType = this.templateTypes.find((t) => t.name === this.activeFile.name);
|
||||
|
||||
if (initialTemplateType) {
|
||||
this.setSelectedTemplateType(initialTemplateType);
|
||||
|
|
|
@ -44,7 +44,7 @@ export default {
|
|||
computed: {
|
||||
...mapState('fileTemplates', ['templates', 'isLoading']),
|
||||
outputData() {
|
||||
return (this.isAsyncData ? this.templates : this.data).filter(t => {
|
||||
return (this.isAsyncData ? this.templates : this.data).filter((t) => {
|
||||
if (!this.searchable) return true;
|
||||
|
||||
return t.name.toLowerCase().indexOf(this.search.toLowerCase()) >= 0;
|
||||
|
|
|
@ -73,7 +73,7 @@ export default {
|
|||
},
|
||||
},
|
||||
mounted() {
|
||||
window.onbeforeunload = e => this.onBeforeUnload(e);
|
||||
window.onbeforeunload = (e) => this.onBeforeUnload(e);
|
||||
|
||||
if (this.themeName)
|
||||
document.querySelector('.navbar-gitlab').classList.add(`theme-${this.themeName}`);
|
||||
|
|
|
@ -37,7 +37,7 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
isActiveTab(tab) {
|
||||
return this.isOpen && tab.views.some(view => view.name === this.currentView);
|
||||
return this.isOpen && tab.views.some((view) => view.name === this.currentView);
|
||||
},
|
||||
buttonClasses(tab) {
|
||||
return [
|
||||
|
|
|
@ -30,7 +30,7 @@ export default {
|
|||
const rawContent = encodedContent ? atob(encodedContent) : '';
|
||||
const isText = isTextFile({ content: rawContent, mimeType, name });
|
||||
|
||||
const emitCreateEvent = content =>
|
||||
const emitCreateEvent = (content) =>
|
||||
this.$emit('create', {
|
||||
name: `${this.path ? `${this.path}/` : ''}${name}`,
|
||||
type: 'blob',
|
||||
|
@ -42,7 +42,7 @@ export default {
|
|||
if (isText) {
|
||||
const reader = new FileReader();
|
||||
|
||||
reader.addEventListener('load', e => emitCreateEvent(e.target.result), { once: true });
|
||||
reader.addEventListener('load', (e) => emitCreateEvent(e.target.result), { once: true });
|
||||
reader.readAsText(file);
|
||||
} else {
|
||||
emitCreateEvent(rawContent);
|
||||
|
@ -51,11 +51,11 @@ export default {
|
|||
readFile(file) {
|
||||
const reader = new FileReader();
|
||||
|
||||
reader.addEventListener('load', e => this.createFile(e.target, file), { once: true });
|
||||
reader.addEventListener('load', (e) => this.createFile(e.target, file), { once: true });
|
||||
reader.readAsDataURL(file);
|
||||
},
|
||||
openFile() {
|
||||
Array.from(this.$refs.fileUpload.files).forEach(file => this.readFile(file));
|
||||
Array.from(this.$refs.fileUpload.files).forEach((file) => this.readFile(file));
|
||||
},
|
||||
startFileUpload() {
|
||||
this.$refs.fileUpload.click();
|
||||
|
|
|
@ -35,13 +35,13 @@ export default {
|
|||
return `${this.side}Pane`;
|
||||
},
|
||||
tabs() {
|
||||
return this.extensionTabs.filter(tab => tab.show);
|
||||
return this.extensionTabs.filter((tab) => tab.show);
|
||||
},
|
||||
tabViews() {
|
||||
return this.tabs.map(tab => tab.views).flat();
|
||||
return this.tabs.map((tab) => tab.views).flat();
|
||||
},
|
||||
aliveTabViews() {
|
||||
return this.tabViews.filter(view => this.isAliveView(view.name));
|
||||
return this.tabViews.filter((view) => this.isAliveView(view.name));
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
|
|
|
@ -108,7 +108,7 @@ export default {
|
|||
.then(() => {
|
||||
this.initManager();
|
||||
|
||||
this.listener = listen(e => {
|
||||
this.listener = listen((e) => {
|
||||
switch (e.type) {
|
||||
case 'done':
|
||||
this.sandpackReady = true;
|
||||
|
@ -139,8 +139,8 @@ export default {
|
|||
|
||||
const settings = {
|
||||
fileResolver: {
|
||||
isFile: p => Promise.resolve(Boolean(this.entries[createPathWithExt(p)])),
|
||||
readFile: p => this.loadFileContent(createPathWithExt(p)).then(content => content),
|
||||
isFile: (p) => Promise.resolve(Boolean(this.entries[createPathWithExt(p)])),
|
||||
readFile: (p) => this.loadFileContent(createPathWithExt(p)).then((content) => content),
|
||||
},
|
||||
...(bundlerURL ? { bundlerURL } : {}),
|
||||
};
|
||||
|
|
|
@ -31,7 +31,7 @@ export default {
|
|||
},
|
||||
},
|
||||
mounted() {
|
||||
this.listener = listen(e => {
|
||||
this.listener = listen((e) => {
|
||||
switch (e.type) {
|
||||
case 'urlchange':
|
||||
this.onUrlChange(e);
|
||||
|
|
|
@ -41,12 +41,12 @@ export default {
|
|||
file,
|
||||
keyPrefix: file.staged ? stageKeys.staged : stageKeys.unstaged,
|
||||
})
|
||||
.then(changeViewer => {
|
||||
.then((changeViewer) => {
|
||||
if (changeViewer) {
|
||||
this.updateViewer('diff');
|
||||
}
|
||||
})
|
||||
.catch(e => {
|
||||
.catch((e) => {
|
||||
throw e;
|
||||
});
|
||||
},
|
||||
|
|
|
@ -219,7 +219,7 @@ export default {
|
|||
.then(() => {
|
||||
this.createEditorInstance();
|
||||
})
|
||||
.catch(err => {
|
||||
.catch((err) => {
|
||||
flash(
|
||||
__('Error setting up editor. Please try again.'),
|
||||
'alert',
|
||||
|
@ -281,7 +281,7 @@ export default {
|
|||
|
||||
this.model.updateOptions(this.rules);
|
||||
|
||||
this.model.onChange(model => {
|
||||
this.model.onChange((model) => {
|
||||
const { file } = model;
|
||||
if (!file.active) return;
|
||||
|
||||
|
@ -329,7 +329,7 @@ export default {
|
|||
}
|
||||
},
|
||||
fetchEditorconfigRules() {
|
||||
return getRulesWithTraversal(this.file.path, path => {
|
||||
return getRulesWithTraversal(this.file.path, (path) => {
|
||||
const entry = this.entries[path];
|
||||
if (!entry) return Promise.resolve(null);
|
||||
|
||||
|
@ -339,7 +339,7 @@ export default {
|
|||
return this.getFileData({ path: entry.path, makeFileActive: false }).then(() =>
|
||||
this.getRawFileData({ path: entry.path }),
|
||||
);
|
||||
}).then(rules => {
|
||||
}).then((rules) => {
|
||||
this.rules = mapRulesToMonaco(rules);
|
||||
});
|
||||
},
|
||||
|
@ -353,7 +353,7 @@ export default {
|
|||
event.preventDefault();
|
||||
event.stopImmediatePropagation();
|
||||
|
||||
return readFileAsDataURL(file).then(content => {
|
||||
return readFileAsDataURL(file).then((content) => {
|
||||
const parentPath = getPathParent(this.file.path);
|
||||
const path = `${parentPath ? `${parentPath}/` : ''}${file.name}`;
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ const EmptyRouterComponent = {
|
|||
},
|
||||
};
|
||||
|
||||
export const createRouter = store => {
|
||||
export const createRouter = (store) => {
|
||||
const router = new IdeRouter({
|
||||
mode: 'history',
|
||||
base: joinPaths(gon.relative_url_root || '', '/-/ide/'),
|
||||
|
@ -54,11 +54,11 @@ export const createRouter = store => {
|
|||
},
|
||||
{
|
||||
path: ':targetmode(edit|tree|blob)/:branchid+/',
|
||||
redirect: to => joinPaths(to.path, '/-/'),
|
||||
redirect: (to) => joinPaths(to.path, '/-/'),
|
||||
},
|
||||
{
|
||||
path: ':targetmode(edit|tree|blob)',
|
||||
redirect: to => joinPaths(to.path, '/master/-/'),
|
||||
redirect: (to) => joinPaths(to.path, '/master/-/'),
|
||||
},
|
||||
{
|
||||
path: 'merge_requests/:mrid',
|
||||
|
@ -66,7 +66,7 @@ export const createRouter = store => {
|
|||
},
|
||||
{
|
||||
path: '',
|
||||
redirect: to => joinPaths(to.path, '/edit/master/-/'),
|
||||
redirect: (to) => joinPaths(to.path, '/edit/master/-/'),
|
||||
},
|
||||
],
|
||||
},
|
||||
|
@ -110,7 +110,7 @@ export const createRouter = store => {
|
|||
});
|
||||
}
|
||||
})
|
||||
.catch(e => {
|
||||
.catch((e) => {
|
||||
flash(
|
||||
__('Error while loading the project data. Please try again.'),
|
||||
'alert',
|
||||
|
|
|
@ -4,11 +4,11 @@ export default class Disposable {
|
|||
}
|
||||
|
||||
add(...disposers) {
|
||||
disposers.forEach(disposer => this.disposers.add(disposer));
|
||||
disposers.forEach((disposer) => this.disposers.add(disposer));
|
||||
}
|
||||
|
||||
dispose() {
|
||||
this.disposers.forEach(disposer => disposer.dispose());
|
||||
this.disposers.forEach((disposer) => disposer.dispose());
|
||||
this.disposers.clear();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,7 +75,7 @@ export default class Model {
|
|||
}
|
||||
|
||||
onChange(cb) {
|
||||
this.events.add(this.disposable.add(this.model.onDidChangeContent(e => cb(this, e))));
|
||||
this.events.add(this.disposable.add(this.model.onDidChangeContent((e) => cb(this, e))));
|
||||
}
|
||||
|
||||
onDispose(cb) {
|
||||
|
@ -121,7 +121,7 @@ export default class Model {
|
|||
dispose() {
|
||||
if (!this.model.isDisposed()) this.applyCustomOptions();
|
||||
|
||||
this.events.forEach(cb => {
|
||||
this.events.forEach((cb) => {
|
||||
if (typeof cb === 'function') cb();
|
||||
});
|
||||
|
||||
|
|
|
@ -12,13 +12,13 @@ const NEW_LINE = '\n';
|
|||
*
|
||||
* - Removes "=======" separator added at the beginning
|
||||
*/
|
||||
const cleanTwoFilesPatch = text => text.replace(/^(=+\s*)/, '');
|
||||
const cleanTwoFilesPatch = (text) => text.replace(/^(=+\s*)/, '');
|
||||
|
||||
const endsWithNewLine = val => !val || val[val.length - 1] === NEW_LINE;
|
||||
const endsWithNewLine = (val) => !val || val[val.length - 1] === NEW_LINE;
|
||||
|
||||
const addEndingNewLine = val => (endsWithNewLine(val) ? val : val + NEW_LINE);
|
||||
const addEndingNewLine = (val) => (endsWithNewLine(val) ? val : val + NEW_LINE);
|
||||
|
||||
const removeEndingNewLine = val => (endsWithNewLine(val) ? val.substr(0, val.length - 1) : val);
|
||||
const removeEndingNewLine = (val) => (endsWithNewLine(val) ? val.substr(0, val.length - 1) : val);
|
||||
|
||||
const diffHead = (prevPath, newPath = '') =>
|
||||
`diff --git "a/${prevPath}" "b/${newPath || prevPath}"`;
|
||||
|
@ -37,7 +37,7 @@ const createDiffBody = (path, content, isCreate) => {
|
|||
|
||||
const chunkHead = isCreate ? `@@ -0,0 +1,${lines.length} @@` : `@@ -1,${lines.length} +0,0 @@`;
|
||||
const chunk = lines
|
||||
.map(line => `${prefix}${line}`)
|
||||
.map((line) => `${prefix}${line}`)
|
||||
.concat(!hasNewLine ? [NO_NEW_LINE] : [])
|
||||
.join(NEW_LINE);
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ export default class DecorationsController {
|
|||
const modelDecorations = this.decorations.get(model.url);
|
||||
const decorations = [];
|
||||
|
||||
modelDecorations.forEach(val => decorations.push(...val));
|
||||
modelDecorations.forEach((val) => decorations.push(...val));
|
||||
|
||||
return decorations;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ import { throttle } from 'lodash';
|
|||
import DirtyDiffWorker from './diff_worker';
|
||||
import Disposable from '../common/disposable';
|
||||
|
||||
export const getDiffChangeType = change => {
|
||||
export const getDiffChangeType = (change) => {
|
||||
if (change.modified) {
|
||||
return 'modified';
|
||||
} else if (change.added) {
|
||||
|
@ -15,7 +15,7 @@ export const getDiffChangeType = change => {
|
|||
return '';
|
||||
};
|
||||
|
||||
export const getDecorator = change => ({
|
||||
export const getDecorator = (change) => ({
|
||||
range: new Range(change.lineNumber, 1, change.endLineNumber, 1),
|
||||
options: {
|
||||
isWholeLine: true,
|
||||
|
@ -71,7 +71,7 @@ export default class DirtyDiffController {
|
|||
}
|
||||
|
||||
decorate({ data }) {
|
||||
const decorations = data.changes.map(change => getDecorator(change));
|
||||
const decorations = data.changes.map((change) => getDecorator(change));
|
||||
const model = this.modelManager.getModel(data.path);
|
||||
this.decorationsController.addDecorations(model, 'dirtyDiff', decorations);
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ export const computeDiff = (originalContent, newContent) => {
|
|||
|
||||
let lineNumber = 1;
|
||||
return changes.reduce((acc, change) => {
|
||||
const findOnLine = acc.find(c => c.lineNumber === lineNumber);
|
||||
const findOnLine = acc.find((c) => c.lineNumber === lineNumber);
|
||||
|
||||
if (findOnLine) {
|
||||
Object.assign(findOnLine, change, {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { computeDiff } from './diff';
|
||||
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
self.addEventListener('message', e => {
|
||||
self.addEventListener('message', (e) => {
|
||||
const { data } = e;
|
||||
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
|
|
|
@ -12,7 +12,7 @@ import { clearDomElement } from '~/editor/utils';
|
|||
import { registerLanguages } from '../utils';
|
||||
|
||||
function setupThemes() {
|
||||
themes.forEach(theme => {
|
||||
themes.forEach((theme) => {
|
||||
monacoEditor.defineTheme(theme.name, theme.data);
|
||||
});
|
||||
}
|
||||
|
@ -108,7 +108,7 @@ export default class Editor {
|
|||
|
||||
this.instance.updateOptions(
|
||||
editorOptions.reduce((acc, obj) => {
|
||||
Object.keys(obj).forEach(key => {
|
||||
Object.keys(obj).forEach((key) => {
|
||||
Object.assign(acc, {
|
||||
[key]: obj[key](model),
|
||||
});
|
||||
|
@ -177,7 +177,7 @@ export default class Editor {
|
|||
onPositionChange(cb) {
|
||||
if (!this.instance.onDidChangeCursorPosition) return;
|
||||
|
||||
this.disposable.add(this.instance.onDidChangeCursorPosition(e => cb(this.instance, e)));
|
||||
this.disposable.add(this.instance.onDidChangeCursorPosition((e) => cb(this.instance, e)));
|
||||
}
|
||||
|
||||
updateDiffView() {
|
||||
|
@ -213,14 +213,14 @@ export default class Editor {
|
|||
|
||||
addCommands() {
|
||||
const { store } = this;
|
||||
const getKeyCode = key => {
|
||||
const getKeyCode = (key) => {
|
||||
const monacoKeyMod = key.indexOf('KEY_') === 0;
|
||||
|
||||
return monacoKeyMod ? KeyCode[key] : KeyMod[key];
|
||||
};
|
||||
|
||||
keymap.forEach(command => {
|
||||
const keybindings = command.bindings.map(binding => {
|
||||
keymap.forEach((command) => {
|
||||
const keybindings = command.bindings.map((binding) => {
|
||||
const keys = binding.split('+');
|
||||
|
||||
// eslint-disable-next-line no-bitwise
|
||||
|
|
|
@ -31,7 +31,7 @@ export const defaultModelOptions = {
|
|||
|
||||
export const editorOptions = [
|
||||
{
|
||||
readOnly: model => Boolean(model.file.file_lock),
|
||||
quickSuggestions: model => !(model.language === 'markdown'),
|
||||
readOnly: (model) => Boolean(model.file.file_lock),
|
||||
quickSuggestions: (model) => !(model.language === 'markdown'),
|
||||
},
|
||||
];
|
||||
|
|
|
@ -2,7 +2,7 @@ import { parseString } from 'editorconfig/src/lib/ini';
|
|||
import minimatch from 'minimatch';
|
||||
import { getPathParents } from '../../utils';
|
||||
|
||||
const dirname = path => path.replace(/\.editorconfig$/, '');
|
||||
const dirname = (path) => path.replace(/\.editorconfig$/, '');
|
||||
|
||||
function isRootConfig(config) {
|
||||
return config.some(([pattern, rules]) => !pattern && rules?.root === 'true');
|
||||
|
@ -44,16 +44,16 @@ function getRulesWithConfigs(filePath, configFiles = [], rules = {}) {
|
|||
|
||||
export function getRulesWithTraversal(filePath, getFileContent) {
|
||||
const editorconfigPaths = [
|
||||
...getPathParents(filePath).map(x => `${x}/.editorconfig`),
|
||||
...getPathParents(filePath).map((x) => `${x}/.editorconfig`),
|
||||
'.editorconfig',
|
||||
];
|
||||
|
||||
return Promise.all(
|
||||
editorconfigPaths.map(path => getFileContent(path).then(content => ({ path, content }))),
|
||||
).then(results =>
|
||||
editorconfigPaths.map((path) => getFileContent(path).then((content) => ({ path, content }))),
|
||||
).then((results) =>
|
||||
getRulesWithConfigs(
|
||||
filePath,
|
||||
results.filter(x => x.content),
|
||||
results.filter((x) => x.content),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
import { isBoolean, isNumber } from 'lodash';
|
||||
|
||||
const map = (key, validValues) => value =>
|
||||
const map = (key, validValues) => (value) =>
|
||||
value in validValues ? { [key]: validValues[value] } : {};
|
||||
|
||||
const bool = key => value => (isBoolean(value) ? { [key]: value } : {});
|
||||
const bool = (key) => (value) => (isBoolean(value) ? { [key]: value } : {});
|
||||
|
||||
const int = (key, isValid) => value =>
|
||||
const int = (key, isValid) => (value) =>
|
||||
isNumber(value) && isValid(value) ? { [key]: Math.trunc(value) } : {};
|
||||
|
||||
const rulesMapper = {
|
||||
indent_style: map('insertSpaces', { tab: false, space: true }),
|
||||
indent_size: int('tabSize', n => n > 0),
|
||||
tab_width: int('tabSize', n => n > 0),
|
||||
indent_size: int('tabSize', (n) => n > 0),
|
||||
tab_width: int('tabSize', (n) => n > 0),
|
||||
trim_trailing_whitespace: bool('trimTrailingWhitespace'),
|
||||
end_of_line: map('endOfLine', { crlf: 1, lf: 0 }),
|
||||
insert_final_newline: bool('insertFinalNewline'),
|
||||
};
|
||||
|
||||
const parseValue = x => {
|
||||
const parseValue = (x) => {
|
||||
let value = typeof x === 'string' ? x.toLowerCase() : x;
|
||||
if (/^[0-9.-]+$/.test(value)) value = Number(value);
|
||||
if (value === 'true') value = true;
|
||||
|
|
|
@ -6,17 +6,17 @@ const CODEOWNERS_REGEX = /Push.*protected branches.*CODEOWNERS/;
|
|||
const BRANCH_CHANGED_REGEX = /changed.*since.*start.*edit/;
|
||||
const BRANCH_ALREADY_EXISTS = /branch.*already.*exists/;
|
||||
|
||||
const createNewBranchAndCommit = store =>
|
||||
const createNewBranchAndCommit = (store) =>
|
||||
store
|
||||
.dispatch('commit/updateCommitAction', consts.COMMIT_TO_NEW_BRANCH)
|
||||
.then(() => store.dispatch('commit/commitChanges'));
|
||||
|
||||
export const createUnexpectedCommitError = message => ({
|
||||
export const createUnexpectedCommitError = (message) => ({
|
||||
title: __('Unexpected error'),
|
||||
messageHTML: escape(message) || __('Could not commit. An unexpected error occurred.'),
|
||||
});
|
||||
|
||||
export const createCodeownersCommitError = message => ({
|
||||
export const createCodeownersCommitError = (message) => ({
|
||||
title: __('CODEOWNERS rule violation'),
|
||||
messageHTML: escape(message),
|
||||
primaryAction: {
|
||||
|
@ -25,7 +25,7 @@ export const createCodeownersCommitError = message => ({
|
|||
},
|
||||
});
|
||||
|
||||
export const createBranchChangedCommitError = message => ({
|
||||
export const createBranchChangedCommitError = (message) => ({
|
||||
title: __('Branch changed'),
|
||||
messageHTML: `${escape(message)}<br/><br/>${__('Would you like to create a new branch?')}`,
|
||||
primaryAction: {
|
||||
|
@ -34,19 +34,19 @@ export const createBranchChangedCommitError = message => ({
|
|||
},
|
||||
});
|
||||
|
||||
export const branchAlreadyExistsCommitError = message => ({
|
||||
export const branchAlreadyExistsCommitError = (message) => ({
|
||||
title: __('Branch already exists'),
|
||||
messageHTML: `${escape(message)}<br/><br/>${__(
|
||||
'Would you like to try auto-generating a branch name?',
|
||||
)}`,
|
||||
primaryAction: {
|
||||
text: __('Create new branch'),
|
||||
callback: store =>
|
||||
callback: (store) =>
|
||||
store.dispatch('commit/addSuffixToBranchName').then(() => createNewBranchAndCommit(store)),
|
||||
},
|
||||
});
|
||||
|
||||
export const parseCommitError = e => {
|
||||
export const parseCommitError = (e) => {
|
||||
const { message } = e?.response?.data || {};
|
||||
|
||||
if (!message) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { decorateData, sortTree } from '../stores/utils';
|
||||
|
||||
export const splitParent = path => {
|
||||
export const splitParent = (path) => {
|
||||
const idx = path.lastIndexOf('/');
|
||||
|
||||
return {
|
||||
|
@ -32,7 +32,7 @@ export const decorateFiles = ({
|
|||
let file;
|
||||
let parentPath;
|
||||
|
||||
const insertParent = path => {
|
||||
const insertParent = (path) => {
|
||||
if (!path) {
|
||||
return null;
|
||||
} else if (entries[path]) {
|
||||
|
@ -67,7 +67,7 @@ export const decorateFiles = ({
|
|||
return tree;
|
||||
};
|
||||
|
||||
data.forEach(path => {
|
||||
data.forEach((path) => {
|
||||
const { parent, name } = splitParent(path);
|
||||
|
||||
const fileFolder = parent && insertParent(parent);
|
||||
|
|
|
@ -12,23 +12,23 @@ export const MSG_CONNECTION_ERROR = __('Could not connect to Web IDE file mirror
|
|||
const noop = () => {};
|
||||
export const SERVICE_DELAY = 8000;
|
||||
|
||||
const cancellableWait = time => {
|
||||
const cancellableWait = (time) => {
|
||||
let timeoutId = 0;
|
||||
|
||||
const cancel = () => clearTimeout(timeoutId);
|
||||
|
||||
const promise = new Promise(resolve => {
|
||||
const promise = new Promise((resolve) => {
|
||||
timeoutId = setTimeout(resolve, time);
|
||||
});
|
||||
|
||||
return [promise, cancel];
|
||||
};
|
||||
|
||||
const isErrorResponse = error => error && error.code !== 0;
|
||||
const isErrorResponse = (error) => error && error.code !== 0;
|
||||
|
||||
const isErrorPayload = payload => payload && payload.status_code !== 200;
|
||||
const isErrorPayload = (payload) => payload && payload.status_code !== 200;
|
||||
|
||||
const getErrorFromResponse = data => {
|
||||
const getErrorFromResponse = (data) => {
|
||||
if (isErrorResponse(data.error)) {
|
||||
return { message: data.error.Message };
|
||||
} else if (isErrorPayload(data.payload)) {
|
||||
|
@ -38,9 +38,9 @@ const getErrorFromResponse = data => {
|
|||
return null;
|
||||
};
|
||||
|
||||
const getFullPath = path => mergeUrlParams({ service: SERVICE_NAME }, getWebSocketUrl(path));
|
||||
const getFullPath = (path) => mergeUrlParams({ service: SERVICE_NAME }, getWebSocketUrl(path));
|
||||
|
||||
const createWebSocket = fullPath =>
|
||||
const createWebSocket = (fullPath) =>
|
||||
new Promise((resolve, reject) => {
|
||||
const socket = new WebSocket(fullPath, [PROTOCOL]);
|
||||
const resetCallbacks = () => {
|
||||
|
@ -59,7 +59,7 @@ const createWebSocket = fullPath =>
|
|||
};
|
||||
});
|
||||
|
||||
export const canConnect = ({ services = [] }) => services.some(name => name === SERVICE_NAME);
|
||||
export const canConnect = ({ services = [] }) => services.some((name) => name === SERVICE_NAME);
|
||||
|
||||
export const createMirror = () => {
|
||||
let socket = null;
|
||||
|
@ -71,23 +71,23 @@ export const createMirror = () => {
|
|||
cancelHandler = noop;
|
||||
};
|
||||
|
||||
const onCancelConnect = fn => {
|
||||
const onCancelConnect = (fn) => {
|
||||
cancelHandler = fn;
|
||||
};
|
||||
|
||||
const receiveMessage = ev => {
|
||||
const receiveMessage = (ev) => {
|
||||
const handle = nextMessageHandler;
|
||||
nextMessageHandler = noop;
|
||||
handle(JSON.parse(ev.data));
|
||||
};
|
||||
|
||||
const onNextMessage = fn => {
|
||||
const onNextMessage = (fn) => {
|
||||
nextMessageHandler = fn;
|
||||
};
|
||||
|
||||
const waitForNextMessage = () =>
|
||||
new Promise((resolve, reject) => {
|
||||
onNextMessage(data => {
|
||||
onNextMessage((data) => {
|
||||
const err = getErrorFromResponse(data);
|
||||
|
||||
if (err) {
|
||||
|
@ -133,7 +133,7 @@ export const createMirror = () => {
|
|||
|
||||
return wait
|
||||
.then(() => createWebSocket(fullPath))
|
||||
.then(newSocket => {
|
||||
.then((newSocket) => {
|
||||
socket = newSocket;
|
||||
socket.onmessage = receiveMessage;
|
||||
});
|
||||
|
|
|
@ -4,9 +4,9 @@ import Api from '~/api';
|
|||
import getUserPermissions from '../queries/getUserPermissions.query.graphql';
|
||||
import { query } from './gql';
|
||||
|
||||
const fetchApiProjectData = projectPath => Api.project(projectPath).then(({ data }) => data);
|
||||
const fetchApiProjectData = (projectPath) => Api.project(projectPath).then(({ data }) => data);
|
||||
|
||||
const fetchGqlProjectData = projectPath =>
|
||||
const fetchGqlProjectData = (projectPath) =>
|
||||
query({
|
||||
query: getUserPermissions,
|
||||
variables: { projectPath },
|
||||
|
@ -31,7 +31,7 @@ export default {
|
|||
|
||||
return axios
|
||||
.get(file.rawPath, {
|
||||
transformResponse: [f => f],
|
||||
transformResponse: [(f) => f],
|
||||
...options,
|
||||
})
|
||||
.then(({ data }) => data);
|
||||
|
@ -54,7 +54,7 @@ export default {
|
|||
escapeFileUrl(filePath),
|
||||
),
|
||||
{
|
||||
transformResponse: [f => f],
|
||||
transformResponse: [(f) => f],
|
||||
},
|
||||
)
|
||||
.then(({ data }) => data);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import axios from '~/lib/utils/axios_utils';
|
||||
|
||||
export const baseUrl = projectPath => `/${projectPath}/ide_terminals`;
|
||||
export const baseUrl = (projectPath) => `/${projectPath}/ide_terminals`;
|
||||
|
||||
export const checkConfig = (projectPath, branch) =>
|
||||
axios.post(`${baseUrl(projectPath)}/check_config`, {
|
||||
|
|
|
@ -20,7 +20,7 @@ export const redirectToUrl = (self, url) => visitUrl(url);
|
|||
export const setInitialData = ({ commit }, data) => commit(types.SET_INITIAL_DATA, data);
|
||||
|
||||
export const discardAllChanges = ({ state, commit, dispatch }) => {
|
||||
state.changedFiles.forEach(file => dispatch('restoreOriginalFile', file.path));
|
||||
state.changedFiles.forEach((file) => dispatch('restoreOriginalFile', file.path));
|
||||
|
||||
commit(types.REMOVE_ALL_CHANGES_FILES);
|
||||
};
|
||||
|
@ -106,7 +106,7 @@ export const stageAllChanges = ({ state, commit, dispatch, getters }) => {
|
|||
|
||||
commit(types.SET_LAST_COMMIT_MSG, '');
|
||||
|
||||
state.changedFiles.forEach(file =>
|
||||
state.changedFiles.forEach((file) =>
|
||||
commit(types.STAGE_CHANGE, { path: file.path, diffInfo: getters.getDiffInfo(file.path) }),
|
||||
);
|
||||
|
||||
|
@ -123,7 +123,7 @@ export const stageAllChanges = ({ state, commit, dispatch, getters }) => {
|
|||
export const unstageAllChanges = ({ state, commit, dispatch, getters }) => {
|
||||
const openFile = state.openFiles[0];
|
||||
|
||||
state.stagedFiles.forEach(file =>
|
||||
state.stagedFiles.forEach((file) =>
|
||||
commit(types.UNSTAGE_CHANGE, { path: file.path, diffInfo: getters.getDiffInfo(file.path) }),
|
||||
);
|
||||
|
||||
|
@ -194,7 +194,7 @@ export const deleteEntry = ({ commit, dispatch, state }, path) => {
|
|||
if (entry.opened) dispatch('closeFile', entry);
|
||||
|
||||
if (isTree) {
|
||||
entry.tree.forEach(f => dispatch('deleteEntry', f.path));
|
||||
entry.tree.forEach((f) => dispatch('deleteEntry', f.path));
|
||||
}
|
||||
|
||||
commit(types.DELETE_ENTRY, path);
|
||||
|
@ -221,7 +221,7 @@ export const renameEntry = ({ dispatch, commit, state, getters }, { path, name,
|
|||
commit(types.RENAME_ENTRY, { path, name, parentPath });
|
||||
|
||||
if (entry.type === 'tree') {
|
||||
state.entries[newPath].tree.forEach(f => {
|
||||
state.entries[newPath].tree.forEach((f) => {
|
||||
dispatch('renameEntry', {
|
||||
path: f.path,
|
||||
name: f.name,
|
||||
|
@ -280,7 +280,7 @@ export const getBranchData = ({ commit, state }, { projectId, branchId, force =
|
|||
commit(types.SET_BRANCH_WORKING_REFERENCE, { projectId, branchId, reference: id });
|
||||
resolve(data);
|
||||
})
|
||||
.catch(e => {
|
||||
.catch((e) => {
|
||||
if (e.response.status === 404) {
|
||||
reject(e);
|
||||
} else {
|
||||
|
|
|
@ -14,7 +14,7 @@ import { viewerTypes, stageKeys } from '../../constants';
|
|||
|
||||
export const closeFile = ({ commit, state, dispatch, getters }, file) => {
|
||||
const { path } = file;
|
||||
const indexOfClosedFile = state.openFiles.findIndex(f => f.key === file.key);
|
||||
const indexOfClosedFile = state.openFiles.findIndex((f) => f.key === file.key);
|
||||
const fileWasActive = file.active;
|
||||
|
||||
if (file.pending) {
|
||||
|
@ -108,7 +108,7 @@ export const getFileData = (
|
|||
.catch(() => {
|
||||
dispatch('setErrorMessage', {
|
||||
text: __('An error occurred while loading the file.'),
|
||||
action: payload =>
|
||||
action: (payload) =>
|
||||
dispatch('getFileData', payload).then(() => dispatch('setErrorMessage', null)),
|
||||
actionText: __('Please try again'),
|
||||
actionPayload: { path, makeFileActive },
|
||||
|
@ -125,13 +125,13 @@ export const setFileMrChange = ({ commit }, { file, mrChange }) => {
|
|||
|
||||
export const getRawFileData = ({ state, commit, dispatch, getters }, { path }) => {
|
||||
const file = state.entries[path];
|
||||
const stagedFile = state.stagedFiles.find(f => f.path === path);
|
||||
const stagedFile = state.stagedFiles.find((f) => f.path === path);
|
||||
|
||||
const fileDeletedAndReadded = getters.isFileDeletedAndReadded(path);
|
||||
commit(types.TOGGLE_LOADING, { entry: file, forceValue: true });
|
||||
return service
|
||||
.getRawFileData(fileDeletedAndReadded ? stagedFile : file)
|
||||
.then(raw => {
|
||||
.then((raw) => {
|
||||
if (!(file.tempFile && !file.prevPath && !fileDeletedAndReadded))
|
||||
commit(types.SET_FILE_RAW_DATA, { file, raw, fileDeletedAndReadded });
|
||||
|
||||
|
@ -139,7 +139,7 @@ export const getRawFileData = ({ state, commit, dispatch, getters }, { path }) =
|
|||
const baseSha =
|
||||
(getters.currentMergeRequest && getters.currentMergeRequest.baseCommitSha) || '';
|
||||
|
||||
return service.getBaseRawFileData(file, state.currentProjectId, baseSha).then(baseRaw => {
|
||||
return service.getBaseRawFileData(file, state.currentProjectId, baseSha).then((baseRaw) => {
|
||||
commit(types.SET_FILE_BASE_RAW_DATA, {
|
||||
file,
|
||||
baseRaw,
|
||||
|
@ -149,10 +149,10 @@ export const getRawFileData = ({ state, commit, dispatch, getters }, { path }) =
|
|||
}
|
||||
return raw;
|
||||
})
|
||||
.catch(e => {
|
||||
.catch((e) => {
|
||||
dispatch('setErrorMessage', {
|
||||
text: __('An error occurred while loading the file content.'),
|
||||
action: payload =>
|
||||
action: (payload) =>
|
||||
dispatch('getRawFileData', payload).then(() => dispatch('setErrorMessage', null)),
|
||||
actionText: __('Please try again'),
|
||||
actionPayload: { path },
|
||||
|
@ -178,7 +178,7 @@ export const changeFileContent = ({ commit, state, getters }, { path, content })
|
|||
content,
|
||||
});
|
||||
|
||||
const indexOfChangedFile = state.changedFiles.findIndex(f => f.path === path);
|
||||
const indexOfChangedFile = state.changedFiles.findIndex((f) => f.path === path);
|
||||
|
||||
if (file.changed && indexOfChangedFile === -1) {
|
||||
commit(types.STAGE_CHANGE, { path, diffInfo: getters.getDiffInfo(path) });
|
||||
|
@ -225,7 +225,7 @@ export const discardFileChanges = ({ dispatch, state, commit, getters }, path) =
|
|||
.then(() => {
|
||||
dispatch('router/push', getters.getUrlForPath(file.path), { root: true });
|
||||
})
|
||||
.catch(e => {
|
||||
.catch((e) => {
|
||||
throw e;
|
||||
});
|
||||
}
|
||||
|
@ -275,7 +275,7 @@ export const unstageChange = ({ commit, dispatch, getters }, path) => {
|
|||
export const openPendingTab = ({ commit, dispatch, getters, state }, { file, keyPrefix }) => {
|
||||
if (getters.activeFile && getters.activeFile.key === `${keyPrefix}-${file.key}`) return false;
|
||||
|
||||
state.openFiles.forEach(f => eventHub.$emit(`editor.update.model.dispose.${f.key}`));
|
||||
state.openFiles.forEach((f) => eventHub.$emit(`editor.update.model.dispose.${f.key}`));
|
||||
|
||||
commit(types.ADD_PENDING_TAB, { file, keyPrefix });
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ export const getMergeRequestsForBranch = (
|
|||
commit(types.SET_CURRENT_MERGE_REQUEST, `${currentMR.iid}`);
|
||||
}
|
||||
})
|
||||
.catch(e => {
|
||||
.catch((e) => {
|
||||
flash(
|
||||
__(`Error fetching merge requests for ${branchId}`),
|
||||
'alert',
|
||||
|
@ -66,7 +66,7 @@ export const getMergeRequestData = (
|
|||
.catch(() => {
|
||||
dispatch('setErrorMessage', {
|
||||
text: __('An error occurred while loading the merge request.'),
|
||||
action: payload =>
|
||||
action: (payload) =>
|
||||
dispatch('getMergeRequestData', payload).then(() =>
|
||||
dispatch('setErrorMessage', null),
|
||||
),
|
||||
|
@ -99,7 +99,7 @@ export const getMergeRequestChanges = (
|
|||
.catch(() => {
|
||||
dispatch('setErrorMessage', {
|
||||
text: __('An error occurred while loading the merge request changes.'),
|
||||
action: payload =>
|
||||
action: (payload) =>
|
||||
dispatch('getMergeRequestChanges', payload).then(() =>
|
||||
dispatch('setErrorMessage', null),
|
||||
),
|
||||
|
@ -121,8 +121,8 @@ export const getMergeRequestVersions = (
|
|||
if (!state.projects[projectId].mergeRequests[mergeRequestId].versions.length || force) {
|
||||
service
|
||||
.getProjectMergeRequestVersions(targetProjectId || projectId, mergeRequestId)
|
||||
.then(res => res.data)
|
||||
.then(data => {
|
||||
.then((res) => res.data)
|
||||
.then((data) => {
|
||||
commit(types.SET_MERGE_REQUEST_VERSIONS, {
|
||||
projectPath: projectId,
|
||||
mergeRequestId,
|
||||
|
@ -133,7 +133,7 @@ export const getMergeRequestVersions = (
|
|||
.catch(() => {
|
||||
dispatch('setErrorMessage', {
|
||||
text: __('An error occurred while loading the merge request version data.'),
|
||||
action: payload =>
|
||||
action: (payload) =>
|
||||
dispatch('getMergeRequestVersions', payload).then(() =>
|
||||
dispatch('setErrorMessage', null),
|
||||
),
|
||||
|
@ -156,7 +156,7 @@ export const openMergeRequest = (
|
|||
targetProjectId,
|
||||
mergeRequestId,
|
||||
})
|
||||
.then(mr => {
|
||||
.then((mr) => {
|
||||
dispatch('setCurrentBranchId', mr.source_branch);
|
||||
|
||||
return dispatch('getBranchData', {
|
||||
|
@ -186,7 +186,7 @@ export const openMergeRequest = (
|
|||
mergeRequestId,
|
||||
}),
|
||||
)
|
||||
.then(mrChanges => {
|
||||
.then((mrChanges) => {
|
||||
if (mrChanges.changes.length) {
|
||||
dispatch('updateActivityBarView', leftSidebarViews.review.name);
|
||||
}
|
||||
|
@ -210,7 +210,7 @@ export const openMergeRequest = (
|
|||
}
|
||||
});
|
||||
})
|
||||
.catch(e => {
|
||||
.catch((e) => {
|
||||
flash(__('Error while loading the merge request. Please try again.'));
|
||||
throw e;
|
||||
});
|
||||
|
|
|
@ -11,8 +11,8 @@ export const getProjectData = ({ commit, state }, { namespace, projectId, force
|
|||
commit(types.TOGGLE_LOADING, { entry: state });
|
||||
service
|
||||
.getProjectData(namespace, projectId)
|
||||
.then(res => res.data)
|
||||
.then(data => {
|
||||
.then((res) => res.data)
|
||||
.then((data) => {
|
||||
commit(types.TOGGLE_LOADING, { entry: state });
|
||||
commit(types.SET_PROJECT, { projectPath: `${namespace}/${projectId}`, project: data });
|
||||
commit(types.SET_CURRENT_PROJECT, `${namespace}/${projectId}`);
|
||||
|
@ -61,7 +61,7 @@ export const createNewBranchFromDefault = ({ state, dispatch, getters }, branch)
|
|||
.catch(() => {
|
||||
dispatch('setErrorMessage', {
|
||||
text: __('An error occurred creating the new branch.'),
|
||||
action: payload => dispatch('createNewBranchFromDefault', payload),
|
||||
action: (payload) => dispatch('createNewBranchFromDefault', payload),
|
||||
actionText: __('Please try again'),
|
||||
actionPayload: branch,
|
||||
});
|
||||
|
@ -76,7 +76,7 @@ export const showBranchNotFoundError = ({ dispatch }, branchId) => {
|
|||
},
|
||||
false,
|
||||
),
|
||||
action: payload => dispatch('createNewBranchFromDefault', payload),
|
||||
action: (payload) => dispatch('createNewBranchFromDefault', payload),
|
||||
actionText: __('Create branch'),
|
||||
actionPayload: branchId,
|
||||
});
|
||||
|
@ -102,7 +102,7 @@ export const loadFile = ({ dispatch, state }, { basePath }) => {
|
|||
if (basePath) {
|
||||
const path = basePath.slice(-1) === '/' ? basePath.slice(0, -1) : basePath;
|
||||
const treeEntryKey = Object.keys(state.entries).find(
|
||||
key => key === path && !state.entries[key].pending,
|
||||
(key) => key === path && !state.entries[key].pending,
|
||||
);
|
||||
const treeEntry = state.entries[treeEntryKey];
|
||||
|
||||
|
@ -144,7 +144,7 @@ export const loadBranch = ({ dispatch, getters, state }, { projectId, branchId }
|
|||
ref: branch.commit.id,
|
||||
});
|
||||
})
|
||||
.catch(err => {
|
||||
.catch((err) => {
|
||||
dispatch('showBranchNotFoundError', branchId);
|
||||
throw err;
|
||||
});
|
||||
|
|
|
@ -87,10 +87,10 @@ export const getFiles = ({ state, commit, dispatch }, payload = {}) => {
|
|||
|
||||
resolve();
|
||||
})
|
||||
.catch(e => {
|
||||
.catch((e) => {
|
||||
dispatch('setErrorMessage', {
|
||||
text: __('An error occurred while loading all the files.'),
|
||||
action: actionPayload =>
|
||||
action: (actionPayload) =>
|
||||
dispatch('getFiles', actionPayload).then(() => dispatch('setErrorMessage', null)),
|
||||
actionText: __('Please try again'),
|
||||
actionPayload: { projectId, branchId },
|
||||
|
|
|
@ -8,7 +8,7 @@ const plugins = () => [
|
|||
|
||||
export default (store, el) => {
|
||||
// plugins is actually an array of plugin factories, so we have to create first then call
|
||||
plugins().forEach(plugin => plugin(el)(store));
|
||||
plugins().forEach((plugin) => plugin(el)(store));
|
||||
|
||||
return store;
|
||||
};
|
||||
|
|
|
@ -9,19 +9,19 @@ import {
|
|||
import { addNumericSuffix } from '~/ide/utils';
|
||||
import Api from '~/api';
|
||||
|
||||
export const activeFile = state => state.openFiles.find(file => file.active) || null;
|
||||
export const activeFile = (state) => state.openFiles.find((file) => file.active) || null;
|
||||
|
||||
export const addedFiles = state => state.changedFiles.filter(f => f.tempFile);
|
||||
export const addedFiles = (state) => state.changedFiles.filter((f) => f.tempFile);
|
||||
|
||||
export const modifiedFiles = state => state.changedFiles.filter(f => !f.tempFile);
|
||||
export const modifiedFiles = (state) => state.changedFiles.filter((f) => !f.tempFile);
|
||||
|
||||
export const projectsWithTrees = state =>
|
||||
Object.keys(state.projects).map(projectId => {
|
||||
export const projectsWithTrees = (state) =>
|
||||
Object.keys(state.projects).map((projectId) => {
|
||||
const project = state.projects[projectId];
|
||||
|
||||
return {
|
||||
...project,
|
||||
branches: Object.keys(project.branches).map(branchId => {
|
||||
branches: Object.keys(project.branches).map((branchId) => {
|
||||
const branch = project.branches[branchId];
|
||||
|
||||
return {
|
||||
|
@ -32,7 +32,7 @@ export const projectsWithTrees = state =>
|
|||
};
|
||||
});
|
||||
|
||||
export const currentMergeRequest = state => {
|
||||
export const currentMergeRequest = (state) => {
|
||||
if (
|
||||
state.projects[state.currentProjectId] &&
|
||||
state.projects[state.currentProjectId].mergeRequests
|
||||
|
@ -42,19 +42,19 @@ export const currentMergeRequest = state => {
|
|||
return null;
|
||||
};
|
||||
|
||||
export const findProject = state => projectId => state.projects[projectId];
|
||||
export const findProject = (state) => (projectId) => state.projects[projectId];
|
||||
|
||||
export const currentProject = (state, getters) => getters.findProject(state.currentProjectId);
|
||||
|
||||
export const emptyRepo = state =>
|
||||
export const emptyRepo = (state) =>
|
||||
state.projects[state.currentProjectId] && state.projects[state.currentProjectId].empty_repo;
|
||||
|
||||
export const currentTree = state =>
|
||||
export const currentTree = (state) =>
|
||||
state.trees[`${state.currentProjectId}/${state.currentBranchId}`];
|
||||
|
||||
export const hasMergeRequest = state => Boolean(state.currentMergeRequestId);
|
||||
export const hasMergeRequest = (state) => Boolean(state.currentMergeRequestId);
|
||||
|
||||
export const allBlobs = state =>
|
||||
export const allBlobs = (state) =>
|
||||
Object.keys(state.entries)
|
||||
.reduce((acc, key) => {
|
||||
const entry = state.entries[key];
|
||||
|
@ -67,35 +67,35 @@ export const allBlobs = state =>
|
|||
}, [])
|
||||
.sort((a, b) => b.lastOpenedAt - a.lastOpenedAt);
|
||||
|
||||
export const getChangedFile = state => path => state.changedFiles.find(f => f.path === path);
|
||||
export const getStagedFile = state => path => state.stagedFiles.find(f => f.path === path);
|
||||
export const getOpenFile = state => path => state.openFiles.find(f => f.path === path);
|
||||
export const getChangedFile = (state) => (path) => state.changedFiles.find((f) => f.path === path);
|
||||
export const getStagedFile = (state) => (path) => state.stagedFiles.find((f) => f.path === path);
|
||||
export const getOpenFile = (state) => (path) => state.openFiles.find((f) => f.path === path);
|
||||
|
||||
export const lastOpenedFile = state =>
|
||||
export const lastOpenedFile = (state) =>
|
||||
[...state.changedFiles, ...state.stagedFiles].sort((a, b) => b.lastOpenedAt - a.lastOpenedAt)[0];
|
||||
|
||||
export const isEditModeActive = state => state.currentActivityView === leftSidebarViews.edit.name;
|
||||
export const isCommitModeActive = state =>
|
||||
export const isEditModeActive = (state) => state.currentActivityView === leftSidebarViews.edit.name;
|
||||
export const isCommitModeActive = (state) =>
|
||||
state.currentActivityView === leftSidebarViews.commit.name;
|
||||
export const isReviewModeActive = state =>
|
||||
export const isReviewModeActive = (state) =>
|
||||
state.currentActivityView === leftSidebarViews.review.name;
|
||||
|
||||
export const someUncommittedChanges = state =>
|
||||
export const someUncommittedChanges = (state) =>
|
||||
Boolean(state.changedFiles.length || state.stagedFiles.length);
|
||||
|
||||
export const getChangesInFolder = state => path => {
|
||||
const changedFilesCount = state.changedFiles.filter(f => filePathMatches(f.path, path)).length;
|
||||
export const getChangesInFolder = (state) => (path) => {
|
||||
const changedFilesCount = state.changedFiles.filter((f) => filePathMatches(f.path, path)).length;
|
||||
const stagedFilesCount = state.stagedFiles.filter(
|
||||
f => filePathMatches(f.path, path) && !getChangedFile(state)(f.path),
|
||||
(f) => filePathMatches(f.path, path) && !getChangedFile(state)(f.path),
|
||||
).length;
|
||||
|
||||
return changedFilesCount + stagedFilesCount;
|
||||
};
|
||||
|
||||
export const getUnstagedFilesCountForPath = state => path =>
|
||||
export const getUnstagedFilesCountForPath = (state) => (path) =>
|
||||
getChangesCountForFiles(state.changedFiles, path);
|
||||
|
||||
export const getStagedFilesCountForPath = state => path =>
|
||||
export const getStagedFilesCountForPath = (state) => (path) =>
|
||||
getChangesCountForFiles(state.stagedFiles, path);
|
||||
|
||||
export const lastCommit = (state, getters) => {
|
||||
|
@ -115,7 +115,7 @@ export const currentBranch = (state, getters) =>
|
|||
|
||||
export const branchName = (_state, getters) => getters.currentBranch && getters.currentBranch.name;
|
||||
|
||||
export const packageJson = state => state.entries[packageJsonPath];
|
||||
export const packageJson = (state) => state.entries[packageJsonPath];
|
||||
|
||||
export const isOnDefaultBranch = (_state, getters) =>
|
||||
getters.currentProject && getters.currentProject.default_branch === getters.branchName;
|
||||
|
@ -124,14 +124,14 @@ export const canPushToBranch = (_state, getters) => {
|
|||
return Boolean(getters.currentBranch ? getters.currentBranch.can_push : getters.canPushCode);
|
||||
};
|
||||
|
||||
export const isFileDeletedAndReadded = (state, getters) => path => {
|
||||
export const isFileDeletedAndReadded = (state, getters) => (path) => {
|
||||
const stagedFile = getters.getStagedFile(path);
|
||||
const file = state.entries[path];
|
||||
return Boolean(stagedFile && stagedFile.deleted && file.tempFile);
|
||||
};
|
||||
|
||||
// checks if any diff exists in the staged or unstaged changes for this path
|
||||
export const getDiffInfo = (state, getters) => path => {
|
||||
export const getDiffInfo = (state, getters) => (path) => {
|
||||
const stagedFile = getters.getStagedFile(path);
|
||||
const file = state.entries[path];
|
||||
const renamed = file.prevPath ? file.path !== file.prevPath : false;
|
||||
|
@ -149,7 +149,7 @@ export const getDiffInfo = (state, getters) => path => {
|
|||
};
|
||||
};
|
||||
|
||||
export const findProjectPermissions = (state, getters) => projectId =>
|
||||
export const findProjectPermissions = (state, getters) => (projectId) =>
|
||||
getters.findProject(projectId)?.userPermissions || {};
|
||||
|
||||
export const canReadMergeRequests = (state, getters) =>
|
||||
|
@ -161,10 +161,10 @@ export const canCreateMergeRequests = (state, getters) =>
|
|||
export const canPushCode = (state, getters) =>
|
||||
Boolean(getters.findProjectPermissions(state.currentProjectId)[PERMISSION_PUSH_CODE]);
|
||||
|
||||
export const entryExists = state => path =>
|
||||
export const entryExists = (state) => (path) =>
|
||||
Boolean(state.entries[path] && !state.entries[path].deleted);
|
||||
|
||||
export const getAvailableFileName = (state, getters) => path => {
|
||||
export const getAvailableFileName = (state, getters) => (path) => {
|
||||
let newPath = path;
|
||||
|
||||
while (getters.entryExists(newPath)) {
|
||||
|
@ -174,10 +174,10 @@ export const getAvailableFileName = (state, getters) => path => {
|
|||
return newPath;
|
||||
};
|
||||
|
||||
export const getUrlForPath = state => path =>
|
||||
export const getUrlForPath = (state) => (path) =>
|
||||
`/project/${state.currentProjectId}/tree/${state.currentBranchId}/-/${path}/`;
|
||||
|
||||
export const getJsonSchemaForPath = (state, getters) => path => {
|
||||
export const getJsonSchemaForPath = (state, getters) => (path) => {
|
||||
const [namespace, ...project] = state.currentProjectId.split('/');
|
||||
return {
|
||||
uri:
|
||||
|
|
|
@ -8,7 +8,7 @@ export const receiveBranchesError = ({ commit, dispatch }, { search }) => {
|
|||
'setErrorMessage',
|
||||
{
|
||||
text: __('Error loading branches.'),
|
||||
action: payload =>
|
||||
action: (payload) =>
|
||||
dispatch('fetchBranches', payload).then(() =>
|
||||
dispatch('setErrorMessage', null, { root: true }),
|
||||
),
|
||||
|
|
|
@ -9,7 +9,7 @@ export default {
|
|||
},
|
||||
[types.RECEIVE_BRANCHES_SUCCESS](state, data) {
|
||||
state.isLoading = false;
|
||||
state.branches = data.map(branch => ({
|
||||
state.branches = data.map((branch) => ({
|
||||
name: branch.name,
|
||||
committedDate: branch.commit.committed_date,
|
||||
}));
|
||||
|
|
|
@ -78,8 +78,8 @@ export const updateFilesAfterCommit = ({ commit, dispatch, rootState, rootGetter
|
|||
{ root: true },
|
||||
);
|
||||
|
||||
rootState.stagedFiles.forEach(file => {
|
||||
const changedFile = rootState.changedFiles.find(f => f.path === file.path);
|
||||
rootState.stagedFiles.forEach((file) => {
|
||||
const changedFile = rootState.changedFiles.find((f) => f.path === file.path);
|
||||
|
||||
commit(
|
||||
rootTypes.UPDATE_FILE_AFTER_COMMIT,
|
||||
|
@ -133,7 +133,7 @@ export const commitChanges = ({ commit, state, getters, dispatch, rootState, roo
|
|||
|
||||
return service.commit(rootState.currentProjectId, payload);
|
||||
})
|
||||
.catch(e => {
|
||||
.catch((e) => {
|
||||
commit(types.UPDATE_LOADING, false);
|
||||
commit(types.SET_ERROR, parseCommitError(e));
|
||||
|
||||
|
@ -193,12 +193,12 @@ export const commitChanges = ({ commit, state, getters, dispatch, rootState, roo
|
|||
},
|
||||
{ root: true },
|
||||
)
|
||||
.then(changeViewer => {
|
||||
.then((changeViewer) => {
|
||||
if (changeViewer) {
|
||||
dispatch('updateViewer', 'diff', { root: true });
|
||||
}
|
||||
})
|
||||
.catch(e => {
|
||||
.catch((e) => {
|
||||
throw e;
|
||||
});
|
||||
} else {
|
||||
|
|
|
@ -11,7 +11,7 @@ const createTranslatedTextForFiles = (files, text) => {
|
|||
});
|
||||
};
|
||||
|
||||
export const discardDraftButtonDisabled = state =>
|
||||
export const discardDraftButtonDisabled = (state) =>
|
||||
state.commitMessage === '' || state.submitCommitLoading;
|
||||
|
||||
// Note: If changing the structure of the placeholder branch name, please also
|
||||
|
@ -37,18 +37,18 @@ export const preBuiltCommitMessage = (state, _, rootState) => {
|
|||
if (state.commitMessage) return state.commitMessage;
|
||||
|
||||
const files = rootState.stagedFiles.length ? rootState.stagedFiles : rootState.changedFiles;
|
||||
const modifiedFiles = files.filter(f => !f.deleted);
|
||||
const deletedFiles = files.filter(f => f.deleted);
|
||||
const modifiedFiles = files.filter((f) => !f.deleted);
|
||||
const deletedFiles = files.filter((f) => f.deleted);
|
||||
|
||||
return [
|
||||
createTranslatedTextForFiles(modifiedFiles, __('Update')),
|
||||
createTranslatedTextForFiles(deletedFiles, __('Deleted')),
|
||||
]
|
||||
.filter(t => t)
|
||||
.filter((t) => t)
|
||||
.join('\n');
|
||||
};
|
||||
|
||||
export const isCreatingNewBranch = state => state.commitAction === consts.COMMIT_TO_NEW_BRANCH;
|
||||
export const isCreatingNewBranch = (state) => state.commitAction === consts.COMMIT_TO_NEW_BRANCH;
|
||||
|
||||
export const shouldHideNewMrOption = (_state, getters, _rootState, rootGetters) =>
|
||||
!getters.isCreatingNewBranch &&
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
import eventHub from '~/ide/eventhub';
|
||||
import { commitActionTypes } from '~/ide/constants';
|
||||
|
||||
const removeUnusedFileEditors = store => {
|
||||
const removeUnusedFileEditors = (store) => {
|
||||
Object.keys(store.state.editor.fileEditors)
|
||||
.filter(path => !store.state.entries[path])
|
||||
.forEach(path => store.dispatch('editor/removeFileEditor', path));
|
||||
.filter((path) => !store.state.entries[path])
|
||||
.forEach((path) => store.dispatch('editor/removeFileEditor', path));
|
||||
};
|
||||
|
||||
export const setupFileEditorsSync = store => {
|
||||
export const setupFileEditorsSync = (store) => {
|
||||
eventHub.$on('ide.files.change', ({ type, ...payload } = {}) => {
|
||||
if (type === commitActionTypes.move) {
|
||||
store.dispatch('editor/renameFileEditor', payload);
|
||||
|
|
|
@ -68,7 +68,7 @@ export const receiveTemplateError = ({ dispatch }, template) => {
|
|||
'setErrorMessage',
|
||||
{
|
||||
text: __('Error loading template.'),
|
||||
action: payload =>
|
||||
action: (payload) =>
|
||||
dispatch('fetchTemplateTypes', payload).then(() =>
|
||||
dispatch('setErrorMessage', null, { root: true }),
|
||||
),
|
||||
|
|
|
@ -24,6 +24,6 @@ export const templateTypes = () => [
|
|||
},
|
||||
];
|
||||
|
||||
export const showFileTemplatesBar = (_, getters, rootState) => name =>
|
||||
getters.templateTypes.find(t => t.name === name) &&
|
||||
export const showFileTemplatesBar = (_, getters, rootState) => (name) =>
|
||||
getters.templateTypes.find((t) => t.name === name) &&
|
||||
rootState.currentActivityView === leftSidebarViews.edit.name;
|
||||
|
|
|
@ -9,7 +9,7 @@ export const receiveMergeRequestsError = ({ commit, dispatch }, { type, search }
|
|||
'setErrorMessage',
|
||||
{
|
||||
text: __('Error loading merge requests.'),
|
||||
action: payload =>
|
||||
action: (payload) =>
|
||||
dispatch('fetchMergeRequests', payload).then(() =>
|
||||
dispatch('setErrorMessage', null, { root: true }),
|
||||
),
|
||||
|
|
|
@ -9,7 +9,7 @@ export default {
|
|||
},
|
||||
[types.RECEIVE_MERGE_REQUESTS_SUCCESS](state, data) {
|
||||
state.isLoading = false;
|
||||
state.mergeRequests = data.map(mergeRequest => ({
|
||||
state.mergeRequests = data.map((mergeRequest) => ({
|
||||
id: mergeRequest.id,
|
||||
iid: mergeRequest.iid,
|
||||
title: mergeRequest.title,
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
export const isAliveView = state => view =>
|
||||
export const isAliveView = (state) => (view) =>
|
||||
state.keepAliveViews[view] || (state.isOpen && state.currentView === view);
|
||||
|
|
|
@ -47,7 +47,7 @@ export const receiveLatestPipelineSuccess = ({ rootGetters, commit }, { pipeline
|
|||
|
||||
if (pipelines && pipelines.length) {
|
||||
const lastCommitHash = rootGetters.lastCommit && rootGetters.lastCommit.id;
|
||||
lastCommitPipeline = pipelines.find(pipeline => pipeline.commit.id === lastCommitHash);
|
||||
lastCommitPipeline = pipelines.find((pipeline) => pipeline.commit.id === lastCommitHash);
|
||||
}
|
||||
|
||||
commit(types.RECEIVE_LASTEST_PIPELINE_SUCCESS, lastCommitPipeline);
|
||||
|
@ -63,7 +63,7 @@ export const fetchLatestPipeline = ({ dispatch, rootGetters }) => {
|
|||
method: 'lastCommitPipelines',
|
||||
data: { getters: rootGetters },
|
||||
successCallback: ({ data }) => dispatch('receiveLatestPipelineSuccess', data),
|
||||
errorCallback: err => dispatch('receiveLatestPipelineError', err),
|
||||
errorCallback: (err) => dispatch('receiveLatestPipelineError', err),
|
||||
});
|
||||
|
||||
if (!Visibility.hidden()) {
|
||||
|
@ -85,7 +85,7 @@ export const receiveJobsError = ({ commit, dispatch }, stage) => {
|
|||
'setErrorMessage',
|
||||
{
|
||||
text: __('An error occurred while loading the pipelines jobs.'),
|
||||
action: payload =>
|
||||
action: (payload) =>
|
||||
dispatch('fetchJobs', payload).then(() =>
|
||||
dispatch('setErrorMessage', null, { root: true }),
|
||||
),
|
||||
|
|
|
@ -23,7 +23,7 @@ export default {
|
|||
yamlError: pipeline.yaml_errors,
|
||||
};
|
||||
state.stages = pipeline.details.stages.map((stage, i) => {
|
||||
const foundStage = state.stages.find(s => s.id === i);
|
||||
const foundStage = state.stages.find((s) => s.id === i);
|
||||
return {
|
||||
id: i,
|
||||
dropdownPath: stage.dropdown_path,
|
||||
|
@ -39,26 +39,26 @@ export default {
|
|||
}
|
||||
},
|
||||
[types.REQUEST_JOBS](state, id) {
|
||||
state.stages = state.stages.map(stage => ({
|
||||
state.stages = state.stages.map((stage) => ({
|
||||
...stage,
|
||||
isLoading: stage.id === id ? true : stage.isLoading,
|
||||
}));
|
||||
},
|
||||
[types.RECEIVE_JOBS_ERROR](state, id) {
|
||||
state.stages = state.stages.map(stage => ({
|
||||
state.stages = state.stages.map((stage) => ({
|
||||
...stage,
|
||||
isLoading: stage.id === id ? false : stage.isLoading,
|
||||
}));
|
||||
},
|
||||
[types.RECEIVE_JOBS_SUCCESS](state, { id, data }) {
|
||||
state.stages = state.stages.map(stage => ({
|
||||
state.stages = state.stages.map((stage) => ({
|
||||
...stage,
|
||||
isLoading: stage.id === id ? false : stage.isLoading,
|
||||
jobs: stage.id === id ? data.latest_statuses.map(normalizeJob) : stage.jobs,
|
||||
}));
|
||||
},
|
||||
[types.TOGGLE_STAGE_COLLAPSE](state, id) {
|
||||
state.stages = state.stages.map(stage => ({
|
||||
state.stages = state.stages.map((stage) => ({
|
||||
...stage,
|
||||
isCollapsed: stage.id === id ? !stage.isCollapsed : stage.isCollapsed,
|
||||
}));
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
export const normalizeJob = job => ({
|
||||
export const normalizeJob = (job) => ({
|
||||
id: job.id,
|
||||
name: job.name,
|
||||
status: job.status,
|
||||
|
|
|
@ -36,7 +36,7 @@ export const fetchConfigCheck = ({ dispatch, rootState, rootGetters }) => {
|
|||
.then(() => {
|
||||
dispatch('receiveConfigCheckSuccess');
|
||||
})
|
||||
.catch(e => {
|
||||
.catch((e) => {
|
||||
dispatch('receiveConfigCheckError', e);
|
||||
});
|
||||
};
|
||||
|
@ -92,7 +92,7 @@ export const fetchRunnersCheck = ({ dispatch, rootGetters }, options = {}) => {
|
|||
.then(({ data }) => {
|
||||
dispatch('receiveRunnersCheckSuccess', data);
|
||||
})
|
||||
.catch(e => {
|
||||
.catch((e) => {
|
||||
dispatch('receiveRunnersCheckError', e);
|
||||
});
|
||||
};
|
||||
|
|
|
@ -45,7 +45,7 @@ export const startSession = ({ state, dispatch, rootGetters, rootState }) => {
|
|||
.then(({ data }) => {
|
||||
dispatch('receiveStartSessionSuccess', data);
|
||||
})
|
||||
.catch(error => {
|
||||
.catch((error) => {
|
||||
dispatch('receiveStartSessionError', error);
|
||||
});
|
||||
};
|
||||
|
@ -73,7 +73,7 @@ export const stopSession = ({ state, dispatch }) => {
|
|||
.then(() => {
|
||||
dispatch('receiveStopSessionSuccess');
|
||||
})
|
||||
.catch(err => {
|
||||
.catch((err) => {
|
||||
dispatch('receiveStopSessionError', err);
|
||||
});
|
||||
};
|
||||
|
@ -103,7 +103,7 @@ export const restartSession = ({ state, dispatch, rootState }) => {
|
|||
.then(({ data }) => {
|
||||
dispatch('receiveStartSessionSuccess', data);
|
||||
})
|
||||
.catch(error => {
|
||||
.catch((error) => {
|
||||
const responseStatus = error.response && error.response.status;
|
||||
// We may have removed the build, in this case we'll just create a new session
|
||||
if (
|
||||
|
|
|
@ -58,7 +58,7 @@ export const fetchSessionStatus = ({ dispatch, state }) => {
|
|||
.then(({ data }) => {
|
||||
dispatch('receiveSessionStatusSuccess', data);
|
||||
})
|
||||
.catch(error => {
|
||||
.catch((error) => {
|
||||
dispatch('receiveSessionStatusError', error);
|
||||
});
|
||||
};
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
export const allCheck = state => {
|
||||
export const allCheck = (state) => {
|
||||
const checks = Object.values(state.checks);
|
||||
|
||||
if (checks.some(check => check.isLoading)) {
|
||||
if (checks.some((check) => check.isLoading)) {
|
||||
return { isLoading: true };
|
||||
}
|
||||
|
||||
const invalidCheck = checks.find(check => !check.isValid);
|
||||
const invalidCheck = checks.find((check) => !check.isValid);
|
||||
const isValid = !invalidCheck;
|
||||
const message = !invalidCheck ? '' : invalidCheck.message;
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ export const configCheckError = (status, helpUrl) => {
|
|||
return UNEXPECTED_ERROR_CONFIG;
|
||||
};
|
||||
|
||||
export const runnersCheckEmpty = helpUrl =>
|
||||
export const runnersCheckEmpty = (helpUrl) =>
|
||||
sprintf(
|
||||
EMPTY_RUNNERS,
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { STARTING, PENDING, RUNNING } from './constants';
|
||||
|
||||
export const isStartingStatus = status => status === STARTING || status === PENDING;
|
||||
export const isRunningStatus = status => status === RUNNING;
|
||||
export const isEndingStatus = status => !isStartingStatus(status) && !isRunningStatus(status);
|
||||
export const isStartingStatus = (status) => status === STARTING || status === PENDING;
|
||||
export const isRunningStatus = (status) => status === RUNNING;
|
||||
export const isEndingStatus = (status) => !isStartingStatus(status) && !isRunningStatus(status);
|
||||
|
|
|
@ -9,7 +9,7 @@ export const upload = ({ rootState, commit }) => {
|
|||
.then(() => {
|
||||
commit(types.SET_SUCCESS);
|
||||
})
|
||||
.catch(err => {
|
||||
.catch((err) => {
|
||||
commit(types.SET_ERROR, err);
|
||||
});
|
||||
};
|
||||
|
@ -34,7 +34,7 @@ export const start = ({ rootState, commit }) => {
|
|||
.then(() => {
|
||||
commit(types.SET_SUCCESS);
|
||||
})
|
||||
.catch(err => {
|
||||
.catch((err) => {
|
||||
commit(types.SET_ERROR, err);
|
||||
throw err;
|
||||
});
|
||||
|
|
|
@ -61,7 +61,7 @@ export default {
|
|||
});
|
||||
} else {
|
||||
const tree = entry.tree.filter(
|
||||
f => foundEntry.tree.find(e => e.path === f.path) === undefined,
|
||||
(f) => foundEntry.tree.find((e) => e.path === f.path) === undefined,
|
||||
);
|
||||
Object.assign(foundEntry, {
|
||||
tree: sortTree(foundEntry.tree.concat(tree)),
|
||||
|
@ -72,7 +72,7 @@ export default {
|
|||
}, []);
|
||||
|
||||
const currentTree = state.trees[`${state.currentProjectId}/${state.currentBranchId}`];
|
||||
const foundEntry = currentTree.tree.find(e => e.path === data.treeList[0].path);
|
||||
const foundEntry = currentTree.tree.find((e) => e.path === data.treeList[0].path);
|
||||
|
||||
if (!foundEntry) {
|
||||
Object.assign(currentTree, {
|
||||
|
@ -125,7 +125,7 @@ export default {
|
|||
});
|
||||
},
|
||||
[types.UPDATE_FILE_AFTER_COMMIT](state, { file, lastCommit }) {
|
||||
const changedFile = state.changedFiles.find(f => f.path === file.path);
|
||||
const changedFile = state.changedFiles.find((f) => f.path === file.path);
|
||||
const { prevPath } = file;
|
||||
|
||||
Object.assign(state.entries[file.path], {
|
||||
|
@ -172,7 +172,7 @@ export default {
|
|||
entry.deleted = true;
|
||||
|
||||
if (parent) {
|
||||
parent.tree = parent.tree.filter(f => f.path !== entry.path);
|
||||
parent.tree = parent.tree.filter((f) => f.path !== entry.path);
|
||||
}
|
||||
|
||||
if (entry.type === 'blob') {
|
||||
|
@ -181,8 +181,8 @@ export default {
|
|||
// changed and staged. Otherwise, we'd need to somehow evaluate the difference between
|
||||
// changed and HEAD.
|
||||
// https://gitlab.com/gitlab-org/create-stage/-/issues/12669
|
||||
state.changedFiles = state.changedFiles.filter(f => f.path !== path);
|
||||
state.stagedFiles = state.stagedFiles.filter(f => f.path !== path);
|
||||
state.changedFiles = state.changedFiles.filter((f) => f.path !== path);
|
||||
state.stagedFiles = state.stagedFiles.filter((f) => f.path !== path);
|
||||
} else {
|
||||
state.changedFiles = state.changedFiles.concat(entry);
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ export default {
|
|||
|
||||
if (active && !state.entries[path].pending) {
|
||||
Object.assign(state, {
|
||||
openFiles: state.openFiles.map(f =>
|
||||
openFiles: state.openFiles.map((f) =>
|
||||
Object.assign(f, { active: f.pending ? false : f.active }),
|
||||
),
|
||||
});
|
||||
|
@ -28,21 +28,21 @@ export default {
|
|||
|
||||
if (entry.opened) {
|
||||
Object.assign(state, {
|
||||
openFiles: state.openFiles.filter(f => f.path !== path).concat(state.entries[path]),
|
||||
openFiles: state.openFiles.filter((f) => f.path !== path).concat(state.entries[path]),
|
||||
});
|
||||
} else {
|
||||
Object.assign(state, {
|
||||
openFiles: state.openFiles.filter(f => f.key !== entry.key),
|
||||
openFiles: state.openFiles.filter((f) => f.key !== entry.key),
|
||||
});
|
||||
}
|
||||
},
|
||||
[types.SET_FILE_DATA](state, { data, file }) {
|
||||
const stateEntry = state.entries[file.path];
|
||||
const stagedFile = state.stagedFiles.find(f => f.path === file.path);
|
||||
const openFile = state.openFiles.find(f => f.path === file.path);
|
||||
const changedFile = state.changedFiles.find(f => f.path === file.path);
|
||||
const stagedFile = state.stagedFiles.find((f) => f.path === file.path);
|
||||
const openFile = state.openFiles.find((f) => f.path === file.path);
|
||||
const changedFile = state.changedFiles.find((f) => f.path === file.path);
|
||||
|
||||
[stateEntry, stagedFile, openFile, changedFile].forEach(f => {
|
||||
[stateEntry, stagedFile, openFile, changedFile].forEach((f) => {
|
||||
if (f) {
|
||||
Object.assign(
|
||||
f,
|
||||
|
@ -57,10 +57,10 @@ export default {
|
|||
},
|
||||
[types.SET_FILE_RAW_DATA](state, { file, raw, fileDeletedAndReadded = false }) {
|
||||
const openPendingFile = state.openFiles.find(
|
||||
f =>
|
||||
(f) =>
|
||||
f.path === file.path && f.pending && !(f.tempFile && !f.prevPath && !fileDeletedAndReadded),
|
||||
);
|
||||
const stagedFile = state.stagedFiles.find(f => f.path === file.path);
|
||||
const stagedFile = state.stagedFiles.find((f) => f.path === file.path);
|
||||
|
||||
if (file.tempFile && file.content === '' && !fileDeletedAndReadded) {
|
||||
Object.assign(state.entries[file.path], { content: raw });
|
||||
|
@ -86,7 +86,7 @@ export default {
|
|||
});
|
||||
},
|
||||
[types.UPDATE_FILE_CONTENT](state, { path, content }) {
|
||||
const stagedFile = state.stagedFiles.find(f => f.path === path);
|
||||
const stagedFile = state.stagedFiles.find((f) => f.path === path);
|
||||
const rawContent = stagedFile ? stagedFile.content : state.entries[path].raw;
|
||||
const changed = content !== rawContent;
|
||||
|
||||
|
@ -112,7 +112,7 @@ export default {
|
|||
});
|
||||
},
|
||||
[types.DISCARD_FILE_CHANGES](state, path) {
|
||||
const stagedFile = state.stagedFiles.find(f => f.path === path);
|
||||
const stagedFile = state.stagedFiles.find((f) => f.path === path);
|
||||
const entry = state.entries[path];
|
||||
const { deleted } = entry;
|
||||
|
||||
|
@ -137,14 +137,14 @@ export default {
|
|||
},
|
||||
[types.REMOVE_FILE_FROM_CHANGED](state, path) {
|
||||
Object.assign(state, {
|
||||
changedFiles: state.changedFiles.filter(f => f.path !== path),
|
||||
changedFiles: state.changedFiles.filter((f) => f.path !== path),
|
||||
});
|
||||
},
|
||||
[types.STAGE_CHANGE](state, { path, diffInfo }) {
|
||||
const stagedFile = state.stagedFiles.find(f => f.path === path);
|
||||
const stagedFile = state.stagedFiles.find((f) => f.path === path);
|
||||
|
||||
Object.assign(state, {
|
||||
changedFiles: state.changedFiles.filter(f => f.path !== path),
|
||||
changedFiles: state.changedFiles.filter((f) => f.path !== path),
|
||||
entries: Object.assign(state.entries, {
|
||||
[path]: Object.assign(state.entries[path], {
|
||||
staged: diffInfo.exists,
|
||||
|
@ -162,12 +162,12 @@ export default {
|
|||
}
|
||||
|
||||
if (!diffInfo.exists) {
|
||||
state.stagedFiles = state.stagedFiles.filter(f => f.path !== path);
|
||||
state.stagedFiles = state.stagedFiles.filter((f) => f.path !== path);
|
||||
}
|
||||
},
|
||||
[types.UNSTAGE_CHANGE](state, { path, diffInfo }) {
|
||||
const changedFile = state.changedFiles.find(f => f.path === path);
|
||||
const stagedFile = state.stagedFiles.find(f => f.path === path);
|
||||
const changedFile = state.changedFiles.find((f) => f.path === path);
|
||||
const stagedFile = state.stagedFiles.find((f) => f.path === path);
|
||||
|
||||
if (!changedFile && stagedFile) {
|
||||
Object.assign(state.entries[path], {
|
||||
|
@ -182,11 +182,11 @@ export default {
|
|||
}
|
||||
|
||||
if (!diffInfo.exists) {
|
||||
state.changedFiles = state.changedFiles.filter(f => f.path !== path);
|
||||
state.changedFiles = state.changedFiles.filter((f) => f.path !== path);
|
||||
}
|
||||
|
||||
Object.assign(state, {
|
||||
stagedFiles: state.stagedFiles.filter(f => f.path !== path),
|
||||
stagedFiles: state.stagedFiles.filter((f) => f.path !== path),
|
||||
entries: Object.assign(state.entries, {
|
||||
[path]: Object.assign(state.entries[path], {
|
||||
staged: false,
|
||||
|
@ -206,7 +206,7 @@ export default {
|
|||
state.entries[file.path].opened = false;
|
||||
state.entries[file.path].active = false;
|
||||
state.entries[file.path].lastOpenedAt = new Date().getTime();
|
||||
state.openFiles.forEach(f =>
|
||||
state.openFiles.forEach((f) =>
|
||||
Object.assign(f, {
|
||||
opened: false,
|
||||
active: false,
|
||||
|
@ -224,13 +224,13 @@ export default {
|
|||
},
|
||||
[types.REMOVE_PENDING_TAB](state, file) {
|
||||
Object.assign(state, {
|
||||
openFiles: state.openFiles.filter(f => f.key !== file.key),
|
||||
openFiles: state.openFiles.filter((f) => f.key !== file.key),
|
||||
});
|
||||
},
|
||||
[types.REMOVE_FILE_FROM_STAGED_AND_CHANGED](state, file) {
|
||||
Object.assign(state, {
|
||||
changedFiles: state.changedFiles.filter(f => f.key !== file.key),
|
||||
stagedFiles: state.stagedFiles.filter(f => f.key !== file.key),
|
||||
changedFiles: state.changedFiles.filter((f) => f.key !== file.key),
|
||||
stagedFiles: state.stagedFiles.filter((f) => f.key !== file.key),
|
||||
});
|
||||
|
||||
Object.assign(state.entries[file.path], {
|
||||
|
|
|
@ -45,7 +45,7 @@ export default {
|
|||
? state.entries[entry.parentPath]
|
||||
: state.trees[`${state.currentProjectId}/${state.currentBranchId}`];
|
||||
|
||||
if (!parent.tree.find(f => f.path === path)) {
|
||||
if (!parent.tree.find((f) => f.path === path)) {
|
||||
parent.tree = sortTree(parent.tree.concat(entry));
|
||||
}
|
||||
},
|
||||
|
|
|
@ -11,7 +11,7 @@ function getPathsFromData(el) {
|
|||
}
|
||||
|
||||
export default function createTerminalPlugin(el) {
|
||||
return store => {
|
||||
return (store) => {
|
||||
store.registerModule('terminal', terminalModule());
|
||||
|
||||
store.dispatch('terminal/setPaths', getPathsFromData(el));
|
||||
|
|
|
@ -12,7 +12,7 @@ const UPLOAD_DEBOUNCE = 200;
|
|||
* - Listens for file change event to control upload.
|
||||
*/
|
||||
export default function createMirrorPlugin() {
|
||||
return store => {
|
||||
return (store) => {
|
||||
store.registerModule('terminalSync', terminalSyncModule());
|
||||
|
||||
const upload = debounce(() => {
|
||||
|
@ -36,8 +36,8 @@ export default function createMirrorPlugin() {
|
|||
};
|
||||
|
||||
store.watch(
|
||||
x => x.terminal && x.terminal.session && x.terminal.session.status,
|
||||
val => {
|
||||
(x) => x.terminal && x.terminal.session && x.terminal.session.status,
|
||||
(val) => {
|
||||
if (isRunningStatus(val)) {
|
||||
start();
|
||||
} else if (isEndingStatus(val)) {
|
||||
|
|
|
@ -34,7 +34,7 @@ export const dataStructure = () => ({
|
|||
mimeType: '',
|
||||
});
|
||||
|
||||
export const decorateData = entity => {
|
||||
export const decorateData = (entity) => {
|
||||
const {
|
||||
id,
|
||||
type,
|
||||
|
@ -69,7 +69,7 @@ export const decorateData = entity => {
|
|||
});
|
||||
};
|
||||
|
||||
export const setPageTitle = title => {
|
||||
export const setPageTitle = (title) => {
|
||||
document.title = title;
|
||||
};
|
||||
|
||||
|
@ -78,7 +78,7 @@ export const setPageTitleForFile = (state, file) => {
|
|||
setPageTitle(title);
|
||||
};
|
||||
|
||||
export const commitActionForFile = file => {
|
||||
export const commitActionForFile = (file) => {
|
||||
if (file.prevPath) {
|
||||
return commitActionTypes.move;
|
||||
} else if (file.deleted) {
|
||||
|
@ -90,7 +90,7 @@ export const commitActionForFile = file => {
|
|||
return commitActionTypes.update;
|
||||
};
|
||||
|
||||
export const getCommitFiles = stagedFiles =>
|
||||
export const getCommitFiles = (stagedFiles) =>
|
||||
stagedFiles.reduce((acc, file) => {
|
||||
if (file.type === 'tree') return acc;
|
||||
|
||||
|
@ -109,7 +109,7 @@ export const createCommitPayload = ({
|
|||
}) => ({
|
||||
branch,
|
||||
commit_message: state.commitMessage || getters.preBuiltCommitMessage,
|
||||
actions: getCommitFiles(rootState.stagedFiles).map(f => {
|
||||
actions: getCommitFiles(rootState.stagedFiles).map((f) => {
|
||||
const isBlob = isBlobUrl(f.rawPath);
|
||||
const content = isBlob ? btoa(f.content) : f.content;
|
||||
|
||||
|
@ -139,9 +139,9 @@ const sortTreesByTypeAndName = (a, b) => {
|
|||
return 0;
|
||||
};
|
||||
|
||||
export const sortTree = sortedTree =>
|
||||
export const sortTree = (sortedTree) =>
|
||||
sortedTree
|
||||
.map(entity =>
|
||||
.map((entity) =>
|
||||
Object.assign(entity, {
|
||||
tree: entity.tree.length ? sortTree(entity.tree) : [],
|
||||
}),
|
||||
|
@ -151,7 +151,7 @@ export const sortTree = sortedTree =>
|
|||
export const filePathMatches = (filePath, path) => filePath.indexOf(`${path}/`) === 0;
|
||||
|
||||
export const getChangesCountForFiles = (files, path) =>
|
||||
files.filter(f => filePathMatches(f.path, path)).length;
|
||||
files.filter((f) => filePathMatches(f.path, path)).length;
|
||||
|
||||
export const mergeTrees = (fromTree, toTree) => {
|
||||
if (!fromTree || !fromTree.length) {
|
||||
|
@ -162,7 +162,7 @@ export const mergeTrees = (fromTree, toTree) => {
|
|||
if (!n) {
|
||||
return t;
|
||||
}
|
||||
const existingTreeNode = t.find(el => el.path === n.path);
|
||||
const existingTreeNode = t.find((el) => el.path === n.path);
|
||||
|
||||
if (existingTreeNode && n.tree.length > 0) {
|
||||
existingTreeNode.opened = true;
|
||||
|
@ -183,7 +183,7 @@ export const mergeTrees = (fromTree, toTree) => {
|
|||
|
||||
export const swapInStateArray = (state, arr, key, entryPath) =>
|
||||
Object.assign(state, {
|
||||
[arr]: state[arr].map(f => (f.key === key ? state.entries[entryPath] : f)),
|
||||
[arr]: state[arr].map((f) => (f.key === key ? state.entries[entryPath] : f)),
|
||||
});
|
||||
|
||||
export const getEntryOrRoot = (state, path) =>
|
||||
|
@ -216,12 +216,12 @@ export const removeFromParentTree = (state, oldKey, parentPath) => {
|
|||
};
|
||||
|
||||
export const updateFileCollections = (state, key, entryPath) => {
|
||||
['openFiles', 'changedFiles', 'stagedFiles'].forEach(fileCollection => {
|
||||
['openFiles', 'changedFiles', 'stagedFiles'].forEach((fileCollection) => {
|
||||
swapInStateArray(state, fileCollection, key, entryPath);
|
||||
});
|
||||
};
|
||||
|
||||
export const cleanTrailingSlash = path => path.replace(/\/$/, '');
|
||||
export const cleanTrailingSlash = (path) => path.replace(/\/$/, '');
|
||||
|
||||
export const pathsAreEqual = (a, b) => {
|
||||
const cleanA = a ? cleanTrailingSlash(a) : '';
|
||||
|
|
|
@ -21,8 +21,8 @@ export const syncRouterAndStore = (router, store) => {
|
|||
// sync store to router
|
||||
disposables.push(
|
||||
store.watch(
|
||||
state => state.router.fullPath,
|
||||
fullPath => {
|
||||
(state) => state.router.fullPath,
|
||||
(fullPath) => {
|
||||
if (currentPath === fullPath) {
|
||||
return;
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ export const syncRouterAndStore = (router, store) => {
|
|||
|
||||
// sync router to store
|
||||
disposables.push(
|
||||
router.afterEach(to => {
|
||||
router.afterEach((to) => {
|
||||
if (currentPath === to.fullPath) {
|
||||
return;
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ export const syncRouterAndStore = (router, store) => {
|
|||
);
|
||||
|
||||
const unsync = () => {
|
||||
disposables.forEach(fn => fn());
|
||||
disposables.forEach((fn) => fn());
|
||||
};
|
||||
|
||||
return unsync;
|
||||
|
|
|
@ -3,17 +3,17 @@ import { flatten, isString } from 'lodash';
|
|||
import { SIDE_LEFT, SIDE_RIGHT } from './constants';
|
||||
import { performanceMarkAndMeasure } from '~/performance/utils';
|
||||
|
||||
const toLowerCase = x => x.toLowerCase();
|
||||
const toLowerCase = (x) => x.toLowerCase();
|
||||
|
||||
const monacoLanguages = languages.getLanguages();
|
||||
const monacoExtensions = new Set(
|
||||
flatten(monacoLanguages.map(lang => lang.extensions?.map(toLowerCase) || [])),
|
||||
flatten(monacoLanguages.map((lang) => lang.extensions?.map(toLowerCase) || [])),
|
||||
);
|
||||
const monacoMimetypes = new Set(
|
||||
flatten(monacoLanguages.map(lang => lang.mimetypes?.map(toLowerCase) || [])),
|
||||
flatten(monacoLanguages.map((lang) => lang.mimetypes?.map(toLowerCase) || [])),
|
||||
);
|
||||
const monacoFilenames = new Set(
|
||||
flatten(monacoLanguages.map(lang => lang.filenames?.map(toLowerCase) || [])),
|
||||
flatten(monacoLanguages.map((lang) => lang.filenames?.map(toLowerCase) || [])),
|
||||
);
|
||||
|
||||
const KNOWN_TYPES = [
|
||||
|
@ -44,7 +44,7 @@ const KNOWN_TYPES = [
|
|||
];
|
||||
|
||||
export function isTextFile({ name, raw, content, mimeType = '' }) {
|
||||
const knownType = KNOWN_TYPES.find(type => type.isMatch(mimeType, name));
|
||||
const knownType = KNOWN_TYPES.find((type) => type.isMatch(mimeType, name));
|
||||
if (knownType) return knownType.isText;
|
||||
|
||||
// does the string contain ascii characters only (ranges from space to tilde, tabs and new lines)
|
||||
|
@ -56,20 +56,20 @@ export function isTextFile({ name, raw, content, mimeType = '' }) {
|
|||
return isString(fileContents) && (fileContents === '' || asciiRegex.test(fileContents));
|
||||
}
|
||||
|
||||
export const createPathWithExt = p => {
|
||||
export const createPathWithExt = (p) => {
|
||||
const ext = p.lastIndexOf('.') >= 0 ? p.substring(p.lastIndexOf('.') + 1) : '';
|
||||
|
||||
return `${p.substring(1, p.lastIndexOf('.') + 1 || p.length)}${ext || '.js'}`;
|
||||
};
|
||||
|
||||
export const trimPathComponents = path =>
|
||||
export const trimPathComponents = (path) =>
|
||||
path
|
||||
.split('/')
|
||||
.map(s => s.trim())
|
||||
.map((s) => s.trim())
|
||||
.join('/');
|
||||
|
||||
export function registerLanguages(def, ...defs) {
|
||||
defs.forEach(lang => registerLanguages(lang));
|
||||
defs.forEach((lang) => registerLanguages(lang));
|
||||
|
||||
const languageId = def.id;
|
||||
|
||||
|
@ -80,7 +80,7 @@ export function registerLanguages(def, ...defs) {
|
|||
|
||||
export function registerSchema(schema) {
|
||||
const defaults = [languages.json.jsonDefaults, languages.yaml.yamlDefaults];
|
||||
defaults.forEach(d =>
|
||||
defaults.forEach((d) =>
|
||||
d.setDiagnosticsOptions({
|
||||
validate: true,
|
||||
enableSchemaRequest: true,
|
||||
|
@ -91,7 +91,7 @@ export function registerSchema(schema) {
|
|||
);
|
||||
}
|
||||
|
||||
export const otherSide = side => (side === SIDE_RIGHT ? SIDE_LEFT : SIDE_RIGHT);
|
||||
export const otherSide = (side) => (side === SIDE_RIGHT ? SIDE_LEFT : SIDE_RIGHT);
|
||||
|
||||
export function trimTrailingWhitespace(content) {
|
||||
return content.replace(/[^\S\r\n]+$/gm, '');
|
||||
|
@ -125,9 +125,9 @@ export function getPathParent(path) {
|
|||
* @param {File} file
|
||||
*/
|
||||
export function readFileAsDataURL(file) {
|
||||
return new Promise(resolve => {
|
||||
return new Promise((resolve) => {
|
||||
const reader = new FileReader();
|
||||
reader.addEventListener('load', e => resolve(e.target.result), { once: true });
|
||||
reader.addEventListener('load', (e) => resolve(e.target.result), { once: true });
|
||||
reader.readAsDataURL(file);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ import { spriteIcon } from '~/lib/utils/common_utils';
|
|||
export function createImageBadge(noteId, { x, y }, classNames = []) {
|
||||
const buttonEl = document.createElement('button');
|
||||
const classList = classNames.concat(['js-image-badge']);
|
||||
classList.forEach(className => buttonEl.classList.add(className));
|
||||
classList.forEach((className) => buttonEl.classList.add(className));
|
||||
buttonEl.setAttribute('type', 'button');
|
||||
buttonEl.setAttribute('disabled', true);
|
||||
buttonEl.dataset.noteId = noteId;
|
||||
|
|
|
@ -7,7 +7,7 @@ export default () => {
|
|||
const renderCommentBadge = true;
|
||||
|
||||
const diffFileEls = document.querySelectorAll('.timeline-content .diff-file.js-image-file');
|
||||
[...diffFileEls].forEach(diffFileEl =>
|
||||
[...diffFileEls].forEach((diffFileEl) =>
|
||||
initImageDiffHelper.initImageDiff(diffFileEl, canCreateNote, renderCommentBadge),
|
||||
);
|
||||
};
|
||||
|
|
|
@ -26,7 +26,7 @@ export default class ReplacedImageDiff extends ImageDiff {
|
|||
this.imageEls = {};
|
||||
|
||||
const viewTypeNames = Object.getOwnPropertyNames(viewTypes);
|
||||
viewTypeNames.forEach(viewType => {
|
||||
viewTypeNames.forEach((viewType) => {
|
||||
this.imageEls[viewType] = this.imageFrameEls[viewType].querySelector('img');
|
||||
});
|
||||
}
|
||||
|
@ -62,7 +62,7 @@ export default class ReplacedImageDiff extends ImageDiff {
|
|||
|
||||
// Clear existing badges on new view
|
||||
const existingBadges = this.imageFrameEl.querySelectorAll('.badge');
|
||||
[...existingBadges].map(badge => badge.remove());
|
||||
[...existingBadges].map((badge) => badge.remove());
|
||||
|
||||
// Remove existing references to old view image badges
|
||||
this.imageBadges = [];
|
||||
|
|
|
@ -5,5 +5,5 @@ export const viewTypes = {
|
|||
};
|
||||
|
||||
export function isValidViewType(validate) {
|
||||
return Boolean(Object.getOwnPropertyNames(viewTypes).find(viewType => viewType === validate));
|
||||
return Boolean(Object.getOwnPropertyNames(viewTypes).find((viewType) => viewType === validate));
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ import setNewNameMutation from '../graphql/mutations/set_new_name.mutation.graph
|
|||
import importGroupMutation from '../graphql/mutations/import_group.mutation.graphql';
|
||||
import ImportTableRow from './import_table_row.vue';
|
||||
|
||||
const mapApolloMutations = mutations =>
|
||||
const mapApolloMutations = (mutations) =>
|
||||
Object.fromEntries(
|
||||
Object.entries(mutations).map(([key, mutation]) => [
|
||||
key,
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue