From 0572763e31602fb2649348633458f98f23599bac Mon Sep 17 00:00:00 2001 From: Martin Pander Date: Tue, 4 Jun 2024 16:45:57 +0200 Subject: [PATCH] Fixes --- common/styles.go | 6 +++--- components/table/table.go | 21 ++++++++++----------- main.go | 13 ++++++++++++- pages/taskEditor.go | 6 +++++- taskwarrior/models.go | 10 ++++++++-- test/taskchampion.sqlite3 | Bin 184320 -> 196608 bytes 6 files changed, 38 insertions(+), 18 deletions(-) diff --git a/common/styles.go b/common/styles.go index 972e685..eeffda5 100644 --- a/common/styles.go +++ b/common/styles.go @@ -107,9 +107,9 @@ func NewStyles(config *taskwarrior.TWConfig) *Styles { styles.Form = formTheme - styles.ColumnFocused = lipgloss.NewStyle().Width(30).Height(50).Border(lipgloss.DoubleBorder(), true) - styles.ColumnBlurred = lipgloss.NewStyle().Width(30).Height(50).Border(lipgloss.HiddenBorder(), true) - styles.ColumnInsert = lipgloss.NewStyle().Width(30).Height(50).Border(lipgloss.DoubleBorder(), true).BorderForeground(styles.Active.GetForeground()) + styles.ColumnFocused = lipgloss.NewStyle().Width(50).Height(30).Border(lipgloss.DoubleBorder(), true) + styles.ColumnBlurred = lipgloss.NewStyle().Width(50).Height(30).Border(lipgloss.HiddenBorder(), true) + styles.ColumnInsert = lipgloss.NewStyle().Width(50).Height(30).Border(lipgloss.DoubleBorder(), true).BorderForeground(styles.Active.GetForeground()) return styles } diff --git a/components/table/table.go b/components/table/table.go index 01a41d5..3160d1a 100644 --- a/components/table/table.go +++ b/components/table/table.go @@ -190,17 +190,6 @@ func (m *Model) parseRowStyles(rows taskwarrior.Tasks) []lipgloss.Style { styles[i] = m.common.Styles.Recurring.Inherit(m.styles.Cell).Margin(m.styles.Cell.GetMargin()).Padding(m.styles.Cell.GetPadding()) continue } - // TOOD: move udas to proper location - if len(m.common.Udas) > 0 { - for _, uda := range m.common.Udas { - if u, ok := task.Udas[uda]; ok { - if style, ok := m.common.Styles.Colors[fmt.Sprintf("uda.%s.%s", uda, u)]; ok { - styles[i] = style.Inherit(m.styles.Cell).Margin(m.styles.Cell.GetMargin()).Padding(m.styles.Cell.GetPadding()) - } - } - } - continue - } // TODO: make styles optional and discard if empty if len(task.Tags) > 0 { styles[i] = m.common.Styles.Tagged.Inherit(m.styles.Cell).Margin(m.styles.Cell.GetMargin()).Padding(m.styles.Cell.GetPadding()) @@ -213,6 +202,16 @@ func (m *Model) parseRowStyles(rows taskwarrior.Tasks) []lipgloss.Style { } continue } + if len(m.common.Udas) > 0 { + for _, uda := range m.common.Udas { + if u, ok := task.Udas[uda]; ok { + if style, ok := m.common.Styles.Colors[fmt.Sprintf("uda.%s.%s", uda, u)]; ok { + styles[i] = style.Inherit(m.styles.Cell).Margin(m.styles.Cell.GetMargin()).Padding(m.styles.Cell.GetPadding()) + continue + } + } + } + } styles[i] = m.common.Styles.Base.Inherit(m.styles.Cell).Margin(m.styles.Cell.GetMargin()).Padding(m.styles.Cell.GetPadding()) } return styles diff --git a/main.go b/main.go index adabf45..17228ca 100644 --- a/main.go +++ b/main.go @@ -15,7 +15,18 @@ import ( ) func main() { - ts := taskwarrior.NewTaskSquire("./test/taskrc") + var taskrcPath string + if taskrcEnv := os.Getenv("TASKRC"); taskrcEnv != "" { + taskrcPath = taskrcEnv + } else if _, err := os.Stat(os.Getenv("HOME") + "/.taskrc"); err == nil { + taskrcPath = os.Getenv("HOME") + "/.taskrc" + } else if _, err := os.Stat(os.Getenv("HOME") + "/.config/task/taskrc"); err == nil { + taskrcPath = os.Getenv("HOME") + "/.config/task/taskrc" + } else { + log.Fatal("Unable to find taskrc file") + } + + ts := taskwarrior.NewTaskSquire(taskrcPath) ctx := context.Background() common := common.NewCommon(ctx, ts) diff --git a/pages/taskEditor.go b/pages/taskEditor.go index 71c1b88..c304316 100644 --- a/pages/taskEditor.go +++ b/pages/taskEditor.go @@ -210,8 +210,9 @@ func (p *TaskEditorPage) View() string { area = focusStyle.Render(p.areas[p.area].View()) } + return lipgloss.JoinHorizontal( - lipgloss.Left, + lipgloss.Center, picker, area, ) @@ -352,6 +353,9 @@ func NewAreaPicker(common *common.Common, items []string) *areaPicker { list := list.New(listItems, list.DefaultDelegate{}, 20, 50) list.SetFilteringEnabled(false) list.SetShowStatusBar(false) + list.SetShowHelp(false) + list.SetShowPagination(false) + list.SetShowTitle(false) return &areaPicker{ common: common, diff --git a/taskwarrior/models.go b/taskwarrior/models.go index 4cded98..0c54433 100644 --- a/taskwarrior/models.go +++ b/taskwarrior/models.go @@ -186,9 +186,15 @@ func (t *Task) GetString(fieldWFormat string) string { return t.Recur default: - slog.Error(fmt.Sprintf("Field not implemented: %s", field)) - return "" + if val, ok := t.Udas[field]; ok { + if strVal, ok := val.(string); ok { + return strVal + } + } } + + slog.Error(fmt.Sprintf("Field not implemented: %s", field)) + return "" } func (t *Task) GetDate(dateString string) time.Time { diff --git a/test/taskchampion.sqlite3 b/test/taskchampion.sqlite3 index dee8e3b45ae51f9e44bc6d4f4da8244397c2943a..637f62a64d8237d91333dedc3d62cf2806637df2 100644 GIT binary patch delta 6840 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 RY4NidDHw`aip;=!;U6N|t`GnK