renamed site directory to server
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
{{- define "title" }} Inventory++ Create an Account {{ end }}
|
||||
|
||||
{{/* TODO: will need to verify the email address */}}
|
||||
|
||||
<section style="margin-top: 2em;">
|
||||
<form method="post" action="/accounts">
|
||||
<label>
|
||||
Email:
|
||||
<input type="email" required name="email" />
|
||||
</label>
|
||||
|
||||
<input type="submit" value="Create Account" />
|
||||
</form>
|
||||
</section>
|
||||
@@ -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="/accounts/{{$acctID.AccountID}}/reports">View Reports</a></h2>
|
||||
@@ -0,0 +1,74 @@
|
||||
{{- .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>
|
||||
{{ componentBody "accounts/{acctID}/inventory/sync-table-v2" "dot" . }}
|
||||
|
||||
<div>
|
||||
{{ componentBody "button-dev"
|
||||
"HXPost" (printf "/accounts/%d/inventory/sync-groups/draft/listings" $acctID)
|
||||
"HXTarget" "previous table > tbody"
|
||||
"HXSwap" "beforeend"
|
||||
"Class" "mt-[1em] mb-[1em]"
|
||||
"Text" "Add Listing"
|
||||
"_" `
|
||||
on click
|
||||
send rowUpdated to the first <tbody/> in #inventory-table-2
|
||||
`
|
||||
}}
|
||||
|
||||
{{/* 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 */}}
|
||||
{{ componentBody "button-dev"
|
||||
"ID" "create-sync-group-button"
|
||||
"HXPost" (printf "/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>
|
||||
|
||||
<section class="w-full flex flex-col items-center">
|
||||
<h3>
|
||||
Draft 1
|
||||
</h3>
|
||||
{{ componentBody "accounts/{acctID}/inventory/sync-table" "dot" . }}
|
||||
</section>
|
||||
|
||||
<section class="flex justify-center mt-[1em]">
|
||||
{{ componentBody "accounts/{acctID}/inventory/sync-table/showcase-table" "dot" . }}
|
||||
</section>
|
||||
|
||||
<section class="w-full flex justify-center mt-[1em]">
|
||||
{{ componentBody "button-dev"
|
||||
"HXGet" (printf "/accounts/%d/inventory/sync-table/new-row" $acctID)
|
||||
"HXTarget" "#inventory-table > tbody"
|
||||
"HXSwap" "beforeend"
|
||||
"Class" "mt-[1em] mb-[1em]"
|
||||
"Text" "Add Row"
|
||||
}}
|
||||
</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>
|
||||
@@ -0,0 +1,11 @@
|
||||
{{- define "title" }} Inventory++ Invalid Link {{ end }}
|
||||
|
||||
|
||||
<section>
|
||||
Invalid Link: {{ .Request.URL.Path }}
|
||||
</section>
|
||||
|
||||
|
||||
<section>
|
||||
<a href="/">Return Home</a>
|
||||
</section>
|
||||
@@ -0,0 +1,27 @@
|
||||
<section class="flex justify-center max-w-full mt-[3em] mb-[3em]">
|
||||
<h1 class="bg-card max-w-full p-[2em] border-[1px] border-sidebar-border rounded-lg text-nowrap">
|
||||
Inventory++
|
||||
</h1>
|
||||
|
||||
</section>
|
||||
|
||||
{{- if and .Identity.User.UserID (not .Identity.Account) }}
|
||||
{{/* TODO: make account creation automatic as part of the user creation process */}}
|
||||
<h2><a href="/account-creation">New Account</a></h2>
|
||||
{{- end }}
|
||||
|
||||
<section class="flex flex-col items-center max-w-full mt-[1em] mb-[1em] gap-y-[2em]">
|
||||
<p class="text-lg text-center max-w-[50%]">
|
||||
Synchronize inventory automatically!
|
||||
</p>
|
||||
|
||||
<div class="border-button border-sidebar-border bg-card text-lg text-center max-w-[50%]">
|
||||
<a href="/login" class="block p-[1em] font-bold">
|
||||
Create an Account
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<p class="text-lg text-center max-w-[50%]">
|
||||
...and start syncing your shops today!
|
||||
</p>
|
||||
</section>
|
||||
@@ -0,0 +1,11 @@
|
||||
{{/* TODO: delete this page, when certain it's not wanted anymore */}}
|
||||
|
||||
<h1>Log In</h1>
|
||||
|
||||
<form action="login" method="post">
|
||||
<label>
|
||||
Email:
|
||||
<input type="text" required name="email" />
|
||||
</label>
|
||||
<input type="submit" value="login" />
|
||||
</form>
|
||||
@@ -0,0 +1,11 @@
|
||||
{{- define "title" }} Inventory++ Page Not Found {{ end }}
|
||||
|
||||
|
||||
<section>
|
||||
Page Not Found: {{ .Request.URL.Path }}
|
||||
</section>
|
||||
|
||||
|
||||
<section>
|
||||
<a href="/">Return Home</a>
|
||||
</section>
|
||||
@@ -0,0 +1,11 @@
|
||||
{{/* TODO: not used - read for deletion */}}
|
||||
|
||||
<h1>Sign Up</h1>
|
||||
|
||||
<form action="accounts" method="post">
|
||||
<label>
|
||||
Email:
|
||||
<input type="text" required name="email" />
|
||||
</label>
|
||||
<input type="submit" value="Submit" />
|
||||
</form>
|
||||
Reference in New Issue
Block a user