From 1f9da7ee780a8530d4c740420788c35ea9de6e4c Mon Sep 17 00:00:00 2001 From: NeilClack Date: Mon, 11 May 2026 12:55:16 -0500 Subject: [PATCH] Attempt to fix proclamation sync internal/sync/sync.go: Return proclamations after updating. internal/page/proclamationOptions: Handle sync return value and fallback to db if empty --- internal/page/proclamationOptions.go | 19 +++++++++---------- internal/sync/sync.go | 2 ++ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/internal/page/proclamationOptions.go b/internal/page/proclamationOptions.go index dc2e53b..9f94f5c 100644 --- a/internal/page/proclamationOptions.go +++ b/internal/page/proclamationOptions.go @@ -81,9 +81,15 @@ func (p *ProclamationOptions) Init(ctx *PageCtx) error { p.isSearchActive = false p.scrollTrackWidth = 30 p.scrollTrackX = p.ScreenWidth - p.scrollTrackWidth - + var err error + // Syncronize proclamations first - sync.SyncProclamations(ctx.DbPtr) + var allProcs []db.Proclamation + allProcs, err = sync.SyncProclamations(ctx.DbPtr) + if err != nil { + // sync failed, fallback to database + ctx.DbPtr.Find(&allProcs) + } fm := fontManager.Get() font, _ := fm.GetFont("Roboto-Regular") @@ -108,7 +114,7 @@ func (p *ProclamationOptions) Init(ctx *PageCtx) error { // Load current selections var selected []db.Proclamation - p.Context.DbPtr.Where("selected = ?", true).Where("id != ?", defaultProclamationID).Find(&selected) + ctx.DbPtr.Where("selected = ?", true).Where("id != ?", defaultProclamationID).Find(&selected) for _, s := range selected { if s.ID == defaultProclamationID { logger.Debug("Found default proclamation in selected list: %s", s.ID) @@ -116,13 +122,6 @@ func (p *ProclamationOptions) Init(ctx *PageCtx) error { p.activeMap[s.ID] = true } - // Load ALL proclamations into a lookup map for SearchText population - var allProcs []db.Proclamation - if err := p.Context.DbPtr.Where("id != ?", defaultProclamationID).Find(&allProcs).Error; err != nil { - logger.Error("Failed to fetch proclamations: %s", err) - return err - } - procContentMap := make(map[string]string, len(allProcs)) for _, pr := range allProcs { if pr.ID == defaultProclamationID { diff --git a/internal/sync/sync.go b/internal/sync/sync.go index 2fd3951..1d27636 100644 --- a/internal/sync/sync.go +++ b/internal/sync/sync.go @@ -33,6 +33,7 @@ func SyncProclamations(database *gorm.DB) ([]db.Proclamation, error) { var storedProclamationSettings []db.Proclamation database.Select("ID", "Selected").Find(&storedProclamationSettings) + // [ID]Selected stash := make(map[string]bool) for _, row := range storedProclamationSettings { @@ -76,6 +77,7 @@ func SyncProclamations(database *gorm.DB) ([]db.Proclamation, error) { return err } + // Return nil as err for this statement, does not exit the function return nil })