diff --git a/server/src/features/projects/domain/upload_file_to_to_project_scenario.ts b/server/src/features/projects/domain/upload_file_to_to_project_scenario.ts index 0e68312..d7526c8 100644 --- a/server/src/features/projects/domain/upload_file_to_to_project_scenario.ts +++ b/server/src/features/projects/domain/upload_file_to_to_project_scenario.ts @@ -14,6 +14,7 @@ export enum FolderStructure { datasets = "datasets", behaviorTrees = "behavior_trees", robots = "robots", + scenes = "scenes", } export class UploadCadFileToProjectScenario extends CallbackStrategyWithFileUpload { diff --git a/server/src/features/scenes/domain/create_robot_scenario.ts b/server/src/features/scenes/domain/create_robot_scenario.ts index 3a764fe..6b084a1 100644 --- a/server/src/features/scenes/domain/create_robot_scenario.ts +++ b/server/src/features/scenes/domain/create_robot_scenario.ts @@ -9,7 +9,17 @@ import { ExecProcessUseCase } from "../../../core/usecases/exec_process_usecase" export class CreateRobotScenario extends CallbackStrategyWithValidationModel { validationModel: RobotModel = new RobotModel(); - call = async (model: RobotModel): ResponseBase => { - return Result.ok([]); - }; + call = async (model: RobotModel): ResponseBase => ( + await new SearchManyDataBaseModelUseCase(ProjectDBModel).call( + { isActive: true }, + "is dont active projects" + ) + ).map(async (projectModel) => { + const { rootDir } = projectModel[0]; + rootDir + '/robots/' + + return Result.ok([]) + }); + + } diff --git a/ui/src/core/ui/form_builder/form_view_model.ts b/ui/src/core/ui/form_builder/form_view_model.ts index 1f4f045..a78ff17 100644 --- a/ui/src/core/ui/form_builder/form_view_model.ts +++ b/ui/src/core/ui/form_builder/form_view_model.ts @@ -90,7 +90,8 @@ export class FormViewModel { return; } try { - return JSON.parse(result.replaceAll("\n", "").replaceAll("\\", "").replaceAll("/", "")); + + return JSON.parse(result.replace(/[^\x00-\x7F]/g, "").replaceAll("\n", "").replaceAll("\\", "").replaceAll("/", "")); } catch (error) { console.log("ERROR: FormViewModel json() " + result); } @@ -159,8 +160,6 @@ export class FormViewModel { } } - // if(inputResult instanceof Array) console.log(inputResult.map((el) => JSON.parse(el))) - if (inputResult instanceof Array) inputResult = JSON.stringify(inputResult.map((el) => JSON.parse(el.replace(/[^\x00-\x7F]/g, "")))); operations.push({ regExp: new RegExp("\\${" + element.name + ".*?}"), result: inputResult }); diff --git a/ui/src/core/ui/form_builder/p.json b/ui/src/core/ui/form_builder/p.json new file mode 100644 index 0000000..c8542fc --- /dev/null +++ b/ui/src/core/ui/form_builder/p.json @@ -0,0 +1,9 @@ +{ + + "params": [ + { + "name": "default", + "value": "default" + } + ] +} \ No newline at end of file diff --git a/ui/src/features/scene_builder/forms/trajectory/trajectory_http_repository.ts b/ui/src/features/scene_builder/forms/trajectory/trajectory_http_repository.ts deleted file mode 100644 index 526d21c..0000000 --- a/ui/src/features/scene_builder/forms/trajectory/trajectory_http_repository.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { HttpRepository } from "../../../../core/repository/core_http_repository"; - -export class TrajectoryHttpRepository extends HttpRepository {} diff --git a/ui/src/features/scene_builder/forms/camera/camera_form.tsx b/ui/src/features/scene_builder/presentation/forms/camera/camera_form.tsx similarity index 89% rename from ui/src/features/scene_builder/forms/camera/camera_form.tsx rename to ui/src/features/scene_builder/presentation/forms/camera/camera_form.tsx index a99d5d3..11b5642 100644 --- a/ui/src/features/scene_builder/forms/camera/camera_form.tsx +++ b/ui/src/features/scene_builder/presentation/forms/camera/camera_form.tsx @@ -1,12 +1,12 @@ import React from "react"; -import { CoreButton } from "../../../../core/ui/button/button"; +import { CoreButton } from "../../../../../core/ui/button/button"; import { IDefaultSceneManagerFormProps, isPreviewMode } from "../scene_manager_forms"; -import { CoreInput } from "../../../../core/ui/input/input"; -import { CoreText, CoreTextType } from "../../../../core/ui/text/text"; -import { CoreSelect } from "../../../../core/ui/select/select"; +import { CoreInput } from "../../../../../core/ui/input/input"; +import { CoreText, CoreTextType } from "../../../../../core/ui/text/text"; +import { CoreSelect } from "../../../../../core/ui/select/select"; import { CameraFormStore } from "./camera_store"; import { observer } from "mobx-react-lite"; -import { CameraTypes } from "../../../../core/model/camera_model"; +import { CameraTypes } from "../../../../../core/model/camera_model"; export const CameraForm = observer((props: IDefaultSceneManagerFormProps) => { const [store] = React.useState(() => new CameraFormStore(props.store)); diff --git a/ui/src/features/scene_builder/forms/camera/camera_store.tsx b/ui/src/features/scene_builder/presentation/forms/camera/camera_store.tsx similarity index 87% rename from ui/src/features/scene_builder/forms/camera/camera_store.tsx rename to ui/src/features/scene_builder/presentation/forms/camera/camera_store.tsx index 02b8795..643fc3c 100644 --- a/ui/src/features/scene_builder/forms/camera/camera_store.tsx +++ b/ui/src/features/scene_builder/presentation/forms/camera/camera_store.tsx @@ -1,10 +1,10 @@ import makeAutoObservable from "mobx-store-inheritance"; import { NavigateFunction } from "react-router-dom"; -import { FormState, CoreError } from "../../../../core/store/base_store"; +import { FormState, CoreError } from "../../../../../core/store/base_store"; import { isPreviewMode } from "../scene_manager_forms"; -import { CameraModel } from "../../../../core/model/camera_model"; +import { CameraModel } from "../../../../../core/model/camera_model"; import { message } from "antd"; -import { SceneBuilderStore } from "../../presentation/scene_builder_store"; +import { SceneBuilderStore } from "../../scene_builder_store"; export class CameraFormStore extends FormState { viewModel: CameraModel = CameraModel.empty(); diff --git a/ui/src/features/scene_builder/forms/light/light_form.tsx b/ui/src/features/scene_builder/presentation/forms/light/light_form.tsx similarity index 100% rename from ui/src/features/scene_builder/forms/light/light_form.tsx rename to ui/src/features/scene_builder/presentation/forms/light/light_form.tsx diff --git a/ui/src/features/scene_builder/forms/light/light_store.tsx b/ui/src/features/scene_builder/presentation/forms/light/light_store.tsx similarity index 71% rename from ui/src/features/scene_builder/forms/light/light_store.tsx rename to ui/src/features/scene_builder/presentation/forms/light/light_store.tsx index ea4e0e9..9017531 100644 --- a/ui/src/features/scene_builder/forms/light/light_store.tsx +++ b/ui/src/features/scene_builder/presentation/forms/light/light_store.tsx @@ -1,6 +1,6 @@ import { NavigateFunction } from "react-router-dom"; -import { FormState, CoreError } from "../../../../core/store/base_store"; -import { LightModel } from "../../../../core/model/light_model"; +import { FormState, CoreError } from "../../../../../core/store/base_store"; +import { LightModel } from "../../../../../core/model/light_model"; export class LightStore extends FormState { viewModel: LightModel = LightModel.empty(); diff --git a/ui/src/features/scene_builder/forms/point/point_form.tsx b/ui/src/features/scene_builder/presentation/forms/point/point_form.tsx similarity index 82% rename from ui/src/features/scene_builder/forms/point/point_form.tsx rename to ui/src/features/scene_builder/presentation/forms/point/point_form.tsx index a6ffb25..a50f2ef 100644 --- a/ui/src/features/scene_builder/forms/point/point_form.tsx +++ b/ui/src/features/scene_builder/presentation/forms/point/point_form.tsx @@ -2,12 +2,12 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { PointStore, PointStoreType } from "./point_store"; import { IDefaultSceneManagerFormProps } from "../scene_manager_forms"; -import { CoreText, CoreTextType } from "../../../../core/ui/text/text"; -import { CoreInput } from "../../../../core/ui/input/input"; -import { CoreButton } from "../../../../core/ui/button/button"; +import { CoreText, CoreTextType } from "../../../../../core/ui/text/text"; +import { CoreInput } from "../../../../../core/ui/input/input"; +import { CoreButton } from "../../../../../core/ui/button/button"; import { match } from "ts-pattern"; -import { SpawnPositionTypesForm } from "../../presentation/components/spawn_position_types"; -import { CoordsForm } from "../../presentation/components/coords_form"; +import { SpawnPositionTypesForm } from "../../components/spawn_position_types"; +import { CoordsForm } from "../../components/coords_form"; export const PointForm = observer((props: IDefaultSceneManagerFormProps) => { const [store] = React.useState(() => new PointStore(props.store)); diff --git a/ui/src/features/scene_builder/forms/point/point_store.ts b/ui/src/features/scene_builder/presentation/forms/point/point_store.ts similarity index 90% rename from ui/src/features/scene_builder/forms/point/point_store.ts rename to ui/src/features/scene_builder/presentation/forms/point/point_store.ts index 46d196b..55a56d5 100644 --- a/ui/src/features/scene_builder/forms/point/point_store.ts +++ b/ui/src/features/scene_builder/presentation/forms/point/point_store.ts @@ -1,10 +1,10 @@ import makeAutoObservable from "mobx-store-inheritance"; import { NavigateFunction } from "react-router-dom"; -import { PointModel } from "../../../../core/model/point_model"; -import { FormState, CoreError } from "../../../../core/store/base_store"; -import { SpawnPositionTypes } from "../../../../core/model/spawn_position_types"; +import { PointModel } from "../../../../../core/model/point_model"; +import { FormState, CoreError } from "../../../../../core/store/base_store"; +import { SpawnPositionTypes } from "../../../../../core/model/spawn_position_types"; import { isPreviewMode } from "../scene_manager_forms"; -import { SceneBuilderStore } from "../../presentation/scene_builder_store"; +import { SceneBuilderStore } from "../../scene_builder_store"; export enum PointStoreType { makeSceneSolidAndEditPosition = "makeSceneSolidAndEditPosition", diff --git a/ui/src/features/scene_builder/forms/robot_form/robot_form.tsx b/ui/src/features/scene_builder/presentation/forms/robot_form/robot_form.tsx similarity index 84% rename from ui/src/features/scene_builder/forms/robot_form/robot_form.tsx rename to ui/src/features/scene_builder/presentation/forms/robot_form/robot_form.tsx index 5829f98..b700967 100644 --- a/ui/src/features/scene_builder/forms/robot_form/robot_form.tsx +++ b/ui/src/features/scene_builder/presentation/forms/robot_form/robot_form.tsx @@ -2,15 +2,15 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { RobotFormStore, RobotStoreType } from "./robot_form_store"; import { IDefaultSceneManagerFormProps } from "../scene_manager_forms"; -import { CoreText, CoreTextType } from "../../../../core/ui/text/text"; -import { CoreInputNumber } from "../../../../core/ui/inputNumber/input_number"; -import { CoreInput, CoreInputType } from "../../../../core/ui/input/input"; +import { CoreText, CoreTextType } from "../../../../../core/ui/text/text"; +import { CoreInputNumber } from "../../../../../core/ui/inputNumber/input_number"; +import { CoreInput, CoreInputType } from "../../../../../core/ui/input/input"; import { match } from "ts-pattern"; -import { CoreSelect } from "../../../../core/ui/select/select"; -import { ToolTypes } from "../../../../core/model/robot_model"; -import { CoreButton } from "../../../../core/ui/button/button"; -import { SpawnPositionTypesForm } from "../../presentation/components/spawn_position_types"; -import { CoordsForm } from "../../presentation/components/coords_form"; +import { CoreSelect } from "../../../../../core/ui/select/select"; +import { ToolTypes } from "../../../../../core/model/robot_model"; +import { CoreButton } from "../../../../../core/ui/button/button"; +import { SpawnPositionTypesForm } from "../../components/spawn_position_types"; +import { CoordsForm } from "../../components/coords_form"; export const RobotForm = observer((props: IDefaultSceneManagerFormProps) => { const [store] = React.useState(() => new RobotFormStore(props.store)); diff --git a/ui/src/features/scene_builder/forms/robot_form/robot_form_http_repository.ts b/ui/src/features/scene_builder/presentation/forms/robot_form/robot_form_http_repository.ts similarity index 59% rename from ui/src/features/scene_builder/forms/robot_form/robot_form_http_repository.ts rename to ui/src/features/scene_builder/presentation/forms/robot_form/robot_form_http_repository.ts index 234e762..7c903e8 100644 --- a/ui/src/features/scene_builder/forms/robot_form/robot_form_http_repository.ts +++ b/ui/src/features/scene_builder/presentation/forms/robot_form/robot_form_http_repository.ts @@ -1,5 +1,5 @@ -import { RobotModel } from "../../../../core/model/robot_model"; -import { HttpMethod, HttpRepository } from "../../../../core/repository/core_http_repository"; +import { RobotModel } from "../../../../../core/model/robot_model"; +import { HttpMethod, HttpRepository } from "../../../../../core/repository/core_http_repository"; export interface RobotURL { robotUrl: string; } diff --git a/ui/src/features/scene_builder/forms/robot_form/robot_form_store.ts b/ui/src/features/scene_builder/presentation/forms/robot_form/robot_form_store.ts similarity index 90% rename from ui/src/features/scene_builder/forms/robot_form/robot_form_store.ts rename to ui/src/features/scene_builder/presentation/forms/robot_form/robot_form_store.ts index e9e1aec..78b8088 100644 --- a/ui/src/features/scene_builder/forms/robot_form/robot_form_store.ts +++ b/ui/src/features/scene_builder/presentation/forms/robot_form/robot_form_store.ts @@ -1,11 +1,11 @@ import makeAutoObservable from "mobx-store-inheritance"; import { NavigateFunction } from "react-router-dom"; import { RobotFormHttpRepository } from "./robot_form_http_repository"; -import { FormState, CoreError } from "../../../../core/store/base_store"; -import { RobotModel } from "../../../../core/model/robot_model"; +import { FormState, CoreError } from "../../../../../core/store/base_store"; +import { RobotModel } from "../../../../../core/model/robot_model"; import { isPreviewMode } from "../scene_manager_forms"; import { message } from "antd"; -import { SceneBuilderStore } from "../../presentation/scene_builder_store"; +import { SceneBuilderStore } from "../../scene_builder_store"; export enum RobotStoreType { previewRobot = "previewRobot", @@ -20,7 +20,7 @@ export class RobotFormStore extends FormState { robotFormHttpRepository: RobotFormHttpRepository = new RobotFormHttpRepository(); spawnType: string; listener: Function; - clickLister = (event: MouseEvent) => + clickLister = (event: MouseEvent) => { this.storeType.isEqualR(RobotStoreType.awaitMouseClick).map(() => this.sceneBuilderStore!.clickScene(event, this.sceneBuilderStore!.canvasOffsetX).map((vector3) => { this.viewModel.position = vector3; @@ -32,6 +32,7 @@ export class RobotFormStore extends FormState { this.sceneBuilderStore.visibleSaveButton(); }) ); + }; selectSpawnType = (type: string) => { this.spawnType = type; @@ -51,8 +52,7 @@ export class RobotFormStore extends FormState { .isEqualR(RobotStoreType.previewRobot) .map( () => ( - this.viewModel.update(this.sceneBuilderStore.coreThreeRepository!), - this.sceneBuilderStore.visibleSaveButton() + this.viewModel.update(this.sceneBuilderStore.coreThreeRepository!), this.sceneBuilderStore.visibleSaveButton() ) ); createNewRobot = () => @@ -88,4 +88,3 @@ export class RobotFormStore extends FormState { ) ); } - diff --git a/ui/src/features/scene_builder/forms/scene_manager_forms.tsx b/ui/src/features/scene_builder/presentation/forms/scene_manager_forms.tsx similarity index 89% rename from ui/src/features/scene_builder/forms/scene_manager_forms.tsx rename to ui/src/features/scene_builder/presentation/forms/scene_manager_forms.tsx index 23d8f54..9025267 100644 --- a/ui/src/features/scene_builder/forms/scene_manager_forms.tsx +++ b/ui/src/features/scene_builder/presentation/forms/scene_manager_forms.tsx @@ -1,6 +1,6 @@ -import { Result } from "../../../core/helper/result"; -import { SceneBuilderStore } from "../presentation/scene_builder_store"; -import { SceneMangerStore } from "../../scene_manager/presentation/scene_manager_store"; +import { Result } from "../../../../core/helper/result"; +import { SceneBuilderStore } from "../scene_builder_store"; +import { SceneMangerStore } from "../../../scene_manager/presentation/scene_manager_store"; import { CameraForm } from "./camera/camera_form"; import { LightForm } from "./light/light_form"; import { PointForm } from "./point/point_form"; diff --git a/ui/src/features/scene_builder/forms/solid_body/solid_body_form.tsx b/ui/src/features/scene_builder/presentation/forms/solid_body/solid_body_form.tsx similarity index 85% rename from ui/src/features/scene_builder/forms/solid_body/solid_body_form.tsx rename to ui/src/features/scene_builder/presentation/forms/solid_body/solid_body_form.tsx index 0ca0f2b..753abd1 100644 --- a/ui/src/features/scene_builder/forms/solid_body/solid_body_form.tsx +++ b/ui/src/features/scene_builder/presentation/forms/solid_body/solid_body_form.tsx @@ -1,13 +1,13 @@ import React from "react"; -import { CoreText, CoreTextType } from "../../../../core/ui/text/text"; +import { CoreText, CoreTextType } from "../../../../../core/ui/text/text"; import { IDefaultSceneManagerFormProps } from "../scene_manager_forms"; import { SolidBodyStore, SolidBodyStoreType } from "./solid_body_store"; import { observer } from "mobx-react-lite"; -import { CoreButton } from "../../../../core/ui/button/button"; +import { CoreButton } from "../../../../../core/ui/button/button"; import { match } from "ts-pattern"; -import { SpawnPositionTypesForm } from "../../presentation/components/spawn_position_types"; -import { CoreInput } from "../../../../core/ui/input/input"; -import { CoordsForm } from "../../presentation/components/coords_form"; +import { SpawnPositionTypesForm } from "../../components/spawn_position_types"; +import { CoreInput } from "../../../../../core/ui/input/input"; +import { CoordsForm } from "../../components/coords_form"; export const SolidBodyForm = observer((props: IDefaultSceneManagerFormProps) => { const [store] = React.useState(() => new SolidBodyStore(props.store)); diff --git a/ui/src/features/scene_builder/forms/solid_body/solid_body_store.tsx b/ui/src/features/scene_builder/presentation/forms/solid_body/solid_body_store.tsx similarity index 87% rename from ui/src/features/scene_builder/forms/solid_body/solid_body_store.tsx rename to ui/src/features/scene_builder/presentation/forms/solid_body/solid_body_store.tsx index fa71ca6..d30403d 100644 --- a/ui/src/features/scene_builder/forms/solid_body/solid_body_store.tsx +++ b/ui/src/features/scene_builder/presentation/forms/solid_body/solid_body_store.tsx @@ -1,12 +1,12 @@ import makeAutoObservable from "mobx-store-inheritance"; -import { FormState, CoreError } from "../../../../core/store/base_store"; -import { CoreHttpRepository } from "../../../../core/repository/core_http_repository"; -import { Parts } from "../../../details/details_http_repository"; +import { FormState, CoreError } from "../../../../../core/store/base_store"; +import { CoreHttpRepository } from "../../../../../core/repository/core_http_repository"; +import { Parts } from "../../../../details/details_http_repository"; import { Vector2 } from "three"; -import { SpawnPositionTypes } from "../../../../core/model/spawn_position_types"; +import { SpawnPositionTypes } from "../../../../../core/model/spawn_position_types"; import { isPreviewMode } from "../scene_manager_forms"; -import { SolidModel } from "../../../../core/model/solid_model"; -import { SceneBuilderStore } from "../../presentation/scene_builder_store"; +import { SolidModel } from "../../../../../core/model/solid_model"; +import { SceneBuilderStore } from "../../scene_builder_store"; export enum SolidBodyStoreType { selectBody = "selectBody", diff --git a/ui/src/features/scene_builder/forms/trajectory/trajectory_form.tsx b/ui/src/features/scene_builder/presentation/forms/trajectory/trajectory_form.tsx similarity index 100% rename from ui/src/features/scene_builder/forms/trajectory/trajectory_form.tsx rename to ui/src/features/scene_builder/presentation/forms/trajectory/trajectory_form.tsx diff --git a/ui/src/features/scene_builder/presentation/forms/trajectory/trajectory_http_repository.ts b/ui/src/features/scene_builder/presentation/forms/trajectory/trajectory_http_repository.ts new file mode 100644 index 0000000..f44ce3f --- /dev/null +++ b/ui/src/features/scene_builder/presentation/forms/trajectory/trajectory_http_repository.ts @@ -0,0 +1,3 @@ +import { HttpRepository } from "../../../../../core/repository/core_http_repository"; + +export class TrajectoryHttpRepository extends HttpRepository {} diff --git a/ui/src/features/scene_builder/forms/trajectory/trajectory_store.ts b/ui/src/features/scene_builder/presentation/forms/trajectory/trajectory_store.ts similarity index 90% rename from ui/src/features/scene_builder/forms/trajectory/trajectory_store.ts rename to ui/src/features/scene_builder/presentation/forms/trajectory/trajectory_store.ts index 5057382..579bf85 100644 --- a/ui/src/features/scene_builder/forms/trajectory/trajectory_store.ts +++ b/ui/src/features/scene_builder/presentation/forms/trajectory/trajectory_store.ts @@ -2,7 +2,7 @@ import makeAutoObservable from "mobx-store-inheritance"; import { NavigateFunction } from "react-router-dom"; import { TrajectoryViewModel } from "./trajectory_view_model"; import { TrajectoryHttpRepository } from "./trajectory_http_repository"; -import { FormState, CoreError } from "../../../../core/store/base_store"; +import { FormState, CoreError } from "../../../../../core/store/base_store"; export class TrajectoryStore extends FormState { constructor() { diff --git a/ui/src/features/scene_builder/forms/trajectory/trajectory_view_model.ts b/ui/src/features/scene_builder/presentation/forms/trajectory/trajectory_view_model.ts similarity index 76% rename from ui/src/features/scene_builder/forms/trajectory/trajectory_view_model.ts rename to ui/src/features/scene_builder/presentation/forms/trajectory/trajectory_view_model.ts index 8b62bab..8d225c8 100644 --- a/ui/src/features/scene_builder/forms/trajectory/trajectory_view_model.ts +++ b/ui/src/features/scene_builder/presentation/forms/trajectory/trajectory_view_model.ts @@ -1,4 +1,4 @@ -import { Result } from "../../../../core/helper/result"; +import { Result } from "../../../../../core/helper/result"; export class TrajectoryViewModel { diff --git a/ui/src/features/scene_builder/forms/zone/zone_form.tsx b/ui/src/features/scene_builder/presentation/forms/zone/zone_form.tsx similarity index 89% rename from ui/src/features/scene_builder/forms/zone/zone_form.tsx rename to ui/src/features/scene_builder/presentation/forms/zone/zone_form.tsx index f528e34..4322ffe 100644 --- a/ui/src/features/scene_builder/forms/zone/zone_form.tsx +++ b/ui/src/features/scene_builder/presentation/forms/zone/zone_form.tsx @@ -2,8 +2,8 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { ZoneStore } from "./zone_store"; import { IDefaultSceneManagerFormProps } from "../scene_manager_forms"; -import { CoreText, CoreTextType } from "../../../../core/ui/text/text"; -import { CoreInput } from "../../../../core/ui/input/input"; +import { CoreText, CoreTextType } from "../../../../../core/ui/text/text"; +import { CoreInput } from "../../../../../core/ui/input/input"; export const ZoneForm = observer((props: IDefaultSceneManagerFormProps) => { const [store] = React.useState(() => new ZoneStore(props.store)); diff --git a/ui/src/features/scene_builder/forms/zone/zone_store.ts b/ui/src/features/scene_builder/presentation/forms/zone/zone_store.ts similarity index 82% rename from ui/src/features/scene_builder/forms/zone/zone_store.ts rename to ui/src/features/scene_builder/presentation/forms/zone/zone_store.ts index f67ad10..7fc1ab8 100644 --- a/ui/src/features/scene_builder/forms/zone/zone_store.ts +++ b/ui/src/features/scene_builder/presentation/forms/zone/zone_store.ts @@ -1,11 +1,11 @@ import makeAutoObservable from "mobx-store-inheritance"; import { NavigateFunction } from "react-router-dom"; -import { ZoneModel } from "../../../../core/model/zone_model"; +import { ZoneModel } from "../../../../../core/model/zone_model"; -import { FormState, CoreError } from "../../../../core/store/base_store"; +import { FormState, CoreError } from "../../../../../core/store/base_store"; import { isPreviewMode } from "../scene_manager_forms"; -import { SceneMangerStore } from "../../../scene_manager/presentation/scene_manager_store"; -import { SceneBuilderStore } from "../../presentation/scene_builder_store"; +import { SceneMangerStore } from "../../../../scene_manager/presentation/scene_manager_store"; +import { SceneBuilderStore } from "../../scene_builder_store"; export enum ZoneStoreType { preview = "preview", } diff --git a/ui/src/features/scene_builder/presentation/scene_builder_screen.tsx b/ui/src/features/scene_builder/presentation/scene_builder_screen.tsx index f9b9efe..59f9acc 100644 --- a/ui/src/features/scene_builder/presentation/scene_builder_screen.tsx +++ b/ui/src/features/scene_builder/presentation/scene_builder_screen.tsx @@ -9,7 +9,7 @@ import { Icon } from "../../../core/ui/icons/icons"; import { MainPage } from "../../../core/ui/pages/main_page"; import { CoreText, CoreTextType } from "../../../core/ui/text/text"; import { SceneMode } from "../../scene_manager/model/scene_view"; -import { sceneManagerForms } from "../forms/scene_manager_forms"; +import { sceneManagerForms } from "./forms/scene_manager_forms"; export const SceneBuilderScreenPath = "/scene/builder/"; diff --git a/ui/src/features/scene_builder/presentation/scene_builder_store.ts b/ui/src/features/scene_builder/presentation/scene_builder_store.ts index 7581668..4143d42 100644 --- a/ui/src/features/scene_builder/presentation/scene_builder_store.ts +++ b/ui/src/features/scene_builder/presentation/scene_builder_store.ts @@ -13,7 +13,7 @@ import { CoreThreeRepository } from "../../../core/repository/core_three_reposit import { SceneModel } from "../../scene_manager/model/scene_model"; import { SceneMode } from "../../scene_manager/model/scene_view"; import { SceneViewModel } from "../../scene_manager/model/scene_view_model"; -import { SceneManagerForms } from "../forms/scene_manager_forms"; +import { SceneManagerForms } from "./forms/scene_manager_forms"; import { FormState } from "../../../core/store/base_store"; import { Result } from "../../../core/helper/result"; import { SceneBuilderHttpRepository } from "../data/scene_builder_repository"; diff --git a/ui/src/features/scene_manager/data/scene_http_repository.ts b/ui/src/features/scene_manager/data/scene_http_repository.ts index fc1d750..eed074e 100644 --- a/ui/src/features/scene_manager/data/scene_http_repository.ts +++ b/ui/src/features/scene_manager/data/scene_http_repository.ts @@ -1,10 +1,7 @@ -import { Result } from "../../../core/helper/result"; import { HttpMethod, CoreHttpRepository } from "../../../core/repository/core_http_repository"; -import { CoreError } from "../../../core/store/base_store"; import { SceneViewModel } from "../model/scene_view_model"; export class SceneHttpRepository extends CoreHttpRepository { - deleteScene = (sceneId:string) => this._jsonRequest(HttpMethod.DELETE, '/scenes', ) - newScene = (sceneViewModel: SceneViewModel) => - this._jsonRequest(HttpMethod.POST, "/scenes", sceneViewModel) as unknown as Promise>; + deleteScene = (sceneId: string) => this._jsonRequest(HttpMethod.DELETE, `/scenes?id=${sceneId}`); + newScene = (sceneViewModel: SceneViewModel) => this._jsonRequest(HttpMethod.POST, "/scenes", sceneViewModel); } diff --git a/ui/src/features/scene_manager/presentation/scene_manager.tsx b/ui/src/features/scene_manager/presentation/scene_manager.tsx index 2da14c3..b2d20b8 100644 --- a/ui/src/features/scene_manager/presentation/scene_manager.tsx +++ b/ui/src/features/scene_manager/presentation/scene_manager.tsx @@ -9,7 +9,7 @@ import { CoreButton } from "../../../core/ui/button/button"; import { CoreInput } from "../../../core/ui/input/input"; import { DrawersDataset } from "../../dataset/dataset_store"; import { Icon } from "../../../core/ui/icons/icons"; -import { sceneManagerForms } from "../../scene_builder/forms/scene_manager_forms"; +import { sceneManagerForms } from "../../scene_builder/presentation/forms/scene_manager_forms"; import { SceneMode } from "../model/scene_view"; import { useStore } from "../../../core/helper/use_store"; import { SceneBuilderScreenPath } from "../../scene_builder/presentation/scene_builder_screen"; @@ -74,7 +74,12 @@ export const SceneManger = observer(() => { textStyle={{ color: "black", textAlign: "center" }} style={{ marginRight: 10, backgroundColor: "white", width: 126 }} /> - + store.clickDeleteScene(el._id as string)} + /> ))} diff --git a/ui/src/features/scene_manager/presentation/scene_manager_store.ts b/ui/src/features/scene_manager/presentation/scene_manager_store.ts index de75eed..fbbb830 100644 --- a/ui/src/features/scene_manager/presentation/scene_manager_store.ts +++ b/ui/src/features/scene_manager/presentation/scene_manager_store.ts @@ -15,7 +15,6 @@ import { PointModel } from "../../../core/model/point_model"; import { RobotModel } from "../../../core/model/robot_model"; import { ZoneModel } from "../../../core/model/zone_model"; - export enum DrawersSceneManager { NewScene = "Новая сцена", } @@ -48,7 +47,6 @@ export class SceneMangerStore extends UiDrawerFormState this.viewModel.valid().fold( async (s) => { @@ -72,8 +70,9 @@ export class SceneMangerStore extends UiDrawerFormState error.status.isEqualR(404).map(() => this.errors.push(new UiBaseError(`not found to project`))); - clickDeleteScene = async () => { - await this.messageHttp(this.sceneHttpRepository.deleteScene(this.activeSceneId), { + clickDeleteScene = async (sceneId: string) => { + console.log(sceneId) + await this.messageHttp(this.sceneHttpRepository.deleteScene(sceneId), { successMessage: "сцена удалена", }); this.mapOk("scenes", this.sceneHttpRepository.getAllScenes());