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 | 105x 105x 122x 122x 65x 65x 65x 65x 65x 65x 65x 65x 65x 48x 19x 29x 65x 65x 65x 53x 53x 53x 53x 33x 33x 33x | 'use strict'; /** * Save extension for simple entity types * * @author Tamara Robichet <tamara.robichet@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/save', 'oro/messenger', 'pim/saver/entity-saver', 'pim/field-manager', 'pim/i18n', 'pim/user-context', 'pim/router', 'pim/common/property' ], function ( $, _, __, BaseSave, messenger, EntitySaver, FieldManager, i18n, UserContext, router, propertyAccessor ) { return BaseSave.extend({ /** * Sets message labels for updates */ configure: function () { this.notReadyMessage = __(this.config.notReadyMessage); return BaseSave.prototype.configure.apply(this, arguments); }, /** * Given an array of fields, return the translation for each in a map * * @param {Array} fields An array of field objects * @param {String} catalogLocale The locale * @return {Array} An array of labels */ getFieldLabels: function (fields, catalogLocale) { return _.map(fields, function (field) { return i18n.getLabel( field.attribute.label, catalogLocale, field.attribute.code ); }); }, /** * Shows an error message for the given message text and labels * * @param {String} message The given error message * @param {Array} labels An array of field names */ showFlashMessage: function (message, labels) { var flash = __(message, { 'fields': labels.join(', ') }); messenger.notify('error', flash); }, /** * {@inheritdoc} */ save: function () { var excludedProperties = _.union(this.config.excludedProperties, ['meta']); var entity = _.omit(this.getFormData(), excludedProperties); var notReadyFields = FieldManager.getNotReadyFields(); Iif (0 < notReadyFields.length) { var catalogLocale = UserContext.get('catalogLocale'); var fieldLabels = this.getFieldLabels(notReadyFields, catalogLocale); return this.showFlashMessage(this.notReadyMessage, fieldLabels); } this.showLoadingMask(); this.getRoot().trigger('pim_enrich:form:entity:pre_save'); const entityIdProperty = this.config.entityIdentifierParamName || 'code'; let identifierProperty = 'identifier'; if (this.config.identifierParamName !== undefined) { if (this.config.identifierParamName === 'undefined') { identifierProperty = undefined; } else { identifierProperty = this.configure.identifierParamName; } } const entityId = propertyAccessor.accessProperty(this.getFormData(), entityIdProperty, ''); const redirectAfterRouteIdentifierParamName = this.config.redirectAfterRouteIdentifierParamName || 'identifier'; return EntitySaver .setUrl(this.config.url) .setIdentifierProperty(identifierProperty) .save(entityId, entity, this.config.method || 'POST') .then(function (data) { this.postSave(data); this.setData(data); this.getRoot().trigger('pim_enrich:form:entity:post_fetch', data); if (this.config.redirectAfter) { var params = {}; params[redirectAfterRouteIdentifierParamName] = entityId; router.redirectToRoute(this.config.redirectAfter, params); } }.bind(this)) .fail(this.fail.bind(this)) .always(this.hideLoadingMask.bind(this)); } }); } ); |