All files / web/bundles/pimui/js/form/common/creation field.js

93.33% Statements 14/15
60% Branches 6/10
100% Functions 5/5
93.33% Lines 14/15

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                71x               71x                     88x 88x   88x             167x             76x     76x   76x         18x 18x   18x         76x   76x        
/**
 * Generic field to be added in a creation form
 *
 * @author    Alban Alnot <alban.alnot@consertotech.pro>
 * @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',
    'oro/translator',
    'pim/form',
    'pim/template/form/creation/field'
], function($, _, __, BaseForm, template) {
 
    return BaseForm.extend({
        template: _.template(template),
        dialog: null,
        events: {
            'change input': 'updateModel'
        },
 
        /**
     * {@inheritdoc}
     */
        initialize: function(config) {
            this.config = config.config;
            this.identifier = this.config.identifier || 'code';
 
            BaseForm.prototype.initialize.apply(this, arguments);
        },
 
        /**
     * Model update callback
     */
        updateModel: function(event) {
            this.getFormModel().set(this.identifier, event.target.value || '');
        },
 
        /**
     * {@inheritdoc}
     */
        render: function() {
            Iif (!this.configured)
                this;
 
            const errors = this.getRoot().validationErrors || [];
 
            this.$el.html(this.template({
                identifier: this.identifier,
                label: __(this.config.label),
                requiredLabel: __('pim_common.required_label'),
                errors: errors.filter(error => {
                    const id = this.identifier;
                    const {path, attribute} = error;
 
                    return id === path || id === attribute;
                }),
                value: this.getFormData()[this.identifier]
            }));
 
            this.delegateEvents();
 
            return this;
        }
    });
});