Improvements to Project overview UI
This commit is contained in:
parent
48b025d188
commit
6ea92ef1a0
6 changed files with 45 additions and 4 deletions
|
@ -93,4 +93,11 @@ module NotificationsHelper
|
|||
s_(event.to_s.humanize)
|
||||
end
|
||||
end
|
||||
|
||||
def notification_setting_icon(notification_setting)
|
||||
sprite_icon(
|
||||
notification_setting.disabled? ? "notifications-off" : "notifications",
|
||||
css_class: "icon notifications-icon js-notifications-icon"
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -37,7 +37,7 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated
|
|||
autodevops_anchor_data(show_auto_devops_callout: show_auto_devops_callout),
|
||||
kubernetes_cluster_anchor_data,
|
||||
gitlab_ci_anchor_data
|
||||
].compact.reject(&:is_link)
|
||||
].compact.reject(&:is_link).sort_by.with_index { |item, idx| [item.class_modifier ? 0 : 1, idx] }
|
||||
end
|
||||
|
||||
def empty_repo_statistics_anchors
|
||||
|
@ -259,7 +259,7 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated
|
|||
if current_user && can?(current_user, :admin_pipeline, project) && repository.gitlab_ci_yml.blank? && !show_auto_devops_callout
|
||||
if auto_devops_enabled?
|
||||
AnchorData.new(false,
|
||||
statistic_icon('doc-text') + _('Auto DevOps enabled'),
|
||||
statistic_icon('settings') + _('Auto DevOps enabled'),
|
||||
project_settings_ci_cd_path(project, anchor: 'autodevops-settings'),
|
||||
'default')
|
||||
else
|
||||
|
|
|
@ -10,14 +10,14 @@
|
|||
%div{ class: ("btn-group" if notification_setting.custom?) }
|
||||
- if notification_setting.custom?
|
||||
%button.dropdown-new.btn.btn-default.has-tooltip.notifications-btn#notifications-button{ type: "button", title: _("Notification setting - %{notification_title}") % { notification_title: notification_title(notification_setting.level) }, class: "#{btn_class}", "aria-label" => _("Notification setting - %{notification_title}") % { notification_title: notification_title(notification_setting.level) }, data: { container: "body", placement: 'top', toggle: "modal", target: "#" + notifications_menu_identifier("modal", notification_setting), display: 'static' } }
|
||||
= sprite_icon("notifications", css_class: "icon notifications-icon js-notifications-icon")
|
||||
= notification_setting_icon(notification_setting)
|
||||
%span.js-notification-loading.fa.hidden
|
||||
%button.btn.dropdown-toggle{ data: { toggle: "dropdown", target: notifications_menu_identifier("dropdown", notification_setting), flip: "false" }, class: "#{btn_class}" }
|
||||
= sprite_icon("arrow-down", css_class: "icon mr-0")
|
||||
.sr-only Toggle dropdown
|
||||
- else
|
||||
%button.dropdown-new.btn.btn-default.has-tooltip.notifications-btn#notifications-button{ type: "button", title: "Notification setting - #{notification_title(notification_setting.level)}", class: "#{btn_class}", "aria-label" => "Notification setting: #{notification_title(notification_setting.level)}", data: { container: "body", placement: 'top', toggle: "dropdown", target: notifications_menu_identifier("dropdown", notification_setting), flip: "false" } }
|
||||
= sprite_icon("notifications", css_class: "icon notifications-icon js-notifications-icon")
|
||||
= notification_setting_icon(notification_setting)
|
||||
%span.js-notification-loading.fa.hidden
|
||||
= sprite_icon("arrow-down", css_class: "icon")
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Improve icons and button order in project overview
|
||||
merge_request: 26796
|
||||
author:
|
||||
type: other
|
|
@ -20,6 +20,16 @@ describe 'Projects > Show > User manages notifications', :js do
|
|||
|
||||
click_notifications_button
|
||||
expect(find('.update-notification.is-active')).to have_content('On mention')
|
||||
expect(find('.notifications-icon use')[:'xlink:href']).to end_with('#notifications')
|
||||
end
|
||||
|
||||
it 'changes the notification setting to disabled' do
|
||||
click_notifications_button
|
||||
click_link 'Disabled'
|
||||
|
||||
wait_for_requests
|
||||
|
||||
expect(find('.notifications-icon use')[:'xlink:href']).to end_with('#notifications-off')
|
||||
end
|
||||
|
||||
context 'custom notification settings' do
|
||||
|
|
|
@ -411,4 +411,23 @@ describe ProjectPresenter do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#statistics_buttons' do
|
||||
let(:project) { build(:project) }
|
||||
let(:presenter) { described_class.new(project, current_user: user) }
|
||||
|
||||
it 'orders the items correctly' do
|
||||
allow(project.repository).to receive(:readme).and_return(double(name: 'readme'))
|
||||
allow(project.repository).to receive(:changelog).and_return(nil)
|
||||
allow(project.repository).to receive(:contribution_guide).and_return(double(name: 'foo'))
|
||||
allow(presenter).to receive(:filename_path).and_return('fake/path')
|
||||
allow(presenter).to receive(:contribution_guide_path).and_return('fake_path')
|
||||
|
||||
buttons = presenter.statistics_buttons(show_auto_devops_callout: false)
|
||||
expect(buttons.map(&:label)).to start_with(
|
||||
a_string_including('README'),
|
||||
a_string_including('CONTRIBUTING')
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue