diff --git a/Makefile b/Makefile index 1348de7..4a1de4d 100644 --- a/Makefile +++ b/Makefile @@ -77,11 +77,11 @@ web-dependencies: web-build: web-dependencies mkdir -p public - npx tailwindcss -i views/style.css -o public/style.css + npx tailwindcss --minify -i views/style.css -o public/style.css web-build-docker: mkdir -p public - npx tailwindcss -i views/style.css -o public/style.css + npx tailwindcss --minify -i views/style.css -o public/style.css build: web-dependencies build-dependencies prepare go build -o redmage diff --git a/views/devices/details/data.go b/views/devices/details/data.go index 62c15f3..b5b25a6 100644 --- a/views/devices/details/data.go +++ b/views/devices/details/data.go @@ -6,11 +6,12 @@ import ( ) type Data struct { - Error string - Device *models.Device - Images models.ImageSlice - TotalImages int64 - Params api.ImageListParams + Error string + Device *models.Device + Images models.ImageSlice + TotalImages int64 + Params api.ImageListParams + FlashMessageSuccess string } type splitBySubredditImages struct { diff --git a/views/devices/details/filter.templ b/views/devices/details/filter.templ index b855881..e565b58 100644 --- a/views/devices/details/filter.templ +++ b/views/devices/details/filter.templ @@ -2,6 +2,7 @@ package details import "fmt" import "github.com/tigorlazuardi/redmage/views" +import "github.com/tigorlazuardi/redmage/api" templ filter(c *views.Context, data Data) {
- -
- - - - -
+ @searchInput(data.Params) + @limitInput(data.Params) + @rangeInput(c)
} +templ searchInput(params api.ImageListParams) { + + +} + +templ limitInput(params api.ImageListParams) { + + +} + +templ rangeInput(c *views.Context) { + + +} + templ rangeOption(c *views.Context, value, display string) { } diff --git a/views/devices/details/view.templ b/views/devices/details/view.templ index 9edcc1f..0b6eb57 100644 --- a/views/devices/details/view.templ +++ b/views/devices/details/view.templ @@ -16,6 +16,11 @@ templ View(c *views.Context, data Data) { } @components.Body(c) { @Content(c, data) + @components.NotificationContainer() { + if data.FlashMessageSuccess != "" { + @components.SuccessNotification(data.FlashMessageSuccess) + } + } } } } @@ -28,19 +33,32 @@ templ Content(c *views.Context, data Data) { } else {

{ data.Device.Name }

-
- - @icons.Gear("w-8 h-8 text-primary-content") - -
+ @actionButton(data)
@filter(c, data) -

{ strconv.FormatInt(data.TotalImages, 10) } Images

- if data.TotalImages > 0 { +
+

{ strconv.FormatInt(data.TotalImages, 10) } Images

+ if data.TotalImages > 0 { +
+ @components.Pagination(c, components.PaginationData{ + BaseURL: "/devices/details/" + data.Device.Slug, + Limit: data.Params.Limit, + Offset: data.Params.Offset, + Total: data.TotalImages, + }) +
+

+ Showing from + { strconv.FormatInt(data.Params.Offset + 1, 10) } + to + { strconv.FormatInt(min(data.Params.Limit+data.Params.Offset, data.TotalImages), 10) } +

+ } + for _, group := range data.splitImages() { +

{ group.Subreddit }

+ @imageList(group.Images) + }
@components.Pagination(c, components.PaginationData{ BaseURL: "/devices/details/" + data.Device.Slug, @@ -49,34 +67,49 @@ templ Content(c *views.Context, data Data) { Total: data.TotalImages, })
-

- Showing from - { strconv.FormatInt(data.Params.Offset + 1, 10) } - to - { strconv.FormatInt(min(data.Params.Limit+data.Params.Offset, data.TotalImages), 10) } -

- } - for _, group := range data.splitImages() { -

{ group.Subreddit }

- @imageList(group.Images) - } -
- @components.Pagination(c, components.PaginationData{ - BaseURL: "/devices/details/" + data.Device.Slug, - Limit: data.Params.Limit, - Offset: data.Params.Offset, - Total: data.TotalImages, - })
} } } +templ actionButton(data Data) { +
+ +
+} + templ imageList(images models.ImageSlice) { -
+ @components.HorizontalImageWell() { for _, data := range images { @components.ImageCard(data, 0) } -
+ } }