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