reorganize html

This commit is contained in:
2024-03-10 16:45:17 +00:00
parent 1ce9a659ed
commit a601a8308d
15 changed files with 65 additions and 161 deletions

View File

@@ -37,7 +37,7 @@ func GetAllBoxes(_ *http.Request) *web.Response {
return web.HTML( return web.HTML(
http.StatusOK, http.StatusOK,
html, html,
"entity-list.html", "boxes/box-list.html",
result, result,
nil, nil,
) )

View File

@@ -10,13 +10,13 @@ import (
) )
type ItemActions struct { type ItemActions struct {
Get func(r *http.Request) *web.Response Get func(r *http.Request) *web.Response
GetAll func(r *http.Request) *web.Response GetAll func(r *http.Request) *web.Response
Edit func(r *http.Request) *web.Response Edit func(r *http.Request) *web.Response
Delete func(r *http.Request) *web.Response Delete func(r *http.Request) *web.Response
Save func(r *http.Request) *web.Response Save func(r *http.Request) *web.Response
Post func(r *http.Request) *web.Response Post func(r *http.Request) *web.Response
Add func(r *http.Request) *web.Response Add func(r *http.Request) *web.Response
} }
func Items(_html *template.Template) *ItemActions { func Items(_html *template.Template) *ItemActions {
@@ -36,7 +36,7 @@ func Items(_html *template.Template) *ItemActions {
func Get(r *http.Request) *web.Response { func Get(r *http.Request) *web.Response {
_, count := web.PathLast(r) _, count := web.PathLast(r)
if count == 0 { if count == 1 {
return GetAllItems(r) return GetAllItems(r)
} else { } else {
return GetItemByID(r) return GetItemByID(r)
@@ -52,7 +52,7 @@ func GetAllItems(_ *http.Request) *web.Response {
return web.HTML( return web.HTML(
http.StatusOK, http.StatusOK,
html, html,
"entity-list.html", "items/entity-list.html",
result, result,
nil, nil,
) )
@@ -75,7 +75,7 @@ func EditItem(r *http.Request) *web.Response {
return web.HTML( return web.HTML(
http.StatusOK, http.StatusOK,
html, html,
"entity-edit.html", "items/entity-edit.html",
result, result,
nil, nil,
) )
@@ -98,7 +98,7 @@ func GetItemByID(r *http.Request) *web.Response {
return web.HTML( return web.HTML(
http.StatusOK, http.StatusOK,
html, html,
"entity-row.html", "items/entity-row.html",
result, result,
nil, nil,
) )
@@ -154,7 +154,7 @@ func Put(r *http.Request) *web.Response {
return web.HTML( return web.HTML(
http.StatusOK, http.StatusOK,
html, html,
"entity-row.html", "items/entity-row.html",
item, item,
nil, nil,
) )
@@ -197,7 +197,7 @@ func Post(r *http.Request) *web.Response {
return web.HTML( return web.HTML(
http.StatusOK, http.StatusOK,
html, html,
"entity-row.html", "items/entity-row.html",
item, item,
nil, nil,
) )
@@ -207,7 +207,7 @@ func Add(r *http.Request) *web.Response {
return web.HTML( return web.HTML(
http.StatusOK, http.StatusOK,
html, html,
"entity-add.html", "items/items/entity-add.html",
nil, nil,
nil, nil,
) )
@@ -230,7 +230,7 @@ func Delete(r *http.Request) *web.Response {
return web.HTML( return web.HTML(
http.StatusOK, http.StatusOK,
html, html,
"entity-row.html", "items/entity-row.html",
nil, nil,
nil, nil,
) )

View File

@@ -1,35 +1,25 @@
<div id="box-list"> <div id="boxes/box-list">
<div id="processing" class="htmx-indicator">Processing...</div> <div id="processing" class="htmx-indicator">Processing...</div>
<div class="flex flex-col"> <div class="flex flex-col">
<div class="overflow-x-auto sm:-mx-6 lg:-mx-8"> <div class="overflow-x-auto sm:-mx-6 lg:-mx-8">
<div class="inline-block min-w-full py-2 sm:px-6 lg:px-8"> <div class="inline-block min-w-full py-2 sm:px-6 lg:px-8">
<div class="overflow-hidden"> <div class="overflow-hidden">
<!-- <div class="flex justify-end">
<button
hx-get="/company/add"
hx-target="#table-body"
hx-swap="outerHTML"
hx-indicator="#processing"
class="inline-flex items-center h-8 px-4 m-2 text-sm text-blue-100 transition-colors duration-150 bg-blue-700 rounded-lg focus:shadow-outline hover:bg-blue-800"
href=""
>
Add
</button>
</div> -->
<table class="min-w-full text-left text-sm font-light"> <table class="min-w-full text-left text-sm font-light">
<thead class="border-b font-medium dark:border-neutral-500"> <thead class="border-b font-medium dark:border-neutral-500">
<tr> <tr>
<th scope="col" class="px-6 py-4"></th>
<th scope="col" class="px-6 py-4">#</th> <th scope="col" class="px-6 py-4">#</th>
<th scope="col" class="px-6 py-4">Name</th> <th scope="col" class="px-6 py-4">Name</th>
<th scope="col" class="px-6 py-4">Stage</th> <th scope="col" class="px-6 py-4">Stage</th>
<th scope="col" class="px-6 py-4">Category</th> <th scope="col" class="px-6 py-4">Category</th>
<th scope="col" class="px-6 py-4">Description</th> <th scope="col" class="px-6 py-4">Description</th>
<th scope="col" class="px-6 py-4">Notes</th> <th scope="col" class="px-6 py-4">Notes</th>
<th scope="col" class="px-6 py-4"></th>
</tr> </tr>
</thead> </thead>
<tbody id="table-body"> <tbody id="table-body">
{{range .}} {{range .}}
{{ template "entity-row.html". }} {{ template "boxes/box-row.html" . }}
{{end}} {{end}}
</tbody> </tbody>
</table> </table>

View File

@@ -0,0 +1,38 @@
<tr id="boxrow-{{.ID}}" class="border-b dark:border-neutral-500 hover:bg-slate-300 hover:bg-opacity-20">
<td
hx-get="/box-items?box_id={{ .ID }}"
hx-target="#boxrow-{{ .ID }}"
hx-swap="afterend"
class="whitespace-nowrap px-6 py-4 relative top-0 -left-12 inline-flex items-center h-8 m-2 text-sm text-stone-100 transition-colors duration-150 bg-stone-700 rounded-lg focus:shadow-outline hover:bg-stone-800"
>
&lt;
</td>
<td class="whitespace-nowrap px-6 py-4">{{.ID}}</td>
<td class="whitespace-nowrap px-6 py-4">{{.Name}}</td>
{{ template "components/parsed-packing-stage.html" .Stage }}
{{ template "components/parsed-category.html" .Category }}
{{ if .Description }}
<td class="whitespace-nowrap px-6 py-4">{{.Description}}</td>
{{ else }}
<td class="whitespace-nowrap px-6 py-4">...</td>
{{ end }}
{{ if .Notes }}
<td class="whitespace-nowrap px-6 py-4">{{.Notes}}</td>
{{ else }}
<td class="whitespace-nowrap px-6 py-4">...</td>
{{ end }}
<td class="whitespace-nowrap px-6 py-4">
<button
hx-get="/items/edit/{{ .ID }}"
hx-target="#boxrow-{{ .ID }}"
hx-swap="outerHTML"
class="inline-flex items-center h-8 px-4 m-2 text-sm text-yellow-100 transition-colors duration-150 bg-yellow-700 rounded-lg focus:shadow-outline hover:bg-yellow-800"
>
Edit
</button>
</tr>

View File

@@ -1,38 +0,0 @@
<div id="companies">
<div id="processing" class="htmx-indicator">Processing...</div>
<div class="flex flex-col">
<div class="overflow-x-auto sm:-mx-6 lg:-mx-8">
<div class="inline-block min-w-full py-2 sm:px-6 lg:px-8">
<div class="overflow-hidden">
<div class="flex justify-end">
<button
hx-get="/company/add"
hx-target="#table-body"
hx-swap="outerHTML"
hx-indicator="#processing"
class="inline-flex items-center h-8 px-4 m-2 text-sm text-blue-100 transition-colors duration-150 bg-blue-700 rounded-lg focus:shadow-outline hover:bg-blue-800"
href=""
>
Add
</button>
</div>
<table class="min-w-full text-left text-sm font-light">
<thead class="border-b font-medium dark:border-neutral-500">
<tr>
<th scope="col" class="px-6 py-4">#</th>
<th scope="col" class="px-6 py-4">Company</th>
<th scope="col" class="px-6 py-4">Contact</th>
<th scope="col" class="px-6 py-4">Country</th>
</tr>
</thead>
<tbody id="table-body">
{{range .}}
{{ template "row.html". }}
{{end}}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>

View File

@@ -1,6 +0,0 @@
<tbody id="table-body">
{{ template "row-add.html" . }}
{{range .}}
{{ template "row.html". }}
{{end}}
</tbody>

View File

@@ -36,7 +36,7 @@
<br/> <br/>
<span class="text-xl">Items</span> <span class="text-xl">Items</span>
<div id="home-page-container"> <div id="home-page-container">
{{ template "entity-list.html" . }} {{ template "items/entity-list.html" . }}
</div> </div>
</div> </div>
</main> </main>

View File

@@ -6,7 +6,7 @@
<div class="overflow-hidden"> <div class="overflow-hidden">
<!-- <div class="flex justify-end"> <!-- <div class="flex justify-end">
<button <button
hx-get="/item/add" hx-get="/items/add"
hx-target="#table-body" hx-target="#table-body"
hx-swap="beforeend" hx-swap="beforeend"
hx-indicator="#processing" hx-indicator="#processing"
@@ -30,10 +30,10 @@
</thead> </thead>
<tbody id="table-body"> <tbody id="table-body">
{{range .}} {{range .}}
{{ template "entity-row.html" . }} {{ template "items/entity-row.html" . }}
{{end}} {{end}}
{{ template "entity-add.html" . }} {{ template "items/entity-add.html" . }}
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@@ -2,9 +2,9 @@
<td class="whitespace-nowrap px-6 py-4">{{.ID}}</td> <td class="whitespace-nowrap px-6 py-4">{{.ID}}</td>
<td class="whitespace-nowrap px-6 py-4">{{.Name}}</td> <td class="whitespace-nowrap px-6 py-4">{{.Name}}</td>
{{ template "parsed-packing-stage.html" .Stage }} {{ template "components/parsed-packing-stage.html" .Stage }}
{{ template "parsed-category.html" .Category }} {{ template "components/parsed-category.html" .Category }}
{{ if .Description }} {{ if .Description }}
<td class="whitespace-nowrap px-6 py-4">{{.Description}}</td> <td class="whitespace-nowrap px-6 py-4">{{.Description}}</td>
@@ -23,7 +23,7 @@
hx-get="/items/edit/{{ .ID }}" hx-get="/items/edit/{{ .ID }}"
hx-target="#datarow-{{ .ID }}" hx-target="#datarow-{{ .ID }}"
hx-swap="outerHTML" hx-swap="outerHTML"
class="inline-flex items-center h-8 px-4 m-2 text-sm text-blue-100 transition-colors duration-150 bg-yellow-700 rounded-lg focus:shadow-outline hover:bg-blue-800" class="inline-flex items-center h-8 px-4 m-2 text-sm text-yellow-100 transition-colors duration-150 bg-yellow-700 rounded-lg focus:shadow-outline hover:bg-yellow-800"
> >
Edit Edit
</button> </button>

View File

@@ -1,51 +0,0 @@
<tr id="datarow-add" class="border-b dark:border-neutral-500">
<td class="whitespace-nowrap px-6 py-4"></td>
<td class="whitespace-nowrap px-6 py-4">
<input
type="text"
class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline"
data-include-add=""
name="company"
value=""
/>
</td>
<td class="whitespace-nowrap px-6 py-4">
<input
type="text"
class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline"
data-include-add=""
name="contact"
value=""
/>
</td>
<td class="whitespace-nowrap px-6 py-4">
<input
type="text"
class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline"
data-include-add=""
name="country"
value=""
/>
</td>
<td class="whitespace-nowrap px-1 py-1">
<a
hx-post="/company/"
hx-target="#companies"
hx-indicator="#processing"
hx-include="input[data-include-add]"
class="inline-flex items-center h-8 px-4 m-2 text-sm text-blue-100 transition-colors duration-150 bg-blue-700 rounded-lg focus:shadow-outline hover:bg-blue-800"
href=""
>Save</a
>
</td>
<td class="whitespace-nowrap px-1 py-1">
<a
hx-get="/company/"
hx-target="#companies"
hx-indicator="#processing"
class="inline-flex items-center h-8 px-4 m-2 text-sm text-red-100 transition-colors duration-150 bg-red-700 rounded-lg focus:shadow-outline hover:bg-red-800"
href=""
>Cancel</a
>
</td>
</tr>

View File

@@ -1,29 +0,0 @@
<tr id="datarow-{{.ID}}" class="border-b dark:border-neutral-500">
<td class="whitespace-nowrap px-6 py-4">{{.ID}}</td>
<td class="whitespace-nowrap px-6 py-4">{{.Company}}</td>
<td class="whitespace-nowrap px-6 py-4">{{.Contact}}</td>
<td class="whitespace-nowrap px-6 py-4">{{.Country}}</td>
<td class="whitespace-nowrap px-1 py-1">
<a
hx-get="/company/edit/{{.ID}}"
hx-target="#datarow-{{.ID}}"
hx-swap="outerHTML"
hx-indicator="#processing"
class="hover:underline text-blue-700"
href=""
>
Edit
</a>
</td>
<td class="whitespace-nowrap px-1 py-1">
<a
hx-delete="/company/{{.ID}}"
hx-target="#companies"
hx-confirm="Are you sure you want to delete {{.Company}}?"
hx-indicator="#processing"
class="hover:underline text-blue-700"
href=""
>Delete</a
>
</td>
</tr>