Refactored code to rely less on IDs that could change
This commit is contained in:
parent
4da474ca92
commit
f8513d7682
|
@ -4,6 +4,8 @@
|
||||||
this.ProjectNew = (function() {
|
this.ProjectNew = (function() {
|
||||||
function ProjectNew() {
|
function ProjectNew() {
|
||||||
this.toggleSettings = bind(this.toggleSettings, this);
|
this.toggleSettings = bind(this.toggleSettings, this);
|
||||||
|
this.$selects = $('.features select');
|
||||||
|
|
||||||
$('.project-edit-container').on('ajax:before', (function(_this) {
|
$('.project-edit-container').on('ajax:before', (function(_this) {
|
||||||
return function() {
|
return function() {
|
||||||
$('.project-edit-container').hide();
|
$('.project-edit-container').hide();
|
||||||
|
@ -15,17 +17,23 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectNew.prototype.toggleSettings = function() {
|
ProjectNew.prototype.toggleSettings = function() {
|
||||||
this._showOrHide('#project_project_feature_attributes_builds_access_level', '.builds-feature');
|
var self = this;
|
||||||
this._showOrHide('#project_project_feature_attributes_merge_requests_access_level', '.merge-requests-feature');
|
|
||||||
|
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() {
|
ProjectNew.prototype.toggleSettingsOnclick = function() {
|
||||||
$('#project_project_feature_attributes_builds_access_level, #project_project_feature_attributes_merge_requests_access_level').on('change', this.toggleSettings);
|
this.$selects.on('change', this.toggleSettings);
|
||||||
};
|
};
|
||||||
|
|
||||||
ProjectNew.prototype._showOrHide = function(checkElement, container) {
|
ProjectNew.prototype._showOrHide = function(checkElement, container) {
|
||||||
var $container;
|
var $container = $(container);
|
||||||
$container = $(container);
|
|
||||||
if ($(checkElement).val() !== '0') {
|
if ($(checkElement).val() !== '0') {
|
||||||
return $container.show();
|
return $container.show();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -431,6 +431,6 @@ module ProjectsHelper
|
||||||
options.delete('Everyone with access') if @project.private? && level != ProjectFeature::ENABLED
|
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)
|
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
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue