summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/visibility_select.js
blob: 0b1d77d7a9133f743aeeccf9ae377ef0df4f9563 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
export default class VisibilitySelect {
  constructor(container) {
    if (!container) throw new Error('VisibilitySelect requires a container element as argument 1');
    this.container = container;
    this.helpBlock = this.container.querySelector('.form-text.text-muted');
    this.select = this.container.querySelector('select');
  }

  init() {
    if (this.select) {
      this.updateHelpText();
      this.select.addEventListener('change', this.updateHelpText.bind(this));
    } else {
      this.helpBlock.textContent = this.container.querySelector('.js-locked').dataset.helpBlock;
    }
  }

  updateHelpText() {
    this.helpBlock.textContent = this.select.querySelector('option:checked').dataset.description;
  }
}