mirror of
https://codeberg.org/demostf/frontend.git
synced 2026-06-04 02:34:13 +02:00
more tracing
This commit is contained in:
parent
a1a3f9984b
commit
2b8cdfc736
16 changed files with 116 additions and 65 deletions
|
|
@ -1,16 +1,18 @@
|
|||
use crate::data::user::Token;
|
||||
use crate::pages::plugin_section::PluginSection;
|
||||
use crate::pages::Page;
|
||||
use maud::{html, Markup};
|
||||
use std::borrow::Cow;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct AboutPage {
|
||||
pub key: Option<String>,
|
||||
pub key: Option<Token>,
|
||||
}
|
||||
|
||||
impl AboutPage {
|
||||
pub fn plugin_section(&self) -> PluginSection {
|
||||
PluginSection {
|
||||
key: self.key.as_deref(),
|
||||
key: self.key.as_ref(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ use maud::{html, Markup};
|
|||
use std::borrow::Cow;
|
||||
use std::fmt::Display;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct ApiPage<'a> {
|
||||
pub api_base: &'a str,
|
||||
pub steam_id: SteamId,
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ use std::borrow::Cow;
|
|||
#[asset(source = "style/pages/class-icons.css", url = "/class-icons.css")]
|
||||
pub struct ClassIconsStyle;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct DemoPage {
|
||||
pub demo: Demo,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ use demostf_build::Asset;
|
|||
use maud::{html, Markup};
|
||||
use std::borrow::Cow;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct EditorPage;
|
||||
|
||||
#[derive(Asset)]
|
||||
|
|
|
|||
|
|
@ -1,13 +1,15 @@
|
|||
use crate::data::demo::ListDemo;
|
||||
use crate::data::maps::MapList;
|
||||
use crate::fragments::demo_list::DemoList;
|
||||
use crate::pages::Page;
|
||||
use demostf_build::Asset;
|
||||
use maud::{html, Markup, Render};
|
||||
use std::borrow::Cow;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Index<'a> {
|
||||
pub demos: &'a [ListDemo],
|
||||
pub maps: &'a [String],
|
||||
pub maps: &'a MapList,
|
||||
pub api: &'a str,
|
||||
}
|
||||
|
||||
|
|
@ -16,9 +18,6 @@ pub struct Index<'a> {
|
|||
pub struct DemoListScript;
|
||||
|
||||
impl<'a> Index<'a> {
|
||||
fn map_list(&self) -> impl Render + 'a {
|
||||
MapList(self.maps)
|
||||
}
|
||||
fn demo_list(&self) -> impl Render + 'a {
|
||||
DemoList { demos: self.demos }
|
||||
}
|
||||
|
|
@ -33,7 +32,7 @@ impl Page for Index<'_> {
|
|||
let script = DemoListScript::url();
|
||||
html! {
|
||||
h1 { "Demos" }
|
||||
#filter-bar data-maps = (self.map_list()) data-api-base = (self.api) {}
|
||||
#filter-bar data-maps = (self.maps) data-api-base = (self.api) {}
|
||||
table.demolist {
|
||||
thead {
|
||||
tr {
|
||||
|
|
@ -53,18 +52,3 @@ impl Page for Index<'_> {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub struct MapList<'a>(pub &'a [String]);
|
||||
|
||||
impl Render for MapList<'_> {
|
||||
fn render_to(&self, buffer: &mut String) {
|
||||
let mut first = true;
|
||||
for map in self.0 {
|
||||
if !first {
|
||||
buffer.push(',');
|
||||
}
|
||||
buffer.push_str(map);
|
||||
first = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ use crate::session::SessionData;
|
|||
use demostf_build::Asset;
|
||||
use maud::{html, Markup, DOCTYPE};
|
||||
use std::borrow::Cow;
|
||||
use std::fmt::Debug;
|
||||
use tracing::instrument;
|
||||
|
||||
pub trait Page {
|
||||
|
|
@ -25,7 +26,7 @@ pub trait Page {
|
|||
pub struct GlobalStyle;
|
||||
|
||||
#[instrument]
|
||||
pub fn render<T: Page>(page: T, session: SessionData) -> Markup {
|
||||
pub fn render<T: Page + Debug>(page: T, session: SessionData) -> Markup {
|
||||
let style_url = GlobalStyle::url();
|
||||
html! {
|
||||
(DOCTYPE)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
use crate::data::user::Token;
|
||||
use maud::{html, Markup, Render};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct PluginSection<'a> {
|
||||
pub key: Option<&'a str>,
|
||||
pub key: Option<&'a Token>,
|
||||
}
|
||||
|
||||
impl Render for PluginSection<'_> {
|
||||
|
|
|
|||
|
|
@ -1,23 +1,22 @@
|
|||
use crate::data::demo::ListDemo;
|
||||
use crate::data::maps::MapList;
|
||||
use crate::data::user::User;
|
||||
use crate::fragments::demo_list::DemoList;
|
||||
use crate::pages::index::{DemoListScript, MapList};
|
||||
use crate::pages::index::DemoListScript;
|
||||
use crate::pages::Page;
|
||||
use demostf_build::Asset;
|
||||
use maud::{html, Markup, Render};
|
||||
use std::borrow::Cow;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Profile<'a> {
|
||||
pub user: User,
|
||||
pub demos: &'a [ListDemo],
|
||||
pub maps: &'a [String],
|
||||
pub maps: &'a MapList,
|
||||
pub api: &'a str,
|
||||
}
|
||||
|
||||
impl<'a> Profile<'a> {
|
||||
fn map_list(&self) -> impl Render + 'a {
|
||||
MapList(self.maps)
|
||||
}
|
||||
fn demo_list(&self) -> impl Render + 'a {
|
||||
DemoList { demos: self.demos }
|
||||
}
|
||||
|
|
@ -35,7 +34,7 @@ impl Page for Profile<'_> {
|
|||
"Demos with "
|
||||
(self.user.name)
|
||||
}
|
||||
#filter-bar data-maps = (self.map_list()) data-api-base = (self.api) {}
|
||||
#filter-bar data-maps = (self.maps) data-api-base = (self.api) {}
|
||||
table.demolist {
|
||||
thead {
|
||||
tr {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
use crate::data::user::Token;
|
||||
use crate::pages::plugin_section::PluginSection;
|
||||
use crate::pages::Page;
|
||||
use demostf_build::Asset;
|
||||
use maud::{html, Markup};
|
||||
use std::borrow::Cow;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct UploadPage<'a> {
|
||||
pub key: &'a str,
|
||||
pub key: &'a Token,
|
||||
pub api: &'a str,
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,23 +1,22 @@
|
|||
use crate::data::demo::ListDemo;
|
||||
use crate::data::maps::MapList;
|
||||
use crate::data::user::User;
|
||||
use crate::fragments::demo_list::DemoList;
|
||||
use crate::pages::index::{DemoListScript, MapList};
|
||||
use crate::pages::index::DemoListScript;
|
||||
use crate::pages::Page;
|
||||
use demostf_build::Asset;
|
||||
use maud::{html, Markup, Render};
|
||||
use std::borrow::Cow;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Uploads<'a> {
|
||||
pub user: User,
|
||||
pub demos: &'a [ListDemo],
|
||||
pub maps: &'a [String],
|
||||
pub maps: &'a MapList,
|
||||
pub api: &'a str,
|
||||
}
|
||||
|
||||
impl<'a> Uploads<'a> {
|
||||
fn map_list(&self) -> impl Render + 'a {
|
||||
MapList(self.maps)
|
||||
}
|
||||
fn demo_list(&self) -> impl Render + 'a {
|
||||
DemoList { demos: self.demos }
|
||||
}
|
||||
|
|
@ -35,7 +34,7 @@ impl Page for Uploads<'_> {
|
|||
"Uploads by "
|
||||
(self.user.name)
|
||||
}
|
||||
#filter-bar data-maps = (self.map_list()) data-api-base = (self.api) {}
|
||||
#filter-bar data-maps = (self.maps) data-api-base = (self.api) {}
|
||||
table.demolist {
|
||||
thead {
|
||||
tr {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ use demostf_build::Asset;
|
|||
use maud::{html, Markup};
|
||||
use std::borrow::Cow;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct ViewerPage<'a> {
|
||||
pub demo: Option<Demo>,
|
||||
pub maps: &'a str,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue