Compare commits
No commits in common. '14352bcfe96ccb1fdcbbb644d89ab4a9dda1b30c' and '2b209af4edde3f59fe137795999da0b848772890' have entirely different histories.
14352bcfe9
...
2b209af4ed
@ -1,15 +0,0 @@
|
|||||||
package wanijo.wanijo2.domain.event
|
|
||||||
|
|
||||||
import jakarta.validation.constraints.Min
|
|
||||||
import jakarta.validation.constraints.NotEmpty
|
|
||||||
import wanijo.wanijo2.domain.DocumentId
|
|
||||||
|
|
||||||
data class AddLabelFieldCommand(
|
|
||||||
@Min(1)
|
|
||||||
val documentId: DocumentId,
|
|
||||||
@NotEmpty
|
|
||||||
val labelName: String,
|
|
||||||
@NotEmpty
|
|
||||||
val labelValue: String,
|
|
||||||
val order: Int = 0
|
|
||||||
)
|
|
||||||
@ -1,27 +0,0 @@
|
|||||||
package wanijo.wanijo2.domain.handler
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Service
|
|
||||||
import wanijo.wanijo2.domain.DocumentDao
|
|
||||||
import wanijo.wanijo2.domain.LabelField
|
|
||||||
import wanijo.wanijo2.domain.event.AddLabelFieldCommand
|
|
||||||
import wanijo.wanijo2.http.DocumentNotFound
|
|
||||||
|
|
||||||
@Service
|
|
||||||
class AddLabelFieldHandler(
|
|
||||||
val documentDao: DocumentDao
|
|
||||||
) {
|
|
||||||
|
|
||||||
fun exec(command: AddLabelFieldCommand) {
|
|
||||||
val doc = documentDao.findById(command.documentId) ?: throw DocumentNotFound()
|
|
||||||
documentDao.save(
|
|
||||||
doc.withLabel(
|
|
||||||
LabelField(
|
|
||||||
order = command.order,
|
|
||||||
name = command.labelName,
|
|
||||||
value = command.labelValue
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,50 +0,0 @@
|
|||||||
package wanijo.wanijo2.http.controller
|
|
||||||
|
|
||||||
import jakarta.validation.Valid
|
|
||||||
import org.springframework.stereotype.Controller
|
|
||||||
import org.springframework.ui.Model
|
|
||||||
import org.springframework.ui.set
|
|
||||||
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.RequestMapping
|
|
||||||
import wanijo.wanijo2.domain.DocumentBriefDao
|
|
||||||
import wanijo.wanijo2.domain.DocumentId
|
|
||||||
import wanijo.wanijo2.domain.event.AddLabelFieldCommand
|
|
||||||
import wanijo.wanijo2.domain.handler.AddLabelFieldHandler
|
|
||||||
|
|
||||||
@Controller
|
|
||||||
@RequestMapping("/document/{id}/field/label/add")
|
|
||||||
class AddLabelFieldController(
|
|
||||||
val documentBriefDao: DocumentBriefDao,
|
|
||||||
val addLabelFieldHandler: AddLabelFieldHandler
|
|
||||||
) {
|
|
||||||
|
|
||||||
@GetMapping
|
|
||||||
fun addLabel(
|
|
||||||
@PathVariable
|
|
||||||
id: DocumentId,
|
|
||||||
model: Model
|
|
||||||
): String {
|
|
||||||
model["form"] = AddLabelFieldCommand(
|
|
||||||
documentId = id,
|
|
||||||
labelName = "",
|
|
||||||
labelValue = ""
|
|
||||||
)
|
|
||||||
model["document"] = documentBriefDao.findById(id)
|
|
||||||
|
|
||||||
return "addLabelField"
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping
|
|
||||||
fun addLabel(
|
|
||||||
@PathVariable
|
|
||||||
id: DocumentId,
|
|
||||||
@Valid
|
|
||||||
command: AddLabelFieldCommand
|
|
||||||
): String {
|
|
||||||
addLabelFieldHandler.exec(command)
|
|
||||||
return "redirect:/document/$id"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
<!doctype html>
|
|
||||||
<html xmlns:th="http://www.thymeleaf.org"
|
|
||||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
|
||||||
layout:decorate="~{base}"
|
|
||||||
lang="">
|
|
||||||
<head>
|
|
||||||
<title th:text="${document.name}"></title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<main id="content" layout:fragment="content">
|
|
||||||
<a th:href="@{/document/{id}(id=${document.id})}"><< zurück</a>
|
|
||||||
|
|
||||||
<h2>
|
|
||||||
<span class="low-key-hint">label zu</span>
|
|
||||||
<th:block th:text="${document.name}"/>
|
|
||||||
<span class="low-key-hint">hinzufügen</span>
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<form th:action="@{/document/{id}/field/label/add(id=${document.id})}" th:object="${form}" method="post">
|
|
||||||
<input type="hidden" th:field="*{documentId}">
|
|
||||||
|
|
||||||
<label for="labelName">name</label>
|
|
||||||
<input id="labelName" type="text" th:field="*{labelName}" required>
|
|
||||||
|
|
||||||
<label for="labelValue">wert</label>
|
|
||||||
<input id="labelValue" th:field="*{labelValue}" type="text" required>
|
|
||||||
|
|
||||||
<label for="order">sortierung</label>
|
|
||||||
<input id="order" th:field="*{order}" type="number" required>
|
|
||||||
|
|
||||||
<button type="submit">
|
|
||||||
hinzufügen
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
</main>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
Loading…
Reference in New Issue