diff --git a/Public/css/main.css b/Public/css/main.css
index afc01f5..0ebaeba 100644
--- a/Public/css/main.css
+++ b/Public/css/main.css
@@ -87,6 +87,10 @@ td, th {
padding: 5px 15px;
}
+table th {
+ color: #00ffcc;
+}
+
input[type=submit] {
padding: 5px 20px;
}
diff --git a/Resources/Views/purchaseOrders/table-row.leaf b/Resources/Views/purchaseOrders/table-row.leaf
new file mode 100644
index 0000000..50acb84
--- /dev/null
+++ b/Resources/Views/purchaseOrders/table-row.leaf
@@ -0,0 +1,13 @@
+
#for(po in purchaseOrders):
-
- | #(po.id) |
- #(po.workOrder) |
- #capitalized(po.vendorBranch.vendor.name) - #capitalized(po.vendorBranch.name) |
- #(po.materials) |
- #capitalized(po.createdFor.firstName) #capitalized(po.createdFor.lastName) |
- #(po.createdBy.username) |
- #capitalized(po.truckStock) |
-
-
- |
-
+ #extend("purchaseOrders/table-row", po)
#endfor
diff --git a/Sources/App/Controllers/ApiController.swift b/Sources/App/Controllers/ApiController.swift
index 9cef353..a14ce75 100644
--- a/Sources/App/Controllers/ApiController.swift
+++ b/Sources/App/Controllers/ApiController.swift
@@ -102,6 +102,8 @@ struct ApiController: RouteCollection {
// MARK: - PurchaseOrders
+ // TODO: Add fetch by id.
+
// TODO: Add pagination and filters.
@Sendable
func purchaseOrdersIndex(req: Request) async throws -> [PurchaseOrder.DTO] {
diff --git a/Sources/App/Controllers/PurchaseOrderViewController.swift b/Sources/App/Controllers/PurchaseOrderViewController.swift
index 6f222e5..f809988 100644
--- a/Sources/App/Controllers/PurchaseOrderViewController.swift
+++ b/Sources/App/Controllers/PurchaseOrderViewController.swift
@@ -42,9 +42,19 @@ struct PurchaseOrderViewController: RouteCollection {
let purchaseOrder = create.toModel(createdByID: createdById)
try await purchaseOrder.save(on: req.db)
+ let loaded = try await PurchaseOrder.query(on: req.db)
+ .filter(\.$id == purchaseOrder.requireID())
+ .with(\.$createdFor)
+ .with(\.$createdBy)
+ .with(\.$vendorBranch) {
+ $0.with(\.$vendor)
+ }
+ .first()
- let purchaseOrders = try await api.purchaseOrdersIndex(req: req)
- return try await req.view.render("purchaseOrders/table", ["purchaseOrders": purchaseOrders])
+ return try await req.view.render("purchaseOrders/table-row", loaded)
+
+ // let purchaseOrders = try await api.purchaseOrdersIndex(req: req)
+ // return try await req.view.render("purchaseOrders/table", ["purchaseOrders": purchaseOrders])
}
}
@@ -67,11 +77,11 @@ private struct PurchaseOrderFormCTX: Content {
formClass: "po-form",
formId: "po-form",
htmxTargetUrl: .post("/purchase-orders"),
- htmxTarget: "#po-table",
+ htmxTarget: "#po-table-body",
htmxPushUrl: false,
htmxResetAfterRequest: true,
htmxSwapOob: nil,
- htmxSwap: .outerHTML,
+ htmxSwap: .afterbegin,
context: .init(branches: branches, employees: employees)
))
}