diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-20 16:49:51 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-20 16:49:51 +0300 |
commit | 71786ddc8e28fbd3cb3fcc4b3ff15e5962a1c82e (patch) | |
tree | 6a2d93ef3fb2d353bb7739e4b57e6541f51cdd71 /app/views/projects | |
parent | a7253423e3403b8c08f8a161e5937e1488f5f407 (diff) |
Add latest changes from gitlab-org/gitlab@15-9-stable-eev15.9.0-rc42
Diffstat (limited to 'app/views/projects')
50 files changed, 209 insertions, 255 deletions
diff --git a/app/views/projects/_files.html.haml b/app/views/projects/_files.html.haml index e4eed63f45a..e2d1a50ae5e 100644 --- a/app/views/projects/_files.html.haml +++ b/app/views/projects/_files.html.haml @@ -4,7 +4,6 @@ - ref = local_assigns.fetch(:ref) { current_ref } - project = local_assigns.fetch(:project) { @project } - add_page_startup_api_call logs_file_project_ref_path(@project, ref, @path, format: "json", offset: 0) -- source = visible_fork_source(@project) - if readme_path = @project.repository.readme_path - add_page_startup_api_call project_blob_path(@project, tree_join(@ref, readme_path), viewer: "rich", format: "json") @@ -18,7 +17,8 @@ = render 'projects/tree/tree_header', tree: @tree, is_project_overview: is_project_overview - if project.forked? && Feature.enabled?(:fork_divergence_counts, @project.fork_source) - #js-fork-info{ data: { source_name: source ? source.full_name : '', source_path: source ? project_path(source) : '' } } + + #js-fork-info{ data: vue_fork_divergence_data(project, ref), project_id: @project.id } - if is_project_overview .project-buttons.gl-mb-5.js-show-on-project-root{ data: { qa_selector: 'project_buttons' } } diff --git a/app/views/projects/_merge_request_pipelines_and_threads_options.html.haml b/app/views/projects/_merge_request_pipelines_and_threads_options.html.haml index 94f8d3cc4a3..a9609434f15 100644 --- a/app/views/projects/_merge_request_pipelines_and_threads_options.html.haml +++ b/app/views/projects/_merge_request_pipelines_and_threads_options.html.haml @@ -1,13 +1,13 @@ - form = local_assigns.fetch(:form) = form.gitlab_ui_checkbox_component :only_allow_merge_if_pipeline_succeeds, - s_('ProjectSettings|Pipelines must succeed'), - help_text: s_("ProjectSettings|Merge requests can't be merged if the latest pipeline did not succeed or is still running.") + s_('MergeChecks|Pipelines must succeed'), + help_text: s_("MergeChecks|Merge requests can't be merged if the latest pipeline did not succeed or is still running.") .gl-pl-6 = form.gitlab_ui_checkbox_component :allow_merge_on_skipped_pipeline, - s_('ProjectSettings|Skipped pipelines are considered successful'), - help_text: s_('ProjectSettings|Introduces the risk of merging changes that do not pass the pipeline.'), + s_('MergeChecks|Skipped pipelines are considered successful'), + help_text: s_('MergeChecks|Introduces the risk of merging changes that do not pass the pipeline.'), checkbox_options: { class: 'gl-pl-6' } = form.gitlab_ui_checkbox_component :only_allow_merge_if_all_discussions_are_resolved, - s_('ProjectSettings|All threads must be resolved'), - checkbox_options: { data: { qa_selector: 'allow_merge_if_all_discussions_are_resolved_checkbox' } } + s_('MergeChecks|All threads must be resolved'), + checkbox_options: { data: { qa_selector: 'only_allow_merge_if_all_discussions_are_resolved_checkbox' } } diff --git a/app/views/projects/_new_project_fields.html.haml b/app/views/projects/_new_project_fields.html.haml index ec83782985b..53a1abdff33 100644 --- a/app/views/projects/_new_project_fields.html.haml +++ b/app/views/projects/_new_project_fields.html.haml @@ -6,11 +6,13 @@ .row{ id: project_name_id } = f.hidden_field :ci_cd_only, value: ci_cd_only - .form-group.project-name.col-sm-12 + .form-group.gl-form-group.project-name.col-sm-12 = f.label :name, class: 'label-bold' do %span= _("Project name") = f.text_field :name, placeholder: "My awesome project", class: "form-control gl-form-input input-lg", data: { qa_selector: 'project_name', track_label: "#{track_label}", track_action: "activate_form_input", track_property: "project_name", track_value: "" }, required: true, aria: { required: true } - #project_name_error.gl-field-error.hidden + %small#js-project-name-description.form-text.text-gl-muted + = s_("ProjectsNew|Must start with a lowercase or uppercase letter, digit, emoji, or underscore. Can also contain dots, pluses, dashes, or spaces.") + #js-project-name-error.gl-field-error.gl-mt-2.gl-display-none .form-group.project-path.col-sm-6.gl-pr-0 = f.label :namespace_id, class: 'label-bold' do %span= _('Project URL') diff --git a/app/views/projects/airflow/dags/index.html.haml b/app/views/projects/airflow/dags/index.html.haml new file mode 100644 index 00000000000..d631d084db1 --- /dev/null +++ b/app/views/projects/airflow/dags/index.html.haml @@ -0,0 +1,11 @@ +- breadcrumb_title s_('Airflow|Airflow DAGs') +- page_title s_('Airflow|Airflow DAGs') + +.page-title-holder + %h1.page-title.gl-font-size-h-display= s_('Airflow|Airflow DAGs') + +#js-show-airflow-dags{ data: { + dags: @dags.to_json, + pagination: @pagination.to_json + } +} diff --git a/app/views/projects/artifacts/browse.html.haml b/app/views/projects/artifacts/browse.html.haml index c91dfe6d28e..3359ea5f63b 100644 --- a/app/views/projects/artifacts/browse.html.haml +++ b/app/views/projects/artifacts/browse.html.haml @@ -1,6 +1,7 @@ - breadcrumb_title _('Artifacts') - page_title @path.presence, _('Artifacts'), "#{@build.name} (##{@build.id})", _('Jobs') - add_page_specific_style 'page_bundles/tree' +- add_page_specific_style 'page_bundles/ci_status' = render "projects/jobs/header" diff --git a/app/views/projects/artifacts/index.html.haml b/app/views/projects/artifacts/index.html.haml index 7fa47aed7c6..09970f7b12c 100644 --- a/app/views/projects/artifacts/index.html.haml +++ b/app/views/projects/artifacts/index.html.haml @@ -1,11 +1,3 @@ - page_title _('Artifacts') -%div{ class: container_class } - %h1.page-title.gl-font-size-h-display.gl-mb-0 - = s_('Artifacts|Artifacts') - .gl-mb-6 - %strong= s_('Artifacts|Total artifacts size') - = number_to_human_size(@total_size, precicion: 2) - #js-artifact-management{ data: { "project-path": @project.full_path, - "can-destroy-artifacts" => can?(current_user, :destroy_artifacts, @project).to_s, - "artifacts-management-feedback-image-path": image_path('illustrations/chat-bubble-sm.svg') } } +#js-artifact-management{ data: artifacts_app_data(@project) } diff --git a/app/views/projects/blame/_page.html.haml b/app/views/projects/blame/_page.html.haml new file mode 100644 index 00000000000..92fb99c30a6 --- /dev/null +++ b/app/views/projects/blame/_page.html.haml @@ -0,0 +1,34 @@ +- current_line = @blame.first_line + +.file-content.blame.code{ class: user_color_scheme } + - groups_length = @blame.groups.size - 1 + - @blame.groups.each_with_index do |blame_group, index| + - commit_data = @blame.commit_data(blame_group[:commit]) + - line_count = blame_group[:lines].count + + .tr{ class: ('last-row' if groups_length == index) } + .td.blame-commit.commit{ class: commit_data.age_map_class } + = commit_data.author_avatar + + .commit-row-title + %span.item-title.str-truncated-100 + = commit_data.commit_link + = commit_data.project_blame_link + + .light + = commit_data.commit_author_link + = _('committed') + #{commit_data.time_ago_tooltip} + + .td.line-numbers + - (current_line...(current_line + line_count)).each do |i| + %a.diff-line-num.file-line-num.no-link{ href: "#L#{i}", id: "L#{i}", 'data-line-number' => i } + = i + + .td.lines + %pre.code.highlight + %code + - blame_group[:lines].each do |line| + #{line} + + - current_line += line_count diff --git a/app/views/projects/blame/show.html.haml b/app/views/projects/blame/show.html.haml index dd041377b49..827aa86d61a 100644 --- a/app/views/projects/blame/show.html.haml +++ b/app/views/projects/blame/show.html.haml @@ -1,10 +1,11 @@ - page_title _("Blame"), @blob.path, @ref - add_page_specific_style 'page_bundles/tree' +- dataset = { testid: 'blob-content-holder', qa_selector: 'blame_file_content', per_page: @blame_per_page } -#blob-content-holder.tree-holder.js-per-page{ data: { testid: 'blob-content-holder', per_page: @blame_per_page } } +#blob-content-holder.tree-holder.js-per-page{ data: dataset } = render "projects/blob/breadcrumb", blob: @blob, blame: true - .file-holder.gl-overflow-hidden + .file-holder = render "projects/blob/header", blob: @blob, blame: true .file-blame-legend @@ -21,44 +22,9 @@ %span.legend-box.legend-box-9 %span.right-label Older - .table-responsive.file-content.blame.code{ class: "#{user_color_scheme} gl-rounded-0!", data: { qa_selector: 'blame_file_content' } } - %table - - current_line = @blame.first_line - - @blame.groups.each do |blame_group| - - commit_data = @blame.commit_data(blame_group[:commit]) - - line_count = blame_group[:lines].count - - %tr{ style: intrinsic_row_css(line_count) } - %td.blame-commit{ class: commit_data.age_map_class } - .commit - = commit_data.author_avatar - - .commit-row-title - %span.item-title.str-truncated-100 - = commit_data.commit_link - %span - = commit_data.project_blame_link - - - .light - = commit_data.commit_author_link - = _('committed') - #{commit_data.time_ago_tooltip} - - %td.line-numbers - - (current_line...(current_line + line_count)).each do |i| - %a.diff-line-num.gl-justify-content-end{ href: "#L#{i}", id: "L#{i}", 'data-line-number' => i, class: "gl-display-flex!" } - .file-line-num - = i - \ - - %td.lines.gl-w-full - %pre.code.highlight - %code - - blame_group[:lines].each do |line| - #{line} - - - current_line += line_count + .table-responsive.blame-table{ data: { qa_selector: 'blame_file_content' } } + .blame-table-wrapper + = render partial: 'page' - if @blame_pagination && @blame_pagination.total_pages > 1 .gl-display-flex.gl-justify-content-center.gl-flex-direction-column.gl-align-items-center.gl-p-3.gl-bg-gray-50.gl-border-t-solid.gl-border-t-1.gl-border-gray-100 diff --git a/app/views/projects/branches/index.html.haml b/app/views/projects/branches/index.html.haml index 475bc9e1c20..f43d19e2542 100644 --- a/app/views/projects/branches/index.html.haml +++ b/app/views/projects/branches/index.html.haml @@ -2,6 +2,11 @@ - page_title _('Branches') - add_to_breadcrumbs(_('Repository'), project_tree_path(@project)) +-# Possible values for variables passed down from the projects/branches_controller.rb +-# +-# @mode - overview|active|stale|all (default:overview) +-# @sort - name_asc|updated_asc|updated_desc + .top-area.gl-border-0 = gl_tabs_nav({ class: 'gl-flex-grow-1 gl-border-b-0' }) do = gl_tab_link_to s_('Branches|Overview'), project_branches_path(@project), { item_active: @mode == 'overview', title: s_('Branches|Show overview of the branches') } @@ -10,7 +15,12 @@ = gl_tab_link_to s_('Branches|All'), project_branches_filtered_path(@project, state: 'all'), { item_active: %w[overview active stale].exclude?(@mode), title: s_('Branches|Show all branches') } .nav-controls - #js-branches-sort-dropdown{ data: { project_branches_filtered_path: project_branches_path(@project, state: 'all'), sort_options: branches_sort_options_hash.to_json, mode: @mode } } + #js-branches-sort-dropdown{ data: { + project_branches_filtered_path: project_branches_path(@project, state: 'all'), + sort_options: branches_sort_options_hash.to_json, + show_dropdown: @mode == 'overview' ? 'false' : 'true', + sorted_by: @sort } + } - if can? current_user, :push_code, @project .js-delete-merged-branches{ data: { diff --git a/app/views/projects/buttons/_clone.html.haml b/app/views/projects/buttons/_clone.html.haml index a755cb9f5b0..a8a911adb7d 100644 --- a/app/views/projects/buttons/_clone.html.haml +++ b/app/views/projects/buttons/_clone.html.haml @@ -1,54 +1,55 @@ - project = project || @project - dropdown_class = local_assigns.fetch(:dropdown_class, '') -.git-clone-holder.js-git-clone-holder - %a#clone-dropdown.gl-button.btn.btn-confirm.clone-dropdown-btn{ href: '#', data: { toggle: 'dropdown', qa_selector: 'clone_dropdown' } } - %span.gl-mr-2.js-clone-dropdown-label - = _('Clone') - = sprite_icon("chevron-down", css_class: "icon") - %ul.dropdown-menu.dropdown-menu-large.dropdown-menu-selectable.clone-options-dropdown{ class: dropdown_class, data: { qa_selector: 'clone_dropdown_content' } } - - if ssh_enabled? - %li{ class: 'gl-px-4!' } - %label.label-bold - = _('Clone with SSH') - .input-group.btn-group - = text_field_tag :ssh_project_clone, project.ssh_url_to_repo, class: "js-select-on-focus form-control", readonly: true, aria: { label: _('Repository clone URL') }, data: { qa_selector: 'ssh_clone_url_content' } - .input-group-append - = clipboard_button(target: '#ssh_project_clone', title: _("Copy URL"), class: "input-group-text gl-button btn btn-icon btn-default") - = render_if_exists 'projects/buttons/geo' - - if http_enabled? - %li.pt-2{ class: 'gl-px-4!' } - %label.label-bold - = _('Clone with %{http_label}') % { http_label: gitlab_config.protocol.upcase } - .input-group.btn-group - = text_field_tag :http_project_clone, project.http_url_to_repo, class: "js-select-on-focus form-control", readonly: true, aria: { label: _('Repository clone URL') }, data: { qa_selector: 'http_clone_url_content' } - .input-group-append - = clipboard_button(target: '#http_project_clone', title: _("Copy URL"), class: "input-group-text gl-button btn btn-icon btn-default") - = render_if_exists 'projects/buttons/geo' - = render_if_exists 'projects/buttons/kerberos_clone_field' - %li.divider.mt-2 - %li.pt-2.gl-dropdown-item - %label.label-bold{ class: 'gl-px-4!' } - = _('Open in your IDE') +- if can?(current_user, :download_code, @project) + .git-clone-holder.js-git-clone-holder + %a#clone-dropdown.gl-button.btn.btn-confirm.clone-dropdown-btn{ href: '#', data: { toggle: 'dropdown', qa_selector: 'clone_dropdown' } } + %span.gl-mr-2.js-clone-dropdown-label + = _('Clone') + = sprite_icon("chevron-down", css_class: "icon") + %ul.dropdown-menu.dropdown-menu-large.dropdown-menu-selectable.clone-options-dropdown{ class: dropdown_class, data: { qa_selector: 'clone_dropdown_content' } } - if ssh_enabled? - - escaped_ssh_url_to_repo = CGI.escape(project.ssh_url_to_repo) - %a.dropdown-item.open-with-link{ href: 'vscode://vscode.git/clone?url=' + escaped_ssh_url_to_repo } - .gl-dropdown-item-text-wrapper - = _('Visual Studio Code (SSH)') + %li{ class: 'gl-px-4!' } + %label.label-bold + = _('Clone with SSH') + .input-group.btn-group + = text_field_tag :ssh_project_clone, project.ssh_url_to_repo, class: "js-select-on-focus form-control", readonly: true, aria: { label: _('Repository clone URL') }, data: { qa_selector: 'ssh_clone_url_content' } + .input-group-append + = clipboard_button(target: '#ssh_project_clone', title: _("Copy URL"), class: "input-group-text gl-button btn btn-icon btn-default") + = render_if_exists 'projects/buttons/geo' - if http_enabled? - - escaped_http_url_to_repo = CGI.escape(project.http_url_to_repo) - %a.dropdown-item.open-with-link{ href: 'vscode://vscode.git/clone?url=' + escaped_http_url_to_repo } - .gl-dropdown-item-text-wrapper - = _('Visual Studio Code (HTTPS)') - - if ssh_enabled? - %a.dropdown-item.open-with-link{ href: 'jetbrains://idea/checkout/git?idea.required.plugins.id=Git4Idea&checkout.repo=' + escaped_ssh_url_to_repo } - .gl-dropdown-item-text-wrapper - = _('IntelliJ IDEA (SSH)') - - if http_enabled? - %a.dropdown-item.open-with-link{ href: 'jetbrains://idea/checkout/git?idea.required.plugins.id=Git4Idea&checkout.repo=' + escaped_http_url_to_repo } - .gl-dropdown-item-text-wrapper - = _('IntelliJ IDEA (HTTPS)') - - if show_xcode_link?(@project) - %a.dropdown-item.open-with-link{ href: xcode_uri_to_repo(@project) } - .gl-dropdown-item-text-wrapper - = _("Xcode") + %li.pt-2{ class: 'gl-px-4!' } + %label.label-bold + = _('Clone with %{http_label}') % { http_label: gitlab_config.protocol.upcase } + .input-group.btn-group + = text_field_tag :http_project_clone, project.http_url_to_repo, class: "js-select-on-focus form-control", readonly: true, aria: { label: _('Repository clone URL') }, data: { qa_selector: 'http_clone_url_content' } + .input-group-append + = clipboard_button(target: '#http_project_clone', title: _("Copy URL"), class: "input-group-text gl-button btn btn-icon btn-default") + = render_if_exists 'projects/buttons/geo' + = render_if_exists 'projects/buttons/kerberos_clone_field' + %li.divider.mt-2 + %li.pt-2.gl-dropdown-item + %label.label-bold{ class: 'gl-px-4!' } + = _('Open in your IDE') + - if ssh_enabled? + - escaped_ssh_url_to_repo = CGI.escape(project.ssh_url_to_repo) + %a.dropdown-item.open-with-link{ href: 'vscode://vscode.git/clone?url=' + escaped_ssh_url_to_repo } + .gl-dropdown-item-text-wrapper + = _('Visual Studio Code (SSH)') + - if http_enabled? + - escaped_http_url_to_repo = CGI.escape(project.http_url_to_repo) + %a.dropdown-item.open-with-link{ href: 'vscode://vscode.git/clone?url=' + escaped_http_url_to_repo } + .gl-dropdown-item-text-wrapper + = _('Visual Studio Code (HTTPS)') + - if ssh_enabled? + %a.dropdown-item.open-with-link{ href: 'jetbrains://idea/checkout/git?idea.required.plugins.id=Git4Idea&checkout.repo=' + escaped_ssh_url_to_repo } + .gl-dropdown-item-text-wrapper + = _('IntelliJ IDEA (SSH)') + - if http_enabled? + %a.dropdown-item.open-with-link{ href: 'jetbrains://idea/checkout/git?idea.required.plugins.id=Git4Idea&checkout.repo=' + escaped_http_url_to_repo } + .gl-dropdown-item-text-wrapper + = _('IntelliJ IDEA (HTTPS)') + - if show_xcode_link?(@project) + %a.dropdown-item.open-with-link{ href: xcode_uri_to_repo(@project) } + .gl-dropdown-item-text-wrapper + = _("Xcode") diff --git a/app/views/projects/commit/_ajax_signature.html.haml b/app/views/projects/commit/_ajax_signature.html.haml index e1bf0940f59..87ccf01c011 100644 --- a/app/views/projects/commit/_ajax_signature.html.haml +++ b/app/views/projects/commit/_ajax_signature.html.haml @@ -1,2 +1,2 @@ - if commit.has_signature? - %button{ tabindex: 0, class: commit_signature_badge_classes('js-loading-gpg-badge'), data: { toggle: 'tooltip', placement: 'top', title: _('GPG signature (loading...)'), 'commit-sha' => commit.sha } } + %a.js-loading-signature-badge{ tabindex: 0, role: 'button', data: { toggle: 'tooltip', placement: 'top', title: _('GPG signature (loading...)'), 'commit-sha' => commit.sha } } diff --git a/app/views/projects/commit/_multiple_signatures_signature_badge.html.haml b/app/views/projects/commit/_multiple_signatures_signature_badge.html.haml index 2568a69cc2c..f80f194bd4d 100644 --- a/app/views/projects/commit/_multiple_signatures_signature_badge.html.haml +++ b/app/views/projects/commit/_multiple_signatures_signature_badge.html.haml @@ -1,5 +1,5 @@ - title = _('Multiple signatures') - description = _('This commit was signed with multiple signatures.') -- locals = { signature: signature, title: title, description: description, label: _('Unverified'), css_class: 'invalid' } +- locals = { signature: signature, title: title, description: description, label: _('Unverified'), variant: 'muted' } = render partial: 'projects/commit/signature_badge', locals: locals diff --git a/app/views/projects/commit/_other_user_signature_badge.html.haml b/app/views/projects/commit/_other_user_signature_badge.html.haml index ffc4b25dc21..345a1964259 100644 --- a/app/views/projects/commit/_other_user_signature_badge.html.haml +++ b/app/views/projects/commit/_other_user_signature_badge.html.haml @@ -1,5 +1,5 @@ - title = _("Different user's signature") - description = _("This commit was signed with a different user's verified signature.") -- locals = { signature: signature, title: title, description: description, label: _('Unverified'), css_class: 'invalid' } +- locals = { signature: signature, title: title, description: description, label: _('Unverified'), variant: 'muted' } = render partial: 'projects/commit/signature_badge', locals: locals diff --git a/app/views/projects/commit/_revoked_key_signature_badge.html.haml b/app/views/projects/commit/_revoked_key_signature_badge.html.haml new file mode 100644 index 00000000000..cbcc39249ce --- /dev/null +++ b/app/views/projects/commit/_revoked_key_signature_badge.html.haml @@ -0,0 +1,5 @@ +- title = s_('CommitSignature|Unverified signature') +- description = s_('CommitSignature|This commit was signed with a key that was revoked.') +- locals = { signature: signature, title: title, description: description, label: s_('CommitSignature|Unverified'), variant: 'muted' } + += render partial: 'projects/commit/signature_badge', locals: locals diff --git a/app/views/projects/commit/_same_user_different_email_signature_badge.html.haml b/app/views/projects/commit/_same_user_different_email_signature_badge.html.haml index 61fdf6fc87a..afce5c10065 100644 --- a/app/views/projects/commit/_same_user_different_email_signature_badge.html.haml +++ b/app/views/projects/commit/_same_user_different_email_signature_badge.html.haml @@ -1,5 +1,5 @@ - title = _('GPG key mismatch') - description = _('This commit was signed with a verified signature, but the committer email is not associated with the GPG Key.') -- locals = { signature: signature, title: title, description: description, label: _('Unverified'), css_class: ['invalid'] } +- locals = { signature: signature, title: title, description: description, label: _('Unverified'), variant: 'muted' } = render partial: 'projects/commit/signature_badge', locals: locals diff --git a/app/views/projects/commit/_signature_badge.html.haml b/app/views/projects/commit/_signature_badge.html.haml index 41ba581b9d9..88631f14e56 100644 --- a/app/views/projects/commit/_signature_badge.html.haml +++ b/app/views/projects/commit/_signature_badge.html.haml @@ -2,12 +2,10 @@ - title = local_assigns.fetch(:title) - description = local_assigns.fetch(:description, nil) - label = local_assigns.fetch(:label) -- css_class = local_assigns.fetch(:css_class) - -- css_classes = commit_signature_badge_classes(css_class) +- variant = local_assigns.fetch(:variant) - title = capture do - .gpg-popover-status + .signature-popover %div %strong = title @@ -31,5 +29,5 @@ = link_to(_('Learn about signing commits'), help_page_path('user/project/repository/gpg_signed_commits/index.md'), class: 'gl-link gl-display-block gl-mt-3') -%a{ role: 'button', tabindex: 0, class: css_classes, data: { toggle: 'popover', html: 'true', placement: 'top', title: title, content: content } } - = label +%a.signature-badge.gl-display-flex{ role: 'button', tabindex: 0, data: { toggle: 'popover', html: 'true', placement: 'top', title: title, content: content } } + = gl_badge_tag label, variant: variant diff --git a/app/views/projects/commit/_unverified_signature_badge.html.haml b/app/views/projects/commit/_unverified_signature_badge.html.haml index 0eae8d5564d..62a27aea60e 100644 --- a/app/views/projects/commit/_unverified_signature_badge.html.haml +++ b/app/views/projects/commit/_unverified_signature_badge.html.haml @@ -1,5 +1,5 @@ - title = _('Unverified signature') - description = _('This commit was signed with an unverified signature.') -- locals = { signature: signature, title: title, description: description, label: _('Unverified'), css_class: 'invalid' } +- locals = { signature: signature, title: title, description: description, label: _('Unverified'), variant: 'muted' } = render partial: 'projects/commit/signature_badge', locals: locals diff --git a/app/views/projects/commit/_verified_signature_badge.html.haml b/app/views/projects/commit/_verified_signature_badge.html.haml index 417d816c711..dd5d0d7d6eb 100644 --- a/app/views/projects/commit/_verified_signature_badge.html.haml +++ b/app/views/projects/commit/_verified_signature_badge.html.haml @@ -1,5 +1,5 @@ - title = _('Verified commit') - description = _('This commit was signed with a verified signature and the committer email was verified to belong to the same user.') -- locals = { signature: signature, title: title, description: description, label: _('Verified'), css_class: 'valid' } +- locals = { signature: signature, title: title, description: description, label: _('Verified'), variant: 'success' } = render partial: 'projects/commit/signature_badge', locals: locals diff --git a/app/views/projects/commit/x509/_unverified_signature_badge.html.haml b/app/views/projects/commit/x509/_unverified_signature_badge.html.haml index 6204a6977c0..94b9abda69e 100644 --- a/app/views/projects/commit/x509/_unverified_signature_badge.html.haml +++ b/app/views/projects/commit/x509/_unverified_signature_badge.html.haml @@ -1,6 +1,6 @@ - title = capture do = html_escape(_('This commit was signed with an %{strong_open}unverified%{strong_close} signature.')) % { strong_open: '<strong>'.html_safe, strong_close: '</strong>'.html_safe } -- locals = { signature: signature, title: title, label: _('Unverified'), css_class: 'invalid', icon: 'status_notfound_borderless', show_user: true } +- locals = { signature: signature, title: title, label: _('Unverified'), variant: 'muted', icon: 'status_notfound_borderless', show_user: true } = render partial: 'projects/commit/signature_badge', locals: locals diff --git a/app/views/projects/commit/x509/_verified_signature_badge.html.haml b/app/views/projects/commit/x509/_verified_signature_badge.html.haml index 357ad467539..a10516d275a 100644 --- a/app/views/projects/commit/x509/_verified_signature_badge.html.haml +++ b/app/views/projects/commit/x509/_verified_signature_badge.html.haml @@ -1,6 +1,6 @@ - title = capture do = html_escape(_('This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user.')) % { strong_open: '<strong>'.html_safe, strong_close: '</strong>'.html_safe } -- locals = { signature: signature, title: title, label: _('Verified'), css_class: 'valid', icon: 'status_success_borderless', show_user: true } +- locals = { signature: signature, title: title, label: _('Verified'), variant: 'success', icon: 'status_success_borderless', show_user: true } = render partial: 'projects/commit/signature_badge', locals: locals diff --git a/app/views/projects/commits/show.html.haml b/app/views/projects/commits/show.html.haml index 8f802792e6a..689862eae8a 100644 --- a/app/views/projects/commits/show.html.haml +++ b/app/views/projects/commits/show.html.haml @@ -9,7 +9,7 @@ .tree-holder .nav-block .tree-ref-container - .tree-ref-holder + .tree-ref-holder.gl-max-w-26 #js-project-commits-ref-switcher{ data: { "project-id" => @project.id, "ref" => @ref, "commits_path": project_commits_path(@project), "ref_type": @ref_type.to_s } } %ul.breadcrumb.repo-breadcrumb diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml index f6e3c15c08b..e87005434e4 100644 --- a/app/views/projects/edit.html.haml +++ b/app/views/projects/edit.html.haml @@ -36,6 +36,8 @@ = c.body do = _('On the left sidebar, select %{merge_requests_link} to view them.').html_safe % { merge_requests_link: link_to('Settings > Merge requests', project_settings_merge_requests_path(@project)).html_safe } += render_if_exists 'projects/settings/analytics_dashboards', expanded: expanded + %section.settings.no-animate{ class: ('expanded' if expanded), data: { qa_selector: 'badges_settings_content' } } .settings-header %h4.settings-title.js-settings-toggle.js-settings-toggle-trigger-only @@ -72,6 +74,9 @@ = link_to _('Run housekeeping'), housekeeping_project_path(@project), method: :post, class: "btn gl-button btn-default" + .gl-display-inline-flex + #js-project-prune-unreachable-objects-button{ data: { prune_objects_path: housekeeping_project_path(@project, prune: true), prune_objects_doc_path: help_page_path('administration/housekeeping', anchor: 'prune-unreachable-objects') } } + = render 'export', project: @project = render_if_exists 'projects/settings/archive' diff --git a/app/views/projects/environments/edit.html.haml b/app/views/projects/environments/edit.html.haml index dcd5fb2574e..7a275b51c74 100644 --- a/app/views/projects/environments/edit.html.haml +++ b/app/views/projects/environments/edit.html.haml @@ -3,4 +3,5 @@ #js-edit-environment{ data: { project_environments_path: project_environments_path(@project), update_environment_path: project_environment_path(@project, @environment), + protected_environment_settings_path: (project_settings_ci_cd_path(@project, anchor: 'js-protected-environments-settings') if @project.licensed_feature_available?(:protected_environments)), environment: environment_data(@environment)} } diff --git a/app/views/projects/find_file/show.html.haml b/app/views/projects/find_file/show.html.haml index 7cd4ab08680..1d4e907dd61 100644 --- a/app/views/projects/find_file/show.html.haml +++ b/app/views/projects/find_file/show.html.haml @@ -4,7 +4,7 @@ .file-finder-holder.tree-holder.clearfix.js-file-finder{ 'data-file-find-url': "#{escape_javascript(project_files_path(@project, @ref, format: :json))}", 'data-find-tree-url': escape_javascript(project_tree_path(@project, @ref)), 'data-blob-url-template': escape_javascript(project_blob_path(@project, @ref)) } .nav-block .tree-ref-holder - = render 'shared/ref_switcher', destination: 'find_file', path: @path + #js-blob-ref-switcher{ data: { project_id: @project.id, ref: @ref, namespace: "/-/find_file" } } %ul.breadcrumb.repo-breadcrumb %li.breadcrumb-item = link_to project_tree_path(@project, @ref) do diff --git a/app/views/projects/forks/index.html.haml b/app/views/projects/forks/index.html.haml index 905c5779c7d..d28ee30b6f9 100644 --- a/app/views/projects/forks/index.html.haml +++ b/app/views/projects/forks/index.html.haml @@ -15,8 +15,7 @@ .dropdown.gl-display-inline.gl-md-ml-3.issue-sort-dropdown.gl-mt-3.gl-md-mt-0 .btn-group{ role: 'group' } - .btn-group{ role: 'group' } - = gl_redirect_listbox_tag [created_at, activity], @sort + = gl_redirect_listbox_tag [created_at, activity], @sort = forks_sort_direction_button(sort_value) - if current_user && can?(current_user, :fork_project, @project) diff --git a/app/views/projects/graphs/charts.html.haml b/app/views/projects/graphs/charts.html.haml index edf8f71c673..f026a6158cb 100644 --- a/app/views/projects/graphs/charts.html.haml +++ b/app/views/projects/graphs/charts.html.haml @@ -34,7 +34,7 @@ .col-md-6 .tree-ref-container .tree-ref-holder - = render 'shared/ref_switcher', destination: 'graphs_commits', path: @path + #js-project-graph-ref-switcher{ data: { project_id: @project.id, graph_path: project_graph_path(@project, @id), project_branch: current_ref } } %ul.breadcrumb.repo-breadcrumb = commits_breadcrumbs diff --git a/app/views/projects/graphs/show.html.haml b/app/views/projects/graphs/show.html.haml index a27f076d5dd..754de2db8f3 100644 --- a/app/views/projects/graphs/show.html.haml +++ b/app/views/projects/graphs/show.html.haml @@ -1,14 +1,5 @@ - page_title _('Contributors') -- if Feature.enabled?(:use_ref_type_parameter, @project) - - graph_path = project_graph_path(@project, current_ref, ref_type: @ref_type, format: :json) - - commits_path = project_commits_path(@project, current_ref, ref_type: @ref_type) -- else - - graph_path = project_graph_path(@project, current_ref, format: :json) - - commits_path = project_commits_path(@project, current_ref) +- graph_path = project_graph_path(@project, current_ref, ref_type: @ref_type, format: :json) +- commits_path = project_commits_path(@project, current_ref, ref_type: @ref_type) -.sub-header-block.gl-bg-gray-10.gl-p-5 - .tree-ref-holder.gl-display-inline-block.gl-vertical-align-middle.gl-mr-3> - = render 'shared/ref_switcher', destination: 'graphs' - = link_to s_('Commits|History'), commits_path, class: 'btn gl-button btn-default' - -.js-contributors-graph{ class: container_class, data: { project_graph_path: graph_path, project_branch: current_ref, default_branch: @project.default_branch } } +.js-contributors-graph{ class: container_class, data: { project_graph_path: graph_path, project_branch: current_ref, default_branch: @project.default_branch, project_id: @project.id, commits_path: commits_path } } diff --git a/app/views/projects/issues/_discussion.html.haml b/app/views/projects/issues/_discussion.html.haml index 40935ab6f70..c86f9c79912 100644 --- a/app/views/projects/issues/_discussion.html.haml +++ b/app/views/projects/issues/_discussion.html.haml @@ -11,4 +11,5 @@ target_type: 'issue', show_timeline_view_toggle: show_timeline_view_toggle?(@issue).to_s, current_user_data: UserSerializer.new.represent(current_user, {only_path: true}, CurrentUserEntity).to_json, - can_add_timeline_events: "#{can?(current_user, :admin_incident_management_timeline_event, @issue)}" } } + can_add_timeline_events: "#{can?(current_user, :admin_incident_management_timeline_event, @issue)}", + report_abuse_path: add_category_abuse_reports_path } } diff --git a/app/views/projects/issues/_issue.html.haml b/app/views/projects/issues/_issue.html.haml index 1d3320e4f82..18975bc3db6 100644 --- a/app/views/projects/issues/_issue.html.haml +++ b/app/views/projects/issues/_issue.html.haml @@ -20,7 +20,7 @@ %span.issuable-authored.d-none.d-sm-inline-block · - if issue.service_desk_reply_to - #{_('created %{timeAgoString} by %{email} via %{user}').html_safe % { timeAgoString: time_ago_with_tooltip(issue.created_at, placement: 'bottom'), email: issue.service_desk_reply_to, user: link_to_member(@project, issue.author, avatar: false) }} + #{_('created %{timeAgoString} by %{email} via %{user}').html_safe % { timeAgoString: time_ago_with_tooltip(issue.created_at, placement: 'bottom'), email: issue.present(current_user: current_user).service_desk_reply_to, user: link_to_member(@project, issue.author, avatar: false) }} - else #{s_('IssueList|created %{timeAgoString} by %{user}').html_safe % { timeAgoString: time_ago_with_tooltip(issue.created_at, placement: 'bottom'), user: link_to_member(@project, issue.author, avatar: false) }} = render_if_exists 'shared/issuable/gitlab_team_member_badge', author: issue.author diff --git a/app/views/projects/learn_gitlab/index.html.haml b/app/views/projects/learn_gitlab/index.html.haml deleted file mode 100644 index 0e950c26d34..00000000000 --- a/app/views/projects/learn_gitlab/index.html.haml +++ /dev/null @@ -1,8 +0,0 @@ -- breadcrumb_title _("Learn GitLab") -- page_title _("Learn GitLab") -- add_page_specific_style 'page_bundles/learn_gitlab' -- data = learn_gitlab_data(@project) - -= render 'projects/invite_members_modal', project: @project - -#js-learn-gitlab-app{ data: data } diff --git a/app/views/projects/merge_requests/_close_reopen_draft_report_toggle.html.haml b/app/views/projects/merge_requests/_close_reopen_draft_report_toggle.html.haml index 0123c5efd3d..92b0a5a0b90 100644 --- a/app/views/projects/merge_requests/_close_reopen_draft_report_toggle.html.haml +++ b/app/views/projects/merge_requests/_close_reopen_draft_report_toggle.html.haml @@ -47,6 +47,6 @@ - if moved_mr_sidebar_enabled? %li.gl-dropdown-divider %hr.dropdown-divider - #js-report-abuse-dropdown-item{ data: { report_abuse_path: add_category_abuse_reports_path, reported_user_id: @merge_request.author.id, reported_from_url: merge_request_url(@merge_request) } } + .js-report-abuse-dropdown-item{ data: { report_abuse_path: add_category_abuse_reports_path, reported_user_id: @merge_request.author.id, reported_from_url: merge_request_url(@merge_request) } } #js-report-abuse-drawer diff --git a/app/views/projects/merge_requests/_page.html.haml b/app/views/projects/merge_requests/_page.html.haml index 47eb3e016d3..880bffc43ab 100644 --- a/app/views/projects/merge_requests/_page.html.haml +++ b/app/views/projects/merge_requests/_page.html.haml @@ -19,11 +19,10 @@ - if mr_action == 'diffs' - add_page_startup_api_call @endpoint_diff_batch_url -.merge-request{ data: { mr_action: mr_action, url: merge_request_path(@merge_request, format: :json), project_path: project_path(@merge_request.project), lock_version: @merge_request.lock_version } } +.merge-request{ data: { mr_action: mr_action, url: merge_request_path(@merge_request, format: :json), project_path: project_path(@merge_request.project), lock_version: @merge_request.lock_version, diffs_batch_cache_key: @diffs_batch_cache_key } } + = render "projects/merge_requests/mr_title" - if moved_mr_sidebar_enabled? #js-merge-sticky-header{ data: { data: sticky_header_data.to_json } } - = render "projects/merge_requests/mr_title" - .merge-request-details.issuable-details{ data: { id: @merge_request.project.id } } = render "projects/merge_requests/mr_box" .merge-request-tabs-holder{ class: "#{'js-tabs-affix' unless ENV['RAILS_ENV'] == 'test'} #{'gl-static' if moved_mr_sidebar_enabled?}" } @@ -81,7 +80,8 @@ target_type: 'merge_request', help_page_path: suggest_changes_help_path, current_user_data: @current_user_data, - is_locked: @merge_request.discussion_locked.to_s } } + is_locked: @merge_request.discussion_locked.to_s, + report_abuse_path: add_category_abuse_reports_path } } - if moved_mr_sidebar_enabled? = render 'shared/issuable/sidebar', issuable_sidebar: @issuable_sidebar, assignees: @merge_request.assignees, reviewers: @merge_request.reviewers, source_branch: @merge_request.source_branch diff --git a/app/views/projects/merge_requests/creations/_new_compare.html.haml b/app/views/projects/merge_requests/creations/_new_compare.html.haml index 48334023cf0..0570d22529b 100644 --- a/app/views/projects/merge_requests/creations/_new_compare.html.haml +++ b/app/views/projects/merge_requests/creations/_new_compare.html.haml @@ -9,66 +9,16 @@ .card-new-merge-request %h2.gl-font-size-h2 = _('Source branch') - .clearfix - .merge-request-select.dropdown - = f.hidden_field :source_project_id - = dropdown_toggle @merge_request.source_project_path, { toggle: "dropdown", 'field-name': "#{f.object_name}[source_project_id]", disabled: @merge_request.persisted?, default_text: _("Select source project") }, { toggle_class: "js-compare-dropdown js-source-project" } - .dropdown-menu.dropdown-menu-selectable.dropdown-source-project - = dropdown_title(_("Select source project")) - = dropdown_filter(_("Search projects")) - = dropdown_content do - = render 'projects/merge_requests/dropdowns/project', - projects: [@merge_request.source_project], - selected: f.object.source_project_id - .merge-request-select.dropdown - = f.hidden_field :source_branch - = dropdown_toggle f.object.source_branch.presence || _("Select source branch"), { toggle: "dropdown", 'field-name': "#{f.object_name}[source_branch]", 'refs-url': refs_project_path(@source_project), selected: f.object.source_branch, default_text: _("Select target branch"), qa_selector: "source_branch_dropdown" }, { toggle_class: "js-compare-dropdown js-source-branch monospace" } - .dropdown-menu.dropdown-menu-selectable.js-source-branch-dropdown.git-revision-dropdown - = dropdown_title(_("Select source branch")) - = dropdown_filter(_("Search branches")) - = dropdown_content - = dropdown_loading - .gl-bg-gray-50.gl-rounded-base.gl-mx-2.gl-my-4 - .compare-commit-empty.js-source-commit-empty.gl-display-flex.gl-align-items-center.gl-p-5{ style: 'display: none;' } - = sprite_icon('branch', size: 16, css_class: 'gl-mr-3') - = _('Select a branch to compare') - = gl_loading_icon(css_class: 'js-source-loading gl-py-3') - %ul.list-unstyled.mr_source_commit + #js-source-project-dropdown{ data: { current_project: { value: f.object.source_project_id.to_s, text: f.object.source_project.full_path, refsUrl: refs_project_path(f.object.source_project) }.to_json, current_branch: { value: f.object.source_branch.presence, text: f.object.source_branch.presence }.to_json } } .col-lg-6 .card-new-merge-request %h2.gl-font-size-h2 = _('Target branch') - .clearfix - .merge-request-select.dropdown - - if Feature.enabled?(:mr_compare_dropdowns, @project) - #js-target-project-dropdown{ data: { target_projects_path: project_new_merge_request_json_target_projects_path(@project), current_project: { value: f.object.target_project_id.to_s, text: f.object.target_project.full_path }.to_json } } - - else - - projects = target_projects(@project) - = f.hidden_field :target_project_id - = dropdown_toggle f.object.target_project.full_path, { toggle: "dropdown", 'field-name': "#{f.object_name}[target_project_id]", disabled: @merge_request.persisted?, default_text: _("Select target project") }, { toggle_class: "js-compare-dropdown js-target-project" } - .dropdown-menu.dropdown-menu-selectable.dropdown-target-project - = dropdown_title(_("Select target project")) - = dropdown_filter(_("Search projects")) - = dropdown_content do - = render 'projects/merge_requests/dropdowns/project', - projects: projects, - selected: f.object.target_project_id - .merge-request-select.dropdown - = f.hidden_field :target_branch - = dropdown_toggle f.object.target_branch.presence || _("Select target branch"), { toggle: "dropdown", 'field-name': "#{f.object_name}[target_branch]", 'refs-url': refs_project_path(f.object.target_project), selected: f.object.target_branch, default_text: _("Select target branch") }, { toggle_class: "js-compare-dropdown js-target-branch monospace" } - .dropdown-menu.dropdown-menu-selectable.js-target-branch-dropdown.git-revision-dropdown - = dropdown_title(_("Select target branch")) - = dropdown_filter(_("Search branches")) - = dropdown_content - = dropdown_loading - .gl-bg-gray-50.gl-rounded-base.gl-mx-2.gl-my-4 - .compare-commit-empty.js-target-commit-empty.gl-display-flex.gl-align-items-center.gl-p-5{ style: 'display: none;' } - = sprite_icon('branch', size: 16, css_class: 'gl-mr-3') - = _('Select a branch to compare') - = gl_loading_icon(css_class: 'js-target-loading gl-py-3') - %ul.list-unstyled.mr_target_commit + #js-target-project-dropdown{ data: { target_projects_path: project_new_merge_request_json_target_projects_path(@project), current_project: { value: f.object.target_project_id.to_s, text: f.object.target_project.full_path, refsUrl: refs_project_path(f.object.target_project) }.to_json, current_branch: { value: f.object.target_branch.presence, text: f.object.target_branch.presence }.to_json } } - if @merge_request.errors.any? = form_errors(@merge_request) - = f.submit _('Compare branches and continue'), data: { qa_selector: 'compare_branches_button' }, pajamas_button: true + .row + .col-12 + = f.submit _('Compare branches and continue'), data: { qa_selector: 'compare_branches_button' }, pajamas_button: true diff --git a/app/views/projects/mirrors/_branch_filter.html.haml b/app/views/projects/mirrors/_branch_filter.html.haml new file mode 100644 index 00000000000..b9db9898d49 --- /dev/null +++ b/app/views/projects/mirrors/_branch_filter.html.haml @@ -0,0 +1,6 @@ +.form-check.gl-mb-3 + = check_box_tag :only_protected_branches, '1', false, class: 'js-mirror-protected form-check-input' + = label_tag :only_protected_branches, _('Mirror only protected branches'), class: 'form-check-label' + .form-text.text-muted + = _('If enabled, only protected branches will be mirrored.') + = link_to _('Learn more.'), help_page_path('user/project/repository/mirror/index.md', anchor: 'mirror-only-protected-branches'), target: '_blank', rel: 'noopener noreferrer' diff --git a/app/views/projects/mirrors/_mirror_repos.html.haml b/app/views/projects/mirrors/_mirror_repos.html.haml index f4e57450aa1..4cfe463fa38 100644 --- a/app/views/projects/mirrors/_mirror_repos.html.haml +++ b/app/views/projects/mirrors/_mirror_repos.html.haml @@ -27,12 +27,7 @@ = render 'projects/mirrors/mirror_repos_form', f: f - .form-check.gl-mb-3 - = check_box_tag :only_protected_branches, '1', false, class: 'js-mirror-protected form-check-input' - = label_tag :only_protected_branches, _('Mirror only protected branches'), class: 'form-check-label' - .form-text.text-muted - = _('If enabled, only protected branches will be mirrored.') - = link_to _('Learn more.'), help_page_path('user/project/repository/mirror/index.md', anchor: 'mirror-only-protected-branches'), target: '_blank', rel: 'noopener noreferrer' + = render 'projects/mirrors/branch_filter' .panel-footer = f.submit _('Mirror repository'), class: 'js-mirror-submit', name: :update_remote_mirror, pajamas_button: true, data: { qa_selector: 'mirror_repository_button' } diff --git a/app/views/projects/mirrors/_mirror_repos_list.html.haml b/app/views/projects/mirrors/_mirror_repos_list.html.haml index fb8133e6de8..46833b5986b 100644 --- a/app/views/projects/mirrors/_mirror_repos_list.html.haml +++ b/app/views/projects/mirrors/_mirror_repos_list.html.haml @@ -26,7 +26,9 @@ - @project.remote_mirrors.each_with_index do |mirror, index| - next if mirror.new_record? %tr.rspec-mirrored-repository-row{ class: ('bg-secondary' if mirror.disabled?), data: { qa_selector: 'mirrored_repository_row_container' } } - %td{ data: { qa_selector: 'mirror_repository_url_content' } }= mirror.safe_url || _('Invalid URL') + %td{ data: { qa_selector: 'mirror_repository_url_content' } } + = mirror.safe_url || _('Invalid URL') + = render_if_exists 'projects/mirrors/mirror_branches_setting_badge', record: mirror %td= _('Push') %td = mirror.last_update_started_at.present? ? time_ago_with_tooltip(mirror.last_update_started_at) : _('Never') diff --git a/app/views/projects/mirrors/_mirror_repos_push.html.haml b/app/views/projects/mirrors/_mirror_repos_push.html.haml index 339c5d82919..136f504084e 100644 --- a/app/views/projects/mirrors/_mirror_repos_push.html.haml +++ b/app/views/projects/mirrors/_mirror_repos_push.html.haml @@ -4,6 +4,7 @@ = rm_f.hidden_field :enabled, value: '1' = rm_f.hidden_field :url, class: 'js-mirror-url-hidden', required: true, pattern: "(#{protocols}):\/\/.+" = rm_f.hidden_field :only_protected_branches, class: 'js-mirror-protected-hidden' + = render_if_exists partial: 'projects/mirrors/branch_name_regex', locals: { f: rm_f } = rm_f.hidden_field :keep_divergent_refs, class: 'js-mirror-keep-divergent-refs-hidden' = render partial: 'projects/mirrors/ssh_host_keys', locals: { f: rm_f } = render partial: 'projects/mirrors/authentication_method', locals: { f: rm_f } diff --git a/app/views/projects/ml/candidates/show.html.haml b/app/views/projects/ml/candidates/show.html.haml index 7fa98f69edf..77262243efb 100644 --- a/app/views/projects/ml/candidates/show.html.haml +++ b/app/views/projects/ml/candidates/show.html.haml @@ -2,6 +2,5 @@ - add_to_breadcrumbs _("Experiments"), project_ml_experiments_path(@project) - add_to_breadcrumbs experiment.name, project_ml_experiment_path(@project, experiment.iid) - breadcrumb_title "Candidate #{@candidate.iid}" -- data = candidate_as_data(@candidate) -#js-show-ml-candidate{ data: { candidate: data } } +#js-show-ml-candidate{ data: { view_model: show_candidate_view_model(@candidate) } } diff --git a/app/views/projects/ml/experiments/index.html.haml b/app/views/projects/ml/experiments/index.html.haml index a84cb15d940..dd064239e36 100644 --- a/app/views/projects/ml/experiments/index.html.haml +++ b/app/views/projects/ml/experiments/index.html.haml @@ -1,11 +1,7 @@ -- breadcrumb_title _('ML Experiments') -- page_title _('ML Experiments') +- breadcrumb_title s_('MlExperimentTracking|Model experiments') +- page_title s_('MlExperimentTracking|Model experiments') -.page-title-holder.d-flex.align-items-center - %h1.page-title.gl-font-size-h-display= _('Machine Learning Experiments') - -= render "incubation_banner" - -%div{ class: container_class } - .content-list.builds-content-list - = render "experiment_list", experiments: @experiments, project: @project +#js-project-ml-experiments-index{ data: { + experiments: experiments_as_data(@project, @experiments), + page_info: formatted_page_info(@page_info) +} } diff --git a/app/views/projects/ml/experiments/show.html.haml b/app/views/projects/ml/experiments/show.html.haml index 143981eebe6..4433d1fafe9 100644 --- a/app/views/projects/ml/experiments/show.html.haml +++ b/app/views/projects/ml/experiments/show.html.haml @@ -4,6 +4,7 @@ - items = candidates_table_items(@candidates) - metrics = unique_logged_names(@candidates, &:latest_metrics) - params = unique_logged_names(@candidates, &:params) +- page_info = formatted_page_info(@page_info) .page-title-holder.d-flex.align-items-center %h1.page-title.gl-font-size-h-display= @experiment.name @@ -12,5 +13,5 @@ candidates: items, metrics: metrics, params: params, - pagination: @pagination.to_json + page_info: page_info } } diff --git a/app/views/projects/network/_head.html.haml b/app/views/projects/network/_head.html.haml index e430dc2f372..097ffb0b7fe 100644 --- a/app/views/projects/network/_head.html.haml +++ b/app/views/projects/network/_head.html.haml @@ -1,6 +1,6 @@ .row-content-block.second-block.content-component-block.gl-px-0.gl-py-3 - .tree-ref-holder - = render partial: 'shared/ref_switcher', locals: {destination: 'graph'} + .gl-w-20 + #js-graph-ref-switcher{ data: { project_id: @project.id, ref: @ref, network_path: project_network_path(@project) } } .oneline = _("You can move around the graph by using the arrow keys.") diff --git a/app/views/projects/network/show.html.haml b/app/views/projects/network/show.html.haml index 70bb97b7625..c8d4f02274b 100644 --- a/app/views/projects/network/show.html.haml +++ b/app/views/projects/network/show.html.haml @@ -1,6 +1,6 @@ - breadcrumb_title _("Graph") - page_title _("Graph"), @ref -- network_path = Feature.enabled?(:use_ref_type_parameter) ? project_network_path(@project, @id, ref_type: @ref_type) : project_network_path(@project, @id) +- network_path = project_network_path(@project, @id, ref_type: @ref_type) = render "head" .gl-mt-5 .project-network.gl-border-1.gl-border-solid.gl-border-gray-300 diff --git a/app/views/projects/notes/_more_actions_dropdown.html.haml b/app/views/projects/notes/_more_actions_dropdown.html.haml index 2351bd209a7..8c94a18e1b0 100644 --- a/app/views/projects/notes/_more_actions_dropdown.html.haml +++ b/app/views/projects/notes/_more_actions_dropdown.html.haml @@ -8,9 +8,8 @@ %li = clipboard_button(text: noteable_note_url(note), title: _('Copy reference'), button_text: _('Copy link'), class: 'btn-clipboard', hide_tooltip: true, hide_button_icon: true) - unless is_current_user - %li - = link_to new_abuse_report_path(user_id: note.author.id, ref_url: noteable_note_url(note)) do - = _('Report abuse to administrator') + .gl-ml-n2 + .js-report-abuse-dropdown-item{ data: { report_abuse_path: add_category_abuse_reports_path, reported_user_id: note.author.id, reported_from_url: noteable_note_url(note) } } - if note_editable %li = link_to note_url(note), method: :delete, data: { confirm: _('Are you sure you want to delete this comment?'), confirm_btn_variant: 'danger', qa_selector: 'delete_comment_button' }, aria: { label: _('Delete comment') }, remote: true, class: 'js-note-delete' do diff --git a/app/views/projects/runners/_specific_runners.html.haml b/app/views/projects/runners/_project_runners.html.haml index f3a7037bdab..543a564568b 100644 --- a/app/views/projects/runners/_specific_runners.html.haml +++ b/app/views/projects/runners/_project_runners.html.haml @@ -1,17 +1,13 @@ %h4 - = _('Specific runners') + = s_('Runners|Project runners') .bs-callout.help-callout - if can?(current_user, :register_project_runners, @project) - = _('These runners are specific to this project.') - - if params[:ci_runner_templates] - %hr - = render partial: 'ci/runner/setup_runner_in_aws', - locals: { registration_token: @project.runners_token } + = s_('Runners|These runners are assigned to this project.') %hr = render partial: 'ci/runner/how_to_setup_runner', locals: { registration_token: @project.runners_token, - type: s_('Runners|specific'), + type: _('project'), reset_token_url: reset_registration_token_namespace_project_settings_ci_cd_path, project_path: @project.path_with_namespace, group_path: '' } @@ -22,13 +18,13 @@ %hr - if @project_runners.any? - %h4.underlined-title= _('Available specific runners') - %ul.bordered-list.activated-specific-runners + %h4.underlined-title= s_('Runners|Assigned project runners') + %ul.bordered-list{ data: { testid: 'assigned_project_runners' } } = render partial: 'projects/runners/runner', collection: @project_runners, as: :runner = paginate @project_runners, theme: "gitlab", param_name: "project_page", params: { expand_runners: true, anchor: 'js-runners-settings' } - if @assignable_runners.any? %h4.underlined-title= _('Other available runners') - %ul.bordered-list.available-specific-runners + %ul.bordered-list{ data: { testid: 'available_project_runners' } } = render partial: 'projects/runners/runner', collection: @assignable_runners, as: :runner = paginate @assignable_runners, theme: "gitlab", param_name: "specific_page", :params => { :anchor => 'js-runners-settings'} diff --git a/app/views/projects/runners/_settings.html.haml b/app/views/projects/runners/_settings.html.haml index a02bdac442b..f85b5fd9866 100644 --- a/app/views/projects/runners/_settings.html.haml +++ b/app/views/projects/runners/_settings.html.haml @@ -2,7 +2,7 @@ .row .col-sm-6 - = render 'projects/runners/specific_runners' + = render 'projects/runners/project_runners' .col-sm-6 = render 'projects/runners/shared_runners' = render 'projects/runners/group_runners' diff --git a/app/views/projects/settings/packages_and_registries/cleanup_tags.html.haml b/app/views/projects/settings/packages_and_registries/cleanup_tags.html.haml index 5244587c16d..d27d268d65e 100644 --- a/app/views/projects/settings/packages_and_registries/cleanup_tags.html.haml +++ b/app/views/projects/settings/packages_and_registries/cleanup_tags.html.haml @@ -1,6 +1,6 @@ -- add_to_breadcrumbs _('Package and registry settings'), project_settings_packages_and_registries_path(@project) +- add_to_breadcrumbs _('Packages and registries settings'), project_settings_packages_and_registries_path(@project) - breadcrumb_title s_('ContainerRegistry|Clean up image tags') -- page_title s_('ContainerRegistry|Clean up image tags'), _('Package and registry settings') +- page_title s_('ContainerRegistry|Clean up image tags'), _('Packages and registries settings') - @content_class = 'limit-container-width' unless fluid_layout #js-registry-settings-cleanup-image-tags{ data: cleanup_settings_data } diff --git a/app/views/projects/settings/packages_and_registries/show.html.haml b/app/views/projects/settings/packages_and_registries/show.html.haml index e0ac07f5f31..c81b38f44dd 100644 --- a/app/views/projects/settings/packages_and_registries/show.html.haml +++ b/app/views/projects/settings/packages_and_registries/show.html.haml @@ -1,5 +1,5 @@ -- breadcrumb_title _('Package and registry settings') -- page_title _('Package and registry settings') +- breadcrumb_title _('Packages and registries settings') +- page_title _('Packages and registries settings') - @content_class = 'limit-container-width' unless fluid_layout #js-registry-settings{ data: settings_data } diff --git a/app/views/projects/settings/repository/show.html.haml b/app/views/projects/settings/repository/show.html.haml index 953bfcf71ab..de171a25e8d 100644 --- a/app/views/projects/settings/repository/show.html.haml +++ b/app/views/projects/settings/repository/show.html.haml @@ -15,7 +15,7 @@ -# reused in EE. = render "projects/settings/repository/protected_branches", protected_branch_entity: @project = render "shared/deploy_tokens/index", group_or_project: @project, description: deploy_token_description -= render @deploy_keys += render 'shared/deploy_keys/index' = render "projects/cleanup/show" = render_if_exists 'shared/promotions/promote_repository_features' diff --git a/app/views/projects/starrers/index.html.haml b/app/views/projects/starrers/index.html.haml index 23578652862..2d5581fc1c5 100644 --- a/app/views/projects/starrers/index.html.haml +++ b/app/views/projects/starrers/index.html.haml @@ -14,7 +14,7 @@ %button.user-search-btn{ type: "submit", "aria-label" => _("Submit search") } = sprite_icon('search') - starrers_sort_options = starrers_sort_options_hash.map { |value, text| { value: value, text: text, href: filter_starrer_path(sort: value) } } - = gl_redirect_listbox_tag starrers_sort_options, @sort, class: 'gl-ml-3', data: { right: true } + = gl_redirect_listbox_tag starrers_sort_options, @sort, class: 'gl-ml-3', data: { placement: 'right' } - if @starrers.size > 0 .row.gl-mt-3 = render partial: 'starrer', collection: @starrers, as: :starrer diff --git a/app/views/projects/tree/_tree_header.html.haml b/app/views/projects/tree/_tree_header.html.haml index fd807350245..6cd3c584f2a 100644 --- a/app/views/projects/tree/_tree_header.html.haml +++ b/app/views/projects/tree/_tree_header.html.haml @@ -1,7 +1,7 @@ - is_project_overview = local_assigns.fetch(:is_project_overview, false) -.tree-ref-container.gl-display-flex.mb-2.mb-md-0 - .tree-ref-holder +.tree-ref-container.gl-display-flex.gl-flex-wrap.gl-gap-2.mb-2.mb-md-0 + .tree-ref-holder.gl-max-w-26 #js-tree-ref-switcher{ data: { project_id: @project.id, project_root_path: project_path(@project) } } #js-repo-breadcrumb{ data: breadcrumb_data_attributes } |