All files / web/bundles/pimui/js/attribute/form/properties localizable.js

100% Statements 9/9
88.89% Branches 8/9
100% Functions 4/4
100% Lines 9/9

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              60x         60x         73x   73x             501x 48x 48x   48x                   271x                  
/**
 * @author    Yohan Blain <yohan.blain@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)
 */
'use strict';
 
define([
    'underscore',
    'pim/form/common/fields/boolean'
],
function (_, BaseField) {
    return BaseField.extend({
        /**
         * {@inheritdoc}
         */
        configure: function () {
            this.listenTo(this.getRoot(), this.getRoot().preUpdateEventName, this.onPreUpdate.bind(this));
 
            return BaseField.prototype.configure.apply(this, arguments);
        },
 
        /**
         * Attribute must not be localizable if it has unique values.
         */
        onPreUpdate: function (data) {
            if (undefined !== data.unique && true === data.unique) {
                var newData = {};
                newData[this.fieldName] = false;
 
                this.setData(newData, {silent: true});
            }
        },
 
        /**
         * {@inheritdoc}
         *
         * This field shouldn't be editable if the attribute has unique values.
         */
        isReadOnly: function () {
            return BaseField.prototype.isReadOnly.apply(this, arguments) ||
                (undefined !== this.getFormData().unique && true === this.getFormData().unique) ||
                (
                    _.has(this.config, 'readOnlyForTypes') &&
                    _.contains(this.config.readOnlyForTypes, this.getRoot().getType())
                );
        }
    });
});