updated templater library
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
{{- .Auth.ByMatchingAccountID 2 }}
|
||||
|
||||
{{- define "title" }} Inventory++ Account {{ end }}
|
||||
|
||||
{{- $acctID := .Identity.Account }}
|
||||
|
||||
<h1>Account: {{ $acctID.Email }}</h1>
|
||||
|
||||
{{- $etsyUser := .Etsy.GetUserPointerByAccountID $acctID.AccountID }}
|
||||
{{- if $etsyUser }}
|
||||
<h3>Etsy User: {{ $etsyUser.UserID }}; Shop ID: {{ $etsyUser.ShopID }}</h3>
|
||||
{{- else }}
|
||||
<h3>
|
||||
{{/* TODO: create this link dynamically, not EVERYTIME THE PAGE IS LOADED */}}
|
||||
<a href="{{ printf "/webhooks/etsy/%d/new-account-link" $acctID.AccountID }}">
|
||||
Link Your Etsy Store!
|
||||
</a>
|
||||
</h3>
|
||||
{{- end }}
|
||||
<h2><a href="/ui/accounts/{{$acctID.AccountID}}/reports">View Reports</a></h2>
|
||||
@@ -0,0 +1,54 @@
|
||||
{{- .Auth.ByMatchingAccountID 2 }}
|
||||
|
||||
{{- $acctID := .Identity.Account.AccountID }}
|
||||
{{- $stores := .Accounts.GetShops $acctID -}}
|
||||
|
||||
|
||||
{{- define "title" }} Inventory++ {{ end }}
|
||||
|
||||
<h1 class="text-center mb-[0.5em]">Inventory</h1>
|
||||
|
||||
<h2 class="text-center mb-[0.5em]">Synced Listings</h2>
|
||||
|
||||
<section class="w-full flex flex-col items-center">
|
||||
<h3>
|
||||
Create a Sync Group
|
||||
</h3>
|
||||
<h4>
|
||||
(Draft 2)
|
||||
</h4>
|
||||
{{/* component "accounts/{acctID}/inventory/sync-groups/draft/table" "dot" . */}}
|
||||
{{ component (printf "accounts/%d/inventory/sync-groups/draft/table" $acctID) "dot" . }}
|
||||
|
||||
<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
|
||||
`
|
||||
}}
|
||||
</div>
|
||||
</section>
|
||||
@@ -0,0 +1,91 @@
|
||||
{{- .Auth.ByMatchingAccountID 2 }}
|
||||
|
||||
{{- define "title" }} Inventory++ Reports {{ end }}
|
||||
|
||||
{{ $storeID := .Request.URL.Query.Get "store-id" }}
|
||||
|
||||
<h1>Reports</h1>
|
||||
|
||||
<main>
|
||||
<select
|
||||
_='
|
||||
on change
|
||||
make a URL from window.location.href called currentURL
|
||||
set currentQuery to searchParams of currentURL
|
||||
set storeID to event.target.value
|
||||
js(currentQuery, storeID) currentQuery.set("store-id", storeID) end
|
||||
set search of currentURL to currentQuery.toString()
|
||||
set window.location to currentURL
|
||||
'
|
||||
>
|
||||
{{ if not $storeID }}
|
||||
<option selected disabled>
|
||||
choose a store
|
||||
</option>
|
||||
{{ end }}
|
||||
<option {{ if eq $storeID "test-store-1" }}selected{{ end }} >
|
||||
test-store-1
|
||||
</option>
|
||||
<option {{ if eq $storeID "test-store-2" }}selected{{ end }} >
|
||||
test-store-2
|
||||
</option>
|
||||
<option {{ if eq $storeID "test-store-3" }}selected{{ end }} >
|
||||
test-store-3
|
||||
</option>
|
||||
</select>
|
||||
|
||||
{{- if $storeID }}
|
||||
<section
|
||||
style="
|
||||
display: grid;
|
||||
grid-template-columns: auto auto auto 1fr;
|
||||
column-gap: 1em;
|
||||
row-gap: 0.5em;
|
||||
margin: 1em 0;
|
||||
"
|
||||
>
|
||||
<div style="border-bottom: solid black 1px;">
|
||||
Date
|
||||
</div>
|
||||
<div style="border-bottom: solid black 1px;">
|
||||
Time
|
||||
</div>
|
||||
<div style="border-bottom: solid black 1px;">
|
||||
ID
|
||||
</div>
|
||||
<div style="border-bottom: solid black 1px;">
|
||||
Payload
|
||||
</div>
|
||||
{{ $events := .RawEvents.LoadEventsForStore "etsy" $storeID }}
|
||||
{{ range $e := $events }}
|
||||
<div>
|
||||
{{ printf "%d/%02d/%02d" $e.EventTimestamp.Year $e.EventTimestamp.Month $e.EventTimestamp.Day }}
|
||||
</div>
|
||||
<div>
|
||||
{{ $suffix := "am" }}
|
||||
{{ $ts := $e.EventTimestamp }}
|
||||
{{- $hr := $ts.Hour }}
|
||||
{{- if eq $hr 0 }}
|
||||
{{- $hr = 12 }}
|
||||
{{- else if eq $hr 12 }}
|
||||
{{- $suffix = "pm" }}
|
||||
{{- else if gt $hr 12 }}
|
||||
{{- $hr = subInt $hr 12 }}
|
||||
{{- $suffix = "pm" }}
|
||||
{{- end }}
|
||||
|
||||
{{- $hrColorHex := multInt $hr 10 | subInt (subInt 256 128) | printf "%02x" }}
|
||||
{{- $minColorHex := multInt $ts.Minute 2 | subInt (subInt 256 128) | printf "%02x" }}
|
||||
{{- $secColorHex := multInt $ts.Second 2 | subInt (subInt 256 128) | printf "%02x" }}
|
||||
<span style="color: #{{ $hrColorHex }}{{ $hrColorHex }}{{ $hrColorHex }};">{{ printf "%02d" $hr }}</span>:<span style="color: #{{ $minColorHex }}{{ $minColorHex }}{{ $minColorHex }};">{{ printf "%02d" $ts.Minute }}</span>:<span style="color: #{{ $secColorHex }}{{ $secColorHex }}{{ $secColorHex }};">{{ printf "%02d" $ts.Second }}</span>{{ printf " %s" $suffix }}
|
||||
</div>
|
||||
<div>
|
||||
{{ $e.EventID }}
|
||||
</div>
|
||||
<div>
|
||||
{{ prettyPrintJSON $e.Payload }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</section>
|
||||
{{- end }}
|
||||
</main>
|
||||
Reference in New Issue
Block a user