All files / web/bundles/pimui/js/mass-edit/form/product operation.js

100% Statements 16/16
100% Branches 2/2
100% Functions 12/12
100% Lines 16/16

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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135                98x                         98x             1217x   1217x                           4096x                 220x                 220x   220x                 220x                 89x                 7240x                 3792x                 118x                 206x   206x                 18x          
'use strict';
/**
 * Base operation
 *
 * @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',
        'oro/translator',
        'pim/form/common/edit-form'
    ],
    function (
        $,
        _,
        __,
        BaseForm
    ) {
        return BaseForm.extend({
            readOnly: false,
 
            /**
             * {@inheritdoc}
             */
            initialize: function (meta) {
                this.config = _.extend({}, meta.config);
 
                BaseForm.prototype.initialize.apply(this, arguments);
            },
 
            /**
             * Called to reset the operation module
             */
            reset: function () {},
 
            /**
             * The label displayed in the operation list
             *
             * @return {String}
             */
            getLabel: function () {
                return __(this.config.label);
            },
 
            /**
             * Returns the title of the operation
             *
             * @returns {String}
             */
            getTitle() {
                return __(this.config.title);
            },
 
            /**
             * Returns the label with the count of impacted elements
             *
             * @returns {String}
             */
            getLabelCount: function () {
                const itemsCount = this.getFormData().itemsCount;
 
                return __(this.config.labelCount, {itemsCount}, itemsCount);
            },
 
            /**
             * Returns the main illustration of this operation
             *
             * @returns {String}
             */
            getIllustrationClass: function () {
                return this.config.illustration || 'products';
            },
 
            /**
             * Get the operation description
             *
             * @return {String}
             */
            getDescription: function () {
                return __(this.config.description);
            },
 
            /**
             * Get the operation code
             *
             * @return {String}
             */
            getCode: function () {
                return this.config.code;
            },
 
            /**
             * Get the operation icon
             *
             * @return {String}
             */
            getIcon: function () {
                return this.config.icon;
            },
 
            /**
             * Get job instance code to launch
             *
             * @return {String}
             */
            getJobInstanceCode: function () {
                return this.config.jobInstanceCode;
            },
 
            /**
             * Called when the operation should switch from read only or edit
             *
             * @param {boolean} readOnly
             */
            setReadOnly: function (readOnly) {
                this.readOnly = readOnly;
 
                this.triggerExtensions('mass-edit:update-read-only', this.readOnly);
            },
 
            /**
             * Called before the confirmation step to validate the model
             *
             * @return {promise}
             */
            validate: function () {
                return $.Deferred().resolve(true);
            }
        });
    }
);