Merge branch 'project-edit-features-hide' into 'master'
Hides merge request section in edit project when disabled ## What does this MR do? Correctly hides the merge request section in the project edit page when disabled. It used to work before the feature visibility part was changed to dropdown - so added a test to prevent in future! 👍 ## Screenshots (if relevant) ![hide](/uploads/eb72ef87bad19c2716472a0c1031fd32/hide.gif) See merge request !6175
This commit is contained in:
commit
0013988666
|
@ -4,6 +4,8 @@
|
|||
this.ProjectNew = (function() {
|
||||
function ProjectNew() {
|
||||
this.toggleSettings = bind(this.toggleSettings, this);
|
||||
this.$selects = $('.features select');
|
||||
|
||||
$('.project-edit-container').on('ajax:before', (function(_this) {
|
||||
return function() {
|
||||
$('.project-edit-container').hide();
|
||||
|
@ -15,18 +17,24 @@
|
|||
}
|
||||
|
||||
ProjectNew.prototype.toggleSettings = function() {
|
||||
this._showOrHide('#project_builds_enabled', '.builds-feature');
|
||||
return this._showOrHide('#project_merge_requests_enabled', '.merge-requests-feature');
|
||||
var self = this;
|
||||
|
||||
this.$selects.each(function () {
|
||||
var $select = $(this),
|
||||
className = $select.data('field').replace(/_/g, '-')
|
||||
.replace('access-level', 'feature');
|
||||
self._showOrHide($select, '.' + className);
|
||||
});
|
||||
};
|
||||
|
||||
ProjectNew.prototype.toggleSettingsOnclick = function() {
|
||||
return $('#project_builds_enabled, #project_merge_requests_enabled').on('click', this.toggleSettings);
|
||||
this.$selects.on('change', this.toggleSettings);
|
||||
};
|
||||
|
||||
ProjectNew.prototype._showOrHide = function(checkElement, container) {
|
||||
var $container;
|
||||
$container = $(container);
|
||||
if ($(checkElement).prop('checked')) {
|
||||
var $container = $(container);
|
||||
|
||||
if ($(checkElement).val() !== '0') {
|
||||
return $container.show();
|
||||
} else {
|
||||
return $container.hide();
|
||||
|
|
|
@ -431,6 +431,6 @@ module ProjectsHelper
|
|||
options.delete('Everyone with access') if @project.private? && level != ProjectFeature::ENABLED
|
||||
|
||||
options = options_for_select(options, selected: @project.project_feature.public_send(field) || ProjectFeature::ENABLED)
|
||||
content_tag(:select, options, name: "project[project_feature_attributes][#{field.to_s}]", id: "project_project_feature_attributes_#{field.to_s}", class: "pull-right form-control").html_safe
|
||||
content_tag(:select, options, name: "project[project_feature_attributes][#{field.to_s}]", id: "project_project_feature_attributes_#{field.to_s}", class: "pull-right form-control", data: { field: field }).html_safe
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
%fieldset.builds-feature
|
||||
%h5.prepend-top-0
|
||||
Merge Requests
|
||||
.form-group
|
||||
.checkbox
|
||||
= f.label :only_allow_merge_if_build_succeeds do
|
||||
= f.check_box :only_allow_merge_if_build_succeeds
|
||||
%strong Only allow merge requests to be merged if the build succeeds
|
||||
.help-block
|
||||
Builds need to be configured to enable this feature.
|
||||
= link_to icon('question-circle'), help_page_path('workflow/merge_requests', anchor: 'only-allow-merge-requests-to-be-merged-if-the-build-succeeds')
|
||||
.merge-requests-feature
|
||||
%fieldset.builds-feature
|
||||
%hr
|
||||
%h5.prepend-top-0
|
||||
Merge Requests
|
||||
.form-group
|
||||
.checkbox
|
||||
= f.label :only_allow_merge_if_build_succeeds do
|
||||
= f.check_box :only_allow_merge_if_build_succeeds
|
||||
%strong Only allow merge requests to be merged if the build succeeds
|
||||
%br
|
||||
%span.descr
|
||||
Builds need to be configured to enable this feature.
|
||||
= link_to icon('question-circle'), help_page_path('workflow/merge_requests', anchor: 'only-allow-merge-requests-to-be-merged-if-the-build-succeeds')
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
require 'rails_helper'
|
||||
|
||||
feature 'Project edit', feature: true, js: true do
|
||||
include WaitForAjax
|
||||
|
||||
let(:user) { create(:user) }
|
||||
let(:project) { create(:project) }
|
||||
|
||||
before do
|
||||
project.team << [user, :master]
|
||||
login_as(user)
|
||||
|
||||
visit edit_namespace_project_path(project.namespace, project)
|
||||
end
|
||||
|
||||
context 'feature visibility' do
|
||||
context 'merge requests select' do
|
||||
it 'hides merge requests section' do
|
||||
select('Disabled', from: 'project_project_feature_attributes_merge_requests_access_level')
|
||||
|
||||
expect(page).to have_selector('.merge-requests-feature', visible: false)
|
||||
end
|
||||
|
||||
it 'hides merge requests section after save' do
|
||||
select('Disabled', from: 'project_project_feature_attributes_merge_requests_access_level')
|
||||
|
||||
expect(page).to have_selector('.merge-requests-feature', visible: false)
|
||||
|
||||
click_button 'Save changes'
|
||||
|
||||
wait_for_ajax
|
||||
|
||||
expect(page).to have_selector('.merge-requests-feature', visible: false)
|
||||
end
|
||||
end
|
||||
|
||||
context 'builds select' do
|
||||
it 'hides merge requests section' do
|
||||
select('Disabled', from: 'project_project_feature_attributes_builds_access_level')
|
||||
|
||||
expect(page).to have_selector('.builds-feature', visible: false)
|
||||
end
|
||||
|
||||
it 'hides merge requests section after save' do
|
||||
select('Disabled', from: 'project_project_feature_attributes_builds_access_level')
|
||||
|
||||
expect(page).to have_selector('.builds-feature', visible: false)
|
||||
|
||||
click_button 'Save changes'
|
||||
|
||||
wait_for_ajax
|
||||
|
||||
expect(page).to have_selector('.builds-feature', visible: false)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue