174 lines
6.8 KiB
HTML
174 lines
6.8 KiB
HTML
@use crate::admin::{FederationView, ReportsView, ServerView};
|
|
@use crate::extensions::ProfileExt;
|
|
@use crate::nav::NavState;
|
|
@use crate::templates::layouts::home;
|
|
@use crate::templates::admin::{reporter, server_box};
|
|
@use hyaenidae_toolkit::{templates::button_group, Button};
|
|
@use hyaenidae_toolkit::{templates::{card, card_title, card_body}, Card};
|
|
@use hyaenidae_toolkit::{templates::link, Link};
|
|
@use hyaenidae_toolkit::templates::text_input;
|
|
|
|
@(reports_view: &ReportsView, server_view: &ServerView, federation_view: &FederationView, nav_state: &NavState)
|
|
|
|
@:home("Admin Settings", "Perform admin operations for Hyaenidae", nav_state, {}, {
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
<form method="POST" action="@server_view.update_path()">
|
|
@:card_title({ Server Info })
|
|
@:card_body({
|
|
@:text_input(&server_view.title_input(nav_state.dark()))
|
|
@:text_input(&server_view.description_input(nav_state.dark()))
|
|
})
|
|
@:card_body({
|
|
@:button_group(&[
|
|
Button::primary("Update"),
|
|
])
|
|
})
|
|
</form>
|
|
})
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
@:card_title({ Reports })
|
|
@for report in reports_view.reports() {
|
|
@:card_body({
|
|
<div class="report">
|
|
<div class="report-head">
|
|
@if let Some(profile) = reports_view.profile(report) {
|
|
@:reporter(reports_view, report, {
|
|
reported
|
|
|
|
@:link(&Link::new_tab(&profile.view_path()).plain(true), {
|
|
@profile.name()
|
|
})
|
|
})
|
|
}
|
|
@if let Some(submission) = reports_view.submission(report) {
|
|
@:reporter(reports_view, report, {
|
|
reported
|
|
@:link(&Link::new_tab(&submission.author_path()).plain(true), {
|
|
@submission.author_name()'s
|
|
})
|
|
submission:
|
|
|
|
@:link(&Link::new_tab(&submission.view_path()).plain(true), {
|
|
@submission.title()
|
|
})
|
|
})
|
|
}
|
|
@if let Some(comment) = reports_view.comment(report) {
|
|
@:reporter(reports_view, report, {
|
|
reported
|
|
@:link(&Link::new_tab(&comment.author_path()).plain(true), {
|
|
@comment.author_name()'s
|
|
})
|
|
comment:
|
|
|
|
@:link(&Link::new_tab(&comment.view_path()).plain(true), {
|
|
@comment.body()
|
|
})
|
|
})
|
|
}
|
|
</div>
|
|
@if let Some(note) = report.note() {
|
|
<div class="report-description text-section">
|
|
<h4>Note:</h4>
|
|
<p>@note</p>
|
|
</div>
|
|
}
|
|
<div class="button-section report-actions">
|
|
@:button_group(&[
|
|
Button::secondary("View").href(&reports_view.view_path(report)).dark(nav_state.dark()),
|
|
])
|
|
</div>
|
|
</div>
|
|
})
|
|
}
|
|
})
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
<form method="POST" action="@federation_view.discover_path()">
|
|
@:card_title({ Discover Server })
|
|
@:card_body({
|
|
<div class="text-section">
|
|
<p>
|
|
This will attempt to discover the provided server. If it works, the server
|
|
should appear in the "Known Servers" section after a short time.
|
|
</p>
|
|
</div>
|
|
@:text_input(&federation_view.discover_input(nav_state.dark()))
|
|
})
|
|
@:card_body({
|
|
@:button_group(&[
|
|
Button::primary("Discover"),
|
|
])
|
|
})
|
|
</form>
|
|
})
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
@:card_title({ Inbound Federation Requests })
|
|
@for s in federation_view.inbound() {
|
|
@:card_body({
|
|
@:server_box(s.server, {})
|
|
<div class="button-section">
|
|
@:button_group(&[
|
|
s.accept(nav_state.dark()),
|
|
s.reject(nav_state.dark()),
|
|
s.block(nav_state.dark()),
|
|
])
|
|
</div>
|
|
})
|
|
}
|
|
})
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
@:card_title({ Outbound Federation Requests })
|
|
@for s in federation_view.outbound() {
|
|
@:card_body({
|
|
@:server_box(s.server, {})
|
|
<div class="button-section">
|
|
@:button_group(&[
|
|
s.cancel(nav_state.dark()),
|
|
s.block(nav_state.dark()),
|
|
])
|
|
</div>
|
|
})
|
|
}
|
|
})
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
@:card_title({ Federated Servers })
|
|
@for s in federation_view.federated() {
|
|
@:card_body({
|
|
@:server_box(s.server, {})
|
|
<div class="button-section">
|
|
@:button_group(&[
|
|
s.defederate(nav_state.dark()),
|
|
s.block(nav_state.dark()),
|
|
])
|
|
</div>
|
|
})
|
|
}
|
|
})
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
@:card_title({ Blocked Servers })
|
|
@for s in federation_view.blocked() {
|
|
@:card_body({
|
|
@:server_box(s.server, {})
|
|
<div class="button-section">
|
|
@:button_group(&[
|
|
s.unblock(nav_state.dark()),
|
|
])
|
|
</div>
|
|
})
|
|
}
|
|
})
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
@:card_title({ Known Servers })
|
|
@for s in federation_view.known() {
|
|
@:card_body({
|
|
@:server_box(s.server, {})
|
|
<div class="button-section">
|
|
@:button_group(&[
|
|
s.federate(nav_state.dark()),
|
|
s.block(nav_state.dark()),
|
|
])
|
|
</div>
|
|
})
|
|
}
|
|
})
|
|
})
|