Sha256: a33b0fc1644ad3992892ed5f30ea1366b914b1b012bfa86b2d4069c33e4ba680

Contents?: true

Size: 1.01 KB

Versions: 4

Compression:

Stored size: 1.01 KB

Contents

import { ransackSearch } from './slim-select-utils';

const classes = ['search-select-input', 'search-select-filter-input', 'ajax-filter-input'];

function settings(el) {
  const url = el.dataset.url;
  const fields = JSON.parse(el.dataset.fields);
  const predicate = el.dataset.predicate;
  const displayName = el.dataset.displayName;
  const responseRoot = el.dataset.responseRoot;
  const minimumInputLength = el.dataset.minimumInputLength;
  const order = el.dataset.order;

  const args = { url, fields, predicate, displayName, responseRoot, minimumInputLength, order };

  return {
    events: {
      search: (search, currentData) => {
        args.textQuery = { m: 'or' };
        args.fields.forEach((field) => {
          if (field === 'id') {
            args.textQuery[`${field}_eq`] = search;
          } else {
            args.textQuery[`${field}_${args.predicate}`] = search;
          }
        });

        return ransackSearch(search, currentData, args);
      },
    },
  };
}

export {
  settings,
  classes,
};

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
activeadmin_addons-2.0.0.beta.4 app/javascript/activeadmin_addons/inputs/slim-select-search.js
activeadmin_addons-2.0.0.beta.3 app/javascript/activeadmin_addons/inputs/slim-select-search.js
activeadmin_addons-2.0.0.beta.2 app/javascript/activeadmin_addons/inputs/slim-select-search.js
activeadmin_addons-2.0.0.beta.0 app/javascript/activeadmin_addons/inputs/slim-select-search.js