diff --git a/src/main/java/be/seeseepuff/pcinv/controllers/WebController.java b/src/main/java/be/seeseepuff/pcinv/controllers/WebController.java index 80676ae..5b303c2 100644 --- a/src/main/java/be/seeseepuff/pcinv/controllers/WebController.java +++ b/src/main/java/be/seeseepuff/pcinv/controllers/WebController.java @@ -2,10 +2,14 @@ package be.seeseepuff.pcinv.controllers; import be.seeseepuff.pcinv.services.AssetService; import lombok.RequiredArgsConstructor; +import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; +import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; /** * Controller for handling web requests related to assets. @@ -51,4 +55,21 @@ public class WebController { model.addAttribute(DESCRIPTOR, assetService.getAssetDescriptor(type)); return "create_asset"; } + + /** + * Handles the form submission for creating an asset. + * + * @param model The model to add attributes to. + * @param type The type of asset to create. + * @return The view name for creating the asset. + */ + @PostMapping( + value = "/create/{type}", + consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE + ) + public String createTypePost(Model model, @PathVariable String type, @RequestBody MultiValueMap formData) { + model.addAttribute(DESCRIPTORS, assetService.getAssetDescriptorTree(type)); + model.addAttribute(DESCRIPTOR, assetService.getAssetDescriptor(type)); + return "create_asset"; + } } diff --git a/src/main/java/be/seeseepuff/pcinv/models/Asset.java b/src/main/java/be/seeseepuff/pcinv/models/Asset.java index 7e295d6..aec1485 100644 --- a/src/main/java/be/seeseepuff/pcinv/models/Asset.java +++ b/src/main/java/be/seeseepuff/pcinv/models/Asset.java @@ -4,4 +4,6 @@ public interface Asset { long getId(); GenericAsset getAsset(); + + void setAsset(GenericAsset asset); } diff --git a/src/main/resources/templates/create_asset.html b/src/main/resources/templates/create_asset.html index 53e4451..9688384 100644 --- a/src/main/resources/templates/create_asset.html +++ b/src/main/resources/templates/create_asset.html @@ -1,7 +1,7 @@
Create a -
+