diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-20 09:07:57 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-20 09:07:57 +0000 |
commit | 7881eb30eaa8b01dbcfe87faa09927c75c7d6e45 (patch) | |
tree | 298bc8d2c62b2f2c29cb8ecbcf3de3eaaa6466d9 /app/views/shared | |
parent | 64b66e0cb6d1bfd27abf24e06653f00bddb60597 (diff) | |
download | gitlab-ce-7881eb30eaa8b01dbcfe87faa09927c75c7d6e45.tar.gz |
Add latest changes from gitlab-org/gitlab@12-6-stable-ee
Diffstat (limited to 'app/views/shared')
29 files changed, 164 insertions, 71 deletions
diff --git a/app/views/shared/_personal_access_tokens_form.html.haml b/app/views/shared/_personal_access_tokens_form.html.haml index ca0b473addf..16f8a692635 100644 --- a/app/views/shared/_personal_access_tokens_form.html.haml +++ b/app/views/shared/_personal_access_tokens_form.html.haml @@ -18,6 +18,9 @@ .form-group.col-md-6 = f.label :expires_at, _('Expires at'), class: 'label-bold' .input-icon-wrapper + + = render_if_exists 'personal_access_tokens/callout_max_personal_access_token_lifetime' + = f.text_field :expires_at, class: "datepicker form-control", placeholder: 'YYYY-MM-DD' .form-group diff --git a/app/views/shared/_service_settings.html.haml b/app/views/shared/_service_settings.html.haml index 627a1eb6eae..1bf52feab11 100644 --- a/app/views/shared/_service_settings.html.haml +++ b/app/views/shared/_service_settings.html.haml @@ -16,7 +16,7 @@ - if @service.configurable_events.present? .form-group.row - .col-sm-2.text-right Trigger + %label.col-form-label.col-sm-2= _('Trigger') .col-sm-10 - @service.configurable_events.each do |event| @@ -35,6 +35,22 @@ %p.text-muted = @service.class.event_description(event) + - if @service.configurable_event_actions.present? + .form-group.row + %label.col-form-label.col-sm-2= _('Event Actions') + + .col-sm-10 + - @service.configurable_event_actions.each do |action| + .form-group + .form-check + = form.check_box service_event_action_field_name(action), class: 'form-check-input' + = form.label service_event_action_field_name(action), class: 'form-check-label' do + %strong + = event_action_description(action) + + %p.text-muted + = event_action_description(action) + - @service.global_fields.each do |field| - type = field[:type] diff --git a/app/views/shared/boards/_show.html.haml b/app/views/shared/boards/_show.html.haml index 93fc839a371..7f62b983bfc 100644 --- a/app/views/shared/boards/_show.html.haml +++ b/app/views/shared/boards/_show.html.haml @@ -29,6 +29,7 @@ ":board-id" => "boardId", ":key" => "list.id" } = render "shared/boards/components/sidebar", group: group + = render_if_exists 'shared/boards/components/board_settings_sidebar' - if @project %board-add-issues-modal{ "new-issue-path" => new_project_issue_path(@project), "milestone-path" => milestones_filter_dropdown_path, diff --git a/app/views/shared/boards/components/_board.html.haml b/app/views/shared/boards/components/_board.html.haml index ffa24d1c041..eb9b7f6c48a 100644 --- a/app/views/shared/boards/components/_board.html.haml +++ b/app/views/shared/boards/components/_board.html.haml @@ -42,23 +42,27 @@ %button.board-delete.no-drag.p-0.border-0.has-tooltip.float-right{ type: "button", title: _("Delete list"), ":class": "{ 'd-none': !list.isExpanded }", "aria-label" => _("Delete list"), data: { placement: "bottom" }, "@click.stop" => "deleteBoard" } = icon("trash") - .issue-count-badge.no-drag.text-secondary{ "v-if" => 'list.type !== "blank" && list.type !== "promotion"', ":title": "counterTooltip", "v-tooltip": true, data: { placement: "top" } } + .issue-count-badge.pr-0.no-drag.text-secondary{ "v-if" => "showBoardListAndBoardInfo", ":title": "counterTooltip", "v-tooltip": true, data: { placement: "top" } } %span.d-inline-flex %span.issue-count-badge-count %icon.mr-1{ name: "issues" } - {{ list.issuesSize }} + %issue-count{ ":maxIssueCount" => "list.maxIssueCount", + ":issuesSize" => "list.issuesSize" } = render_if_exists "shared/boards/components/list_weight" - %button.issue-count-badge-add-button.no-drag.btn.btn-sm.btn-default.ml-1.has-tooltip{ type: "button", - "@click" => "showNewIssueForm", - "v-if" => "isNewIssueShown", - ":class": "{ 'd-none': !list.isExpanded }", - "aria-label" => _("New issue"), - "title" => _("New issue"), - data: { placement: "top", container: "body" } } - = icon("plus") + %gl-button-group.board-list-button-group.pl-2{ "v-if" => "isNewIssueShown || isSettingsShown" } + %gl-button.issue-count-badge-add-button.no-drag{ type: "button", + "@click" => "showNewIssueForm", + "v-if" => "isNewIssueShown", + ":class": "{ 'd-none': !list.isExpanded, 'rounded-right': isNewIssueShown && !isSettingsShown }", + "aria-label" => _("New issue"), + "ref" => "newIssueBtn" } + = icon("plus") + %gl-tooltip{ ":target" => "() => $refs.newIssueBtn" } + = _("New Issue") + = render_if_exists 'shared/boards/components/list_settings' - %board-list{ "v-if" => 'list.type !== "blank" && list.type !== "promotion"', + %board-list{ "v-if" => "showBoardListAndBoardInfo", ":list" => "list", ":issues" => "list.issues", ":loading" => "list.loading", diff --git a/app/views/shared/buttons/_project_feature_toggle.html.haml b/app/views/shared/buttons/_project_feature_toggle.html.haml new file mode 100644 index 00000000000..0f630786455 --- /dev/null +++ b/app/views/shared/buttons/_project_feature_toggle.html.haml @@ -0,0 +1,16 @@ +- class_list ||= "js-project-feature-toggle project-feature-toggle" +- data ||= nil +- disabled ||= false +- is_checked ||= false +- label ||= nil + +%button{ type: 'button', + class: "#{class_list} #{'is-disabled' if disabled} #{'is-checked' if is_checked}", + "aria-label": label, + disabled: disabled, + data: data } + - if yield.present? + = yield + %span.toggle-icon + = sprite_icon('status_success_borderless', size: 16, css_class: 'toggle-icon-svg toggle-status-checked') + = sprite_icon('status_failed_borderless', size: 16, css_class: 'toggle-icon-svg toggle-status-unchecked') diff --git a/app/views/shared/empty_states/_snippets.html.haml b/app/views/shared/empty_states/_snippets.html.haml index a1a16b9d067..889a470d6ec 100644 --- a/app/views/shared/empty_states/_snippets.html.haml +++ b/app/views/shared/empty_states/_snippets.html.haml @@ -11,7 +11,8 @@ %p = s_('SnippetsEmptyState|They can be either public or private.') .text-center - = link_to s_('SnippetsEmptyState|New snippet'), button_path, class: 'btn btn-success', title: s_('SnippetsEmptyState|New snippet'), id: 'new_snippet_link' + - if button_path + = link_to s_('SnippetsEmptyState|New snippet'), button_path, class: 'btn btn-success', title: s_('SnippetsEmptyState|New snippet'), id: 'new_snippet_link' - unless current_page?(dashboard_snippets_path) = link_to s_('SnippetsEmptyState|Explore public snippets'), explore_snippets_path, class: 'btn btn-default', title: s_('SnippetsEmptyState|Explore public snippets') - else diff --git a/app/views/shared/groups/_group.html.haml b/app/views/shared/groups/_group.html.haml index 609b8dce21a..e47967ef622 100644 --- a/app/views/shared/groups/_group.html.haml +++ b/app/views/shared/groups/_group.html.haml @@ -1,7 +1,7 @@ - user = local_assigns.fetch(:user, current_user) - access = user&.max_member_access_for_group(group.id) -%li.group-row{ class: ('no-description' if group.description.blank?) } +%li.group-row.py-3{ class: ('no-description' if group.description.blank?) } .stats %span = icon('bookmark') diff --git a/app/views/shared/icons/_convdev_no_data.svg b/app/views/shared/icons/_dev_ops_score_no_data.svg index ed32b2333e7..ed32b2333e7 100644 --- a/app/views/shared/icons/_convdev_no_data.svg +++ b/app/views/shared/icons/_dev_ops_score_no_data.svg diff --git a/app/views/shared/icons/_convdev_no_index.svg b/app/views/shared/icons/_dev_ops_score_no_index.svg index 95c00e81d10..95c00e81d10 100644 --- a/app/views/shared/icons/_convdev_no_index.svg +++ b/app/views/shared/icons/_dev_ops_score_no_index.svg diff --git a/app/views/shared/icons/_convdev_overview.svg b/app/views/shared/icons/_dev_ops_score_overview.svg index 2f31113bad7..2f31113bad7 100644 --- a/app/views/shared/icons/_convdev_overview.svg +++ b/app/views/shared/icons/_dev_ops_score_overview.svg diff --git a/app/views/shared/issuable/_close_reopen_button.html.haml b/app/views/shared/issuable/_close_reopen_button.html.haml index 875cacd1f4f..2eb96a7bc9b 100644 --- a/app/views/shared/issuable/_close_reopen_button.html.haml +++ b/app/views/shared/issuable/_close_reopen_button.html.haml @@ -6,7 +6,7 @@ - if is_current_user - if can_update = link_to "Close #{display_issuable_type}", close_issuable_path(issuable), method: button_method, - class: "d-none d-sm-none d-md-block btn btn-grouped btn-close js-btn-issue-action #{issuable_button_visibility(issuable, true)}", title: "Close #{display_issuable_type}" + class: "d-none d-sm-none d-md-block btn btn-grouped btn-close js-btn-issue-action #{issuable_button_visibility(issuable, true)}", title: "Close #{display_issuable_type}", data: { qa_selector: 'close_issue_button' } - if can_reopen = link_to "Reopen #{display_issuable_type}", reopen_issuable_path(issuable), method: button_method, class: "d-none d-sm-none d-md-block btn btn-grouped btn-reopen js-btn-issue-action #{issuable_button_visibility(issuable, false)}", title: "Reopen #{display_issuable_type}", data: { qa_selector: 'reopen_issue_button' } diff --git a/app/views/shared/issuable/_search_bar.html.haml b/app/views/shared/issuable/_search_bar.html.haml index d341520e4a2..5da86195243 100644 --- a/app/views/shared/issuable/_search_bar.html.haml +++ b/app/views/shared/issuable/_search_bar.html.haml @@ -6,7 +6,7 @@ .issues-filters{ class: ("w-100" if type == :boards_modal) } .issues-details-filters.filtered-search-block.d-flex.flex-column.flex-lg-row{ class: block_css_class, "v-pre" => type == :boards_modal } - .d-flex.flex-column.flex-md-row.flex-grow-1.mb-lg-0.mb-md-2.mb-sm-0 + .d-flex.flex-column.flex-md-row.flex-grow-1.mb-lg-0.mb-md-2.mb-sm-0.w-100 - if type == :boards = render "shared/boards/switcher", board: board = form_tag page_filter_path, method: :get, class: 'filter-form js-filter-form w-100' do @@ -162,8 +162,8 @@ %button.clear-search.hidden{ type: 'button' } = icon('times') .filter-dropdown-container.d-flex.flex-column.flex-md-row - #js-board-labels-toggle - if type == :boards + #js-board-labels-toggle .js-board-config{ data: { can_admin_list: user_can_admin_list, has_scope: board.scoped? } } - if user_can_admin_list = render 'shared/issuable/board_create_list_dropdown', board: board diff --git a/app/views/shared/issuable/_sidebar.html.haml b/app/views/shared/issuable/_sidebar.html.haml index 2170b88c7c3..2a853de12a4 100644 --- a/app/views/shared/issuable/_sidebar.html.haml +++ b/app/views/shared/issuable/_sidebar.html.haml @@ -30,7 +30,7 @@ = render_if_exists 'shared/issuable/sidebar_item_epic', issuable_sidebar: issuable_sidebar - milestone = issuable_sidebar[:milestone] || {} - .block.milestone + .block.milestone{ data: { qa_selector: 'milestone_block' } } .sidebar-collapsed-icon.has-tooltip{ title: sidebar_milestone_tooltip_label(milestone), data: { container: 'body', html: 'true', placement: 'left', boundary: 'viewport' } } = icon('clock-o', 'aria-hidden': 'true') %span.milestone-title.collapse-truncated-title @@ -45,7 +45,7 @@ = link_to _('Edit'), '#', class: 'js-sidebar-dropdown-toggle edit-link float-right', data: { track_label: "right_sidebar", track_property: "milestone", track_event: "click_edit_button", track_value: "" } .value.hide-collapsed - if milestone.present? - = link_to milestone[:title], milestone[:web_url], class: "bold has-tooltip", title: sidebar_milestone_remaining_days(milestone), data: { container: "body", html: 'true', boundary: 'viewport', qa_selector: 'milestone_link' } + = link_to milestone[:title], milestone[:web_url], class: "bold has-tooltip", title: sidebar_milestone_remaining_days(milestone), data: { container: "body", html: 'true', boundary: 'viewport', qa_selector: 'milestone_link', qa_title: milestone[:title] } - else %span.no-value = _('None') @@ -107,10 +107,10 @@ = icon('spinner spin', class: 'hidden block-loading', 'aria-hidden': 'true') - if can_edit_issuable = link_to _('Edit'), '#', class: 'js-sidebar-dropdown-toggle edit-link qa-edit-link-labels float-right', data: { track_label: "right_sidebar", track_property: "labels", track_event: "click_edit_button", track_value: "" } - .value.issuable-show-labels.dont-hide.hide-collapsed.qa-labels-block{ class: ("has-labels" if selected_labels.any?) } + .value.issuable-show-labels.dont-hide.hide-collapsed{ class: ("has-labels" if selected_labels.any?), data: { qa_selector: 'labels_block' } } - if selected_labels.any? - selected_labels.each do |label_hash| - = render_label(label_from_hash(label_hash).present(issuable_subject: nil), link: sidebar_label_filter_path(issuable_sidebar[:project_issuables_path], label_hash[:title])) + = render_label(label_from_hash(label_hash).present(issuable_subject: nil), link: sidebar_label_filter_path(issuable_sidebar[:project_issuables_path], label_hash[:title]), dataset: { qa_selector: 'label', qa_label_name: label_hash[:title] }) - else %span.no-value = _('None') diff --git a/app/views/shared/labels/_nav.html.haml b/app/views/shared/labels/_nav.html.haml index e69246dd0eb..d613ea466fa 100644 --- a/app/views/shared/labels/_nav.html.haml +++ b/app/views/shared/labels/_nav.html.haml @@ -13,7 +13,7 @@ = form_tag labels_filter_path, method: :get do = hidden_field_tag :subscribed, params[:subscribed] .input-group - = search_field_tag :search, params[:search], { placeholder: _('Filter'), id: 'label-search', class: 'form-control search-text-input input-short', spellcheck: false } + = search_field_tag :search, params[:search], { placeholder: _('Filter'), id: 'label-search', class: 'form-control search-text-input input-short', spellcheck: false, autofocus: true } %span.input-group-append %button.btn.btn-default{ type: "submit", "aria-label" => _('Submit search') } = icon("search") diff --git a/app/views/shared/members/_sort_dropdown.html.haml b/app/views/shared/members/_sort_dropdown.html.haml index 5f3d49adff7..50a55565c3c 100644 --- a/app/views/shared/members/_sort_dropdown.html.haml +++ b/app/views/shared/members/_sort_dropdown.html.haml @@ -8,3 +8,13 @@ %li = link_to filter_group_project_member_path(sort: value), class: ("is-active" if @sort == value) do = title + %li.divider + %li{ data: { 'qa-selector': 'filter-members-with-inherited-permissions' } } + = link_to filter_group_project_member_path(with_inherited_permissions: nil), class: ("is-active" unless params[:with_inherited_permissions].present?) do + = _("Show all members") + %li{ data: { 'qa-selector': 'filter-members-with-inherited-permissions' } } + = link_to filter_group_project_member_path(with_inherited_permissions: 'exclude'), class: ("is-active" if params[:with_inherited_permissions] == 'exclude') do + = _("Show only direct members") + %li{ data: { 'qa-selector': 'filter-members-with-inherited-permissions' } } + = link_to filter_group_project_member_path(with_inherited_permissions: 'only'), class: ("is-active" if params[:with_inherited_permissions] == 'only') do + = _("Show only inherited members") diff --git a/app/views/shared/milestones/_milestone.html.haml b/app/views/shared/milestones/_milestone.html.haml index b324f35c338..6e50b31fd71 100644 --- a/app/views/shared/milestones/_milestone.html.haml +++ b/app/views/shared/milestones/_milestone.html.haml @@ -43,8 +43,9 @@ .col-sm-4.milestone-progress = milestone_progress_bar(milestone) = link_to pluralize(milestone.total_issues_count(current_user), 'Issue'), issues_path - · - = link_to pluralize(milestone.merge_requests_visible_to_user(current_user).size, 'Merge Request'), merge_requests_path + - if milestone.merge_requests_enabled? + · + = link_to pluralize(milestone.merge_requests_visible_to_user(current_user).size, 'Merge Request'), merge_requests_path .float-lg-right.light #{milestone.percent_complete(current_user)}% complete .col-sm-2 .milestone-actions.d-flex.justify-content-sm-start.justify-content-md-end diff --git a/app/views/shared/milestones/_sidebar.html.haml b/app/views/shared/milestones/_sidebar.html.haml index b6656e6283c..fbbcc4f3e68 100644 --- a/app/views/shared/milestones/_sidebar.html.haml +++ b/app/views/shared/milestones/_sidebar.html.haml @@ -105,38 +105,39 @@ = render_if_exists 'shared/milestones/weight', milestone: milestone - .block.merge-requests - .sidebar-collapsed-icon.has-tooltip{ title: milestone_merge_requests_tooltip_text(milestone), data: { container: 'body', html: 'true', placement: 'left', boundary: 'viewport' } } - %strong - = custom_icon('mr_bold') - %span= milestone.merge_requests.count - .title.hide-collapsed - Merge requests - %span.badge.badge-pill= milestone.merge_requests.count - .value.hide-collapsed.bold - - if !project || can?(current_user, :read_merge_request, project) - %span.milestone-stat - = link_to milestones_browse_issuables_path(milestone, type: :merge_requests) do + - if milestone.merge_requests_enabled? + .block.merge-requests + .sidebar-collapsed-icon.has-tooltip{ title: milestone_merge_requests_tooltip_text(milestone), data: { container: 'body', html: 'true', placement: 'left', boundary: 'viewport' } } + %strong + = custom_icon('mr_bold') + %span= milestone.merge_requests.count + .title.hide-collapsed + Merge requests + %span.badge.badge-pill= milestone.merge_requests.count + .value.hide-collapsed.bold + - if !project || can?(current_user, :read_merge_request, project) + %span.milestone-stat + = link_to milestones_browse_issuables_path(milestone, type: :merge_requests) do + Open: + = milestone.merge_requests.opened.count + %span.milestone-stat + = link_to milestones_browse_issuables_path(milestone, type: :merge_requests, state: 'closed') do + Closed: + = milestone.merge_requests.closed.count + %span.milestone-stat + = link_to milestones_browse_issuables_path(milestone, type: :merge_requests, state: 'merged') do + Merged: + = milestone.merge_requests.merged.count + - else + %span.milestone-stat Open: = milestone.merge_requests.opened.count - %span.milestone-stat - = link_to milestones_browse_issuables_path(milestone, type: :merge_requests, state: 'closed') do + %span.milestone-stat Closed: = milestone.merge_requests.closed.count - %span.milestone-stat - = link_to milestones_browse_issuables_path(milestone, type: :merge_requests, state: 'merged') do + %span.milestone-stat Merged: = milestone.merge_requests.merged.count - - else - %span.milestone-stat - Open: - = milestone.merge_requests.opened.count - %span.milestone-stat - Closed: - = milestone.merge_requests.closed.count - %span.milestone-stat - Merged: - = milestone.merge_requests.merged.count - if project - recent_releases, total_count, more_count = recent_releases_with_counts(milestone) diff --git a/app/views/shared/milestones/_tabs.html.haml b/app/views/shared/milestones/_tabs.html.haml index f718c5767d1..538ebe79641 100644 --- a/app/views/shared/milestones/_tabs.html.haml +++ b/app/views/shared/milestones/_tabs.html.haml @@ -6,10 +6,11 @@ = link_to '#tab-issues', class: 'nav-link active', data: { toggle: 'tab', show: '.tab-issues-buttons' } do = _('Issues') %span.badge.badge-pill= milestone.issues_visible_to_user(current_user).size - %li.nav-item - = link_to '#tab-merge-requests', class: 'nav-link', data: { toggle: 'tab', endpoint: milestone_tab_path(milestone, 'merge_requests') } do - = _('Merge Requests') - %span.badge.badge-pill= milestone.merge_requests_visible_to_user(current_user).size + - if milestone.merge_requests_enabled? + %li.nav-item + = link_to '#tab-merge-requests', class: 'nav-link', data: { toggle: 'tab', endpoint: milestone_tab_path(milestone, 'merge_requests') } do + = _('Merge Requests') + %span.badge.badge-pill= milestone.merge_requests_visible_to_user(current_user).size %li.nav-item = link_to '#tab-participants', class: 'nav-link', data: { toggle: 'tab', endpoint: milestone_tab_path(milestone, 'participants') } do = _('Participants') @@ -26,9 +27,10 @@ .tab-content.milestone-content .tab-pane.active#tab-issues{ data: { sort_endpoint: (sort_issues_project_milestone_path(@project, @milestone) if @project && current_user) } } = render 'shared/milestones/issues_tab', issues: issues, show_project_name: show_project_name, show_full_project_name: show_full_project_name - .tab-pane#tab-merge-requests - -# loaded async - = render "shared/milestones/tab_loading" + - if milestone.merge_requests_enabled? + .tab-pane#tab-merge-requests + -# loaded async + = render "shared/milestones/tab_loading" .tab-pane#tab-participants -# loaded async = render "shared/milestones/tab_loading" diff --git a/app/views/shared/notifications/_custom_notifications.html.haml b/app/views/shared/notifications/_custom_notifications.html.haml index 1fef43c0c37..be574155436 100644 --- a/app/views/shared/notifications/_custom_notifications.html.haml +++ b/app/views/shared/notifications/_custom_notifications.html.haml @@ -18,7 +18,7 @@ .col-lg-4 %h4.prepend-top-0= _('Notification events') %p - - notification_link = link_to _('notification emails'), help_page_path('workflow/notifications'), target: '_blank' + - notification_link = link_to _('notification emails'), help_page_path('user/profile/notifications'), target: '_blank' - paragraph = _('Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notification_link}.') % { notification_link: notification_link.html_safe } #{ paragraph.html_safe } .col-lg-8 diff --git a/app/views/shared/projects/_archived.html.haml b/app/views/shared/projects/_archived.html.haml new file mode 100644 index 00000000000..fad93d14390 --- /dev/null +++ b/app/views/shared/projects/_archived.html.haml @@ -0,0 +1,3 @@ +- if project.archived + %span.d-flex.badge.badge-warning + = _('archived') diff --git a/app/views/shared/projects/_list.html.haml b/app/views/shared/projects/_list.html.haml index 59b4facdbe5..fab7ee9d763 100644 --- a/app/views/shared/projects/_list.html.haml +++ b/app/views/shared/projects/_list.html.haml @@ -35,6 +35,7 @@ .js-projects-list-holder{ data: { qa_selector: 'projects_list' } } - if any_projects?(projects) - load_pipeline_status(projects) if pipeline_status + - load_max_project_member_accesses(projects) # Prime cache used in shared/projects/project view rendered below %ul.projects-list{ class: css_classes } - projects.each_with_index do |project, i| - css_class = (i >= projects_limit) || project.pending_delete? ? 'hide' : nil diff --git a/app/views/shared/projects/_project.html.haml b/app/views/shared/projects/_project.html.haml index 67dad9b7a75..45e95685677 100644 --- a/app/views/shared/projects/_project.html.haml +++ b/app/views/shared/projects/_project.html.haml @@ -26,7 +26,7 @@ = image_tag avatar_icon_for_user(project.creator, 48), class: "avatar s48", alt:'' - else = project_icon(project, alt: '', class: 'avatar project-avatar s48', width: 48, height: 48) - .project-details.d-sm-flex.flex-sm-fill.align-items-center + .project-details.d-sm-flex.flex-sm-fill.align-items-center{ data: { qa_selector: 'project', qa_project_name: project.name } } .flex-wrapper .d-flex.align-items-center.flex-wrap.project-title %h2.d-flex.prepend-top-8 @@ -67,8 +67,7 @@ %span.icon-wrapper.pipeline-status = render 'ci/status/icon', status: project.last_pipeline.detailed_status(current_user), tooltip_placement: 'top', path: pipeline_path - - if project.archived - %span.d-flex.icon-wrapper.badge.badge-warning archived + = render_if_exists 'shared/projects/archived', project: project - if stars = link_to project_starrers_path(project), class: "d-flex align-items-center icon-wrapper stars has-tooltip", diff --git a/app/views/shared/snippets/_header.html.haml b/app/views/shared/snippets/_header.html.haml index 67f177288f0..1243bdab6dd 100644 --- a/app/views/shared/snippets/_header.html.haml +++ b/app/views/shared/snippets/_header.html.haml @@ -17,11 +17,11 @@ = render "snippets/actions" .snippet-header.limited-header-width - %h2.snippet-title.prepend-top-0.mb-3.qa-snippet-title + %h2.snippet-title.prepend-top-0.mb-3{ data: { qa_selector: 'snippet_title' } } = markdown_field(@snippet, :title) - if @snippet.description.present? - .description.qa-snippet-description + .description{ data: { qa_selector: 'snippet_description' } } .md = markdown_field(@snippet, :description) %textarea.hidden.js-task-list-field @@ -44,7 +44,7 @@ %li %button.js-share-btn.btn.btn-transparent{ type: 'button' } %strong.embed-toggle-list-item= _("Share") - %input.js-snippet-url-area.snippet-embed-input.form-control{ type: "text", autocomplete: 'off', value: snippet_embed_tag(@snippet) } + = snippet_embed_input(@snippet) .input-group-append = clipboard_button(title: _('Copy'), class: 'js-clipboard-btn snippet-clipboard-btn btn btn-default', target: '.js-snippet-url-area') .clearfix diff --git a/app/views/shared/snippets/_snippet.html.haml b/app/views/shared/snippets/_snippet.html.haml index 5602ea37b5c..9e038854c59 100644 --- a/app/views/shared/snippets/_snippet.html.haml +++ b/app/views/shared/snippets/_snippet.html.haml @@ -1,11 +1,11 @@ - link_project = local_assigns.fetch(:link_project, false) - notes_count = @noteable_meta_data[snippet.id].user_notes_count -%li.snippet-row +%li.snippet-row.py-3 = image_tag avatar_icon_for_user(snippet.author), class: "avatar s40 d-none d-sm-block", alt: '' .title - = link_to reliable_snippet_path(snippet) do + = link_to gitlab_snippet_path(snippet) do = snippet.title - if snippet.file_name.present? %span.snippet-filename.d-none.d-sm-inline-block.ml-2 @@ -14,7 +14,7 @@ %ul.controls %li - = link_to reliable_snippet_path(snippet, anchor: 'notes'), class: ('no-comments' if notes_count.zero?) do + = link_to gitlab_snippet_path(snippet, anchor: 'notes'), class: ('no-comments' if notes_count.zero?) do = icon('comments') = notes_count %li diff --git a/app/views/shared/tokens/_scopes_list.html.haml b/app/views/shared/tokens/_scopes_list.html.haml index 428861485b4..913392be510 100644 --- a/app/views/shared/tokens/_scopes_list.html.haml +++ b/app/views/shared/tokens/_scopes_list.html.haml @@ -9,5 +9,5 @@ %ul.scopes-list.append-bottom-0 - token.scopes.each do |scope| %li - %span.scope-name= scope + %span.bold= scope = "(#{t(scope, scope: [:doorkeeper, :scopes])})" diff --git a/app/views/shared/web_hooks/_hook.html.haml b/app/views/shared/web_hooks/_hook.html.haml new file mode 100644 index 00000000000..34a62340966 --- /dev/null +++ b/app/views/shared/web_hooks/_hook.html.haml @@ -0,0 +1,16 @@ +%li + .row + .col-md-8.col-lg-7 + %strong.light-header= hook.url + %div + - hook.class.triggers.each_value do |trigger| + - if hook.public_send(trigger) + %span.badge.badge-gray.deploy-project-label= trigger.to_s.titleize + %span.badge.badge-gray + = _('SSL Verification:') + = hook.enable_ssl_verification ? _('enabled') : _('disabled') + + .col-md-4.col-lg-5.text-right-md.prepend-top-5 + %span>= render 'shared/web_hooks/test_button', hook: hook, button_class: 'btn-sm append-right-8' + %span>= link_to _('Edit'), edit_hook_path(hook), class: 'btn btn-sm append-right-8' + = link_to _('Delete'), destroy_hook_path(hook), data: { confirm: _('Are you sure?') }, method: :delete, class: 'btn btn-sm' diff --git a/app/views/shared/web_hooks/_index.html.haml b/app/views/shared/web_hooks/_index.html.haml new file mode 100644 index 00000000000..b22d51a101a --- /dev/null +++ b/app/views/shared/web_hooks/_index.html.haml @@ -0,0 +1,14 @@ +%hr +.card + .card-header + %h5 + = hook_class.underscore.humanize.titleize.pluralize + (#{hooks.count}) + + - if hooks.any? + %ul.content-list + - hooks.each do |hook| + = render 'shared/web_hooks/hook', hook: hook + - else + %p.text-center.prepend-top-default.append-bottom-default + = _('No webhooks found, add one in the form above.') diff --git a/app/views/shared/web_hooks/_test_button.html.haml b/app/views/shared/web_hooks/_test_button.html.haml index 5ece8b1d4c7..fc24e425ab6 100644 --- a/app/views/shared/web_hooks/_test_button.html.haml +++ b/app/views/shared/web_hooks/_test_button.html.haml @@ -1,10 +1,10 @@ -- triggers = local_assigns.fetch(:triggers) - button_class = local_assigns.fetch(:button_class, '') - hook = local_assigns.fetch(:hook) +- triggers = hook.class.triggers -.hook-test-button.dropdown.inline +.hook-test-button.dropdown.inline> %button.btn{ 'data-toggle' => 'dropdown', class: button_class } - Test + = _('Test') = icon('caret-down') %ul.dropdown-menu.dropdown-menu-right{ role: 'menu' } - triggers.each_value do |event| diff --git a/app/views/shared/web_hooks/_title_and_docs.html.haml b/app/views/shared/web_hooks/_title_and_docs.html.haml new file mode 100644 index 00000000000..359f5f34f5b --- /dev/null +++ b/app/views/shared/web_hooks/_title_and_docs.html.haml @@ -0,0 +1,5 @@ +%h4.prepend-top-0 + = page_title +%p + - link = link_to(hook.pluralized_name, help_page_path(hook.help_path)) + = _('%{link} can be used for binding events when something is happening within the project.').html_safe % { link: link } |