All files / web/bundles/pimui/js/common/select2 family.js

100% Statements 11/11
100% Branches 2/2
100% Functions 7/7
100% Lines 11/11

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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88                346x                             346x               21x             11x                   11x       11x 55x                   11x       15x 12x     12x                                
'use strict';
/**
 * Get Select2 conf for families
 *
 * @author    Julien Sanchez <julien@akeneo.com>
 * @copyright 2017 Akeneo SAS (http://www.akeneo.com)
 * @license   http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */
define(
    [
        'underscore',
        'pim/fetcher-registry',
        'pim/user-context',
        'pim/i18n',
        'routing'
    ],
    function (
        _,
        FetcherRegistry,
        UserContext,
        i18n,
        Routing
    ) {
        return {
            /**
             * Provide the config for a family select2 field
             *
             * @param {string} initialValue
             * @return {object}
             */
            getConfig: function (initialValue) {
                return {
                    allowClear: true,
                    ajax: {
                        url: Routing.generate('pim_enrich_family_rest_index'),
                        quietMillis: 250,
                        cache: true,
                        data: function (term, page) {
                            return {
                                search: term,
                                options: {
                                    limit: 20,
                                    page: page,
                                    locale: UserContext.get('catalogLocale')
                                }
                            };
                        },
                        results: function (families) {
                            var data = {
                                more: 20 === _.keys(families).length,
                                results: []
                            };
                            _.each(families, function (value, key) {
                                data.results.push({
                                    id: key,
                                    text: i18n.getLabel(
                                        value.labels,
                                        UserContext.get('catalogLocale'),
                                        value.code
                                    )
                                });
                            });
 
                            return data;
                        }
                    },
                    initSelection: function (element, callback) {
                        if (null !== initialValue) {
                            FetcherRegistry.getFetcher('family')
                                .fetch(initialValue)
                                .then(function (family) {
                                    callback({
                                        id: family.code,
                                        text: i18n.getLabel(
                                            family.labels,
                                            UserContext.get('catalogLocale'),
                                            family.code
                                        )
                                    });
                                });
                        }
 
                    }
                }
            }
        }
    });