All files / web/bundles/pimui/js/product/form/attributes read-only-form.js

100% Statements 9/9
100% Branches 2/2
100% Functions 5/5
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 51 52 53                54x               54x               75x 75x 142x     75x             179x 63x                   179x          
'use strict';
/**
 * Extension to disable mass edit operation on confirm step
 *
 * @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(
    [
        'jquery',
        'underscore',
        'pim/form',
        'pim/template/form/tab/attributes'
    ],
    function ($, _, BaseForm, attributeTemplate) {
        return BaseForm.extend({
            template: _.template(attributeTemplate),
            readOnly: false,
 
            /**
             * {@inheritdoc}
             */
            configure: function () {
                this.listenTo(this.getRoot(), 'pim_enrich:form:field:extension:add', this.addFieldExtension);
                this.listenTo(this.getRoot(), 'pim_enrich:form:update_read_only', function (readOnly) {
                    this.readOnly = readOnly;
                }.bind(this));
 
                return BaseForm.prototype.configure.apply(this, arguments);
            },
 
            /**
             * {@inheritDoc}
             */
            addFieldExtension: function (event) {
                if (!this.isAttributeEditable()) {
                    event.field.setEditable(false);
                }
            },
 
            /**
             * Is the current attribute editable ?
             *
             * @return {Boolean}
             */
            isAttributeEditable: function () {
                return !this.readOnly;
            }
        });
    }
);