Commit 1548a494 authored by Tim Zallmann's avatar Tim Zallmann

Fixes to Logic based on MR

parent 95126a43
class Groups::AnalyticsController < Groups::ApplicationController class Groups::AnalyticsController < Groups::ApplicationController
include LicenseHelper
before_action :group before_action :group
before_action :check_contribution_analytics_available! before_action :check_contribution_analytics_available!
......
...@@ -77,6 +77,9 @@ module LicenseHelper ...@@ -77,6 +77,9 @@ module LicenseHelper
def show_promotions?(selected_user = current_user) def show_promotions?(selected_user = current_user)
if selected_user if selected_user
return @show_promotions if defined?(@show_promotions)
@show_promotions =
if current_application_settings.should_check_namespace_plan? if current_application_settings.should_check_namespace_plan?
true true
else else
......
...@@ -149,8 +149,7 @@ ...@@ -149,8 +149,7 @@
= nav_link(controller: :environments) do = nav_link(controller: :environments) do
= link_to project_environments_path(@project), title: 'Environments', class: 'shortcuts-environments' do = link_to project_environments_path(@project), title: 'Environments', class: 'shortcuts-environments' do
%span %span
Pages Environments
= render 'projects/settings/ee/nav'
- if @project.feature_available?(:builds, current_user) && !@project.empty_repo? - if @project.feature_available?(:builds, current_user) && !@project.empty_repo?
= nav_link(path: 'pipelines#charts') do = nav_link(path: 'pipelines#charts') do
...@@ -213,6 +212,8 @@ ...@@ -213,6 +212,8 @@
%span %span
Pages Pages
= render 'projects/settings/ee/nav'
- else - else
= nav_link(path: %w[members#show]) do = nav_link(path: %w[members#show]) do
= link_to project_settings_members_path(@project), title: 'Members', class: 'shortcuts-tree' do = link_to project_settings_members_path(@project), title: 'Members', class: 'shortcuts-tree' do
......
...@@ -163,28 +163,13 @@ ...@@ -163,28 +163,13 @@
%p %p
Customize your merge request restrictions. Customize your merge request restrictions.
.settings-content.no-animate{ class: ('expanded' if expanded) } .settings-content.no-animate{ class: ('expanded' if expanded) }
- if show_project_feature_promotion?(:merge_request_approvers, 'promote_mr_approval_dismissed') = render 'shared/promotions/promote_mr_features'
= render 'shared/promotions/promote_mr_approval'
= form_for [@project.namespace.becomes(Namespace), @project], remote: true, html: { multipart: true, class: "merge-request-settings-form" }, authenticity_token: true do |f| = form_for [@project.namespace.becomes(Namespace), @project], remote: true, html: { multipart: true, class: "merge-request-settings-form" }, authenticity_token: true do |f|
= render 'merge_request_settings', form: f = render 'merge_request_settings', form: f
= f.submit 'Save changes', class: "btn btn-save" = f.submit 'Save changes', class: "btn btn-save"
%section.settings.js-service-desk-setting-wrapper = render 'projects/ee/service_desk_settings'
.settings-header
%h4
Service Desk
%button.btn.js-settings-toggle
= expanded ? 'Collapse' : 'Expand'
%p
Customize your service desk settings.
= link_to "Learn more about service desk.", help_page_path('user/project/service_desk')
.settings-content.no-animate{ class: ('expanded' if expanded) }
- if EE::Gitlab::ServiceDesk.enabled?(project: @project)
.js-service-desk-setting-root{ data: { endpoint: project_service_desk_path(@project),
enabled: "#{@project.service_desk_enabled}",
incoming_email: (@project.service_desk_address if @project.service_desk_enabled) } }
- elsif show_promotions? && show_callout?('promote_service_desk_dismissed')
= render 'shared/promotions/promote_servicedesk'
= render 'export', project: @project = render 'export', project: @project
......
...@@ -19,5 +19,5 @@ ...@@ -19,5 +19,5 @@
in an attachment. in an attachment.
.modal-footer .modal-footer
= link_to 'Export issues', export_csv_project_issues_path(@project, request.query_parameters), method: :post, class: 'btn btn-success pull-left', title: 'Export issues' = link_to 'Export issues', export_csv_project_issues_path(@project, request.query_parameters), method: :post, class: 'btn btn-success pull-left', title: 'Export issues'
- else - elsif show_promotions?
= render 'shared/promotions/promote_csv_export' = render 'shared/promotions/promote_csv_export'
...@@ -34,5 +34,4 @@ ...@@ -34,5 +34,4 @@
this milestone and the chart will appear here, always up-to-date. this milestone and the chart will appear here, always up-to-date.
= link_to "Add start and due date", edit_project_milestone_path(project, milestone), class: 'btn' = link_to "Add start and due date", edit_project_milestone_path(project, milestone), class: 'btn'
- elsif show_promotions? && show_callout?('promote_burndown_charts_dismissed') = render 'shared/promotions/promote_burndown_charts'
= render 'shared/promotions/promote_burndown_charts'
- if EE::Gitlab::ServiceDesk.enabled?(project: @project) || (show_promotions? && show_callout?('promote_service_desk_dismissed'))
- expanded = Rails.env.test?
%section.settings.js-service-desk-setting-wrapper
.settings-header
%h4
Service Desk
%button.btn.js-settings-toggle
= expanded ? 'Collapse' : 'Expand'
%p
Customize your service desk settings.
= link_to "Learn more about service desk.", help_page_path('user/project/service_desk')
.settings-content.no-animate{ class: ('expanded' if expanded) }
- if EE::Gitlab::ServiceDesk.enabled?(project: @project)
.js-service-desk-setting-root{ data: { endpoint: project_service_desk_path(@project),
enabled: "#{@project.service_desk_enabled}",
incoming_email: (@project.service_desk_address if @project.service_desk_enabled) } }
- elsif show_promotions? && show_callout?('promote_service_desk_dismissed')
= render 'shared/promotions/promote_servicedesk'
.user-callout.promotion-callout#promote_burndown_charts{ data: { uid: 'promote_burndown_charts_dismissed' } } - if show_promotions? && show_callout?('promote_burndown_charts_dismissed')
.user-callout.promotion-callout#promote_burndown_charts{ data: { uid: 'promote_burndown_charts_dismissed' } }
.bordered-box.content-block .bordered-box.content-block
%button.btn.btn-default.close.js-close-callout{ type: 'button', 'aria-label' => 'Dismiss burndown charts promotion' } %button.btn.btn-default.close.js-close-callout{ type: 'button', 'aria-label' => 'Dismiss burndown charts promotion' }
= icon('times', class: 'dismiss-icon', 'aria-hidden' => 'true') = icon('times', class: 'dismiss-icon', 'aria-hidden' => 'true')
......
.user-callout.promotion-callout.append-bottom-20.js-mr-approval-callout#promote_mr_approval{ data: { uid: 'promote_mr_approval_dismissed' } }
.bordered-box.content-block
%button.btn.btn-default.close.js-close-callout{ type: 'button', 'aria-label' => 'Dismiss Merge Request promotion' }
= icon('times', class: 'dismiss-icon', 'aria-hidden' => 'true')
.user-callout-copy
%h4
- if current_application_settings.should_check_namespace_plan?
Upgrade your plan to improve Merge Requests and customer support.
- else
Improve Merge Requests and customer support with GitLab Enterprise Edition.
%ul
- if !@project.feature_available?(:merge_request_approvers)
%li
= link_to 'Merge Request Approvals', help_page_path('user/project/merge_requests/merge_request_approvals.html'), target: '_blank'
%p
Merge request approvals allow you to set the number of necessary approvals and predefine a list of approvers that will need to approve every merge request in a project.
- if !@project.feature_available?(:fast_forward_merge)
%li
= link_to 'Fast-forward Merge', help_page_path('user/project/merge_requests/fast_forward_merge.html'), target: '_blank'
%p
If you prefer a linear Git history and a way to accept merge requests without creating merge commits, you can configure this on a per-project basis.
= render 'shared/promotions/promotion_link_project'
- if show_project_feature_promotion?(:merge_request_approvers, 'promote_mr_features_dismissed') || show_project_feature_promotion?(:fast_forward_merge, 'promote_mr_features_dismissed')
.user-callout.promotion-callout.append-bottom-20.js-mr-approval-callout#promote_mr_features{ data: { uid: 'promote_mr_features_dismissed' } }
.bordered-box.content-block
%button.btn.btn-default.close.js-close-callout{ type: 'button', 'aria-label' => 'Dismiss Merge Request promotion' }
= icon('times', class: 'dismiss-icon', 'aria-hidden' => 'true')
.user-callout-copy
%h4
- if current_application_settings.should_check_namespace_plan?
Upgrade your plan to improve Merge Requests.
- else
Improve Merge Requests and customer support with GitLab Enterprise Edition.
%ul
- unless @project.feature_available?(:merge_request_approvers)
%li
= link_to 'Merge Request Approvals', help_page_path('user/project/merge_requests/merge_request_approvals.html'), target: '_blank'
%p
Merge request approvals allow you to set the number of necessary approvals and predefine a list of approvers that will need to approve every merge request in a project.
- unless @project.feature_available?(:fast_forward_merge)
%li
= link_to 'Fast-forward Merge', help_page_path('user/project/merge_requests/fast_forward_merge.html'), target: '_blank'
%p
If you prefer a linear Git history and a way to accept merge requests without creating merge commits, you can configure this on a per-project basis.
= render 'shared/promotions/promotion_link_project'
- if current_application_settings.should_check_namespace_plan? - if current_application_settings.should_check_namespace_plan?
- if @project.group ? can?(current_user, :admin_group, @project.group) : @project.owner == current_user - if can?(current_user, :admin_namespace, @project.namespace)
= link_to 'Upgrade your plan', upgrade_plan_url, class: 'btn btn-primary' = link_to 'Upgrade your plan', upgrade_plan_url, class: 'btn btn-primary'
- elsif @project.group - elsif @project.group
%p Contact an owner of group #{ @project.group.name } to upgrade the plan. %p Contact an owner of group #{ @project.group.name } to upgrade the plan.
......
...@@ -106,19 +106,19 @@ describe 'Promotions', js: true do ...@@ -106,19 +106,19 @@ describe 'Promotions', js: true do
it 'should appear in project edit page' do it 'should appear in project edit page' do
visit edit_project_path(project) visit edit_project_path(project)
expect(find('#promote_mr_approval')).to have_content 'Improve Merge Requests and customer support' expect(find('#promote_mr_features')).to have_content 'Improve Merge Requests'
end end
it 'does not show when cookie is set' do it 'does not show when cookie is set' do
visit edit_project_path(project) visit edit_project_path(project)
within('#promote_mr_approval') do within('#promote_mr_features') do
find('.close').trigger('click') find('.close').trigger('click')
end end
visit edit_project_path(project) visit edit_project_path(project)
expect(page).not_to have_selector('#promote_mr_approval') expect(page).not_to have_selector('#promote_mr_features')
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment