All files / web/bundles/pimui/js/saver channel.js

100% Statements 13/13
100% Branches 2/2
100% Functions 5/5
100% Lines 13/13

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                  28x                         28x         19x 3x     16x             19x 19x   19x 22x     19x   19x         17x   17x            
'use strict';
 
/**
 * Module to save channel
 *
 * @author    Alexandr Jeliuc <alex@jeliuc.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([
        'underscore',
        'pim/saver/base',
        'routing',
        'oro/mediator',
        'jquery'
    ], function (
        _,
        BaseSaver,
        Routing,
        mediator,
        $
    ) {
        return _.extend({}, BaseSaver, {
            /**
             * {@inheritdoc}
             */
            getUrl: function (code) {
                if (null === code) {
                    return Routing.generate(__moduleConfig.postUrl);
                }
 
                return Routing.generate(__moduleConfig.putUrl, {code: code});
            },
 
            /**
             * {@inheritdoc}
             */
            save: function (code, data, method) {
                var queryData = data;
                var locales = [];
 
                _.each(data.locales, function (locale) {
                    locales.push(locale.code);
                });
 
                queryData.locales = locales;
 
                return $.ajax({
                    type: method,
                    url: this.getUrl(code),
                    data: JSON.stringify(queryData)
                }).then(function (entity) {
                    mediator.trigger('pim_enrich:form:entity:post_save', entity);
 
                    return entity;
                }.bind(this));
            }
        });
    }
);