feat: Cleans up some file names, adds generate admin user command.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import Elementary
|
||||
import ElementaryHTMX
|
||||
import SharedModels
|
||||
|
||||
struct MainPage<Inner: HTML>: SendableHTMLDocument where Inner: Sendable {
|
||||
|
||||
@@ -12,7 +13,7 @@ struct MainPage<Inner: HTML>: SendableHTMLDocument where Inner: Sendable {
|
||||
|
||||
init(
|
||||
displayNav: Bool = false,
|
||||
route: ViewRoute,
|
||||
route: RouteHeaderView.ViewRoute,
|
||||
_ inner: () -> Inner
|
||||
) {
|
||||
self.displayNav = displayNav
|
||||
@@ -39,6 +40,29 @@ struct MainPage<Inner: HTML>: SendableHTMLDocument where Inner: Sendable {
|
||||
}
|
||||
}
|
||||
|
||||
extension MainPage where Inner == LoggedIn {
|
||||
static func loggedIn(next: String?) -> Self {
|
||||
MainPage(displayNav: true, route: .purchaseOrders) {
|
||||
LoggedIn(next: next)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct LoggedIn: HTML {
|
||||
let next: String?
|
||||
var content: some HTML {
|
||||
div(
|
||||
.hx.get(next ?? ViewRoute.router.path(for: .purchaseOrder(.index))),
|
||||
.hx.pushURL(true),
|
||||
.hx.target("body"),
|
||||
.hx.trigger(.event(.revealed)),
|
||||
.hx.indicator(".hx-indicator")
|
||||
) {
|
||||
Img.spinner().attributes(.class("hx-indicator"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct RouteHeaderView: HTML {
|
||||
|
||||
let title: String
|
||||
@@ -61,6 +85,38 @@ struct RouteHeaderView: HTML {
|
||||
br()
|
||||
}
|
||||
}
|
||||
|
||||
enum ViewRoute: String {
|
||||
|
||||
case employees
|
||||
case login
|
||||
case purchaseOrders
|
||||
case users
|
||||
case vendors
|
||||
|
||||
var title: String {
|
||||
switch self {
|
||||
case .purchaseOrders:
|
||||
return "Purchase Orders"
|
||||
default:
|
||||
return rawValue.capitalized
|
||||
}
|
||||
}
|
||||
|
||||
var description: String {
|
||||
switch self {
|
||||
case .employees:
|
||||
return "Employees are who purchase orders can be issued to."
|
||||
case .purchaseOrders, .login:
|
||||
return ""
|
||||
case .users:
|
||||
return "Users are who can login and issue purchase orders for employees."
|
||||
case .vendors:
|
||||
return "Vendors are where purchase orders can be issued to."
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
struct Logo: HTML, Sendable {
|
||||
|
||||
Reference in New Issue
Block a user