From 3cfbe6585568e359bd49317147f29f1dc6c4e49b Mon Sep 17 00:00:00 2001 From: Svilen Markov <7613769+svilenmarkov@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:58:30 +0100 Subject: [PATCH] Make the first full column the primary on mobile rather than the last --- internal/assets/templates/page.html | 2 +- internal/glance/glance.go | 22 ++++++++++++++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/internal/assets/templates/page.html b/internal/assets/templates/page.html index d2cee76..18d8b85 100644 --- a/internal/assets/templates/page.html +++ b/internal/assets/templates/page.html @@ -44,7 +44,7 @@
diff --git a/internal/glance/glance.go b/internal/glance/glance.go index f47c66a..2fd1ef9 100644 --- a/internal/glance/glance.go +++ b/internal/glance/glance.go @@ -75,6 +75,7 @@ type Page struct { HideDesktopNavigation bool `yaml:"hide-desktop-navigation"` CenterVertically bool `yaml:"center-vertically"` Columns []Column `yaml:"columns"` + PrimaryColumnIndex int8 `yaml:"-"` mu sync.Mutex } @@ -140,15 +141,24 @@ func NewApplication(config *Config) (*Application, error) { } for p := range config.Pages { - if config.Pages[p].Slug == "" { - config.Pages[p].Slug = titleToSlug(config.Pages[p].Title) + page := &config.Pages[p] + page.PrimaryColumnIndex = -1 + + if page.Slug == "" { + page.Slug = titleToSlug(page.Title) } - app.slugToPage[config.Pages[p].Slug] = &config.Pages[p] + app.slugToPage[page.Slug] = page - for c := range config.Pages[p].Columns { - for w := range config.Pages[p].Columns[c].Widgets { - widget := config.Pages[p].Columns[c].Widgets[w] + for c := range page.Columns { + column := &page.Columns[c] + + if page.PrimaryColumnIndex == -1 && column.Size == "full" { + page.PrimaryColumnIndex = int8(c) + } + + for w := range column.Widgets { + widget := column.Widgets[w] app.widgetByID[widget.GetID()] = widget widget.SetProviders(providers)