diff --git a/config/default_workflow.yaml b/config/default_workflow.yaml index 68b63c5..8e8afe2 100644 --- a/config/default_workflow.yaml +++ b/config/default_workflow.yaml @@ -48,6 +48,12 @@ views: - key: "Y" label: "Copy content" action: select title, description where id = id() | clipboard() + - key: "+" + label: "Priority up" + action: update where id = id() set priority = priority - 1 + - key: "-" + label: "Priority down" + action: update where id = id() set priority = priority + 1 plugins: - name: Kanban description: "Move tiki to new status, search, create or delete" diff --git a/controller/actions.go b/controller/actions.go index c73747c..07e72f3 100644 --- a/controller/actions.go +++ b/controller/actions.go @@ -272,7 +272,7 @@ func DefaultGlobalActions() *ActionRegistry { r.Register(Action{ID: ActionQuit, Key: tcell.KeyRune, Rune: 'q', Label: "Quit", ShowInHeader: true}) r.Register(Action{ID: ActionRefresh, Key: tcell.KeyRune, Rune: 'r', Label: "Refresh", ShowInHeader: true}) r.Register(Action{ID: ActionToggleHeader, Key: tcell.KeyF10, Label: "Toggle Header", ShowInHeader: true}) - r.Register(Action{ID: ActionOpenPalette, Key: tcell.KeyRune, Rune: '?', Label: "Actions", ShowInHeader: false, HideFromPalette: true}) + r.Register(Action{ID: ActionOpenPalette, Key: tcell.KeyRune, Rune: '?', Label: "All", ShowInHeader: true, HideFromPalette: true}) return r } diff --git a/controller/actions_test.go b/controller/actions_test.go index 8aed9ba..5f004a3 100644 --- a/controller/actions_test.go +++ b/controller/actions_test.go @@ -419,11 +419,14 @@ func TestDefaultGlobalActions(t *testing.T) { } } - // ActionOpenPalette should NOT show in header + // ActionOpenPalette should show in header with label "All" for _, a := range actions { if a.ID == ActionOpenPalette { - if a.ShowInHeader { - t.Error("ActionOpenPalette should have ShowInHeader=false") + if !a.ShowInHeader { + t.Error("ActionOpenPalette should have ShowInHeader=true") + } + if a.Label != "All" { + t.Errorf("ActionOpenPalette label = %q, want %q", a.Label, "All") } continue } diff --git a/store/tikistore/persistence.go b/store/tikistore/persistence.go index b151d14..c1df82e 100644 --- a/store/tikistore/persistence.go +++ b/store/tikistore/persistence.go @@ -121,10 +121,12 @@ func (s *TikiStore) loadTaskFile(path string, authorMap map[string]*git.AuthorIn return nil, err } - // validate type strictly — missing or unknown types are load errors taskType, typeOK := taskpkg.ParseType(fm.Type) if !typeOK { - return nil, fmt.Errorf("invalid or missing type %q", fm.Type) + if fm.Type != "" { + return nil, fmt.Errorf("unknown type %q", fm.Type) + } + taskType = taskpkg.DefaultType() } task := &taskpkg.Task{ diff --git a/workflows/bug-tracker/workflow.yaml b/workflows/bug-tracker/workflow.yaml index 5bc9b52..68dceec 100644 --- a/workflows/bug-tracker/workflow.yaml +++ b/workflows/bug-tracker/workflow.yaml @@ -68,6 +68,12 @@ views: - key: "Y" label: "Copy content" action: select title, description where id = id() | clipboard() + - key: "+" + label: "Priority up" + action: update where id = id() set priority = priority - 1 + - key: "-" + label: "Priority down" + action: update where id = id() set priority = priority + 1 - key: "R" label: "Mark regression" action: update where id = id() set regression=true diff --git a/workflows/kanban/workflow.yaml b/workflows/kanban/workflow.yaml index 9adcd4b..e9b3d2b 100644 --- a/workflows/kanban/workflow.yaml +++ b/workflows/kanban/workflow.yaml @@ -49,6 +49,12 @@ views: - key: "Y" label: "Copy content" action: select title, description where id = id() | clipboard() + - key: "+" + label: "Priority up" + action: update where id = id() set priority = priority - 1 + - key: "-" + label: "Priority down" + action: update where id = id() set priority = priority + 1 plugins: - name: Kanban description: "Move tiki to new status, search, create or delete"