hyaenidae/templates/admin/index.rs.html
asonix e0858b7b3d Move server/ to / and start i18ning
Currently i18n'd
- login page
- register page
- cookie page
- delete account confirmation page
- 404 page
- 500 page
- part of account settings
2021-01-28 20:25:31 -06:00

175 lines
6.7 KiB
HTML

@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()), {
<form method="POST" action="@server_view.update_path()">
@: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"),
])
})
</form>
})
@:card(&Card::full_width().dark(nav_state.dark()), {
@:card_title({ Reports })
@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, {
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())
})
})
}
</div>
@if let Some(note) = report.note() {
<div class="report-description text-section">
<h4>Note:</h4>
<p>@Html(note)</p>
</div>
}
<div class="button-section report-actions">
@:button_group(&[
Button::secondary("View").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({ Discover Server })
@:card_body({
<div class="text-section">
<p>
This will attempt to discover the provided server. If it works, the server
should appear in the "Known Servers" section after a short time.
</p>
</div>
@:text_input(&federation_view.discover_input(nav_state.dark()))
})
@:card_body({
@:button_group(&[
Button::primary("Discover"),
])
})
</form>
})
@: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, {})
<div class="button-section">
@:button_group(&[
s.accept(),
s.reject(),
s.block(),
])
</div>
})
}
})
@: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, {})
<div class="button-section">
@:button_group(&[
s.cancel(),
s.block(),
])
</div>
})
}
})
@:card(&Card::full_width().dark(nav_state.dark()), {
@:card_title({ Federated Servers })
@for s in federation_view.federated() {
@:card_body({
@:server_box(s.server, {})
<div class="button-section">
@:button_group(&[
s.defederate(),
s.block(),
])
</div>
})
}
})
@:card(&Card::full_width().dark(nav_state.dark()), {
@:card_title({ Blocked Servers })
@for s in federation_view.blocked() {
@:card_body({
@:server_box(s.server, {})
<div class="button-section">
@:button_group(&[
s.unblock(),
])
</div>
})
}
})
@:card(&Card::full_width().dark(nav_state.dark()), {
@:card_title({ Known Servers })
@for s in federation_view.known() {
@:card_body({
@:server_box(s.server, {})
<div class="button-section">
@:button_group(&[
s.federate(),
s.block(),
])
</div>
})
}
})
})