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 136 137 138 139 | 383x 383x 644x 644x 605x 605x 1951x 15x 1936x 1936x 1936x 1936x 1936x 1936x 855x 1936x 326x 1610x 1936x 1936x 1936x 1936x 855x 855x 855x 792x 855x 972x 972x 1936x 972x 1951x 1951x 616x 1335x 1155x 180x | 'use strict'; /** * Download file extension * * @author Alban Alnot <alban.alnot@consertotech.pro> * @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', 'pim/form', 'pim/template/job-execution/download-archives-buttons', 'routing', 'pim/common/property', 'pim/security-context' ], function (_, __, BaseForm, template, Routing, propertyAccessor, securityContext ) { return BaseForm.extend({ template: _.template(template), /** * {@inheritdoc} */ initialize: function (meta) { this.config = meta.config; BaseForm.prototype.initialize.apply(this, arguments); }, /** * {@inheritdoc} */ configure: function () { this.listenTo(this.getRoot(), 'pim_enrich:form:entity:post_update', this.render); return BaseForm.prototype.configure.apply(this, arguments); }, /** * {@inheritdoc} */ render: function () { if (!this.isVisible()) { return this; } this.$el.html(this.template({ label: this.getLabel(), files: this.getFiles() })); return this; }, /** * Get the main button label. If there is only one file to download, it takes the name of the file. * * @returns {string} */ getLabel() { const formData = this.getFormData(); const archives = propertyAccessor.accessProperty(formData, this.config.filesPath); let files = []; Object.values(archives).forEach((archive) => { files = Object.assign({}, files, archive.files); }); if (Object.keys(files).length === 1) { return __(Object.values(archives)[0].label); } else { return __('pim_enrich.entity.job_execution.module.download.output'); } }, /** * Get the list of files to download, under the form label => url. * * @returns {Object} */ getFiles() { const formData = this.getFormData(); const archives = propertyAccessor.accessProperty(formData, this.config.filesPath); let files = {}; Object.keys(archives).forEach((archiver) => { const archive = archives[archiver]; let label = null; if (Object.keys(archive.files).length === 1) { label = __(archive.label); } Object.keys(archive.files).forEach((key) => { const archiveLabel = null === label ? key : label; files[archiveLabel] = this.getUrl({id: formData.meta.id, archiver: archiver, key: key }); }); }); return files; }, /** * Get the url from parameters * * @returns {string} */ getUrl: function (parameters) { return Routing.generate( this.config.url, parameters ); }, /** * Returns true if the extension should be visible * * @returns {boolean} */ isVisible: function () { var formData = this.getFormData(); if (formData.jobInstance.type === 'export') { return securityContext.isGranted(this.config.aclIdExport); } else if (formData.jobInstance.type === 'import') { return securityContext.isGranted(this.config.aclIdImport); } else { return true; } } }); } ); |