@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()), {
@: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")), ]) })
}) @:card(&Card::full_width().dark(nav_state.dark()), { @:card_title({ @fl!(loader, "admin-reports-heading") }) @for report in reports_view.open_reports() { @:card_body({
@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()) }) }) }
@if let Some(note) = report.note() {

@fl!(loader, "admin-reports-note")

@Html(note)

}
@:button_group(&[ Button::secondary(&fl!(loader, "admin-reports-view-button")).href(&reports_view.view_path(report)), ])
}) } @if reports_view.has_open_reports_nav() { @:card_body({ @:button_group(&reports_view.open_reports_nav(loader)) }) } }) @:card(&Card::full_width().dark(nav_state.dark()), { @:card_title({ @fl!(loader, "admin-closed-reports-heading") }) @for report in reports_view.closed_reports() { @:card_body({
@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()) }) }) }
@if let Some(note) = report.note() {

@fl!(loader, "admin-reports-note")

@Html(note)

}
}) } @if reports_view.has_closed_reports_nav() { @:card_body({ @:button_group(&reports_view.closed_reports_nav(loader)) }) } }) @:card(&Card::full_width().dark(nav_state.dark()), {
@:card_title({ @fl!(loader, "admin-discover-server-heading") }) @:card_body({

@fl!(loader, "admin-discover-server-description")

@:text_input(&federation_view.discover_input(loader).dark(nav_state.dark())) }) @:card_body({ @:button_group(&[ Button::primary(&fl!(loader, "admin-discover-button")), ]) })
}) @: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, {})
@:button_group(&[ s.accept(loader), s.reject(loader), s.block(loader), ])
}) } @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, {})
@:button_group(&[ s.cancel(loader), s.block(loader), ])
}) } @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, {})
@:button_group(&[ s.defederate(loader), s.block(loader), ])
}) } @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, {})
@:button_group(&[ s.unblock(loader), ])
}) } @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, {})
@:button_group(&[ s.federate(loader), s.block(loader), ])
}) } @if federation_view.has_known_nav() { @:card_body({ @:button_group(&federation_view.known_buttons(loader)) }) } }) })