feat: add a compact job list view to the Jobs tab

Each job can now render as a single line — name on the left, status on the
right — instead of the three-line block, so many more jobs fit without
scrolling. A toggle button beside the Folder filter switches between the two
modes and is labelled with the action it performs, matching the existing
"Disable auto" convention.

The choice is persisted as Config.JobListView ("detailed" / "compact", stored
as job_list_view in gosentry.json). Empty, legacy, and unrecognised values all
normalize to detailed, so existing installs keep the current look and the file
never gains a value no reader understands.

Selection, the details panel, the folder filter, and live status updates work
unchanged in both modes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
mixeme
2026-07-26 22:14:06 +03:00
parent e85cbc4eb1
commit 29ce94c3e8
11 changed files with 433 additions and 9 deletions
+10 -3
View File
@@ -11,10 +11,13 @@ import (
"fyne.io/fyne/v2/test"
)
func newTestService(t *testing.T) *app.Service {
// newTestStore builds a Store rooted in a temp directory. It is separate from
// newTestService so tests that need a non-default Config (or their own jobs)
// can adjust it before handing it to app.NewService.
func newTestStore(t *testing.T) *storage.Store {
t.Helper()
dir := t.TempDir()
store := &storage.Store{
return &storage.Store{
Paths: storage.Paths{
ExecutablePath: filepath.Join(dir, "gosentry"),
AppDir: dir,
@@ -35,7 +38,11 @@ func newTestService(t *testing.T) *app.Service {
NotifyOnFailure: true,
},
}
return app.NewService(store, nil)
}
func newTestService(t *testing.T) *app.Service {
t.Helper()
return app.NewService(newTestStore(t), nil)
}
func TestMainViewBuilds(t *testing.T) {