This commit is contained in:
usbharu 2024-09-04 15:48:48 +09:00
parent 0463ad6b69
commit 57afdcdd7b
7 changed files with 34 additions and 10 deletions

View File

@ -13,6 +13,7 @@ import org.springframework.ui.Model
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.ModelAttribute
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestParam
@Controller
class PublishController(
@ -22,7 +23,7 @@ class PublishController(
private val userRegisterLocalPostApplicationService: RegisterLocalPostApplicationService
) {
@GetMapping("/publish")
suspend fun publish(model: Model): String {
suspend fun publish(model: Model,@RequestParam replyTo: Long?,@RequestParam repost: Long?): String {
val principal = springSecurityFormLoginPrincipalContextHolder.getPrincipal()
if (principal.userDetailId == null) {
@ -35,7 +36,7 @@ class PublishController(
val userDetail = getUserDetailApplicationService.execute(GetUserDetail(principal.userDetailId!!.id), principal)
model.addAttribute("instance", instance)
model.addAttribute("user", userDetail)
model.addAttribute("form", PublishPost())
model.addAttribute("form", PublishPost(replyTo = replyTo, repost = repost))
return "post-postForm"
}
@ -50,8 +51,8 @@ class PublishController(
content = publishPost.status.orEmpty(),
overview = publishPost.overview,
visibility = Visibility.valueOf(publishPost.visibility.uppercase()),
repostId = null,
replyId = null,
repostId = publishPost.repost,
replyId = publishPost.replyTo,
sensitive = false,
mediaIds = emptyList()
)

View File

@ -1,3 +1,9 @@
package dev.usbharu.hideout.core.interfaces.web.posts
data class PublishPost(var status: String? = null, var overview: String? = null, var visibility: String = "PUBLIC")
data class PublishPost(
var status: String? = null,
var overview: String? = null,
var visibility: String = "PUBLIC",
var replyTo: Long? = null,
var repost: Long? = null
)

View File

@ -19,7 +19,9 @@ post-form.new-posts=\u65B0\u3057\u3044\u6295\u7A3F!
post-form.new-posts-cw=CW
post-form.new-posts-cw-title=\u30B3\u30F3\u30C6\u30F3\u30C4\u306B\u95B2\u89A7\u6CE8\u610F\u3092\u3064\u3051\u308B
post-form.new-posts-form-label=\u4ECA\u306A\u306B\u3057\u3066\u308B?
post-form.new-posts-replyTo=\u8FD4\u4FE1\u5148
post-form.new-posts-submit=\u6295\u7A3F\u3059\u308B
post-form.new-posts.repost=\u30EA\u30DD\u30B9\u30C8
post.repost=\u30EA\u30DD\u30B9\u30C8
post.repost-by={0}\u304C\u30EA\u30DD\u30B9\u30C8
user-by-id.followersCount={0} \u30D5\u30A9\u30ED\u30EF\u30FC

View File

@ -18,7 +18,9 @@ post-form.new-posts=New Posts!
post-form.new-posts-cw=CW
post-form.new-posts-cw-title=Add content warning
post-form.new-posts-form-label=What's on your mind?
post-form.new-posts-replyTo=Reply to
post-form.new-posts-submit=Submit!
post-form.new-posts.repost=Repost
post.repost=Repost
post.repost-by=Repost by {0}
user-by-id.followersCount={0} Followers

View File

@ -19,7 +19,9 @@ post-form.new-posts=\u65B0\u3057\u3044\u6295\u7A3F!
post-form.new-posts-cw=CW
post-form.new-posts-cw-title=\u30B3\u30F3\u30C6\u30F3\u30C4\u306B\u95B2\u89A7\u6CE8\u610F\u3092\u3064\u3051\u308B
post-form.new-posts-form-label=\u4ECA\u306A\u306B\u3057\u3066\u308B?
post-form.new-posts-replyTo=\u8FD4\u4FE1\u5148
post-form.new-posts-submit=\u6295\u7A3F\u3059\u308B
post-form.new-posts.repost=\u30EA\u30DD\u30B9\u30C8
post.repost=\u30EA\u30DD\u30B9\u30C8
post.repost-by={0}\u304C\u30EA\u30DD\u30B9\u30C8
user-by-id.followersCount={0} \u30D5\u30A9\u30ED\u30EF\u30FC

View File

@ -16,6 +16,14 @@
</div>
</div>
<form action="/publish" method="post" th:action="@{/publish}" th:object="${form}">
<div>
<label for="status-form-replyto" th:text="#{post-form.new-posts-replyTo}">Reply to</label>
<input id="status-form-replyto" name="reply_to" type="number" th:value="${form.replyTo}">
</div>
<div>
<label for="status-form-repost" th:text="#{post-form.new-posts.repost}">Repost</label>
<input id="status-form-repost" name="repost" type="number" th:value="${form.repost}">
</div>
<div>
<label for="stats-form-overview" th:text="#{post-form.new-posts-cw}"
th:title="#{post-form.new-posts-cw-title}"
@ -31,13 +39,16 @@
<fieldset>
<legend th:text="#{common.visibility}">Visibility</legend>
<label for="status-form-visibility-public" th:text="#{common.visibility-public}">Public</label>
<input id="status-form-visibility-public" name="visibility" th:checked="${form.visibility == 'PUBLIC'}" type="radio"
<input id="status-form-visibility-public" name="visibility" th:checked="${form.visibility == 'PUBLIC'}"
type="radio"
value="PUBLIC">
<label for="status-form-visibility-unlisted" th:text="#{common.visibility-unlisted}">Unlisted</label>
<input id="status-form-visibility-unlisted" name="visibility" th:checked="${form.visibility == 'UNLISTED'}" type="radio"
<input id="status-form-visibility-unlisted" name="visibility"
th:checked="${form.visibility == 'UNLISTED'}" type="radio"
value="UNLISTED">
<label for="status-form-visibility-followers" th:text="#{common.visibility-followers}">Followers</label>
<input id="status-form-visibility-followers" name="visibility" th:checked="${form.visibility == 'FOLLOWERS'}" type="radio"
<input id="status-form-visibility-followers" name="visibility"
th:checked="${form.visibility == 'FOLLOWERS'}" type="radio"
value="FOLLOWERS">
</fieldset>
</div>

View File

@ -7,8 +7,8 @@
<body>
<noscript>
<div>
<img height="150px" th:src="${user.iconUrl}" width="150px">
<img height="150px" th:src="${user.bannerURL}" width="600px">
<img height="150px" th:src="${user.iconUrl}" width="150px" alt="">
<img height="150px" th:src="${user.bannerURL}" width="600px" alt="">
</div>
<div>
<th:block th:if="${user.locked}">