feat: added active cards

This commit is contained in:
Hazel Noack 2025-07-14 16:36:48 +02:00
parent 4347f9632c
commit 774fa4efb1
3 changed files with 36 additions and 8 deletions

View File

@ -16,6 +16,7 @@
<input id="search-input" name="{{ .SearchInputName }}" type="text" class="grid-item" class="search" placeholder="{{ .SearchPlaceholder }}" autocomplete="off" /> <input id="search-input" name="{{ .SearchInputName }}" type="text" class="grid-item" class="search" placeholder="{{ .SearchPlaceholder }}" autocomplete="off" />
{{ if eq .ActiveCard "stores" }}
<div class="cards" id="stores"> <div class="cards" id="stores">
{{range $Store := .Stores }} {{range $Store := .Stores }}
<a target="_blank" href="{{ $Store.Url }}" class="card"> <a target="_blank" href="{{ $Store.Url }}" class="card">
@ -23,7 +24,9 @@
</a> </a>
{{- end }} {{- end }}
</div> </div>
{{ end }}
{{ if eq .ActiveCard "listings" }}
<div class="cards" id="listings"> <div class="cards" id="listings">
{{range $Listing := .Listings }} {{range $Listing := .Listings }}
<a target="_blank" href="{{ $Listing.Url }}" class="card {{ if $Listing.InStock }}in-stock{{ end }}"> <a target="_blank" href="{{ $Listing.Url }}" class="card {{ if $Listing.InStock }}in-stock{{ end }}">
@ -32,6 +35,7 @@
</a> </a>
{{- end }} {{- end }}
</div> </div>
{{ end }}
</form> </form>
<script> <script>

View File

@ -13,6 +13,14 @@ import (
"github.com/pelletier/go-toml" "github.com/pelletier/go-toml"
) )
type ActiveCard string
const (
DiyHrtStores ActiveCard = "stores"
DiyHrtListings ActiveCard = "listings"
Websites ActiveCard = "websites"
)
type ServerConfig struct { type ServerConfig struct {
Port int Port int
} }
@ -31,14 +39,18 @@ type TemplateConfig struct {
Listings []diyhrt.Listing Listings []diyhrt.Listing
Stores []diyhrt.Store Stores []diyhrt.Store
ActiveCard ActiveCard
Websites []Website
} }
type Config struct{ type Config struct {
Server ServerConfig Server ServerConfig
Template TemplateConfig Template TemplateConfig
} }
func NewConfig() Config{ func NewConfig() Config {
return Config{ return Config{
Server: ServerConfig{ Server: ServerConfig{
Port: 5500, Port: 5500,
@ -60,6 +72,8 @@ func NewConfig() Config{
SearchFormAction: "https://duckduckgo.com/", SearchFormAction: "https://duckduckgo.com/",
SearchInputName: "q", SearchInputName: "q",
ActiveCard: DiyHrtListings,
StoreFilter: diyhrt.StoreFilter{ StoreFilter: diyhrt.StoreFilter{
Limit: 0, Limit: 0,
IncludeIds: []int{7}, IncludeIds: []int{7},
@ -68,6 +82,10 @@ func NewConfig() Config{
ListingFilter: diyhrt.ListingFilter{ ListingFilter: diyhrt.ListingFilter{
FromStores: []int{7}, FromStores: []int{7},
}, },
Websites: []Website{
{Url: "https://gitea.elara.ws/Hazel/transfem-startpage", Name: "Transfem Startpage", ImageUrl: "https://gitea.elara.ws/assets/img/logo.svg"},
},
}, },
} }
} }
@ -83,7 +101,6 @@ func (rc *TemplateConfig) LoadDiyHrt(listings []diyhrt.Listing) {
rc.Stores = rc.StoreFilter.Filter(slices.Collect(maps.Values(existingStores))) rc.Stores = rc.StoreFilter.Filter(slices.Collect(maps.Values(existingStores)))
} }
func (rc *Config) ScanForConfigFile(profile string) error { func (rc *Config) ScanForConfigFile(profile string) error {
profileFile := profile + ".toml" profileFile := profile + ".toml"

View File

@ -0,0 +1,7 @@
package rendering
type Website struct {
Url string
Name string
ImageUrl string
}