Convert to ES6 class
This commit is contained in:
parent
67107c8f64
commit
c9ee6a96e2
|
@ -1,31 +1,26 @@
|
|||
/* eslint-disable arrow-parens, no-param-reassign, object-shorthand, no-else-return, comma-dangle, max-len */
|
||||
export default class ProtectedBranchAccessDropdown {
|
||||
constructor(options) {
|
||||
this.options = options;
|
||||
this.initDropdown();
|
||||
}
|
||||
|
||||
(global => {
|
||||
global.gl = global.gl || {};
|
||||
|
||||
gl.ProtectedBranchAccessDropdown = class {
|
||||
constructor(options) {
|
||||
const { $dropdown, data, onSelect } = options;
|
||||
|
||||
$dropdown.glDropdown({
|
||||
data: data,
|
||||
selectable: true,
|
||||
inputId: $dropdown.data('input-id'),
|
||||
fieldName: $dropdown.data('field-name'),
|
||||
toggleLabel(item, el) {
|
||||
if (el.is('.is-active')) {
|
||||
return item.text;
|
||||
} else {
|
||||
return 'Select';
|
||||
}
|
||||
},
|
||||
clicked(opts) {
|
||||
const { e } = opts;
|
||||
|
||||
e.preventDefault();
|
||||
onSelect();
|
||||
initDropdown() {
|
||||
const { onSelect } = this.options;
|
||||
this.options.$dropdown.glDropdown({
|
||||
data: this.options.data,
|
||||
selectable: true,
|
||||
inputId: this.options.$dropdown.data('input-id'),
|
||||
fieldName: this.options.$dropdown.data('field-name'),
|
||||
toggleLabel(item, $el) {
|
||||
if ($el.is('.is-active')) {
|
||||
return item.text;
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
})(window);
|
||||
return 'Select';
|
||||
},
|
||||
clicked(options) {
|
||||
options.e.preventDefault();
|
||||
onSelect();
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,55 +1,51 @@
|
|||
/* eslint-disable no-new, arrow-parens, no-param-reassign, comma-dangle, max-len */
|
||||
/* global ProtectedBranchDropdown */
|
||||
import ProtectedBranchAccessDropdown from './protected_branch_access_dropdown';
|
||||
import ProtectedBranchDropdown from './protected_branch_dropdown';
|
||||
|
||||
(global => {
|
||||
global.gl = global.gl || {};
|
||||
export default class ProtectedBranchCreate {
|
||||
constructor() {
|
||||
this.$form = $('.js-new-protected-branch');
|
||||
this.buildDropdowns();
|
||||
}
|
||||
|
||||
gl.ProtectedBranchCreate = class {
|
||||
constructor() {
|
||||
this.$wrap = this.$form = $('#new_protected_branch');
|
||||
this.buildDropdowns();
|
||||
}
|
||||
buildDropdowns() {
|
||||
const $allowedToMergeDropdown = this.$form.find('.js-allowed-to-merge');
|
||||
const $allowedToPushDropdown = this.$form.find('.js-allowed-to-push');
|
||||
|
||||
buildDropdowns() {
|
||||
const $allowedToMergeDropdown = this.$wrap.find('.js-allowed-to-merge');
|
||||
const $allowedToPushDropdown = this.$wrap.find('.js-allowed-to-push');
|
||||
// Cache callback
|
||||
this.onSelectCallback = this.onSelect.bind(this);
|
||||
|
||||
// Cache callback
|
||||
this.onSelectCallback = this.onSelect.bind(this);
|
||||
// Allowed to Merge dropdown
|
||||
this.protectedBranchMergeAccessDropdown = new ProtectedBranchAccessDropdown({
|
||||
$dropdown: $allowedToMergeDropdown,
|
||||
data: gon.merge_access_levels,
|
||||
onSelect: this.onSelectCallback,
|
||||
});
|
||||
|
||||
// Allowed to Merge dropdown
|
||||
new gl.ProtectedBranchAccessDropdown({
|
||||
$dropdown: $allowedToMergeDropdown,
|
||||
data: gon.merge_access_levels,
|
||||
onSelect: this.onSelectCallback
|
||||
});
|
||||
// Allowed to Push dropdown
|
||||
this.protectedBranchPushAccessDropdown = new ProtectedBranchAccessDropdown({
|
||||
$dropdown: $allowedToPushDropdown,
|
||||
data: gon.push_access_levels,
|
||||
onSelect: this.onSelectCallback,
|
||||
});
|
||||
|
||||
// Allowed to Push dropdown
|
||||
new gl.ProtectedBranchAccessDropdown({
|
||||
$dropdown: $allowedToPushDropdown,
|
||||
data: gon.push_access_levels,
|
||||
onSelect: this.onSelectCallback
|
||||
});
|
||||
// Select default
|
||||
$allowedToPushDropdown.data('glDropdown').selectRowAtIndex(0);
|
||||
$allowedToMergeDropdown.data('glDropdown').selectRowAtIndex(0);
|
||||
|
||||
// Select default
|
||||
$allowedToPushDropdown.data('glDropdown').selectRowAtIndex(0);
|
||||
$allowedToMergeDropdown.data('glDropdown').selectRowAtIndex(0);
|
||||
// Protected branch dropdown
|
||||
this.protectedBranchDropdown = new ProtectedBranchDropdown({
|
||||
$dropdown: this.$form.find('.js-protected-branch-select'),
|
||||
onSelect: this.onSelectCallback,
|
||||
});
|
||||
}
|
||||
|
||||
// Protected branch dropdown
|
||||
new ProtectedBranchDropdown({
|
||||
$dropdown: this.$wrap.find('.js-protected-branch-select'),
|
||||
onSelect: this.onSelectCallback
|
||||
});
|
||||
}
|
||||
// This will run after clicked callback
|
||||
onSelect() {
|
||||
// Enable submit button
|
||||
const $branchInput = this.$form.find('input[name="protected_branch[name]"]');
|
||||
const $allowedToMergeInput = this.$form.find('input[name="protected_branch[merge_access_levels_attributes][0][access_level]"]');
|
||||
const $allowedToPushInput = this.$form.find('input[name="protected_branch[push_access_levels_attributes][0][access_level]"]');
|
||||
|
||||
// This will run after clicked callback
|
||||
onSelect() {
|
||||
// Enable submit button
|
||||
const $branchInput = this.$wrap.find('input[name="protected_branch[name]"]');
|
||||
const $allowedToMergeInput = this.$wrap.find('input[name="protected_branch[merge_access_levels_attributes][0][access_level]"]');
|
||||
const $allowedToPushInput = this.$wrap.find('input[name="protected_branch[push_access_levels_attributes][0][access_level]"]');
|
||||
|
||||
this.$form.find('input[type="submit"]').attr('disabled', !($branchInput.val() && $allowedToMergeInput.length && $allowedToPushInput.length));
|
||||
}
|
||||
};
|
||||
})(window);
|
||||
this.$form.find('input[type="submit"]').attr('disabled', !($branchInput.val() && $allowedToMergeInput.length && $allowedToPushInput.length));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,69 +1,68 @@
|
|||
/* eslint-disable no-new, arrow-parens, no-param-reassign, comma-dangle, max-len */
|
||||
/* eslint-disable no-new */
|
||||
/* global Flash */
|
||||
|
||||
(global => {
|
||||
global.gl = global.gl || {};
|
||||
import ProtectedBranchAccessDropdown from './protected_branch_access_dropdown';
|
||||
|
||||
gl.ProtectedBranchEdit = class {
|
||||
constructor(options) {
|
||||
this.$wrap = options.$wrap;
|
||||
this.$allowedToMergeDropdown = this.$wrap.find('.js-allowed-to-merge');
|
||||
this.$allowedToPushDropdown = this.$wrap.find('.js-allowed-to-push');
|
||||
export default class ProtectedBranchEdit {
|
||||
constructor(options) {
|
||||
this.$wrap = options.$wrap;
|
||||
this.$allowedToMergeDropdown = this.$wrap.find('.js-allowed-to-merge');
|
||||
this.$allowedToPushDropdown = this.$wrap.find('.js-allowed-to-push');
|
||||
this.onSelectCallback = this.onSelect.bind(this);
|
||||
|
||||
this.buildDropdowns();
|
||||
}
|
||||
this.buildDropdowns();
|
||||
}
|
||||
|
||||
buildDropdowns() {
|
||||
// Allowed to merge dropdown
|
||||
new gl.ProtectedBranchAccessDropdown({
|
||||
$dropdown: this.$allowedToMergeDropdown,
|
||||
data: gon.merge_access_levels,
|
||||
onSelect: this.onSelect.bind(this)
|
||||
});
|
||||
buildDropdowns() {
|
||||
// Allowed to merge dropdown
|
||||
this.protectedBranchAccessDropdown = new ProtectedBranchAccessDropdown({
|
||||
$dropdown: this.$allowedToMergeDropdown,
|
||||
data: gon.merge_access_levels,
|
||||
onSelect: this.onSelectCallback,
|
||||
});
|
||||
|
||||
// Allowed to push dropdown
|
||||
new gl.ProtectedBranchAccessDropdown({
|
||||
$dropdown: this.$allowedToPushDropdown,
|
||||
data: gon.push_access_levels,
|
||||
onSelect: this.onSelect.bind(this)
|
||||
});
|
||||
}
|
||||
// Allowed to push dropdown
|
||||
this.protectedBranchAccessDropdown = new ProtectedBranchAccessDropdown({
|
||||
$dropdown: this.$allowedToPushDropdown,
|
||||
data: gon.push_access_levels,
|
||||
onSelect: this.onSelectCallback,
|
||||
});
|
||||
}
|
||||
|
||||
onSelect() {
|
||||
const $allowedToMergeInput = this.$wrap.find(`input[name="${this.$allowedToMergeDropdown.data('fieldName')}"]`);
|
||||
const $allowedToPushInput = this.$wrap.find(`input[name="${this.$allowedToPushDropdown.data('fieldName')}"]`);
|
||||
onSelect() {
|
||||
const $allowedToMergeInput = this.$wrap.find(`input[name="${this.$allowedToMergeDropdown.data('fieldName')}"]`);
|
||||
const $allowedToPushInput = this.$wrap.find(`input[name="${this.$allowedToPushDropdown.data('fieldName')}"]`);
|
||||
|
||||
// Do not update if one dropdown has not selected any option
|
||||
if (!($allowedToMergeInput.length && $allowedToPushInput.length)) return;
|
||||
// Do not update if one dropdown has not selected any option
|
||||
if (!($allowedToMergeInput.length && $allowedToPushInput.length)) return;
|
||||
|
||||
this.$allowedToMergeDropdown.disable();
|
||||
this.$allowedToPushDropdown.disable();
|
||||
this.$allowedToMergeDropdown.disable();
|
||||
this.$allowedToPushDropdown.disable();
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: this.$wrap.data('url'),
|
||||
dataType: 'json',
|
||||
data: {
|
||||
_method: 'PATCH',
|
||||
protected_branch: {
|
||||
merge_access_levels_attributes: [{
|
||||
id: this.$allowedToMergeDropdown.data('access-level-id'),
|
||||
access_level: $allowedToMergeInput.val()
|
||||
}],
|
||||
push_access_levels_attributes: [{
|
||||
id: this.$allowedToPushDropdown.data('access-level-id'),
|
||||
access_level: $allowedToPushInput.val()
|
||||
}]
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: this.$wrap.data('url'),
|
||||
dataType: 'json',
|
||||
data: {
|
||||
_method: 'PATCH',
|
||||
protected_branch: {
|
||||
merge_access_levels_attributes: [{
|
||||
id: this.$allowedToMergeDropdown.data('access-level-id'),
|
||||
access_level: $allowedToMergeInput.val(),
|
||||
}],
|
||||
push_access_levels_attributes: [{
|
||||
id: this.$allowedToPushDropdown.data('access-level-id'),
|
||||
access_level: $allowedToPushInput.val(),
|
||||
}],
|
||||
},
|
||||
error() {
|
||||
$.scrollTo(0);
|
||||
new Flash('Failed to update branch!');
|
||||
}
|
||||
}).always(() => {
|
||||
this.$allowedToMergeDropdown.enable();
|
||||
this.$allowedToPushDropdown.enable();
|
||||
});
|
||||
}
|
||||
};
|
||||
})(window);
|
||||
},
|
||||
error() {
|
||||
$.scrollTo(0);
|
||||
new Flash('Failed to update branch!', null, $('.js-protected-branches-list'));
|
||||
},
|
||||
}).always(() => {
|
||||
this.$allowedToMergeDropdown.enable();
|
||||
this.$allowedToPushDropdown.enable();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/* eslint-disable arrow-parens, no-param-reassign, no-new, comma-dangle */
|
||||
/* eslint-disable no-new */
|
||||
|
||||
(global => {
|
||||
global.gl = global.gl || {};
|
||||
import ProtectedBranchEdit from './protected_branch_edit';
|
||||
|
||||
gl.ProtectedBranchEditList = class {
|
||||
constructor() {
|
||||
this.$wrap = $('.protected-branches-list');
|
||||
export default class ProtectedBranchEditList {
|
||||
constructor() {
|
||||
this.$wrap = $('.protected-branches-list');
|
||||
this.initEditForm();
|
||||
}
|
||||
|
||||
// Build edit forms
|
||||
this.$wrap.find('.js-protected-branch-edit-form').each((i, el) => {
|
||||
new gl.ProtectedBranchEdit({
|
||||
$wrap: $(el)
|
||||
});
|
||||
initEditForm() {
|
||||
this.$wrap.find('.js-protected-branch-edit-form').each((i, el) => {
|
||||
new ProtectedBranchEdit({
|
||||
$wrap: $(el),
|
||||
});
|
||||
}
|
||||
};
|
||||
})(window);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue