summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/projects/gke_cluster_namespace/index.js
blob: 288740203add95f0a63f70b2fc998ee3e720199e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/**
 * Disables & hides the namespace inputs when the gitlab-managed checkbox is checked/unchecked.
 */

const setDisabled = (el, isDisabled) => {
  if (isDisabled) {
    el.classList.add('hidden');
    el.querySelector('input').setAttribute('disabled', true);
  } else {
    el.classList.remove('hidden');
    el.querySelector('input').removeAttribute('disabled');
  }
};

const setState = glManagedCheckbox => {
  const glManaged = document.querySelector('.js-namespace-prefixed');
  const selfManaged = document.querySelector('.js-namespace');

  if (glManagedCheckbox.checked) {
    setDisabled(glManaged, false);
    setDisabled(selfManaged, true);
  } else {
    setDisabled(glManaged, true);
    setDisabled(selfManaged, false);
  }
};

const initGkeNamespace = () => {
  const glManagedCheckbox = document.querySelector('.js-gl-managed');

  setState(glManagedCheckbox); // this is needed in order to set the initial state
  glManagedCheckbox.addEventListener('change', () => setState(glManagedCheckbox));
};

export default initGkeNamespace;