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 | 9x 9x 12x 12x 12x 6x 6x 6x 6x 6x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 15x 30x 12x 12x 12x 12x 12x | 'use strict';
/**
* Set attributes requirements 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(
[
'underscore',
'oro/translator',
'routing',
'pim/mass-edit-form/product/operation',
'pim/user-context',
'pim/form-builder',
'pim/common/property',
'pim/fetcher-registry',
'pim/template/mass-edit/family/set-requirements'
],
function (
_,
__,
Routing,
BaseOperation,
UserContext,
FormBuilder,
propertyAccessor,
FetcherRegistry,
template
) {
return BaseOperation.extend({
template: _.template(template),
formPromise: null,
/**
* {@inheritdoc}
*/
render: function () {
Iif (null === this.getValue()) {
this.setValue([]);
}
var family = {
attributes: [],
attribute_requirements: {},
meta: {}
};
if (!this.formPromise) {
this.formPromise = FormBuilder.build('pim-mass-family-edit-form').then(function (form) {
form.setData(family);
form.trigger('pim_enrich:form:entity:post_fetch', family);
this.listenTo(form, 'pim_enrich:mass_edit:model_updated', this.updateModel);
return form;
}.bind(this));
}
this.formPromise.then(function (form) {
this.$el.html(this.template());
form.setElement(this.$('.set-requirements')).render();
form.trigger('pim_enrich:form:update_read_only', this.readOnly);
// This method renders a complete PEF page, we need to remove useless elements manually.
this.$el.find('.navigation').remove();
this.$el.find('.AknDefault-mainContent').addClass('AknDefault-mainContent--withoutPadding');
}.bind(this));
return this;
},
/**
* Update the mass edit model each time a requirement is changed
*
* @param {object} data
*/
updateModel: function (data) {
FetcherRegistry.getFetcher('channel').fetchAll().then(function (channels) {
var attributeRequirements = [];
_.each(data.attributes, function (attributeCode) {
_.each(channels, function (channel) {
attributeRequirements.push({
attribute_code: attributeCode,
channel_code: channel.code,
is_required: _.contains(propertyAccessor.accessProperty(
data.attribute_requirements,
channel.code,
[]
), attributeCode)
});
});
});
this.setValue(attributeRequirements);
}.bind(this));
},
/**
* Update the general model
*
* @param {Object} values
*/
setValue: function (values) {
var data = this.getFormData();
data.actions = values;
this.setData(data);
},
/**
* Get the value of the model
*
* @return {object}
*/
getValue: function () {
return this.getFormData().actions;
}
});
}
);
|