All files / web/bundles/pimui/js/product/field date-field.js

91.67% Statements 11/12
100% Branches 2/2
80% Functions 4/5
91.67% Lines 11/12

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                  35x                                 35x                       134x     1x 1x   1x 1x   1x         60x 60x   60x          
'use strict';
/**
 * Date field
 *
 * @author    Julien Sanchez <julien@akeneo.com>
 * @author    Filips Alpe <filips@akeneo.com>
 * @copyright 2015 Akeneo SAS (http://www.akeneo.com)
 * @license   http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */
define(
    [
        'jquery',
        'pim/field',
        'underscore',
        'pim/template/product/field/date',
        'datepicker',
        'pim/date-context'
    ],
    function (
        $,
        Field,
        _,
        fieldTemplate,
        Datepicker,
        DateContext
    ) {
        return Field.extend({
            fieldTemplate: _.template(fieldTemplate),
            events: {
                'change .field-input:first input[type="text"]': 'updateModel',
                'click .field-input:first input[type="text"]': 'click'
            },
            datetimepickerOptions: {
                format: DateContext.get('date').format,
                defaultFormat: DateContext.get('date').defaultFormat,
                language: DateContext.get('language')
            },
            renderInput: function (context) {
                return this.fieldTemplate(context);
            },
            click: function (event) {
                var clickedElement = $(event.currentTarget).parent();
                var picker = this.$('.datetimepicker');
 
                Datepicker.init(picker, this.datetimepickerOptions);
                clickedElement.datetimepicker('show');
 
                picker.on('changeDate', function (e) {
                    this.setCurrentValue(this.$(e.target).find('input[type="text"]').val());
                }.bind(this));
            },
            updateModel: function () {
                var data = this.$('.field-input:first input[type="text"]').val();
                data = '' === data ? this.attribute.empty_value : data;
 
                this.setCurrentValue(data);
            }
        });
    }
);