@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, nav_state.dark(), { reported @:link(&Link::new_tab(&profile.view_path()).plain(true).dark(nav_state.dark()), { @profile.name() }) }) } @if let Some(submission) = reports_view.submission(report) { @:reporter(reports_view, report, nav_state.dark(), { reported @:link(&Link::new_tab(&submission.author_path()).plain(true).dark(nav_state.dark()), { @submission.author_name()'s }) submission: @:link(&Link::new_tab(&submission.view_path()).plain(true).dark(nav_state.dark()), { @submission.title() }) }) } @if let Some(comment) = reports_view.comment(report) { @:reporter(reports_view, report, nav_state.dark(), { reported @:link(&Link::new_tab(&comment.author_path()).plain(true).dark(nav_state.dark()), { @comment.author_name()'s }) comment: @:link(&Link::new_tab(&comment.view_path()).plain(true).dark(nav_state.dark()), { @comment.body() }) }) }
@if let Some(note) = report.note() {

Note:

@note

}
@:button_group(&[ Button::secondary("View").href(&reports_view.view_path(report)).dark(nav_state.dark()), ])
}) } }) @: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(nav_state.dark()), s.reject(nav_state.dark()), s.block(nav_state.dark()), ])
}) } }) @: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(nav_state.dark()), s.block(nav_state.dark()), ])
}) } }) @: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(nav_state.dark()), s.block(nav_state.dark()), ])
}) } }) @: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(nav_state.dark()), ])
}) } }) @: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(nav_state.dark()), s.block(nav_state.dark()), ])
}) } }) })