diff --git a/assets/controllers/form_controller.js b/assets/controllers/form_controller.js index 7c9e670..a7e6944 100644 --- a/assets/controllers/form_controller.js +++ b/assets/controllers/form_controller.js @@ -16,7 +16,12 @@ export default class extends Controller { if (event.currentTarget === this.buildingFormTarget) { const options = this.prepare( - JSON.stringify({name: this.buildingTarget.value}), + JSON.stringify( + { + name: this.buildingTarget.value, + ifc: localStorage.getItem('loaded-ifc'), + } + ), 'POST' ); diff --git a/assets/ui.js b/assets/ui.js index 50584fe..1fc6f58 100644 --- a/assets/ui.js +++ b/assets/ui.js @@ -3,6 +3,7 @@ import BIM from './bim.js'; /** + * @todo Move to Stimulus? * @namespace UI */ const UI = {}; @@ -20,12 +21,15 @@ UI.setScene = function (container) { */ UI.ifcLoader = function (container, btnId = 'load-ifc') { const loadBtn = document.querySelector(`#${btnId}`); + const nameInput = document.querySelector('[data-form-target="building"]'); let model = null; loadBtn.onchange = async function () { const files = this.files; model = await BIM.loadIfc(new Uint8Array(await files[0].arrayBuffer()), files[0].name); // Set a raycaster to select objects BIM.setupHighligther(model); + localStorage.setItem('loaded-ifc', files[0].name); + nameInput.value = files[0].name.replace('.ifc', ''); } return model; diff --git a/src/Controller/ProjectController.php b/src/Controller/ProjectController.php index 10152ff..5ac60d0 100644 --- a/src/Controller/ProjectController.php +++ b/src/Controller/ProjectController.php @@ -54,6 +54,7 @@ final class ProjectController extends AbstractController $project = new Project(); $project->setUser($user); $project->setBuilding($building); + $project->setIfc($data->get('ifc')); $project->setCreatedAt($datetime); $project->setLastModified($datetime); $em->persist($project); diff --git a/templates/home/index.html.twig b/templates/home/index.html.twig index e9d32ac..0a3c799 100644 --- a/templates/home/index.html.twig +++ b/templates/home/index.html.twig @@ -28,6 +28,7 @@
+