diff options
Diffstat (limited to 'app/views/projects')
93 files changed, 213 insertions, 555 deletions
diff --git a/app/views/projects/_export.html.haml b/app/views/projects/_export.html.haml index 2e00632892b..7da15e0d8a5 100644 --- a/app/views/projects/_export.html.haml +++ b/app/views/projects/_export.html.haml @@ -7,7 +7,7 @@ %p= _('Export this project with all its related data in order to move your project to a new GitLab instance. Once the export is finished, you can import the file from the "New Project" page.') .bs-callout.bs-callout-info - %p.append-bottom-0 + %p.gl-mb-0 %p= _('The following items will be exported:') %ul - project_export_descriptions.each do |desc| diff --git a/app/views/projects/_find_file_link.html.haml b/app/views/projects/_find_file_link.html.haml index da1b2d7f9b6..74cdb0f7409 100644 --- a/app/views/projects/_find_file_link.html.haml +++ b/app/views/projects/_find_file_link.html.haml @@ -1,3 +1,2 @@ = link_to project_find_file_path(@project, @ref), class: 'btn shortcuts-find-file', rel: 'nofollow' do - = icon('search') - %span= _('Find file') + = _('Find file') diff --git a/app/views/projects/_flash_messages.html.haml b/app/views/projects/_flash_messages.html.haml index 8217608db4e..4739689b419 100644 --- a/app/views/projects/_flash_messages.html.haml +++ b/app/views/projects/_flash_messages.html.haml @@ -8,6 +8,5 @@ - unless project.empty_repo? = render 'shared/auto_devops_implicitly_enabled_banner', project: project = render_if_exists 'projects/above_size_limit_warning', project: project - - if Feature.enabled?(:subscribable_banner_subscription) - = render_if_exists "layouts/header/ee_subscribable_banner", subscription: true = render_if_exists 'shared/shared_runners_minutes_limit', project: project, classes: [container_class, ("limit-container-width" unless fluid_layout)] + = render 'shared/namespace_storage_limit_alert', namespace: project.namespace, classes: [container_class, ("limit-container-width" unless fluid_layout)] diff --git a/app/views/projects/_home_panel.html.haml b/app/views/projects/_home_panel.html.haml index be58ecb3572..6f8375f80be 100644 --- a/app/views/projects/_home_panel.html.haml +++ b/app/views/projects/_home_panel.html.haml @@ -4,15 +4,15 @@ - emails_disabled = @project.emails_disabled? .project-home-panel{ class: [("empty-project" if empty_repo), ("js-show-on-project-root" if vue_file_list_enabled?)] } - .row.append-bottom-8 + .row.gl-mb-3 .home-panel-title-row.col-md-12.col-lg-6.d-flex .avatar-container.rect-avatar.s64.home-panel-avatar.append-right-default.float-none = project_icon(@project, alt: @project.name, class: 'avatar avatar-tile s64', width: 64, height: 64) .d-flex.flex-column.flex-wrap.align-items-baseline .d-inline-flex.align-items-baseline - %h1.home-panel-title.prepend-top-8.append-bottom-5{ data: { qa_selector: 'project_name_content' } } + %h1.home-panel-title.gl-mt-3.append-bottom-5{ data: { qa_selector: 'project_name_content' } } = @project.name - %span.visibility-icon.text-secondary.prepend-left-4.has-tooltip{ data: { container: 'body' }, title: visibility_icon_description(@project) } + %span.visibility-icon.text-secondary.gl-ml-2.has-tooltip{ data: { container: 'body' }, title: visibility_icon_description(@project) } = visibility_level_icon(@project.visibility_level, fw: false, options: {class: 'icon'}) = render_if_exists 'compliance_management/compliance_framework/compliance_framework_badge', project: @project .home-panel-metadata.d-flex.flex-wrap.text-secondary @@ -20,7 +20,7 @@ %span.text-secondary = s_('ProjectPage|Project ID: %{project_id}') % { project_id: @project.id } - if current_user - %span.access-request-links.prepend-left-8 + %span.access-request-links.gl-ml-3 = render 'shared/members/access_request_links', source: @project - if @project.tag_list.present? %span.home-panel-topic-list.mt-2.w-100.d-inline-flex @@ -80,7 +80,7 @@ - if @project.badges.present? .project-badges.mb-2 - @project.badges.each do |badge| - %a.append-right-8{ href: badge.rendered_link_url(@project), + %a.gl-mr-3{ href: badge.rendered_link_url(@project), target: '_blank', rel: 'noopener noreferrer' }> %img.project-badge{ src: badge.rendered_image_url(@project), diff --git a/app/views/projects/_import_project_pane.html.haml b/app/views/projects/_import_project_pane.html.haml index 28d4f8eb201..3ae37254e39 100644 --- a/app/views/projects/_import_project_pane.html.haml +++ b/app/views/projects/_import_project_pane.html.haml @@ -22,7 +22,7 @@ **tracking_attrs(track_label, 'click_button', 'bitbucket_cloud') do = icon('bitbucket', text: 'Bitbucket Cloud') - unless bitbucket_import_configured? - = render 'bitbucket_import_modal' + = render 'projects/bitbucket_import_modal' - if bitbucket_server_import_enabled? %div = link_to status_import_bitbucket_server_path, class: "btn import_bitbucket", **tracking_attrs(track_label, 'click_button', 'bitbucket_server') do @@ -34,7 +34,7 @@ **tracking_attrs(track_label, 'click_button', 'gitlab_com') do = icon('gitlab', text: 'GitLab.com') - unless gitlab_import_configured? - = render 'gitlab_import_modal' + = render 'projects/gitlab_import_modal' - if google_code_import_enabled? %div @@ -73,4 +73,4 @@ = form_for @project, html: { class: 'new_project' } do |f| %hr = render "shared/import_form", f: f - = render 'new_project_fields', f: f, project_name_id: "import-url-name", hide_init_with_readme: true, track_label: track_label + = render 'projects/new_project_fields', f: f, project_name_id: "import-url-name", hide_init_with_readme: true, track_label: track_label diff --git a/app/views/projects/_md_preview.html.haml b/app/views/projects/_md_preview.html.haml deleted file mode 100644 index 10575aa68b1..00000000000 --- a/app/views/projects/_md_preview.html.haml +++ /dev/null @@ -1,36 +0,0 @@ -- referenced_users = local_assigns.fetch(:referenced_users, nil) - -- if defined?(@merge_request) && @merge_request.discussion_locked? - .issuable-note-warning - = sprite_icon('lock', size: 16, css_class: 'icon') - %span - = _('This merge request is locked.') - = _('Only project members can comment.') - -.md-area.position-relative - .md-header - %ul.nav.nav-tabs.nav-links.clearfix - %li.md-header-tab.active - %button.js-md-write-button{ tabindex: -1 } - = _("Write") - %li.md-header-tab - %button.js-md-preview-button{ tabindex: -1 } - = _("Preview") - - %li.md-header-toolbar.active - = render 'projects/blob/markdown_buttons', show_fullscreen_button: true - - .md-write-holder - = yield - .md.md-preview-holder.js-md-preview.hide{ data: { url: url } } - .referenced-commands.hide - - - if referenced_users - .referenced-users.hide - %span - = icon("exclamation-triangle") - You are about to add - %strong - %span.js-referenced-users-count 0 - people - to the discussion. Proceed with caution. diff --git a/app/views/projects/_merge_request_merge_checks_settings.html.haml b/app/views/projects/_merge_request_merge_checks_settings.html.haml index d3fcb52422b..9cebb191346 100644 --- a/app/views/projects/_merge_request_merge_checks_settings.html.haml +++ b/app/views/projects/_merge_request_merge_checks_settings.html.haml @@ -14,6 +14,13 @@ anchor: 'pipelines-for-merge-requests'), target: '_blank' .form-check.mb-2 + .gl-pl-6 + = form.check_box :allow_merge_on_skipped_pipeline, class: 'form-check-input' + = form.label :allow_merge_on_skipped_pipeline, class: 'form-check-label' do + = s_('ProjectSettings|Skipped pipelines are considered successful') + .text-secondary + = s_('ProjectSettings|This introduces the risk of merging changes that will not pass the pipeline.') + .form-check.mb-2 = form.check_box :only_allow_merge_if_all_discussions_are_resolved, class: 'form-check-input' = form.label :only_allow_merge_if_all_discussions_are_resolved, class: 'form-check-label' do = s_('ProjectSettings|All discussions must be resolved') diff --git a/app/views/projects/_merge_request_merge_suggestions_settings.html.haml b/app/views/projects/_merge_request_merge_suggestions_settings.html.haml index 06bb9056e61..12f26a7e315 100644 --- a/app/views/projects/_merge_request_merge_suggestions_settings.html.haml +++ b/app/views/projects/_merge_request_merge_suggestions_settings.html.haml @@ -9,9 +9,9 @@ anchor: 'configure-the-commit-message-for-applied-suggestions'), target: '_blank' .mb-2 - = form.text_field :suggestion_commit_message, class: 'form-control mb-2', placeholder: Suggestions::ApplyService::DEFAULT_SUGGESTION_COMMIT_MESSAGE + = form.text_field :suggestion_commit_message, class: 'form-control mb-2', placeholder: Gitlab::Suggestions::CommitMessage::DEFAULT_SUGGESTION_COMMIT_MESSAGE %p.form-text.text-muted = s_('ProjectSettings|The variables GitLab supports:') - - Suggestions::ApplyService::PLACEHOLDERS.keys.each do |placeholder| + - Gitlab::Suggestions::CommitMessage::PLACEHOLDERS.keys.each do |placeholder| %code = "%{#{placeholder}}".html_safe diff --git a/app/views/projects/_new_project_fields.html.haml b/app/views/projects/_new_project_fields.html.haml index 5d88be0925e..e0a426607d4 100644 --- a/app/views/projects/_new_project_fields.html.haml +++ b/app/views/projects/_new_project_fields.html.haml @@ -23,7 +23,7 @@ display_path: true, extra_group: namespace_id), {}, - { class: 'select2 js-select-namespace qa-project-namespace-select block-truncated', tabindex: 1, data: { track_label: "#{track_label}", track_event: "activate_form_input", track_property: "project_path", track_value: "" }}) + { class: 'select2 js-select-namespace qa-project-namespace-select block-truncated', data: { track_label: "#{track_label}", track_event: "activate_form_input", track_property: "project_path", track_value: "" }}) - else .input-group-prepend.static-namespace.flex-shrink-0.has-tooltip{ title: user_url(current_user.username) + '/' } diff --git a/app/views/projects/_wiki.html.haml b/app/views/projects/_wiki.html.haml index 57a5d3e2e83..6f90bf50b91 100644 --- a/app/views/projects/_wiki.html.haml +++ b/app/views/projects/_wiki.html.haml @@ -14,4 +14,4 @@ - if can_create_wiki %p = _("Add a homepage to your wiki that contains information about your project and GitLab will display it here instead of this message.") - = link_to _("Create your first page"), project_wiki_path(@project, :home) + '?view=create', class: "btn btn-primary" + = link_to _("Create your first page"), wiki_path(@project.wiki) + '?view=create', class: "btn btn-primary" diff --git a/app/views/projects/_zen.html.haml b/app/views/projects/_zen.html.haml deleted file mode 100644 index 744aef3cad4..00000000000 --- a/app/views/projects/_zen.html.haml +++ /dev/null @@ -1,19 +0,0 @@ -- @gfm_form = true -- current_text ||= nil -- supports_autocomplete = local_assigns.fetch(:supports_autocomplete, true) -- supports_quick_actions = local_assigns.fetch(:supports_quick_actions, false) -- qa_selector = local_assigns.fetch(:qa_selector, '') -.zen-backdrop - - classes << ' js-gfm-input js-autosize markdown-area' - - if defined?(f) && f - = f.text_area attr, - class: classes, - placeholder: placeholder, - dir: 'auto', - data: { supports_quick_actions: supports_quick_actions, - supports_autocomplete: supports_autocomplete, - qa_selector: qa_selector } - - else - = text_area_tag attr, current_text, class: classes, placeholder: placeholder - %a.zen-control.zen-control-leave.js-zen-leave{ href: "#" } - = icon('compress') diff --git a/app/views/projects/blame/_blame_group.html.haml b/app/views/projects/blame/_blame_group.html.haml new file mode 100644 index 00000000000..e9967814833 --- /dev/null +++ b/app/views/projects/blame/_blame_group.html.haml @@ -0,0 +1,26 @@ +%tr + %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 + - line_count = blame_group[:lines].count + - (current_line...(current_line + line_count)).each do |i| + %a.diff-line-num{ href: "#L#{i}", id: "L#{i}", 'data-line-number' => i } + = link_icon + = i + \ + %td.lines + %pre.code.highlight + %code + - blame_group[:lines].each do |line| + #{line} diff --git a/app/views/projects/blame/show.html.haml b/app/views/projects/blame/show.html.haml index b17207c0da6..0591c3180ea 100644 --- a/app/views/projects/blame/show.html.haml +++ b/app/views/projects/blame/show.html.haml @@ -1,5 +1,5 @@ -- project_duration = age_map_duration(@blame_groups, @project) - page_title "Blame", @blob.path, @ref +- link_icon = icon("link") #blob-content-holder.tree-holder = render "projects/blob/breadcrumb", blob: @blob, blame: true @@ -11,38 +11,13 @@ .table-responsive.file-content.blame.code.js-syntax-highlight %table - current_line = 1 - - @blame_groups.each do |blame_group| - %tr - - commit = blame_group[:commit] - %td.blame-commit{ class: age_map_class(commit.committed_date, project_duration) } - .commit - = author_avatar(commit, size: 36, has_tooltip: false) - .commit-row-title - %span.item-title.str-truncated-100 - = link_to commit.title, project_commit_path(@project, commit.id), class: "cdark", title: commit.title - %span - - previous_commit_id = commit.parent_id - - if previous_commit_id - = link_to project_blame_path(@project, tree_join(previous_commit_id, @path)), - title: _('View blame prior to this change'), - aria: { label: _('View blame prior to this change') }, - data: { toggle: 'tooltip', placement: 'right', container: 'body' } do - = sprite_icon('doc-versions', size: 16, css_class: 'doc-versions align-text-bottom') - - .light - = commit_author_link(commit, avatar: false) - committed - #{time_ago_with_tooltip(commit.committed_date)} - %td.line-numbers - - line_count = blame_group[:lines].count - - (current_line...(current_line + line_count)).each do |i| - %a.diff-line-num{ href: "#L#{i}", id: "L#{i}", 'data-line-number' => i } - = icon("link") - = i - \ - - current_line += line_count - %td.lines - %pre.code.highlight - %code - - blame_group[:lines].each do |line| - #{line} + - @blame.groups.each do |blame_group| + - commit_data = @blame.commit_data(blame_group[:commit]) + + = render 'blame_group', + blame_group: blame_group, + current_line: current_line, + link_icon: link_icon, + commit_data: commit_data + + - current_line += blame_group[:lines].count diff --git a/app/views/projects/blob/_editor.html.haml b/app/views/projects/blob/_editor.html.haml index b67f9d0cd08..032df24a603 100644 --- a/app/views/projects/blob/_editor.html.haml +++ b/app/views/projects/blob/_editor.html.haml @@ -28,7 +28,7 @@ .file-buttons - if is_markdown - = render 'projects/blob/markdown_buttons', show_fullscreen_button: false + = render 'shared/blob/markdown_buttons', show_fullscreen_button: false = button_tag class: 'soft-wrap-toggle btn', type: 'button', tabindex: '-1' do %span.no-wrap = custom_icon('icon_no_wrap') diff --git a/app/views/projects/blob/_header_content.html.haml b/app/views/projects/blob/_header_content.html.haml index 7ed71a7d43c..6527c6021a0 100644 --- a/app/views/projects/blob/_header_content.html.haml +++ b/app/views/projects/blob/_header_content.html.haml @@ -1,7 +1,7 @@ .file-header-content = blob_icon blob.mode, blob.name - %strong.file-title-name.qa-file-title-name + %strong.file-title-name = blob.name = copy_file_path_button(blob.path) diff --git a/app/views/projects/blob/_markdown_buttons.html.haml b/app/views/projects/blob/_markdown_buttons.html.haml deleted file mode 100644 index 44ec2fa69cb..00000000000 --- a/app/views/projects/blob/_markdown_buttons.html.haml +++ /dev/null @@ -1,13 +0,0 @@ -.md-header-toolbar.active - = markdown_toolbar_button({ icon: "bold", data: { "md-tag" => "**" }, title: _("Add bold text") }) - = markdown_toolbar_button({ icon: "italic", data: { "md-tag" => "*" }, title: _("Add italic text") }) - = markdown_toolbar_button({ icon: "quote", data: { "md-tag" => "> ", "md-prepend" => true }, title: _("Insert a quote") }) - = markdown_toolbar_button({ icon: "code", data: { "md-tag" => "`", "md-block" => "```" }, title: _("Insert code") }) - = markdown_toolbar_button({ icon: "link", data: { "md-tag" => "[{text}](url)", "md-select" => "url" }, title: _("Add a link") }) - = markdown_toolbar_button({ icon: "list-bulleted", data: { "md-tag" => "* ", "md-prepend" => true }, title: _("Add a bullet list") }) - = markdown_toolbar_button({ icon: "list-numbered", data: { "md-tag" => "1. ", "md-prepend" => true }, title: _("Add a numbered list") }) - = markdown_toolbar_button({ icon: "list-task", data: { "md-tag" => "* [ ] ", "md-prepend" => true }, title: _("Add a task list") }) - = markdown_toolbar_button({ icon: "table", data: { "md-tag" => "| header | header |\n| ------ | ------ |\n| cell | cell |\n| cell | cell |", "md-prepend" => true }, title: _("Add a table") }) - - if show_fullscreen_button - %button.toolbar-btn.toolbar-fullscreen-btn.js-zen-enter.has-tooltip{ type: "button", tabindex: -1, "aria-label": "Go full screen", title: _("Go full screen"), data: { container: "body" } } - = sprite_icon("screen-full") diff --git a/app/views/projects/blob/viewers/_metrics_dashboard_yml.html.haml b/app/views/projects/blob/viewers/_metrics_dashboard_yml.html.haml new file mode 100644 index 00000000000..fc8683e1d19 --- /dev/null +++ b/app/views/projects/blob/viewers/_metrics_dashboard_yml.html.haml @@ -0,0 +1,11 @@ +- if viewer.valid? + = icon('check fw') + = _('Metrics Dashboard YAML definition is valid.') +- else + = icon('warning fw') + = _('Metrics Dashboard YAML definition is invalid:') + %ul + - viewer.errors.messages.each do |error| + %li= error.join(': ') + += link_to _('Learn more'), help_page_path('user/project/integrations/prometheus.md', anchor: 'defining-custom-dashboards-per-project') diff --git a/app/views/projects/blob/viewers/_metrics_dashboard_yml_loading.html.haml b/app/views/projects/blob/viewers/_metrics_dashboard_yml_loading.html.haml new file mode 100644 index 00000000000..31a0d514444 --- /dev/null +++ b/app/views/projects/blob/viewers/_metrics_dashboard_yml_loading.html.haml @@ -0,0 +1,4 @@ += icon('spinner spin fw') += _('Metrics Dashboard YAML definition') + '…' + += link_to _('Learn more'), help_page_path('user/project/integrations/prometheus.md') diff --git a/app/views/projects/blob/viewers/_readme.html.haml b/app/views/projects/blob/viewers/_readme.html.haml index c2329a7aa66..6cbd26e2271 100644 --- a/app/views/projects/blob/viewers/_readme.html.haml +++ b/app/views/projects/blob/viewers/_readme.html.haml @@ -1,4 +1,4 @@ = icon('info-circle fw') = succeed '.' do To learn more about this project, read - = link_to "the wiki", project_wiki_path(viewer.project, :home) + = link_to "the wiki", wiki_path(viewer.project.wiki) diff --git a/app/views/projects/blob/viewers/_route_map.html.haml b/app/views/projects/blob/viewers/_route_map.html.haml index 07b9378ba97..024e9b4ddb2 100644 --- a/app/views/projects/blob/viewers/_route_map.html.haml +++ b/app/views/projects/blob/viewers/_route_map.html.haml @@ -6,4 +6,4 @@ This Route Map is invalid: = viewer.validation_message -= link_to 'Learn more', help_page_path('ci/environments', anchor: 'going-from-source-files-to-public-pages') += link_to 'Learn more', help_page_path('ci/environments/index.md', anchor: 'going-from-source-files-to-public-pages') diff --git a/app/views/projects/blob/viewers/_route_map_loading.html.haml b/app/views/projects/blob/viewers/_route_map_loading.html.haml index f11c047e85a..1d768bd1ca4 100644 --- a/app/views/projects/blob/viewers/_route_map_loading.html.haml +++ b/app/views/projects/blob/viewers/_route_map_loading.html.haml @@ -1,4 +1,4 @@ = icon('spinner spin fw') Validating Route Map… -= link_to 'Learn more', help_page_path('ci/environments', anchor: 'going-from-source-files-to-public-pages') += link_to 'Learn more', help_page_path('ci/environments/index.md', anchor: 'going-from-source-files-to-public-pages') diff --git a/app/views/projects/branches/_branch.html.haml b/app/views/projects/branches/_branch.html.haml index 3e53cb510b0..2e9be28df86 100644 --- a/app/views/projects/branches/_branch.html.haml +++ b/app/views/projects/branches/_branch.html.haml @@ -5,7 +5,7 @@ .branch-info .branch-title = sprite_icon('fork', size: 12) - = link_to project_tree_path(@project, branch.name), class: 'item-title str-truncated-100 ref-name prepend-left-8 qa-branch-name' do + = link_to project_tree_path(@project, branch.name), class: 'item-title str-truncated-100 ref-name gl-ml-3 qa-branch-name' do = branch.name - if branch.name == @repository.root_ref %span.badge.badge-primary.prepend-left-5 default @@ -29,6 +29,12 @@ .js-branch-divergence-graph .controls.d-none.d-md-block< + - if commit_status + = render 'ci/status/icon', size: 24, status: commit_status, option_css_classes: 'gl-display-inline-flex gl-vertical-align-middle gl-mr-5' + - elsif show_commit_status + .gl-display-inline-flex.gl-vertical-align-middle.gl-mr-5 + %svg.s24 + - if merge_project && create_mr_button?(@repository.root_ref, branch.name) = link_to create_mr_path(@repository.root_ref, branch.name), class: 'btn btn-default' do = _('Merge request') diff --git a/app/views/projects/branches/_panel.html.haml b/app/views/projects/branches/_panel.html.haml index 93061452e12..828371e9656 100644 --- a/app/views/projects/branches/_panel.html.haml +++ b/app/views/projects/branches/_panel.html.haml @@ -12,7 +12,7 @@ = panel_title %ul.content-list.all-branches.qa-all-branches - branches.first(overview_max_branches).each do |branch| - = render "projects/branches/branch", branch: branch, merged: project.repository.merged_to_root_ref?(branch) + = render "projects/branches/branch", branch: branch, merged: project.repository.merged_to_root_ref?(branch), commit_status: @branch_pipeline_statuses[branch.name], show_commit_status: @branch_pipeline_statuses.any? - if branches.size > overview_max_branches .card-footer.text-center = link_to show_more_text, project_branches_filtered_path(project, state: state), id: "state-#{state}", data: { state: state } diff --git a/app/views/projects/branches/index.html.haml b/app/views/projects/branches/index.html.haml index 6bdc6f716fe..ba42f43088f 100644 --- a/app/views/projects/branches/index.html.haml +++ b/app/views/projects/branches/index.html.haml @@ -59,7 +59,7 @@ - elsif @branches.any? %ul.content-list.all-branches - @branches.each do |branch| - = render "projects/branches/branch", branch: branch, merged: @merged_branch_names.include?(branch.name) + = render "projects/branches/branch", branch: branch, merged: @merged_branch_names.include?(branch.name), commit_status: @branch_pipeline_statuses[branch.name], show_commit_status: @branch_pipeline_statuses.any? = paginate @branches, theme: 'gitlab' - else .nothing-here-block diff --git a/app/views/projects/buttons/_fork.html.haml b/app/views/projects/buttons/_fork.html.haml index 4b82eb2c5ef..2d9c7f9848f 100644 --- a/app/views/projects/buttons/_fork.html.haml +++ b/app/views/projects/buttons/_fork.html.haml @@ -1,6 +1,6 @@ - unless @project.empty_repo? - if current_user && can?(current_user, :fork_project, @project) - .count-badge.d-inline-flex.align-item-stretch.append-right-8 + .count-badge.d-inline-flex.align-item-stretch.gl-mr-3 - if current_user.already_forked?(@project) && current_user.manageable_namespaces.size < 2 = link_to namespace_project_path(current_user, current_user.fork_of(@project)), title: s_('ProjectOverview|Go to your fork'), class: 'btn btn-default has-tooltip count-badge-button d-flex align-items-center fork-btn' do = sprite_icon('fork', { css_class: 'icon' }) diff --git a/app/views/projects/buttons/_star.html.haml b/app/views/projects/buttons/_star.html.haml index 02e5297528b..3dac38d1356 100644 --- a/app/views/projects/buttons/_star.html.haml +++ b/app/views/projects/buttons/_star.html.haml @@ -1,5 +1,5 @@ - if current_user - .count-badge.d-inline-flex.align-item-stretch.append-right-8 + .count-badge.d-inline-flex.align-item-stretch.gl-mr-3 %button.count-badge-button.btn.btn-default.btn-xs.d-flex.align-items-center.star-btn.toggle-star{ type: "button", data: { endpoint: toggle_star_project_path(@project, :json) } } - if current_user.starred?(@project) = sprite_icon('star', { css_class: 'icon' }) @@ -12,7 +12,7 @@ = @project.star_count - else - .count-badge.d-inline-flex.align-item-stretch.append-right-8 + .count-badge.d-inline-flex.align-item-stretch.gl-mr-3 = link_to new_user_session_path, class: 'btn btn-default btn-xs has-tooltip count-badge-button d-flex align-items-center star-btn', title: s_('ProjectOverview|You must sign in to star a project') do = sprite_icon('star-o', { css_class: 'icon' }) %span= s_('ProjectOverview|Star') diff --git a/app/views/projects/cleanup/_show.html.haml b/app/views/projects/cleanup/_show.html.haml index ed3c9890efd..02e8bad69b9 100644 --- a/app/views/projects/cleanup/_show.html.haml +++ b/app/views/projects/cleanup/_show.html.haml @@ -6,7 +6,7 @@ %button.btn.js-settings-toggle = expanded ? _('Collapse') : _('Expand') %p - = _("Clean up after running %{bfg} on the repository" % { bfg: link_to_bfg }).html_safe + = _("Clean up after running %{filter_repo} on the repository" % { filter_repo: link_to_filter_repo }).html_safe = link_to icon('question-circle'), help_page_path('user/project/repository/reducing_the_repo_size_using_git.md'), target: '_blank', rel: 'noopener noreferrer' @@ -14,15 +14,15 @@ .settings-content - url = cleanup_namespace_project_settings_repository_path(@project.namespace, @project) = form_for @project, url: url, method: :post, authenticity_token: true, html: { class: 'js-requires-input' } do |f| - %fieldset.prepend-top-0.append-bottom-10 + %fieldset.gl-mt-0.append-bottom-10 .append-bottom-10 - %h5.prepend-top-0 + %h5.gl-mt-0 = _("Upload object map") %button.btn.btn-default.js-choose-file{ type: "button" } = _("Choose a file") %span.prepend-left-default.js-filename = _("No file selected") - = f.file_field :bfg_object_map, accept: 'text/plain', class: "hidden js-object-map-input", required: true + = f.file_field :bfg_object_map, class: "hidden js-object-map-input", required: true .form-text.text-muted = _("The maximum file size allowed is %{size}.") % { size: number_to_human_size(Gitlab::CurrentSettings.max_attachment_size.megabytes) } = f.submit _('Start cleanup'), class: 'btn btn-success' diff --git a/app/views/projects/commit/_commit_box.html.haml b/app/views/projects/commit/_commit_box.html.haml index 88d1ec54cb0..4442bdcdf1d 100644 --- a/app/views/projects/commit/_commit_box.html.haml +++ b/app/views/projects/commit/_commit_box.html.haml @@ -22,8 +22,8 @@ .header-action-buttons - if defined?(@notes_count) && @notes_count > 0 - %span.btn.disabled.btn-grouped.d-none.d-sm-block.append-right-10 - = icon('comment') + %span.btn.disabled.btn-grouped.d-none.d-sm-block.append-right-10.has-tooltip{ title: n_("%d comment on this commit", "%d comments on this commit", @notes_count) % @notes_count } + = sprite_icon('comment') = @notes_count = link_to project_tree_path(@project, @commit), class: "btn btn-default append-right-10 d-none d-sm-none d-md-inline" do #{ _('Browse files') } diff --git a/app/views/projects/commits/_commit.html.haml b/app/views/projects/commits/_commit.html.haml index b42eef32a76..ab1d855a6e0 100644 --- a/app/views/projects/commits/_commit.html.haml +++ b/app/views/projects/commits/_commit.html.haml @@ -41,7 +41,7 @@ = render_if_exists 'projects/commits/project_namespace', show_project_name: show_project_name, project: project - if commit.description? - %pre.commit-row-description.js-toggle-content.append-bottom-8 + %pre.commit-row-description.js-toggle-content.gl-mb-3 = preserve(markdown_field(commit, :description)) .commit-actions.flex-row diff --git a/app/views/projects/diffs/_file.html.haml b/app/views/projects/diffs/_file.html.haml index 855b719dc45..7395c16c38b 100644 --- a/app/views/projects/diffs/_file.html.haml +++ b/app/views/projects/diffs/_file.html.haml @@ -14,7 +14,7 @@ .file-actions.d-none.d-sm-block - if blob&.readable_text? = link_to '#', class: 'js-toggle-diff-comments btn active has-tooltip', title: _("Toggle comments for this file"), disabled: @diff_notes_disabled do - = icon('comment') + = sprite_icon('comment', size: 16) \ - if editable_diff?(diff_file) - link_opts = @merge_request.persisted? ? { from_merge_request_iid: @merge_request.iid } : {} diff --git a/app/views/projects/diffs/_stats.html.haml b/app/views/projects/diffs/_stats.html.haml index 86e6e732610..17c1764e8a4 100644 --- a/app/views/projects/diffs/_stats.html.haml +++ b/app/views/projects/diffs/_stats.html.haml @@ -22,8 +22,8 @@ - diff_files.each do |diff_file| %li %a.diff-changed-file{ href: "##{hexdigest(diff_file.file_path)}", title: diff_file.new_path } - = sprite_icon(diff_file_changed_icon(diff_file), size: 16, css_class: "#{diff_file_changed_icon_color(diff_file)} diff-file-changed-icon append-right-8") - %span.diff-changed-file-content.append-right-8 + = sprite_icon(diff_file_changed_icon(diff_file), size: 16, css_class: "#{diff_file_changed_icon_color(diff_file)} diff-file-changed-icon gl-mr-3") + %span.diff-changed-file-content.gl-mr-3 - if diff_file.file_path %strong.diff-changed-file-name = diff_file.file_path diff --git a/app/views/projects/empty.html.haml b/app/views/projects/empty.html.haml index 9e06358beba..6b1455acd08 100644 --- a/app/views/projects/empty.html.haml +++ b/app/views/projects/empty.html.haml @@ -6,11 +6,11 @@ %div{ class: [("limit-container-width" unless fluid_layout)] } = render "home_panel" - %h4.prepend-top-0.append-bottom-8 + %h4.gl-mt-0.gl-mb-3 = _('The repository for this project is empty') - if @project.can_current_user_push_code? - %p.append-bottom-0 + %p.gl-mb-0 = _('You can get started by cloning the repository or start adding files to it with one of the following options.') .project-buttons.qa-quick-actions @@ -22,7 +22,7 @@ = render 'stat_anchor_list', anchors: @project.empty_repo_statistics_buttons - if can?(current_user, :push_code, @project) - .empty-wrapper.prepend-top-32 + .empty-wrapper.gl-mt-7 %h3#repo-command-line-instructions.page-title-empty = _('Command line instructions') %p diff --git a/app/views/projects/environments/_form.html.haml b/app/views/projects/environments/_form.html.haml index 1fbe34cfff3..efe80a4877c 100644 --- a/app/views/projects/environments/_form.html.haml +++ b/app/views/projects/environments/_form.html.haml @@ -1,9 +1,9 @@ .row.prepend-top-default.append-bottom-default .col-lg-3 - %h4.prepend-top-0 + %h4.gl-mt-0 = _("Environments") %p - - link_to_read_more = link_to(_("Read more about environments"), help_page_path("ci/environments")) + - link_to_read_more = link_to(_("Read more about environments"), help_page_path("ci/environments/index.md")) = _("Environments allow you to track deployments of your application %{link_to_read_more}.").html_safe % { link_to_read_more: link_to_read_more } = form_for [@project.namespace.becomes(Namespace), @project, @environment], html: { class: 'col-lg-9' } do |f| diff --git a/app/views/projects/environments/empty_metrics.html.haml b/app/views/projects/environments/empty_metrics.html.haml index dad93290fbd..5642fb34da9 100644 --- a/app/views/projects/environments/empty_metrics.html.haml +++ b/app/views/projects/environments/empty_metrics.html.haml @@ -11,4 +11,4 @@ %p.state-description = s_('Metrics|Check out the CI/CD documentation on deploying to an environment') .text-center - = link_to s_("Environments|Learn about environments"), help_page_path('ci/environments'), class: 'btn btn-success' + = link_to s_("Environments|Learn about environments"), help_page_path('ci/environments/index.md'), class: 'btn btn-success' diff --git a/app/views/projects/environments/index.html.haml b/app/views/projects/environments/index.html.haml index 2ba88da3375..445196ed449 100644 --- a/app/views/projects/environments/index.html.haml +++ b/app/views/projects/environments/index.html.haml @@ -4,5 +4,5 @@ "can-read-environment" => can?(current_user, :read_environment, @project).to_s, "can-create-environment" => can?(current_user, :create_environment, @project).to_s, "new-environment-path" => new_project_environment_path(@project), - "help-page-path" => help_page_path("ci/environments"), + "help-page-path" => help_page_path("ci/environments/index.md"), "deploy-boards-help-path" => help_page_path("user/project/deploy_boards", anchor: "enabling-deploy-boards") } } diff --git a/app/views/projects/environments/metrics.html.haml b/app/views/projects/environments/metrics.html.haml index aab30af5ed4..cd7339edd1a 100644 --- a/app/views/projects/environments/metrics.html.haml +++ b/app/views/projects/environments/metrics.html.haml @@ -1,4 +1,4 @@ -- page_title _("Metrics for environment"), @environment.name +- page_title _("Metrics Dashboard"), @environment.name .prometheus-container #prometheus-graphs{ data: metrics_data(@project, @environment) } diff --git a/app/views/projects/environments/show.html.haml b/app/views/projects/environments/show.html.haml index 3a7a93dc4e6..d5249662dde 100644 --- a/app/views/projects/environments/show.html.haml +++ b/app/views/projects/environments/show.html.haml @@ -23,7 +23,7 @@ emphasis_end: '</strong>'.html_safe, ci_config_link_start: '<a href="https://docs.gitlab.com/ee/ci/yaml/" target="_blank" rel="noopener noreferrer">'.html_safe, ci_config_link_end: '</a>'.html_safe } - %a{ href: 'https://docs.gitlab.com/ee/ci/environments.html#stopping-an-environment', + %a{ href: 'https://docs.gitlab.com/ee/ci/environments/index.html#stopping-an-environment', target: '_blank', rel: 'noopener noreferrer' } = s_('Environments|Learn more about stopping environments') @@ -39,7 +39,7 @@ .d-flex %h3.page-title= @environment.name - if @environment.auto_stop_at? - %p.align-self-end.prepend-left-8 + %p.align-self-end.gl-ml-3 = s_('Environments|Auto stops %{auto_stop_time}').html_safe % {auto_stop_time: time_ago_with_tooltip(@environment.auto_stop_at)} .nav-controls.my-2 = render 'projects/environments/pin_button', environment: @environment diff --git a/app/views/projects/forks/_fork_button.html.haml b/app/views/projects/forks/_fork_button.html.haml index c7ed6a5094d..70064722832 100644 --- a/app/views/projects/forks/_fork_button.html.haml +++ b/app/views/projects/forks/_fork_button.html.haml @@ -22,5 +22,5 @@ - else .avatar-container.s100.mx-auto = image_tag(avatar, class: "avatar s100") - %h5.prepend-top-default + %h5.prepend-top-default{ data: { qa_selector: 'fork_namespace_content', qa_name: namespace.human_name } } = namespace.human_name diff --git a/app/views/projects/forks/new.html.haml b/app/views/projects/forks/new.html.haml index 8a5b08a19c8..763e31c4a8b 100644 --- a/app/views/projects/forks/new.html.haml +++ b/app/views/projects/forks/new.html.haml @@ -2,14 +2,14 @@ .row.prepend-top-default .col-lg-3 - %h4.prepend-top-0 + %h4.gl-mt-0 = _("Fork project") %p = _("A fork is a copy of a project.<br />Forking a repository allows you to make changes without affecting the original project.").html_safe .col-lg-9 - if @namespaces.present? .fork-thumbnail-container.js-fork-content - %h5.prepend-top-0.append-bottom-0.prepend-left-default.append-right-default + %h5.gl-mt-0.gl-mb-0.prepend-left-default.append-right-default = _("Select a namespace to fork the project") - @namespaces.each do |namespace| = render 'fork_button', namespace: namespace diff --git a/app/views/projects/graphs/charts.html.haml b/app/views/projects/graphs/charts.html.haml index 7257dacf680..24d92e947bc 100644 --- a/app/views/projects/graphs/charts.html.haml +++ b/app/views/projects/graphs/charts.html.haml @@ -28,7 +28,7 @@ %a.btn.btn-sm{ href: "#{download_path}?#{@daily_coverage_options[:base_params].to_query}" } %small = _("Download raw data (.csv)") - #js-code-coverage-chart{ data: { daily_coverage_options: @daily_coverage_options.to_json.html_safe } } + #js-code-coverage-chart{ data: { graph_endpoint: "#{@daily_coverage_options[:graph_api_path]}?#{@daily_coverage_options[:base_params].to_query}" } } .repo-charts .sub-header-block.border-top diff --git a/app/views/projects/hook_logs/_index.html.haml b/app/views/projects/hook_logs/_index.html.haml index f3cea6bea68..e7b924c65bf 100644 --- a/app/views/projects/hook_logs/_index.html.haml +++ b/app/views/projects/hook_logs/_index.html.haml @@ -1,6 +1,6 @@ -.row.prepend-top-32.append-bottom-default +.row.gl-mt-7.append-bottom-default .col-lg-3 - %h4.prepend-top-0 + %h4.gl-mt-0 Recent Deliveries %p When an event in GitLab triggers a webhook, you can use the request details to figure out if something went wrong. .col-lg-9 diff --git a/app/views/projects/hook_logs/show.html.haml b/app/views/projects/hook_logs/show.html.haml index 873fb4d47b7..a6a3f56c28c 100644 --- a/app/views/projects/hook_logs/show.html.haml +++ b/app/views/projects/hook_logs/show.html.haml @@ -4,7 +4,7 @@ .row.prepend-top-default.append-bottom-default .col-lg-3 - %h4.prepend-top-0 + %h4.gl-mt-0 Request details .col-lg-9 = link_to 'Resend Request', @hook_log.present.retry_path, method: :post, class: "btn btn-default float-right prepend-left-10" diff --git a/app/views/projects/hooks/edit.html.haml b/app/views/projects/hooks/edit.html.haml index f7eae802dac..15100840c0a 100644 --- a/app/views/projects/hooks/edit.html.haml +++ b/app/views/projects/hooks/edit.html.haml @@ -10,7 +10,7 @@ = form_for [@project.namespace.becomes(Namespace), @project, @hook], as: :hook, url: project_hook_path(@project, @hook) do |f| = render partial: 'shared/web_hooks/form', locals: { form: f, hook: @hook } - %span>= f.submit 'Save changes', class: 'btn btn-success append-right-8' + %span>= f.submit 'Save changes', class: 'btn btn-success gl-mr-3' = render 'shared/web_hooks/test_button', hook: @hook = link_to _('Delete'), project_hook_path(@project, @hook), method: :delete, class: 'btn btn-remove float-right', data: { confirm: _('Are you sure?') } diff --git a/app/views/projects/import/jira/show.html.haml b/app/views/projects/import/jira/show.html.haml index cddd97cbc84..fe6cc6fa828 100644 --- a/app/views/projects/import/jira/show.html.haml +++ b/app/views/projects/import/jira/show.html.haml @@ -1,33 +1,6 @@ -- if Feature.enabled?(:jira_issue_import_vue, @project, default_enabled: true) - .js-jira-import-root{ data: { project_path: @project.full_path, - issues_path: project_issues_path(@project), - jira_integration_path: edit_project_service_path(@project, :jira), - is_jira_configured: @project.jira_service.present?.to_s, - jira_projects: @jira_projects.to_json, - in_progress_illustration: image_path('illustrations/export-import.svg'), - setup_illustration: image_path('illustrations/manual_action.svg') } } -- else - - title = _('Jira Issue Import') - - page_title title - - breadcrumb_title title - - header_title _("Projects"), root_path - - = render 'import/shared/errors' - - - if @project.import_state&.in_progress? - %h3.page-title.d-flex.align-items-center - = sprite_icon('issues', size: 16, css_class: 'mr-1') - = _('Import in progress') - - elsif @jira_projects.present? - %h3.page-title.d-flex.align-items-center - = sprite_icon('issues', size: 16, css_class: 'mr-1') - = _('Import issues from Jira') - - = form_tag import_project_import_jira_path(@project), method: :post do - .form-group.row - = label_tag :jira_project_key, _('From project'), class: 'col-form-label col-md-2' - .col-md-4 - = select_tag :jira_project_key, options_for_select(@jira_projects, ''), { class: 'select2' } - .form-actions - = submit_tag _('Import issues'), class: 'btn btn-success' - = link_to _('Cancel'), project_issues_path(@project), class: 'btn btn-cancel' +.js-jira-import-root{ data: { project_path: @project.full_path, + issues_path: project_issues_path(@project), + jira_integration_path: edit_project_service_path(@project, :jira), + is_jira_configured: @project.jira_service&.active? && @project.jira_service&.valid_connection?.to_s, + in_progress_illustration: image_path('illustrations/export-import.svg'), + setup_illustration: image_path('illustrations/manual_action.svg') } } diff --git a/app/views/projects/issues/_issue.html.haml b/app/views/projects/issues/_issue.html.haml index 1bf0c8eb031..e325d585d0c 100644 --- a/app/views/projects/issues/_issue.html.haml +++ b/app/views/projects/issues/_issue.html.haml @@ -43,6 +43,7 @@ = link_to_label(label, small: true) = render_if_exists "projects/issues/issue_weight", issue: issue + = render "projects/issues/issue_estimate", issue: issue .issuable-meta %ul.controls diff --git a/app/views/projects/issues/_issue_estimate.html.haml b/app/views/projects/issues/_issue_estimate.html.haml new file mode 100644 index 00000000000..46797d0f1a0 --- /dev/null +++ b/app/views/projects/issues/_issue_estimate.html.haml @@ -0,0 +1,7 @@ +- issue = local_assigns.fetch(:issue) + +- if issue.time_estimate > 0 + %span.issuable-estimate.d-none.d-sm-inline-block.has-tooltip{ data: { container: 'body', qa_selector: 'issuable_estimate' }, title: _('Estimate') } + + = sprite_icon('timer', size: 16, css_class: 'issue-estimate-icon') + = Gitlab::TimeTrackingFormatter.output(issue.time_estimate) diff --git a/app/views/projects/issues/_new_branch.html.haml b/app/views/projects/issues/_new_branch.html.haml index f3a1edd2571..73904354a12 100644 --- a/app/views/projects/issues/_new_branch.html.haml +++ b/app/views/projects/issues/_new_branch.html.haml @@ -41,7 +41,7 @@ = _('Create branch') %li.divider.droplab-item-ignore - %li.droplab-item-ignore.prepend-left-8.append-right-8.prepend-top-16 + %li.droplab-item-ignore.gl-ml-3.gl-mr-3.prepend-top-16 - if can_create_confidential_merge_request? #js-forked-project{ data: { namespace_path: @project.namespace.full_path, project_path: @project.full_path, new_fork_path: new_project_fork_path(@project), help_page_path: help_page_path('user/project/merge_requests') } } .form-group diff --git a/app/views/projects/issues/import_csv/_button.html.haml b/app/views/projects/issues/import_csv/_button.html.haml index 07c34b51037..7119b22daef 100644 --- a/app/views/projects/issues/import_csv/_button.html.haml +++ b/app/views/projects/issues/import_csv/_button.html.haml @@ -1,22 +1,16 @@ - type = local_assigns.fetch(:type, :icon) +- can_edit = can?(current_user, :admin_project, @project) -- if @project.jira_issues_import_feature_flag_enabled? - .dropdown.btn-group - %button.btn.rounded-right.text-center{ class: ('has-tooltip' if type == :icon), title: (_('Import issues') if type == :icon), - data: { toggle: 'dropdown' }, 'aria-label' => _('Import issues'), 'aria-haspopup' => 'true', 'aria-expanded' => 'false' } - - if type == :icon - = sprite_icon('import') - - else - = _('Import issues') - %ul.dropdown-menu - %li - %button.btn{ data: { toggle: 'modal', target: '.issues-import-modal' } } - = _('Import CSV') - %li= link_to _('Import from Jira'), project_import_jira_path(@project) -- else - %button.csv-import-button.btn{ title: _('Import CSV'), class: ('has-tooltip' if type == :icon), - data: { toggle: 'modal', target: '.issues-import-modal' } } +.dropdown.btn-group + %button.btn.rounded-right.text-center{ class: ('has-tooltip' if type == :icon), title: (_('Import issues') if type == :icon), + data: { toggle: 'dropdown' }, 'aria-label' => _('Import issues'), 'aria-haspopup' => 'true', 'aria-expanded' => 'false' } - if type == :icon = sprite_icon('import') - else - = _('Import CSV') + = _('Import issues') + %ul.dropdown-menu + %li + %button{ data: { toggle: 'modal', target: '.issues-import-modal' } } + = _('Import CSV') + - if can_edit + %li= link_to _('Import from Jira'), project_import_jira_path(@project) diff --git a/app/views/projects/issues/index.html.haml b/app/views/projects/issues/index.html.haml index 0aef4e39466..826a62e39d3 100644 --- a/app/views/projects/issues/index.html.haml +++ b/app/views/projects/issues/index.html.haml @@ -6,11 +6,10 @@ = content_for :meta_tags do = auto_discovery_link_tag(:atom, safe_params.merge(rss_url_options).to_h, title: "#{@project.name} issues") -- if @project.jira_issues_import_feature_flag_enabled? - .js-projects-issues-root{ data: { can_edit: can?(current_user, :admin_project, @project).to_s, - is_jira_configured: @project.jira_service.present?.to_s, - issues_path: project_issues_path(@project), - project_path: @project.full_path } } +.js-projects-issues-root{ data: { can_edit: can?(current_user, :admin_project, @project).to_s, + is_jira_configured: @project.jira_service.present?.to_s, + issues_path: project_issues_path(@project), + project_path: @project.full_path } } - if project_issues(@project).exists? .top-area diff --git a/app/views/projects/issues/show.html.haml b/app/views/projects/issues/show.html.haml index 525eb4b90c1..4d24b510267 100644 --- a/app/views/projects/issues/show.html.haml +++ b/app/views/projects/issues/show.html.haml @@ -11,6 +11,7 @@ - can_create_issue = show_new_issue_link?(@project) = render_if_exists "projects/issues/alert_blocked", issue: @issue, current_user: current_user += render_if_exists "projects/issues/alert_moved_from_service_desk", issue: @issue .detail-page-header .detail-page-header-body diff --git a/app/views/projects/logs/empty_logs.html.haml b/app/views/projects/logs/empty_logs.html.haml index 52598e0be8d..afae2d30f6e 100644 --- a/app/views/projects/logs/empty_logs.html.haml +++ b/app/views/projects/logs/empty_logs.html.haml @@ -11,4 +11,4 @@ %p.state-description.text-center = s_('Logs|To see the logs, deploy your code to an environment.') .text-center - = link_to s_('Environments|Learn about environments'), help_page_path('ci/environments'), class: 'btn btn-success' + = link_to s_('Environments|Learn about environments'), help_page_path('ci/environments/index.md'), class: 'btn btn-success' diff --git a/app/views/projects/merge_requests/show.html.haml b/app/views/projects/merge_requests/show.html.haml index 7e146a36d84..90bc2504cb4 100644 --- a/app/views/projects/merge_requests/show.html.haml +++ b/app/views/projects/merge_requests/show.html.haml @@ -100,3 +100,5 @@ = render "projects/commit/change", type: 'revert', commit: @merge_request.merge_commit, title: @merge_request.title - if @merge_request.can_be_cherry_picked? = render "projects/commit/change", type: 'cherry-pick', commit: @merge_request.merge_commit, title: @merge_request.title + +#js-review-bar diff --git a/app/views/projects/milestones/_form.html.haml b/app/views/projects/milestones/_form.html.haml index e1797e6db2a..a3083fa2081 100644 --- a/app/views/projects/milestones/_form.html.haml +++ b/app/views/projects/milestones/_form.html.haml @@ -12,8 +12,8 @@ .col-form-label.col-sm-2 = f.label :description, _('Description') .col-sm-10 - = render layout: 'projects/md_preview', locals: { url: preview_markdown_path(@project) } do - = render 'projects/zen', f: f, attr: :description, classes: 'qa-milestone-description note-textarea', placeholder: _('Write milestone description...') + = render layout: 'shared/md_preview', locals: { url: preview_markdown_path(@project) } do + = render 'shared/zen', f: f, attr: :description, classes: 'qa-milestone-description note-textarea', placeholder: _('Write milestone description...') = render 'shared/notes/hints' .clearfix .error-alert diff --git a/app/views/projects/milestones/_milestone.html.haml b/app/views/projects/milestones/_milestone.html.haml index bc82b45f902..00937c5bf73 100644 --- a/app/views/projects/milestones/_milestone.html.haml +++ b/app/views/projects/milestones/_milestone.html.haml @@ -1,5 +1,4 @@ = render 'shared/milestones/milestone', - milestone_path: project_milestone_path(milestone.project, milestone), issues_path: project_issues_path(milestone.project, milestone_title: milestone.title), merge_requests_path: project_merge_requests_path(milestone.project, milestone_title: milestone.title), milestone: milestone diff --git a/app/views/projects/new.html.haml b/app/views/projects/new.html.haml index c18af6a267b..81a778f76f4 100644 --- a/app/views/projects/new.html.haml +++ b/app/views/projects/new.html.haml @@ -7,9 +7,13 @@ .project-edit-container.prepend-top-default .project-edit-errors = render 'projects/errors' - .row + + - if experiment_enabled?(:new_create_project_ui) + .js-experiment-new-project-creation{ data: { is_ci_cd_available: ci_cd_projects_available?, has_errors: @project.errors.any? } } + + .row{ 'v-cloak': experiment_enabled?(:new_create_project_ui) } .col-lg-3.profile-settings-sidebar - %h4.prepend-top-0 + %h4.gl-mt-0 = _('New project') %p - among_other_things_link = link_to _('among other things'), help_page_path("user/project/index.md", anchor: "projects-features"), target: '_blank' @@ -32,15 +36,15 @@ .col-lg-9.js-toggle-container %ul.nav.nav-tabs.nav-links.gitlab-tabs{ role: 'tablist' } %li.nav-item{ role: 'presentation' } - %a.nav-link.active{ href: '#blank-project-pane', id: 'blank-project-tab', data: { toggle: 'tab', track_label: 'blank_project', track_event: "click_tab", track_value: "" }, role: 'tab' } + %a.nav-link.active{ href: '#blank-project-pane', id: 'blank-project-tab', data: { toggle: 'tab', experiment_track_label: 'blank_project' }, role: 'tab' } %span.d-none.d-sm-block= s_('ProjectsNew|Blank project') %span.d-block.d-sm-none= s_('ProjectsNew|Blank') %li.nav-item{ role: 'presentation' } - %a.nav-link{ href: '#create-from-template-pane', id: 'create-from-template-tab', data: { toggle: 'tab', track_label: 'create_from_template', track_event: "click_tab", track_value: "" }, role: 'tab' } + %a.nav-link{ href: '#create-from-template-pane', id: 'create-from-template-tab', data: { toggle: 'tab', experiment_track_label: 'create_from_template' }, role: 'tab' } %span.d-none.d-sm-block.qa-project-create-from-template-tab= s_('ProjectsNew|Create from template') %span.d-block.d-sm-none= s_('ProjectsNew|Template') %li.nav-item{ role: 'presentation' } - %a.nav-link{ href: '#import-project-pane', id: 'import-project-tab', data: { toggle: 'tab', track_label: 'import_project', track_event: "click_tab", track_value: "" }, role: 'tab' } + %a.nav-link{ href: '#import-project-pane', id: 'import-project-tab', data: { toggle: 'tab', experiment_track_label: 'import_project' }, role: 'tab' } %span.d-none.d-sm-block= s_('ProjectsNew|Import project') %span.d-block.d-sm-none= s_('ProjectsNew|Import') = render_if_exists 'projects/new_ci_cd_only_project_tab', active_tab: active_tab diff --git a/app/views/projects/pipeline_schedules/_form.html.haml b/app/views/projects/pipeline_schedules/_form.html.haml index 396e5da87bc..20cf2ed63b5 100644 --- a/app/views/projects/pipeline_schedules/_form.html.haml +++ b/app/views/projects/pipeline_schedules/_form.html.haml @@ -37,7 +37,7 @@ = f.label :active, s_('PipelineSchedules|Activated'), class: 'label-bold' %div = f.check_box :active, required: false, value: @schedule.active? - = _('Active') + = f.label :active, _('Active'), class: 'gl-font-weight-normal' .footer-block.row-content-block = f.submit _('Save pipeline schedule'), class: 'btn btn-success', tabindex: 3 = link_to _('Cancel'), pipeline_schedules_path(@project), class: 'btn btn-cancel' diff --git a/app/views/projects/pipelines/_with_tabs.html.haml b/app/views/projects/pipelines/_with_tabs.html.haml index e39f543d42e..92edde034a6 100644 --- a/app/views/projects/pipelines/_with_tabs.html.haml +++ b/app/views/projects/pipelines/_with_tabs.html.haml @@ -1,19 +1,20 @@ - test_reports_enabled = Feature.enabled?(:junit_pipeline_view, @project) -- dag_pipeline_tab_enabled = Feature.enabled?(:dag_pipeline_tab) +- dag_pipeline_tab_enabled = Feature.enabled?(:dag_pipeline_tab, @project, default_enabled: false) .tabs-holder %ul.pipelines-tabs.nav-links.no-top.no-bottom.mobile-separator.nav.nav-tabs %li.js-pipeline-tab-link = link_to project_pipeline_path(@project, @pipeline), data: { target: '#js-tab-pipeline', action: 'pipelines', toggle: 'tab' }, class: 'pipeline-tab' do = _('Pipeline') - %li.js-builds-tab-link - = link_to builds_project_pipeline_path(@project, @pipeline), data: { target: '#js-tab-builds', action: 'builds', toggle: 'tab' }, class: 'builds-tab' do - = _('Jobs') - %span.badge.badge-pill.js-builds-counter= pipeline.total_size - if dag_pipeline_tab_enabled %li.js-dag-tab-link = link_to dag_project_pipeline_path(@project, @pipeline), data: { target: '#js-tab-dag', action: 'dag', toggle: 'tab' }, class: 'dag-tab' do = _('DAG') + %span.badge-pill.gl-badge.sm.gl-bg-blue-500.gl-text-white.gl-ml-2= _('Beta') + %li.js-builds-tab-link + = link_to builds_project_pipeline_path(@project, @pipeline), data: { target: '#js-tab-builds', action: 'builds', toggle: 'tab' }, class: 'builds-tab' do + = _('Jobs') + %span.badge.badge-pill.js-builds-counter= pipeline.total_size - if @pipeline.failed_builds.present? %li.js-failures-tab-link = link_to failures_project_pipeline_path(@project, @pipeline), data: { target: '#js-tab-failures', action: 'failures', toggle: 'tab' }, class: 'failures-tab' do @@ -82,6 +83,7 @@ - if dag_pipeline_tab_enabled #js-tab-dag.tab-pane + #js-pipeline-dag-vue{ data: { pipeline_data_path: dag_project_pipeline_path(@project, @pipeline) } } #js-tab-tests.tab-pane #js-pipeline-tests-detail diff --git a/app/views/projects/pipelines/charts.html.haml b/app/views/projects/pipelines/charts.html.haml index 7496ca97d56..55f1b9098c3 100644 --- a/app/views/projects/pipelines/charts.html.haml +++ b/app/views/projects/pipelines/charts.html.haml @@ -1,4 +1,4 @@ -- page_title _('CI / CD Charts') +- page_title _('CI / CD Analytics') #js-project-pipelines-charts-app{ data: { counts: @counts, success_ratio: success_ratio(@counts), times_chart: { labels: @charts[:pipeline_times].labels, values: @charts[:pipeline_times].pipeline_times }, diff --git a/app/views/projects/pipelines/index.html.haml b/app/views/projects/pipelines/index.html.haml index 64789c7c263..fa4a77a692a 100644 --- a/app/views/projects/pipelines/index.html.haml +++ b/app/views/projects/pipelines/index.html.haml @@ -4,6 +4,7 @@ #pipelines-list-vue{ data: { endpoint: project_pipelines_path(@project, format: :json), project_id: @project.id, + params: params.to_json, "help-page-path" => help_page_path('ci/quick_start/README'), "help-auto-devops-path" => help_page_path('topics/autodevops/index.md'), "empty-state-svg-path" => image_path('illustrations/pipelines_empty.svg'), diff --git a/app/views/projects/project_templates/_built_in_templates.html.haml b/app/views/projects/project_templates/_built_in_templates.html.haml index a583eb39eb3..eb41a3e0785 100644 --- a/app/views/projects/project_templates/_built_in_templates.html.haml +++ b/app/views/projects/project_templates/_built_in_templates.html.haml @@ -11,7 +11,7 @@ .controls.d-flex.align-items-center %a.btn.btn-default.append-right-10{ href: template.preview, rel: 'noopener noreferrer', target: '_blank', data: { track_label: "template_preview", track_property: template.name, track_event: "click_button", track_value: "" } } = _("Preview") - %label.btn.btn-success.template-button.choose-template.append-bottom-0{ for: template.name } + %label.btn.btn-success.template-button.choose-template.gl-mb-0{ for: template.name } %input{ type: "radio", autocomplete: "off", name: "project[template_name]", id: template.name, value: template.name, data: { track_label: "template_use", track_property: template.name, track_event: "click_button", track_value: "" } } %span{ data: { qa_selector: 'use_template_button' } } = _("Use template") diff --git a/app/views/projects/protected_branches/show.html.haml b/app/views/projects/protected_branches/show.html.haml index 1012ceefe93..ffaf118a5e3 100644 --- a/app/views/projects/protected_branches/show.html.haml +++ b/app/views/projects/protected_branches/show.html.haml @@ -2,7 +2,7 @@ .row.prepend-top-default.append-bottom-default .col-lg-3 - %h4.prepend-top-0.ref-name + %h4.gl-mt-0.ref-name = @protected_ref.name .col-lg-9 diff --git a/app/views/projects/protected_tags/show.html.haml b/app/views/projects/protected_tags/show.html.haml index 86629f1753b..6f4535a0b3f 100644 --- a/app/views/projects/protected_tags/show.html.haml +++ b/app/views/projects/protected_tags/show.html.haml @@ -2,7 +2,7 @@ .row.prepend-top-default.append-bottom-default .col-lg-3 - %h4.prepend-top-0.ref-name + %h4.gl-mt-0.ref-name = @protected_ref.name .col-lg-9.edit_protected_tag diff --git a/app/views/projects/registry/repositories/_tag.html.haml b/app/views/projects/registry/repositories/_tag.html.haml deleted file mode 100644 index 9594c9184a2..00000000000 --- a/app/views/projects/registry/repositories/_tag.html.haml +++ /dev/null @@ -1,33 +0,0 @@ -%tr.tag - %td - = escape_once(tag.name) - = clipboard_button(text: "#{tag.location}") - %td - - if tag.revision - %span.has-tooltip{ title: "#{tag.revision}" } - = tag.short_revision - - else - \- - %td - - if tag.total_size - = number_to_human_size(tag.total_size) - · - = pluralize(tag.layers.size, "layer") - - else - .light - \- - %td - - if tag.created_at - = time_ago_with_tooltip tag.created_at - - else - .light - \- - - if can?(current_user, :update_container_image, @project) - %td.content - .controls.d-none.d-sm-block.float-right - = link_to project_registry_repository_tag_path(@project, tag.repository, tag.name), - method: :delete, - class: 'btn btn-remove has-tooltip', - title: 'Remove tag', - data: { confirm: 'Are you sure you want to delete this tag?' } do - = icon('trash cred') diff --git a/app/views/projects/registry/repositories/index.html.haml b/app/views/projects/registry/repositories/index.html.haml index 650e63eb406..8540ce30060 100644 --- a/app/views/projects/registry/repositories/index.html.haml +++ b/app/views/projects/registry/repositories/index.html.haml @@ -5,7 +5,6 @@ .row.registry-placeholder.prepend-bottom-10 .col-12 #js-container-registry{ data: { endpoint: project_container_registry_index_path(@project), - settings_path: project_settings_ci_cd_path(@project), expiration_policy: @project.container_expiration_policy.to_json, "help_page_path" => help_page_path('user/packages/container_registry/index'), "two_factor_auth_help_link" => help_page_path('user/profile/account/two_factor_authentication'), @@ -16,5 +15,5 @@ "registry_host_url_with_port" => escape_once(registry_config.host_port), "expiration_policy_help_page_path" => help_page_path('user/packages/container_registry/index', anchor: 'expiration-policy'), "garbage_collection_help_page_path" => help_page_path('administration/packages/container_registry', anchor: 'container-registry-garbage-collection'), - "is_admin": current_user&.admin, + "is_admin": current_user&.admin.to_s, character_error: @character_error.to_s } } diff --git a/app/views/projects/services/_form.html.haml b/app/views/projects/services/_form.html.haml index 3f91bdc4266..e6761807409 100644 --- a/app/views/projects/services/_form.html.haml +++ b/app/views/projects/services/_form.html.haml @@ -1,6 +1,6 @@ .row.prepend-top-default.append-bottom-default .col-lg-4 - %h4.prepend-top-0 + %h4.gl-mt-0 = @service.title - [true, false].each do |value| - hide_class = 'd-none' if @service.operating? != value @@ -13,6 +13,7 @@ = form_for(@service, as: :service, url: scoped_integration_path(@service), method: :put, html: { class: 'gl-show-field-errors integration-settings-form js-integration-settings-form', data: { 'can-test' => @service.can_test?, 'test-url' => test_project_service_path(@project, @service) } }) do |form| = render 'shared/service_settings', form: form, service: @service .footer-block.row-content-block + %input{ id: 'services_redirect_to', type: 'hidden', name: 'redirect_to', value: request.referrer } = service_save_button = link_to _('Cancel'), project_settings_integrations_path(@project), class: 'btn btn-cancel' diff --git a/app/views/projects/services/alerts/_help.html.haml b/app/views/projects/services/alerts/_help.html.haml index ef3ab8d8d04..4b09d1d9d0e 100644 --- a/app/views/projects/services/alerts/_help.html.haml +++ b/app/views/projects/services/alerts/_help.html.haml @@ -1,3 +1,6 @@ .js-alerts-service-settings{ data: { activated: @service.activated?.to_s, form_path: scoped_integration_path(@service), - authorization_key: @service.token, url: @service.url || _('<namespace / project>'), learn_more_url: 'https://docs.gitlab.com/ee/user/project/integrations/generic_alerts.html' } } + authorization_key: @service.token, + url: @service.url || _('<namespace / project>'), + alerts_setup_url: help_page_path('user/project/integrations/generic_alerts.html', anchor: 'setting-up-generic-alerts'), + alerts_usage_url: help_page_path('user/project/operations/alert_management.html') } } diff --git a/app/views/projects/services/prometheus/_show.html.haml b/app/views/projects/services/prometheus/_show.html.haml index 926671845c7..728a52f024f 100644 --- a/app/views/projects/services/prometheus/_show.html.haml +++ b/app/views/projects/services/prometheus/_show.html.haml @@ -1,6 +1,6 @@ .row .col-lg-3 - %h4.prepend-top-0 + %h4.gl-mt-0 = s_('PrometheusService|Metrics') .row.append-bottom-default.prometheus-metrics-monitoring.js-prometheus-metrics-monitoring diff --git a/app/views/projects/settings/access_tokens/index.html.haml b/app/views/projects/settings/access_tokens/index.html.haml index 07784dce677..092f9c2333c 100644 --- a/app/views/projects/settings/access_tokens/index.html.haml +++ b/app/views/projects/settings/access_tokens/index.html.haml @@ -6,7 +6,7 @@ .row.prepend-top-default .col-lg-4.profile-settings-sidebar - %h4.prepend-top-0 + %h4.gl-mt-0 = page_title %p = _('You can generate an access token scoped to this project for each application to use the GitLab API.') diff --git a/app/views/projects/settings/ci_cd/_form.html.haml b/app/views/projects/settings/ci_cd/_form.html.haml index b50f712922f..a1809cecafb 100644 --- a/app/views/projects/settings/ci_cd/_form.html.haml +++ b/app/views/projects/settings/ci_cd/_form.html.haml @@ -4,7 +4,7 @@ = form_errors(@project) %fieldset.builds-feature .form-group - %h5.prepend-top-0 + %h5.gl-mt-0 = _("Git strategy for pipelines") %p = _("Choose between <code>clone</code> or <code>fetch</code> to get the recent application code").html_safe diff --git a/app/views/projects/settings/integrations/show.html.haml b/app/views/projects/settings/integrations/show.html.haml index 4372763fcf7..e7a509abc8b 100644 --- a/app/views/projects/settings/integrations/show.html.haml +++ b/app/views/projects/settings/integrations/show.html.haml @@ -12,6 +12,8 @@ .gl-alert-actions = link_to _('Go to Webhooks'), project_hooks_path(@project), class: 'btn gl-alert-action btn-info new-gl-button' -%h4= s_('Integrations') -%p= s_('Integrations allow you to integrate GitLab with other applications') +%h4= _('Integrations') +- integrations_link_start = '<a href="%{url}">'.html_safe % { url: help_page_url('user/project/integrations/overview') } +- webhooks_link_start = '<a href="%{url}">'.html_safe % { url: project_hooks_path(@project) } +%p= _("%{integrations_link_start}Integrations%{link_end} enable you to make third-party applications part of your GitLab workflow. If the available integrations don't meet your needs, consider using a %{webhooks_link_start}webhook%{link_end}.").html_safe % { integrations_link_start: integrations_link_start, webhooks_link_start: webhooks_link_start, link_end: '</a>'.html_safe } = render 'shared/integrations/index', integrations: @services diff --git a/app/views/projects/settings/operations/_external_dashboard.html.haml b/app/views/projects/settings/operations/_external_dashboard.html.haml deleted file mode 100644 index 08d50a336fd..00000000000 --- a/app/views/projects/settings/operations/_external_dashboard.html.haml +++ /dev/null @@ -1,3 +0,0 @@ -.js-operation-settings{ data: { operations_settings_endpoint: project_settings_operations_path(@project), - external_dashboard: { url: metrics_external_dashboard_url, - help_page_path: help_page_path('user/project/operations/linking_to_an_external_dashboard') } } } diff --git a/app/views/projects/settings/operations/_incidents.html.haml b/app/views/projects/settings/operations/_incidents.html.haml index 92fffa42b73..3b1b0a00380 100644 --- a/app/views/projects/settings/operations/_incidents.html.haml +++ b/app/views/projects/settings/operations/_incidents.html.haml @@ -9,7 +9,7 @@ = _('Expand') %p = _('Action to take when receiving an alert.') - = link_to help_page_path('user/project/integrations/prometheus', anchor: 'taking-action-on-an-alert-ultimate') do + = link_to help_page_path('user/project/integrations/prometheus', anchor: 'taking-action-on-incidents-ultimate') do = _('More information') .settings-content = form_for @project, url: project_settings_operations_path(@project), method: :patch do |f| diff --git a/app/views/projects/settings/operations/_metrics_dashboard.html.haml b/app/views/projects/settings/operations/_metrics_dashboard.html.haml new file mode 100644 index 00000000000..edbada8444a --- /dev/null +++ b/app/views/projects/settings/operations/_metrics_dashboard.html.haml @@ -0,0 +1,5 @@ +.js-operation-settings{ data: { operations_settings_endpoint: project_settings_operations_path(@project), + help_page: help_page_path('user/project/operations/dashboard_settings'), + external_dashboard: { url: metrics_external_dashboard_url, + help_page: help_page_path('user/project/operations/linking_to_an_external_dashboard') }, + dashboard_timezone: { setting: metrics_dashboard_timezone.upcase } } } diff --git a/app/views/projects/settings/operations/show.html.haml b/app/views/projects/settings/operations/show.html.haml index ee47d70171b..9e4fbf81ca4 100644 --- a/app/views/projects/settings/operations/show.html.haml +++ b/app/views/projects/settings/operations/show.html.haml @@ -5,7 +5,7 @@ = render 'projects/settings/operations/incidents' = render 'projects/settings/operations/error_tracking' = render 'projects/settings/operations/prometheus', service: prometheus_service if Feature.enabled?(:settings_operations_prometheus_service) -= render 'projects/settings/operations/external_dashboard' += render 'projects/settings/operations/metrics_dashboard' = render 'projects/settings/operations/grafana_integration' = render_if_exists 'projects/settings/operations/tracing' = render_if_exists 'projects/settings/operations/status_page' diff --git a/app/views/projects/snippets/_actions.html.haml b/app/views/projects/snippets/_actions.html.haml index 41c9bac0102..6aedab36e1b 100644 --- a/app/views/projects/snippets/_actions.html.haml +++ b/app/views/projects/snippets/_actions.html.haml @@ -14,7 +14,7 @@ = link_to _('Submit as spam'), mark_as_spam_project_snippet_path(@project, @snippet), method: :post, class: 'btn btn-grouped btn-spam', title: _('Submit as spam') - if can?(current_user, :create_snippet, @project) || can?(current_user, :update_snippet, @snippet) .d-block.d-sm-none.dropdown - %button.btn.btn-default.btn-block.append-bottom-0.prepend-top-5{ data: { toggle: "dropdown" } } + %button.btn.btn-default.btn-block.gl-mb-0.prepend-top-5{ data: { toggle: "dropdown" } } = _('Options') = icon('caret-down') .dropdown-menu.dropdown-menu-full-width diff --git a/app/views/projects/tags/_tag.html.haml b/app/views/projects/tags/_tag.html.haml index da693a15ec2..79a00b00fa6 100644 --- a/app/views/projects/tags/_tag.html.haml +++ b/app/views/projects/tags/_tag.html.haml @@ -3,10 +3,10 @@ %li.flex-row.allow-wrap .row-main-content = icon('tag') - = link_to tag.name, project_tag_path(@project, tag.name), class: 'item-title ref-name prepend-left-4' + = link_to tag.name, project_tag_path(@project, tag.name), class: 'item-title ref-name gl-ml-2' - if protected_tag?(@project, tag) - %span.badge.badge-success.prepend-left-4 + %span.badge.badge-success.gl-ml-2 = s_('TagsPage|protected') - if tag.message.present? @@ -22,7 +22,7 @@ - if release .text-secondary - = icon('rocket') + = sprite_icon("rocket", size: 12) = _("Release") = link_to release.name, project_releases_path(@project, anchor: release.tag), class: 'tag-release-link' - if release.description.present? diff --git a/app/views/projects/tags/new.html.haml b/app/views/projects/tags/new.html.haml index 1b3b0972744..5aabfdd022a 100644 --- a/app/views/projects/tags/new.html.haml +++ b/app/views/projects/tags/new.html.haml @@ -46,8 +46,8 @@ - replacements = { releases_page_link_start: releases_page_link_start, docs_link_start: docs_link_start, link_end: link_end } = s_('TagsPage|Optionally, create a public Release of your project, based on this tag. Release notes are displayed on the %{releases_page_link_start}Releases%{link_end} page. %{docs_link_start}More information%{link_end}').html_safe % replacements - = render layout: 'projects/md_preview', locals: { url: preview_markdown_path(@project), referenced_users: true } do - = render 'projects/zen', attr: :release_description, classes: 'note-textarea', placeholder: s_('TagsPage|Write your release notes or drag files here…'), current_text: @release_description + = render layout: 'shared/md_preview', locals: { url: preview_markdown_path(@project), referenced_users: true } do + = render 'shared/zen', attr: :release_description, classes: 'note-textarea', placeholder: s_('TagsPage|Write your release notes or drag files here…'), current_text: @release_description = render 'shared/notes/hints' .form-actions = button_tag s_('TagsPage|Create tag'), class: 'btn btn-success' diff --git a/app/views/projects/tags/releases/edit.html.haml b/app/views/projects/tags/releases/edit.html.haml index 40d886ff1af..a3746808440 100644 --- a/app/views/projects/tags/releases/edit.html.haml +++ b/app/views/projects/tags/releases/edit.html.haml @@ -10,8 +10,8 @@ = form_for(@release, method: :put, url: project_tag_release_path(@project, @tag.name), html: { class: 'common-note-form release-form js-quick-submit' }) do |f| - = render layout: 'projects/md_preview', locals: { url: preview_markdown_path(@project), referenced_users: true } do - = render 'projects/zen', f: f, attr: :description, classes: 'note-textarea', placeholder: "Write your release notes or drag files here…" + = render layout: 'shared/md_preview', locals: { url: preview_markdown_path(@project), referenced_users: true } do + = render 'shared/zen', f: f, attr: :description, classes: 'note-textarea', placeholder: "Write your release notes or drag files here…" = render 'shared/notes/hints' .error-alert .prepend-top-default diff --git a/app/views/projects/triggers/_index.html.haml b/app/views/projects/triggers/_index.html.haml index 55a9234f01a..4ca070cb162 100644 --- a/app/views/projects/triggers/_index.html.haml +++ b/app/views/projects/triggers/_index.html.haml @@ -96,6 +96,6 @@ %p.light With webhook: - %pre.append-bottom-0 + %pre.gl-mb-0 :plain #{builds_trigger_url(@project.id, ref: 'REF_NAME')}?token=TOKEN&variables[RUN_NIGHTLY_BUILD]=true diff --git a/app/views/projects/triggers/edit.html.haml b/app/views/projects/triggers/edit.html.haml index 0f74d733c06..e287f05fe6a 100644 --- a/app/views/projects/triggers/edit.html.haml +++ b/app/views/projects/triggers/edit.html.haml @@ -2,6 +2,6 @@ .row.prepend-top-default.append-bottom-default .col-lg-12 - %h4.prepend-top-0 + %h4.gl-mt-0 Update trigger = render "form", btn_text: "Save trigger" diff --git a/app/views/projects/wikis/_form.html.haml b/app/views/projects/wikis/_form.html.haml deleted file mode 100644 index d29abfa937d..00000000000 --- a/app/views/projects/wikis/_form.html.haml +++ /dev/null @@ -1,72 +0,0 @@ -- form_classes = 'wiki-form common-note-form prepend-top-default js-quick-submit' -- form_classes += ' js-new-wiki-page' unless @page.persisted? - -= form_for [@project.namespace.becomes(Namespace), @project, @page], method: @page.persisted? ? :put : :post, - html: { class: form_classes }, - data: { uploads_path: uploads_path } do |f| - = form_errors(@page, truncate: :title) - - - if @page.persisted? - = f.hidden_field :last_commit_sha, value: @page.last_commit_sha - - .form-group.row - .col-sm-12= f.label :title, class: 'control-label-full-width' - .col-sm-12 - = f.text_field :title, class: 'form-control qa-wiki-title-textbox', value: @page.title, required: true, autofocus: !@page.persisted?, placeholder: s_('Wiki|Page title') - %span.d-inline-block.mw-100.prepend-top-5 - = icon('lightbulb-o') - - if @page.persisted? - = s_("WikiEditPageTip|Tip: You can move this page by adding the path to the beginning of the title.") - = link_to icon('question-circle'), help_page_path('user/project/wiki/index', anchor: 'moving-a-wiki-page'), - target: '_blank', rel: 'noopener noreferrer' - - else - = s_("WikiNewPageTip|Tip: You can specify the full path for the new file. We will automatically create any missing directories.") - = succeed '.' do - = link_to _('Learn more'), help_page_path('user/project/wiki/index', anchor: 'creating-a-new-wiki-page'), - target: '_blank', rel: 'noopener noreferrer' - .form-group.row - .col-sm-12= f.label :format, class: 'control-label-full-width' - .col-sm-12 - .select-wrapper - = f.select :format, options_for_select(ProjectWiki::MARKUPS, {selected: @page.format}), {}, class: 'form-control select-control' - = icon('chevron-down') - - .form-group.row - .col-sm-12= f.label :content, class: 'control-label-full-width' - .col-sm-12 - = render layout: 'projects/md_preview', locals: { url: project_wiki_preview_markdown_path(@project, @page.slug) } do - = render 'projects/zen', f: f, attr: :content, classes: 'note-textarea qa-wiki-content-textarea', placeholder: s_("WikiPage|Write your content or drag files here…") - = render 'shared/notes/hints' - - .clearfix - .error-alert - - .form-text.text-muted - = succeed '.' do - - case @page.format.to_s - - when 'rdoc' - - link_example = '{Link title}[link:page-slug]' - - when 'asciidoc' - - link_example = 'link:page-slug[Link title]' - - when 'org' - - link_example = '[[page-slug]]' - - else - - link_example = '[Link Title](page-slug)' - = (s_('WikiMarkdownTip|To link to a (new) page, simply type <code class="js-markup-link-example">%{link_example}</code>') % { link_example: link_example }).html_safe - = succeed '.' do - - markdown_link = link_to s_("WikiMarkdownDocs|documentation"), help_page_path('user/markdown', anchor: 'wiki-specific-markdown') - = (s_("WikiMarkdownDocs|More examples are in the %{docs_link}") % { docs_link: markdown_link }).html_safe - - .form-group.row - .col-sm-12= f.label :commit_message, class: 'control-label-full-width' - .col-sm-12= f.text_field :message, class: 'form-control qa-wiki-message-textbox', rows: 18, value: nil - - .form-actions - - if @page && @page.persisted? - = f.submit _("Save changes"), class: 'btn-success btn qa-save-changes-button' - .float-right - = link_to _("Cancel"), project_wiki_path(@project, @page), class: 'btn btn-cancel btn-grouped' - - else - = f.submit s_("Wiki|Create page"), class: 'btn-success btn qa-create-page-button rspec-create-page-button' - .float-right - = link_to _("Cancel"), project_wiki_path(@project, :home), class: 'btn btn-cancel' diff --git a/app/views/projects/wikis/_main_links.html.haml b/app/views/projects/wikis/_main_links.html.haml deleted file mode 100644 index 2e1e176c42a..00000000000 --- a/app/views/projects/wikis/_main_links.html.haml +++ /dev/null @@ -1,9 +0,0 @@ -- if (@page && @page.persisted?) - - if can?(current_user, :create_wiki, @project) - = link_to project_wikis_new_path(@project), class: "add-new-wiki btn btn-success", role: "button" do - = s_("Wiki|New page") - = link_to project_wiki_history_path(@project, @page), class: "btn", role: "button" do - = s_("Wiki|Page history") - - if can?(current_user, :create_wiki, @project) && @page.latest? && @valid_encoding - = link_to project_wiki_edit_path(@project, @page), class: "btn js-wiki-edit", role: "button" do - = _("Edit") diff --git a/app/views/projects/wikis/_pages_wiki_page.html.haml b/app/views/projects/wikis/_pages_wiki_page.html.haml deleted file mode 100644 index c156f8cbf50..00000000000 --- a/app/views/projects/wikis/_pages_wiki_page.html.haml +++ /dev/null @@ -1,6 +0,0 @@ -%li - = link_to wiki_page.title, project_wiki_path(@project, wiki_page) - %small (#{wiki_page.format}) - .float-right - - if wiki_page.last_version - %small= (s_("Last edited %{date}") % { date: time_ago_with_tooltip(wiki_page.last_version.authored_date) }).html_safe diff --git a/app/views/projects/wikis/_sidebar.html.haml b/app/views/projects/wikis/_sidebar.html.haml deleted file mode 100644 index 2b8da83b126..00000000000 --- a/app/views/projects/wikis/_sidebar.html.haml +++ /dev/null @@ -1,22 +0,0 @@ -%aside.right-sidebar.right-sidebar-expanded.wiki-sidebar.js-wiki-sidebar.js-right-sidebar{ data: { "offset-top" => "50", "spy" => "affix" } } - .sidebar-container - .block.wiki-sidebar-header.append-bottom-default.w-100 - %a.gutter-toggle.float-right.d-block.d-sm-block.d-md-none.js-sidebar-wiki-toggle{ href: "#" } - = icon('angle-double-right') - - - git_access_url = project_wikis_git_access_path(@project) - = link_to git_access_url, class: active_nav_link?(path: 'wikis#git_access') ? 'active' : '' do - = icon('cloud-download', class: 'append-right-5') - %span= _("Clone repository") - - .blocks-container - .block.block-first.w-100 - - if @sidebar_page - = render_wiki_content(@sidebar_page) - - else - %ul.wiki-pages - = render @sidebar_wiki_entries, context: 'sidebar' - .block.w-100 - - if @sidebar_limited - = link_to project_wikis_pages_path(@project), class: 'btn btn-block' do - = s_("Wiki|View All Pages") diff --git a/app/views/projects/wikis/_sidebar_wiki_page.html.haml b/app/views/projects/wikis/_sidebar_wiki_page.html.haml deleted file mode 100644 index 769d869bd53..00000000000 --- a/app/views/projects/wikis/_sidebar_wiki_page.html.haml +++ /dev/null @@ -1,3 +0,0 @@ -%li{ class: active_when(params[:id] == wiki_page.slug) } - = link_to project_wiki_path(@project, wiki_page) do - = wiki_page.human_title diff --git a/app/views/projects/wikis/_wiki_directory.html.haml b/app/views/projects/wikis/_wiki_directory.html.haml deleted file mode 100644 index 0e5f32ed859..00000000000 --- a/app/views/projects/wikis/_wiki_directory.html.haml +++ /dev/null @@ -1,4 +0,0 @@ -%li - = wiki_directory.slug - %ul - = render wiki_directory.pages, context: context diff --git a/app/views/projects/wikis/_wiki_page.html.haml b/app/views/projects/wikis/_wiki_page.html.haml deleted file mode 100644 index c84d06dad02..00000000000 --- a/app/views/projects/wikis/_wiki_page.html.haml +++ /dev/null @@ -1 +0,0 @@ -= render "#{context}_wiki_page", wiki_page: wiki_page diff --git a/app/views/projects/wikis/edit.html.haml b/app/views/projects/wikis/edit.html.haml deleted file mode 100644 index 9ccf5acfefc..00000000000 --- a/app/views/projects/wikis/edit.html.haml +++ /dev/null @@ -1,31 +0,0 @@ -- @content_class = "limit-container-width" unless fluid_layout -- add_to_breadcrumbs _("Wiki"), project_wiki_path(@project, @page) -- breadcrumb_title @page.persisted? ? _("Edit") : _("New") -- page_title @page.persisted? ? _("Edit") : _("New"), @page.human_title, _("Wiki") - -= wiki_page_errors(@error) - -.wiki-page-header.top-area.has-sidebar-toggle.flex-column.flex-lg-row - %button.btn.btn-default.sidebar-toggle.js-sidebar-wiki-toggle{ role: "button", type: "button" } - = icon('angle-double-left') - - .nav-text - %h2.wiki-page-title - - if @page.persisted? - = link_to @page.human_title, project_wiki_path(@project, @page) - %span.light - · - = s_("Wiki|Edit Page") - - else - = s_("Wiki|Create New Page") - - .nav-controls.pb-md-3.pb-lg-0 - - if @page.persisted? - = link_to project_wiki_history_path(@project, @page), class: "btn" do - = s_("Wiki|Page history") - - if can?(current_user, :admin_wiki, @project) - #delete-wiki-modal-wrapper{ data: { delete_wiki_url: project_wiki_path(@project, @page), page_title: @page.human_title } } - -= render 'form', uploads_path: wiki_attachment_upload_url - -= render 'sidebar' diff --git a/app/views/projects/wikis/empty.html.haml b/app/views/projects/wikis/empty.html.haml deleted file mode 100644 index 62fa6e1907b..00000000000 --- a/app/views/projects/wikis/empty.html.haml +++ /dev/null @@ -1,4 +0,0 @@ -- page_title _("Wiki") -- @right_sidebar = false - -= render 'shared/empty_states/wikis' diff --git a/app/views/projects/wikis/git_access.html.haml b/app/views/projects/wikis/git_access.html.haml index 72c9f45779a..208dedc988b 100644 --- a/app/views/projects/wikis/git_access.html.haml +++ b/app/views/projects/wikis/git_access.html.haml @@ -8,10 +8,10 @@ .git-access-header.w-100.d-flex.flex-column.justify-content-center %span = _("Clone repository") - %strong= @project_wiki.full_path + %strong= @wiki.full_path .pt-3.pt-lg-0.w-100 - = render "shared/clone_panel", project: @project_wiki + = render "shared/clone_panel", project: @wiki .wiki-git-access %h3= s_("WikiClone|Install Gollum") @@ -22,8 +22,8 @@ %h3= s_("WikiClone|Clone your wiki") %pre.dark :preserve - git clone #{ content_tag(:span, h(default_url_to_repo(@project_wiki)), class: 'clone')} - cd #{h @project_wiki.path} + git clone #{ content_tag(:span, h(default_url_to_repo(@wiki)), class: 'clone')} + cd #{h @wiki.path} %h3= s_("WikiClone|Start Gollum and edit locally") %pre.dark @@ -34,4 +34,4 @@ >> Maximum connections set to 1024 >> Listening on 0.0.0.0:4567, CTRL+C to stop -= render 'sidebar' += render 'shared/wikis/sidebar' diff --git a/app/views/projects/wikis/history.html.haml b/app/views/projects/wikis/history.html.haml deleted file mode 100644 index d3a55c53649..00000000000 --- a/app/views/projects/wikis/history.html.haml +++ /dev/null @@ -1,42 +0,0 @@ -- page_title _("History"), @page.human_title, _("Wiki") - -.wiki-page-header.top-area.has-sidebar-toggle.flex-column.flex-lg-row - %button.btn.btn-default.sidebar-toggle.js-sidebar-wiki-toggle{ role: "button", type: "button" } - = icon('angle-double-left') - - .nav-text - %h2.wiki-page-title - = link_to @page.human_title, project_wiki_path(@project, @page) - %span.light - · - = _("History") - -.table-holder - %table.table - %thead - %tr - %th= s_("Wiki|Page version") - %th= _("Author") - %th= _("Commit Message") - %th= _("Last updated") - %th= _("Format") - %tbody - - @page_versions.each_with_index do |version, index| - - commit = version - %tr - %td - = link_to project_wiki_path_with_version(@project, @page, - commit.id, index == 0) do - = truncate_sha(commit.id) - %td - = commit.author_name - %td - = commit.message - %td - #{time_ago_with_tooltip(version.authored_date)} - %td - %strong - = version.format -= paginate @page_versions, theme: 'gitlab' - -= render 'sidebar' diff --git a/app/views/projects/wikis/pages.html.haml b/app/views/projects/wikis/pages.html.haml deleted file mode 100644 index d9dcd8f9acd..00000000000 --- a/app/views/projects/wikis/pages.html.haml +++ /dev/null @@ -1,32 +0,0 @@ -- add_to_breadcrumbs "Wiki", project_wiki_path(@project, :home) -- breadcrumb_title s_("Wiki|Pages") -- page_title s_("Wiki|Pages"), _("Wiki") -- sort_title = wiki_sort_title(params[:sort]) - -.wiki-page-header.top-area.flex-column.flex-lg-row - - .nav-text.flex-fill - %h2.wiki-page-title - = s_("Wiki|Wiki Pages") - - .nav-controls.pb-md-3.pb-lg-0 - = link_to project_wikis_git_access_path(@project), class: 'btn' do - = icon('cloud-download') - = _("Clone repository") - - .dropdown.inline.wiki-sort-dropdown - .btn-group{ role: 'group' } - .btn-group{ role: 'group' } - %button.dropdown-toggle{ type: 'button', data: { toggle: 'dropdown', display: 'static' }, class: 'btn btn-default' } - = sort_title - = icon('chevron-down') - %ul.dropdown-menu.dropdown-menu-right.dropdown-menu-selectable.dropdown-menu-sort - %li - = sortable_item(s_("Wiki|Title"), project_wikis_pages_path(@project, sort: ProjectWiki::TITLE_ORDER), sort_title) - = sortable_item(s_("Wiki|Created date"), project_wikis_pages_path(@project, sort: ProjectWiki::CREATED_AT_ORDER), sort_title) - = wiki_sort_controls(@project, params[:sort], params[:direction]) - -%ul.wiki-pages-list.content-list - = render @wiki_entries, context: 'pages' - -= paginate @wiki_pages, theme: 'gitlab' diff --git a/app/views/projects/wikis/show.html.haml b/app/views/projects/wikis/show.html.haml deleted file mode 100644 index 74798311c2e..00000000000 --- a/app/views/projects/wikis/show.html.haml +++ /dev/null @@ -1,32 +0,0 @@ -- @content_class = "limit-container-width" unless fluid_layout -- breadcrumb_title @page.human_title -- wiki_breadcrumb_dropdown_links(@page.slug) -- page_title @page.human_title, _("Wiki") -- add_to_breadcrumbs _("Wiki"), project_wiki_path(@project, :home) - -.wiki-page-header.top-area.has-sidebar-toggle.flex-column.flex-lg-row - %button.btn.btn-default.sidebar-toggle.js-sidebar-wiki-toggle{ role: "button", type: "button" } - = icon('angle-double-left') - - .nav-text.flex-fill - %h2.wiki-page-title= @page.human_title - %span.wiki-last-edit-by - - if @page.last_version - = (_("Last edited by %{name}") % { name: "<strong>#{@page.last_version.author_name}</strong>" }).html_safe - #{time_ago_with_tooltip(@page.last_version.authored_date)} - - .nav-controls.pb-md-3.pb-lg-0 - = render 'main_links' - -- if @page.historical? - .warning_message - = s_("WikiHistoricalPage|This is an old version of this page.") - - most_recent_link = link_to s_("WikiHistoricalPage|most recent version"), project_wiki_path(@project, @page) - - history_link = link_to s_("WikiHistoricalPage|history"), project_wiki_history_path(@project, @page) - = (s_("WikiHistoricalPage|You can view the %{most_recent_link} or browse the %{history_link}.") % { most_recent_link: most_recent_link, history_link: history_link }).html_safe - -.prepend-top-default.append-bottom-default - .md{ data: { qa_selector: 'wiki_page_content' } } - = render_wiki_content(@page) - -= render 'sidebar' |