From 8ceb29f164f8fba66df023268fafe0eba45328b1 Mon Sep 17 00:00:00 2001 From: Sebastian Castro <sebastian.castro@protonmail.com> Date: Thu, 28 Jan 2021 14:42:10 +0100 Subject: [PATCH] import: fix saving sourceType --- assets/js/admin/element-import/element-import.js | 1 + src/Controller/Admin/ImportAdminController.php | 2 +- src/Document/Import.php | 2 +- .../admin/core_custom/custom-fields/element-import.html.twig | 3 ++- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/assets/js/admin/element-import/element-import.js b/assets/js/admin/element-import/element-import.js index caacb6f03..dacf5c5d3 100644 --- a/assets/js/admin/element-import/element-import.js +++ b/assets/js/admin/element-import/element-import.js @@ -28,6 +28,7 @@ document.addEventListener('DOMContentLoaded', function() { mounted() { for(let key in importObject) this[key] = importObject[key] this.osmQueriesJson = JSON.parse(this.osmQueriesJson) + this.sourceType = sourceType; this.formName = formName $(`#sonata-ba-field-container-${formName}_file`).appendTo('.file-container') } diff --git a/src/Controller/Admin/ImportAdminController.php b/src/Controller/Admin/ImportAdminController.php index f3a21bfaa..a8e4d2fb5 100755 --- a/src/Controller/Admin/ImportAdminController.php +++ b/src/Controller/Admin/ImportAdminController.php @@ -120,7 +120,7 @@ class ImportAdminController extends Controller if ($isFormValid) { try { $dm = $this->container->get('doctrine_mongodb')->getManager(); - + $object->setSourceType($request->get('sourceType')); $ontology = $request->get('ontology'); // Fix ontology mapping for elements fields with reverse value diff --git a/src/Document/Import.php b/src/Document/Import.php index e0f92830e..91b7b63a3 100644 --- a/src/Document/Import.php +++ b/src/Document/Import.php @@ -209,7 +209,7 @@ class Import extends AbstractFile } public function getSourceType() { - if ($this->sourceType) return $this->sourceType; + if (isset($this->sourceType)) return $this->sourceType; if (isset($this->osmQueriesJson)) return 'openstreetmap'; if ($this->url) return 'json'; if ($this->file) return 'csv'; diff --git a/templates/admin/core_custom/custom-fields/element-import.html.twig b/templates/admin/core_custom/custom-fields/element-import.html.twig index b435d0867..5cec14076 100644 --- a/templates/admin/core_custom/custom-fields/element-import.html.twig +++ b/templates/admin/core_custom/custom-fields/element-import.html.twig @@ -1,7 +1,7 @@ {% set formName = form.vars.full_name|split('[')|first %} <div id="element-import"> - <select class="source-type form-control" data-sonata-select2="false" v-model="sourceType" :name="`${formName}[sourceType]`"> + <select class="source-type form-control" data-sonata-select2="false" v-model="sourceType" name="sourceType"> <option></option> <option value="csv">Fichier CSV</option> <option value="json">API Json</option> @@ -31,6 +31,7 @@ <script> var importObject = {{ form.vars.sonata_admin.admin.subject|json_encode|raw }} + var sourceType = "{{ form.vars.sonata_admin.admin.subject.getSourceType() }}" var formName = {{ form.vars.full_name|split('[')|first|json_encode|raw }} // See element-import.js Vue Component </script> -- GitLab