ldap_groups_select.js 1.69 KB
Newer Older
1
/* eslint-disable space-before-function-paren, prefer-arrow-callback, no-var, one-var, one-var-declaration-per-line, object-shorthand, quotes, comma-dangle, consistent-return, no-unused-vars, padded-blocks, func-names, max-len */
Nick Thomas's avatar
Nick Thomas committed
2
import Api from './api';
3

Fatih Acet's avatar
Fatih Acet committed
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 41 42 43 44 45 46 47 48 49 50 51 52
(function() {
  $(function() {
    var groupFormatSelection, ldapGroupResult;
    ldapGroupResult = function(group) {
      return group.cn;
    };
    groupFormatSelection = function(group) {
      return group.cn;
    };
    $('.ajax-ldap-groups-select').each(function(i, select) {
      return $(select).select2({
        id: function(group) {
          return group.cn;
        },
        placeholder: "Search for a LDAP group",
        minimumInputLength: 1,
        query: function(query) {
          var provider;
          provider = $('#ldap_group_link_provider').val();
          return Api.ldap_groups(query.term, provider, function(groups) {
            var data;
            data = {
              results: groups
            };
            return query.callback(data);
          });
        },
        initSelection: function(element, callback) {
          var id;
          id = $(element).val();
          if (id !== "") {
            return callback({
              cn: id
            });
          }
        },
        formatResult: ldapGroupResult,
        formatSelection: groupFormatSelection,
        dropdownCssClass: "ajax-groups-dropdown",
        formatNoMatches: function(nomatch) {
          return "Match not found; try refining your search query.";
        }
      });
    });
    return $('#ldap_group_link_provider').on('change', function() {
      return $('.ajax-ldap-groups-select').select2('data', null);
    });
  });

53
}).call(window);