All files / app/assets/javascripts/groups transfer_dropdown.js

0% Statements 0/14
100% Branches 0/0
0% Functions 0/7
0% Lines 0/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 36 37 38 39 40                                                                               
import $ from 'jquery';
import initDeprecatedJQueryDropdown from '~/deprecated_jquery_dropdown';
import { __ } from '~/locale';
 
export default class TransferDropdown {
  constructor() {
    this.groupDropdown = $('.js-groups-dropdown');
    this.parentInput = $('#new_parent_group_id');
    this.data = this.groupDropdown.data('data');
    this.init();
  }
 
  init() {
    this.buildDropdown();
  }
 
  buildDropdown() {
    const extraOptions = [{ id: '-1', text: __('No parent group') }, { type: 'divider' }];
 
    initDeprecatedJQueryDropdown(this.groupDropdown, {
      selectable: true,
      filterable: true,
      toggleLabel: (item) => item.text,
      search: { fields: ['text'] },
      data: extraOptions.concat(this.data),
      text: (item) => item.text,
      clicked: (options) => {
        const { e } = options;
        e.preventDefault();
        this.assignSelected(options.selectedObj);
      },
    });
  }
 
  assignSelected(selected) {
    this.parentInput.val(selected.id);
    this.parentInput.change();
  }
}