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 | 302x 302x 35x 35x 35x 73x 73x 73x 73x 73x 73x 73x 73x 73x 73x 73x 88x 35x 1x 1x 25x | 'use strict'; /** * Copy field extension * * @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([ 'backbone', 'underscore', 'pim/field', 'pim/template/form/tab/attribute/copy-field', 'pim/i18n', 'oro/mediator' ], function (Backbone, _, Field, template, i18n, mediator) { return Field.extend({ tagName: 'div', field: null, template: _.template(template), selected: false, events: { 'click': 'onSelect' }, /** * Initialize the view */ initialize: function () { this.selected = false; this.field = null; Field.prototype.initialize.apply(this, arguments); }, /** * Render the copy field view * Delegates the render of the input itself to the Field.renderCopyInput() method * * @returns {Object} */ render: function () { this.$el.empty(); var templateContext = { type: this.field.attribute.field_type, label: this.field.getLabel(), config: this.field.config, attribute: this.field.attribute, selected: this.selected, context: this.context, i18n: i18n }; mediator.trigger('pim_enrich:form:field:extension:add', {'field': this, 'promises': []}); this.$el.html(this.template(templateContext)); this.field.renderCopyInput(this.getCurrentValue()) .then(function (render) { this.$('.field-input').html(render); this.renderElements(); this.field.postRender(); }.bind(this)); this.delegateEvents(); return this; }, /** * Render elements of this field in different available positions. * In the copy case, only implements extension on input position. */ renderElements: function () { _.each(this.elements, function (elements, position) { Iif ('field-input' === position) { var $container = this.$('.field-input'); $container.empty(); _.each(elements, function (element) { if (typeof element.render === 'function') { $container.append(element.render().$el); } else { $container.append(element); } }.bind(this)); } }.bind(this)); }, /** * Bound this copy field to the original field * * @param {Field} field */ setField: function (field) { this.field = field; }, /** * Callback called when the copy field is clicked, toggle the select checkbox state */ onSelect: function () { this.selected = !this.selected; this.$('.copy-field-selector').prop('checked', this.selected); }, /** * Mark this copy field as selected or not * * @param {boolean} selected */ setSelected: function (selected) { this.selected = selected; } }); } ); |