hyaenidae/templates/submissions/update.rs.html
asonix 010dd2952f Server: Expose NSFW toggle, Dark Mode toggle
Ensure all submission view permission logic is the same
2021-02-03 21:09:25 -06:00

166 lines
6.4 KiB
HTML

@use crate::ActixLoader;
@use crate::templates::{button_js, file_js};
@use crate::{templates::layouts::home, nav::NavState, submissions::SubmissionState};
@use hyaenidae_toolkit::{templates::{button_group}, Button};
@use hyaenidae_toolkit::{templates::{card, card_body, card_title}, Card};
@use hyaenidae_toolkit::templates::checkbox;
@use hyaenidae_toolkit::templates::file_input;
@use hyaenidae_toolkit::templates::select;
@use hyaenidae_toolkit::templates::text_input;
@use hyaenidae_toolkit::templates::image;
@use i18n_embed_fl::fl;
@(loader: &ActixLoader, state: &SubmissionState, nav_state: &NavState)
@:home(loader, &fl!(loader, "update-submission-title"), &fl!(loader, "update-submission-subtitle"), nav_state, {
@:button_js()
@:file_js()
}, {
@if !state.is_published() {
@:card(&Card::full_width().dark(nav_state.dark()), {
<form method="POST" action="@state.publish_path()">
@:card_title({
@fl!(loader, "update-submission-publish-title")
})
@:card_body({
@fl!(loader, "update-submission-publish-description")
})
@if let Some(error) = &state.publish_error {
@:card_body({ @error })
}
@:card_body({
@:button_group(&[
Button::primary(&fl!(loader, "update-submission-publish-button")),
])
})
</form>
})
}
@:card(&Card::full_width().dark(nav_state.dark()), {
@:card_title({
@fl!(loader, "update-submission-view-heading")
})
@:card_body({
@:button_group(&[
Button::primary(&fl!(loader, "update-submission-view-button")).href(&state.view_path()),
])
})
})
@if !state.is_published() {
@:card(&Card::full_width().dark(nav_state.dark()), {
<form method="POST" action="@state.visibility_path()">
@:card_title({
@fl!(loader, "submission-visibility-heading")
})
@if let Some(error) = &state.visibility_error {
@:card_body({
@error
})
}
@:card_body({
@:checkbox("local_only", &fl!(loader, "submission-local-only"), state.submission.is_local_only())
@:checkbox("logged_in_only", &fl!(loader, "submission-login-required"), state.submission.is_logged_in_only())
@:select(&state.visibility(loader).dark(nav_state.dark()))
})
@:card_body({
@:button_group(&[
Button::primary(&fl!(loader, "update-submission-info-button")),
])
})
</form>
})
}
@if state.settings.sensitive {
@:card(&Card::full_width().dark(nav_state.dark()), {
<form method="POST" action="@state.sensitive_path()">
@:card_title({
@fl!(loader, "submission-sensitive-heading")
})
@:card_body({
@:checkbox("sensitive", &fl!(loader, "submission-sensitive-checkbox"), state.submission.is_sensitive())
})
@:card_body({
@:button_group(&[
Button::primary(&fl!(loader, "submission-sensitive-button")),
])
})
</form>
})
}
@:card(&Card::full_width().dark(nav_state.dark()), {
<form method="POST" action="@state.update_path()">
@:card_title({
@fl!(loader, "update-submission-info-heading")
})
@:card_body({
@:text_input(&state.title_input(loader).dark(nav_state.dark()))
@:text_input(&state.description_input(loader).dark(nav_state.dark()))
})
@:card_body({
@:button_group(&[
Button::primary(&fl!(loader, "update-submission-info-button")),
])
})
</form>
})
@:card(&Card::full_width().dark(nav_state.dark()), {
@:card_title({
@fl!(loader, "update-submission-remove-file-heading")
})
@for (id, img) in state.images() {
<form method="POST" action="@state.remove_file_path()">
@:card_body({
<div class="columns">
<div class="columns--column">
@:image(&img)
</div>
<div class="columns--column">
<h3>Remove Image From Submission</h3>
@if let Some(error) = state.remove_file_error.get(&id) {
<p class="error">@error</p>
}
<input type="hidden" name="file_id" value="@id" />
<div class="button-section">
@:button_group(&[
Button::primary(&fl!(loader, "update-submission-remove-file-button")),
])
</div>
</div>
</div>
})
</form>
}
})
@:card(&Card::full_width().dark(nav_state.dark()), {
<form method="POST" action="@state.add_file_path()" enctype="multipart/form-data">
@:card_title({
@fl!(loader, "update-submission-add-file-heading")
})
@:card_body({
@:file_input(&state.file_input(loader).dark(nav_state.dark()))
})
@:card_body({
@:button_group(&[
Button::primary(&fl!(loader, "update-submission-add-file-button")),
])
})
</form>
})
@:card(&Card::full_width().dark(nav_state.dark()), {
@:card_title({
@fl!(loader, "danger-heading")
})
@if let Some(error) = &state.delete_error {
@:card_body({ @error })
}
@:card_body({
<form method="POST" action="@state.delete_path()">
@:button_group(&[
Button::primary_outline(&fl!(loader, "delete-submission-button")),
])
</form>
})
})
})