updated draft sync group table buttons upon table change

This commit is contained in:
2026-01-21 00:40:33 -07:00
parent de18de49e9
commit c4348d6d3d
8 changed files with 95 additions and 57 deletions
+2 -2
View File
@@ -2,12 +2,12 @@ module ruben/inventory2
go 1.24.2
// replace github.com/angelbeltran/templater v0.2.2 => ../../github.com/angelbeltran/templater
replace github.com/angelbeltran/templater v0.2.3 => ../../github.com/angelbeltran/templater
require github.com/jackc/pgx/v5 v5.7.6
require (
github.com/angelbeltran/templater v0.2.2
github.com/angelbeltran/templater v0.2.3
github.com/coreos/go-oidc/v3 v3.8.0
github.com/gin-gonic/gin v1.9.1
github.com/google/uuid v1.5.0
-4
View File
@@ -9,10 +9,6 @@ github.com/alecthomas/units v0.0.0-20231202071711-9a357b53e9c9 h1:ez/4by2iGztzR4
github.com/alecthomas/units v0.0.0-20231202071711-9a357b53e9c9/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE=
github.com/angelbeltran/concurry v0.0.0-20260109231127-8e2678d8928c h1:BIa061RHaIVP9TjpIQf0PldVpQmeln/2U1Cf2w8ALNI=
github.com/angelbeltran/concurry v0.0.0-20260109231127-8e2678d8928c/go.mod h1:Aii6F8lZCJb8Ns0d1FH35bDxNoyiuvwXd5BYJroJnks=
github.com/angelbeltran/templater v0.2.1 h1:9N2eNRE5/sYUgu7nZrU6VSSrrpKcOTlAw+UeeK3kyhk=
github.com/angelbeltran/templater v0.2.1/go.mod h1:ZA0T/ZmXxPi3gFjgp+RwEkcY9Q+JGyMStGw0c1jvgqA=
github.com/angelbeltran/templater v0.2.2 h1:SwsX7RrHtpjDvSi87CYqBRJsZFGaIHmGjn/clfqYqq4=
github.com/angelbeltran/templater v0.2.2/go.mod h1:ZA0T/ZmXxPi3gFjgp+RwEkcY9Q+JGyMStGw0c1jvgqA=
github.com/apapsch/go-jsonmerge/v2 v2.0.0 h1:axGnT1gRIfimI7gJifB699GoE/oq+F2MU7Dml6nw9rQ=
github.com/apapsch/go-jsonmerge/v2 v2.0.0/go.mod h1:lvDnEdqiQrp0O42VQGgmlKpxL1AP2+08jFMw88y4klk=
github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w=
+18 -18
View File
@@ -102,7 +102,7 @@ var (
AccountID: 6,
},
Platform: Etsy,
ShopID: "1",
ShopID: "2",
},
ListingID: "1",
},
@@ -118,7 +118,7 @@ var (
AccountID: 6,
},
Platform: Etsy,
ShopID: "1",
ShopID: "2",
},
ListingID: "2",
},
@@ -134,7 +134,7 @@ var (
AccountID: 6,
},
Platform: Etsy,
ShopID: "1",
ShopID: "2",
},
ListingID: "3",
},
@@ -149,8 +149,8 @@ var (
AccountIDs: AccountIDs{
AccountID: 6,
},
Platform: Tiktok,
ShopID: "4",
Platform: Etsy,
ShopID: "2",
},
ListingID: "4",
},
@@ -165,8 +165,8 @@ var (
AccountIDs: AccountIDs{
AccountID: 6,
},
Platform: Tiktok,
ShopID: "4",
Platform: Etsy,
ShopID: "2",
},
ListingID: "5",
},
@@ -181,8 +181,8 @@ var (
AccountIDs: AccountIDs{
AccountID: 6,
},
Platform: Tiktok,
ShopID: "4",
Platform: Etsy,
ShopID: "2",
},
ListingID: "6",
},
@@ -197,8 +197,8 @@ var (
AccountIDs: AccountIDs{
AccountID: 6,
},
Platform: Wix,
ShopID: "7",
Platform: Etsy,
ShopID: "5",
},
ListingID: "7",
},
@@ -213,8 +213,8 @@ var (
AccountIDs: AccountIDs{
AccountID: 6,
},
Platform: Wix,
ShopID: "7",
Platform: Etsy,
ShopID: "5",
},
ListingID: "8",
},
@@ -229,8 +229,8 @@ var (
AccountIDs: AccountIDs{
AccountID: 6,
},
Platform: Wix,
ShopID: "7",
Platform: Etsy,
ShopID: "5",
},
ListingID: "9",
},
@@ -246,7 +246,7 @@ var (
AccountID: 6,
},
Platform: Etsy,
ShopID: "2",
ShopID: "5",
},
ListingID: "10",
},
@@ -262,7 +262,7 @@ var (
AccountID: 6,
},
Platform: Etsy,
ShopID: "2",
ShopID: "5",
},
ListingID: "11",
},
@@ -278,7 +278,7 @@ var (
AccountID: 6,
},
Platform: Etsy,
ShopID: "2",
ShopID: "5",
},
ListingID: "12",
},
@@ -0,0 +1,15 @@
{{- $acctID := .PathParams.acctID }}
{{- component "button"
"HXPost" (printf "/api/accounts/%d/inventory/sync-groups/draft/listings" $acctID)
"HXTarget" "#accounts-acct-id-inventory-sync-groups-draft-table"
"HXSwap" "outerHTML"
"ID" "sync-groups-draft-table-add-listing-button"
"Class" "mt-[1em] mb-[1em]"
"Text" "Add Listing"
"_" `
on click
send rowUpdated to the first <tbody/> in #accounts-acct-id-inventory-sync-groups-draft-table
`
}}
@@ -2,7 +2,6 @@
{{- $acctID := .PathParams.acctID }}
{{- $stores := .Accounts.GetShops $acctID -}}
<table
@@ -82,3 +81,22 @@
</tfoot>
</table>
{{/*
<div
hidden
hx-get="{{ printf "/ui/accounts/%d/inventory/sync-groups/draft/table/add-listing-button" $acctID }}"
hx-trigger="{{ (printf "sse:accounts_%d_inventory_sync-groups_draft_listings" $acctID) }}"
hx-target="#sync-groups-draft-table-add-listing-button"
hx-swap="outerHTML"
>
</div>
*/}}
<div
hidden
hx-get="{{ printf "/ui/accounts/%d/inventory/sync-groups/draft/table/save-sync-group-button" $acctID }}"
hx-trigger="{{ (printf "sse:accounts_%d_inventory_sync-groups_draft_listings" $acctID) }}"
hx-target="#create-sync-group-button"
hx-swap="outerHTML"
>
</div>
@@ -0,0 +1,33 @@
{{/* TODO: save the listings as a sync group on click */}}
{{- $acctID := .PathParams.acctID }}
{{- $listings := .Accounts.GetSyncGroupListingDrafts $acctID }}
{{- $numCompletedListings := 0 }}
{{- range $l := $listings }}
{{- if and $l.ShopID $l.ListingID }}
{{- $numCompletedListings = (addInt $numCompletedListings 1) }}
{{- else }}
{{- end }}
{{- end }}
{{- $enoughListings := gt $numCompletedListings 1 }}
{{- $allCompleted := len $listings | eq $numCompletedListings }}
{{ component "button"
"ID" "create-sync-group-button"
"HXPost" (printf "/api/accounts/%d/sync-groups" $acctID)
"Class" "mt-[1em] mb-[1em]"
"Text" "Save Sync Group"
"Disabled" (or (not $enoughListings) (not $allCompleted))
"_" `
on setDisabled(disabled)
if disabled then
add @disabled to me
else
remove @disabled from me
end
`
}}
+5 -1
View File
@@ -1,4 +1,5 @@
{{/* .HXGet | .HXPost | .HXDelete, .HXTarget, .HXSwap, .HXVals, ._, .Text, .ID, .Class, .Disabled */}}
{{/* .HXGet | .HXPost | .HXDelete, .HXTrigger, .HXTarget, .HXSwap, .HXVals, ._, .Text, .ID, .Class, .Disabled */}}
<button
class="
@@ -25,6 +26,9 @@
{{- else if .HXDelete }}
hx-delete="{{.HXDelete}}"
{{- end }}
{{- if .HXTrigger }}
hx-trigger="{{.HXTrigger}}"
{{- end }}
{{- if .HXTarget }}
hx-target="{{.HXTarget}}"
{{- end }}
@@ -17,38 +17,10 @@
<h4>
(Draft 2)
</h4>
{{/* component "accounts/{acctID}/inventory/sync-groups/draft/table" "dot" . */}}
{{ component (printf "accounts/%d/inventory/sync-groups/draft/table" $acctID) "dot" . }}
{{ component (printf "accounts/%d/inventory/sync-groups/draft/table" $acctID) }}
<div>
{{ component "button"
"HXPost" (printf "/api/accounts/%d/inventory/sync-groups/draft/listings" $acctID)
"HXTarget" "#accounts-acct-id-inventory-sync-groups-draft-table"
"HXSwap" "outerHTML"
"Class" "mt-[1em] mb-[1em]"
"Text" "Add Listing"
"_" `
on click
send rowUpdated to the first <tbody/> in #accounts-acct-id-inventory-sync-groups-draft-table
`
}}
{{/* TODO: enable the button when all listings are filled and there are at least two listings */}}
{{/* TODO: save the listings as a sync group on click */}}
{{ component "button"
"ID" "create-sync-group-button"
"HXPost" (printf "/api/accounts/%d/sync-groups" $acctID)
"Class" "mt-[1em] mb-[1em]"
"Text" "Save Sync Group"
"Disabled" true
"_" `
on setDisabled(disabled)
if disabled then
add @disabled to me
else
remove @disabled from me
end
`
}}
{{ component (printf "accounts/%d/inventory/sync-groups/draft/table/add-listing-button" $acctID) }}
{{ component (printf "accounts/%d/inventory/sync-groups/draft/table/save-sync-group-button" $acctID) }}
</div>
</section>