219 lines
8.3 KiB
HTML
219 lines
8.3 KiB
HTML
@use crate::ActixLoader;
|
|
@use crate::admin::{FederationView, ReportsView, ServerView};
|
|
@use crate::extensions::ProfileExt;
|
|
@use crate::nav::NavState;
|
|
@use crate::templates::button_js;
|
|
@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;
|
|
@use i18n_embed_fl::fl;
|
|
|
|
@(loader: &ActixLoader, reports_view: &ReportsView, server_view: &ServerView, federation_view: &FederationView, nav_state: &NavState)
|
|
|
|
@:home(loader, &fl!(loader, "admin-settings-title"), &fl!(loader, "admin-settings-subtitle"), nav_state, {
|
|
@:button_js()
|
|
}, {
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
<form method="POST" action="@server_view.update_path()">
|
|
@:card_title({
|
|
@fl!(loader, "server-info-heading")
|
|
})
|
|
@:card_body({
|
|
@:text_input(&server_view.title_input(loader).dark(nav_state.dark()))
|
|
@:text_input(&server_view.description_input(loader).dark(nav_state.dark()))
|
|
})
|
|
@:card_body({
|
|
@:button_group(&[
|
|
Button::primary(&fl!(loader, "server-info-submit-button")),
|
|
])
|
|
})
|
|
</form>
|
|
})
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
@:card_title({
|
|
@fl!(loader, "admin-reports-heading")
|
|
})
|
|
@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, {
|
|
@fl!(loader, "admin-reports-reported")
|
|
|
|
@:link(&Link::new_tab(&profile.view_path()).plain(true), {
|
|
@Html(profile.name())
|
|
})
|
|
})
|
|
}
|
|
@if let Some(submission) = reports_view.submission(report) {
|
|
@:reporter(reports_view, report, {
|
|
@fl!(loader, "admin-reports-reported")
|
|
|
|
@:link(&Link::new_tab(&submission.author_path()).plain(true), {
|
|
@Html(fl!(loader, "author-owned", author = submission.author_name()))
|
|
})
|
|
@fl!(loader, "admin-reports-submission")
|
|
|
|
@:link(&Link::new_tab(&submission.view_path()).plain(true), {
|
|
@Html(submission.title())
|
|
})
|
|
})
|
|
}
|
|
@if let Some(comment) = reports_view.comment(report) {
|
|
@:reporter(reports_view, report, {
|
|
reported
|
|
@:link(&Link::new_tab(&comment.author_path()).plain(true), {
|
|
@Html(fl!(loader, "author-owned", author = comment.author_name()))
|
|
})
|
|
@fl!(loader, "admin-reports-comment")
|
|
|
|
@:link(&Link::new_tab(&comment.view_path()).plain(true), {
|
|
@Html(comment.body())
|
|
})
|
|
})
|
|
}
|
|
</div>
|
|
@if let Some(note) = report.note() {
|
|
<div class="report-description text-section">
|
|
<h4>@fl!(loader, "admin-reports-note")</h4>
|
|
<p>@Html(note)</p>
|
|
</div>
|
|
}
|
|
<div class="button-section report-actions">
|
|
@:button_group(&[
|
|
Button::secondary(&fl!(loader, "admin-reports-view-button")).href(&reports_view.view_path(report)),
|
|
])
|
|
</div>
|
|
</div>
|
|
})
|
|
}
|
|
})
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
<form method="POST" action="@federation_view.discover_path()">
|
|
@:card_title({
|
|
@fl!(loader, "admin-discover-server-heading")
|
|
})
|
|
@:card_body({
|
|
<div class="text-section">
|
|
<p>@fl!(loader, "admin-discover-server-description")</p>
|
|
</div>
|
|
@:text_input(&federation_view.discover_input(loader).dark(nav_state.dark()))
|
|
})
|
|
@:card_body({
|
|
@:button_group(&[
|
|
Button::primary(&fl!(loader, "admin-discover-button")),
|
|
])
|
|
})
|
|
</form>
|
|
})
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
@:card_title({
|
|
@fl!(loader, "admin-inbound-federation-heading")
|
|
})
|
|
@for s in federation_view.inbound() {
|
|
@:card_body({
|
|
@:server_box(s.server, {})
|
|
<div class="button-section">
|
|
@:button_group(&[
|
|
s.accept(loader),
|
|
s.reject(loader),
|
|
s.block(loader),
|
|
])
|
|
</div>
|
|
})
|
|
}
|
|
@if federation_view.has_inbound_nav() {
|
|
@:card_body({
|
|
@:button_group(&federation_view.inbound_buttons(loader))
|
|
})
|
|
}
|
|
})
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
@:card_title({
|
|
@fl!(loader, "admin-outbound-federation-heading")
|
|
})
|
|
@for s in federation_view.outbound() {
|
|
@:card_body({
|
|
@:server_box(s.server, {})
|
|
<div class="button-section">
|
|
@:button_group(&[
|
|
s.cancel(loader),
|
|
s.block(loader),
|
|
])
|
|
</div>
|
|
})
|
|
}
|
|
@if federation_view.has_outbound_nav() {
|
|
@:card_body({
|
|
@:button_group(&federation_view.outbound_buttons(loader))
|
|
})
|
|
}
|
|
})
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
@:card_title({
|
|
@fl!(loader, "admin-federated-servers-heading")
|
|
})
|
|
@for s in federation_view.federated() {
|
|
@:card_body({
|
|
@:server_box(s.server, {})
|
|
<div class="button-section">
|
|
@:button_group(&[
|
|
s.defederate(loader),
|
|
s.block(loader),
|
|
])
|
|
</div>
|
|
})
|
|
}
|
|
@if federation_view.has_federated_nav() {
|
|
@:card_body({
|
|
@:button_group(&federation_view.federated_buttons(loader))
|
|
})
|
|
}
|
|
})
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
@:card_title({
|
|
@fl!(loader, "admin-blocked-servers-heading")
|
|
})
|
|
@for s in federation_view.blocked() {
|
|
@:card_body({
|
|
@:server_box(s.server, {})
|
|
<div class="button-section">
|
|
@:button_group(&[
|
|
s.unblock(loader),
|
|
])
|
|
</div>
|
|
})
|
|
}
|
|
@if federation_view.has_blocked_nav() {
|
|
@:card_body({
|
|
@:button_group(&federation_view.blocked_buttons(loader))
|
|
})
|
|
}
|
|
})
|
|
@:card(&Card::full_width().dark(nav_state.dark()), {
|
|
@:card_title({
|
|
@fl!(loader, "admin-known-servers-heading")
|
|
})
|
|
@for s in federation_view.known() {
|
|
@:card_body({
|
|
@:server_box(s.server, {})
|
|
<div class="button-section">
|
|
@:button_group(&[
|
|
s.federate(loader),
|
|
s.block(loader),
|
|
])
|
|
</div>
|
|
})
|
|
}
|
|
@if federation_view.has_known_nav() {
|
|
@:card_body({
|
|
@:button_group(&federation_view.known_buttons(loader))
|
|
})
|
|
}
|
|
})
|
|
})
|