@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()), {
@: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"), ]) })
}) @:card(&Card::full_width().dark(nav_state.dark()), { @:card_title({ Reports }) @for report in reports_view.reports() { @:card_body({
@if let Some(profile) = reports_view.profile(report) { @:reporter(reports_view, report, { 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, { reported @:link(&Link::new_tab(&submission.author_path()).plain(true), { @Html(submission.author_name())'s }) 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(comment.author_name())'s }) comment: @:link(&Link::new_tab(&comment.view_path()).plain(true), { @Html(comment.body()) }) }) }
@if let Some(note) = report.note() {

Note:

@Html(note)

}
@:button_group(&[ Button::secondary("View").href(&reports_view.view_path(report)), ])
}) } }) @:card(&Card::full_width().dark(nav_state.dark()), {
@:card_title({ Discover Server }) @:card_body({

This will attempt to discover the provided server. If it works, the server should appear in the "Known Servers" section after a short time.

@:text_input(&federation_view.discover_input(nav_state.dark())) }) @:card_body({ @:button_group(&[ Button::primary("Discover"), ]) })
}) @: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, {})
@:button_group(&[ s.accept(), s.reject(), s.block(), ])
}) } }) @: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, {})
@:button_group(&[ s.cancel(), s.block(), ])
}) } }) @:card(&Card::full_width().dark(nav_state.dark()), { @:card_title({ Federated Servers }) @for s in federation_view.federated() { @:card_body({ @:server_box(s.server, {})
@:button_group(&[ s.defederate(), s.block(), ])
}) } }) @:card(&Card::full_width().dark(nav_state.dark()), { @:card_title({ Blocked Servers }) @for s in federation_view.blocked() { @:card_body({ @:server_box(s.server, {})
@:button_group(&[ s.unblock(), ])
}) } }) @:card(&Card::full_width().dark(nav_state.dark()), { @:card_title({ Known Servers }) @for s in federation_view.known() { @:card_body({ @:server_box(s.server, {})
@:button_group(&[ s.federate(), s.block(), ])
}) } }) })