All files / web/bundles/pimui/js/job/common/edit/field field.js

100% Statements 15/15
100% Branches 0/0
100% Functions 8/8
100% Lines 15/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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105                    61x                         61x             684x   684x             1386x       1386x 1386x   1386x   1386x                     1386x                 2772x                           2772x                 5592x             48x   48x        
'use strict';
 
/**
 * Base field form extension
 *
 * @author    Julien Sanchez <julien@akeneo.com>
 * @copyright 2016 Akeneo SAS (http://www.akeneo.com)
 * @license   http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */
 
define([
    'underscore',
    'oro/translator',
    'pim/form',
    'pim/common/property',
    'pim/template/export/common/edit/field/field'
], function (
    _,
    __,
    BaseForm,
    propertyAccessor,
    template
) {
    return BaseForm.extend({
        template: _.template(template),
 
        /**
         * {@inheritdoc}
         */
        initialize: function (config) {
            this.config = config.config;
 
            BaseForm.prototype.initialize.apply(this, arguments);
        },
 
        /**
         * {@inheritdoc}
         */
        render: function () {
            this.$el.html(
                this.template(this.getTemplateContext())
            );
 
            this.$('.field-input').prepend(this.renderInput(this.getTemplateContext()));
            this.$('[data-toggle="tooltip"]').tooltip();
 
            this.delegateEvents();
 
            return this;
        },
 
        /**
         * Render the input itself
         *
         * @param {object} templateContext
         *
         * @return {string}
         */
        renderInput: function (templateContext) {
            return this.fieldTemplate(templateContext);
        },
 
        /**
         * Get the template object for the field
         *
         * @return {object}
         */
        getTemplateContext: function () {
            return {
                __: __,
                value: this.getValue(),
                config: this.config,
                error: this.getParent().getValidationErrorsForField(this.getFieldCode())
            };
        },
 
        /**
         * Get the current value of the field
         *
         * @return {mixed}
         */
        getValue: function () {
            return propertyAccessor.accessProperty(this.getFormData(), this.getFieldCode());
        },
 
        /**
         * Get the field code of the property
         *
         * @return {strign}
         */
        getFieldCode: function () {
            return this.config.fieldCode;
        },
 
        /**
         * Update the model after dom update
         */
        updateState: function () {
            var data = propertyAccessor.updateProperty(this.getFormData(), this.getFieldCode(), this.getFieldValue());
 
            this.setData(data);
        }
    });
});