Welcome to mirror list, hosted at ThFree Co, Russian Federation.

transfer_dropdown.js « groups « javascripts « assets « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 59cc779d2ae1c271fe518eac4b3c082dfc2c46c9 (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
36
37
38
39
import $ from 'jquery';
import { __ } from '~/locale';
import initDeprecatedJQueryDropdown from '~/deprecated_jquery_dropdown';

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();
  }
}