1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
use anyhow::Result;
use dbui_core::build_info;
use dbui_service::{RequestContext, Router};
use maud::{html, Markup};

fn container(ctx: &RequestContext, router: &dyn Router, result: &str, content: Markup) -> Result<Markup> {
  let content = html! {
    div.uk-text-center {
      h1.uk-heading-hero { "Testbed" }
      div.uk-text-lead { (result) }
    }
    div.uk-margin-top {
      (content)
    }
  };
  crate::section(ctx, router, "Testbed", content)
}

pub fn dump(ctx: &RequestContext, router: &dyn Router) -> Result<Markup> {
  let content = crate::card(ctx, html! {
    table.uk-table.uk-table-divider.uk-text-left {
      tbody {
        tr {
          th { "Config Dir" }
          td { (ctx.app().files().cfg_dir()) }
        }
        tr {
          th { "Version" }
          td { (build_info::PKG_VERSION) }
        }
        tr {
          th { "Project" }
          td { (format!("{}: {}", build_info::PKG_NAME, build_info::PKG_DESCRIPTION)) }
        }
        tr {
          th { "Website" }
          td { a.(ctx.user_profile().link_class()) href=(build_info::PKG_HOMEPAGE) target="_blank" { (build_info::PKG_HOMEPAGE) } }
        }
        tr {
          th { "Architecture" }
          td { (build_info::TARGET) }
        }
        tr {
          th { "Profile" }
          td { (format!("{} (opt {})", build_info::PROFILE, build_info::OPT_LEVEL)) }
        }
        tr {
          th { "Built At" }
          td { (build_info::BUILT_TIME_UTC) }
        }
        tr {
          th { "CPU Count" }
          td { (format!("{}", num_cpus::get())) }
        }
      }
    }
  });
  container(ctx, router, "Dump", content)
}

pub fn gallery(ctx: &RequestContext, router: &dyn Router) -> Result<Markup> {
  let content = crate::gallery::gallery(&ctx);
  container(ctx, router, "Gallery", content)
}

pub fn prototype(ctx: &RequestContext, router: &dyn Router) -> Result<Markup> {
  let content = html! { "Prototype!" };
  crate::components::page::page(ctx, router, "Prototype!", content)
}

pub fn scroll(ctx: &RequestContext, router: &dyn Router) -> Result<Markup> {
  let content = html! {
    div style="height: 2048px;" {
      "This is a tall block, test scrolling if you'd like "
    }
  };
  container(ctx, router, "Scroll", content)
}