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 @@ + + #(id) + #(workOrder) + #(customer) + #capitalized(vendorBranch.vendor.name) - #capitalized(vendorBranch.name) + #(materials) + #capitalized(createdFor.firstName) #capitalized(createdFor.lastName) + #(createdBy.username) + #capitalized(truckStock) + + + + diff --git a/Resources/Views/purchaseOrders/table.leaf b/Resources/Views/purchaseOrders/table.leaf index bcbd642..118206c 100644 --- a/Resources/Views/purchaseOrders/table.leaf +++ b/Resources/Views/purchaseOrders/table.leaf @@ -2,6 +2,7 @@ PO Work Order + Customer Vendor Materials Created For @@ -11,18 +12,7 @@ #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) )) }