diff --git a/internal/ui/init.go b/internal/ui/init.go index 7339d32..72eb7fa 100644 --- a/internal/ui/init.go +++ b/internal/ui/init.go @@ -47,23 +47,28 @@ func (a *App) initCardForm() { a.cardForm.setDoneFunc(doneFunc) } -// initDeleteCardModal initialises the modal for deleting cards. -func (a *App) initDeleteCardModal() { +// initDeleteModal initialises the modal for deleting cards or statuses. +func (a *App) initDeleteModal() { doneFunc := func(_ int, buttonLabel string) { if buttonLabel == "Confirm" { - a.deleteFocusedCard() + switch a.mode { + case normal: + a.deleteFocusedCard() + case boardEdit: + a.deleteFocusedStatusColumn() + } } - a.pages.HidePage(deleteCardModalPage) + a.pages.HidePage(deleteModalPage) a.setColumnFocus() } - a.deleteCardModal.AddButtons([]string{"Confirm", "Cancel"}).SetDoneFunc(doneFunc) + a.deleteModal.AddButtons([]string{"Cancel", "Confirm"}).SetDoneFunc(doneFunc) - a.deleteCardModal.SetBorder(true).SetBorderColor(tcell.ColorOrangeRed) - a.deleteCardModal.SetBackgroundColor(tcell.ColorBlack.TrueColor()) - a.deleteCardModal.SetButtonBackgroundColor(tcell.ColorBlueViolet.TrueColor()) - a.deleteCardModal.SetTextColor(tcell.ColorWhite.TrueColor()) + a.deleteModal.SetBorder(true).SetBorderColor(tcell.ColorOrangeRed) + a.deleteModal.SetBackgroundColor(tcell.ColorBlack.TrueColor()) + a.deleteModal.SetButtonBackgroundColor(tcell.ColorBlueViolet.TrueColor()) + a.deleteModal.SetTextColor(tcell.ColorWhite.TrueColor()) } // initQuitModal initialises the quit modal. diff --git a/internal/ui/keymappings.go b/internal/ui/keymappings.go index cbc03d9..0a021d5 100644 --- a/internal/ui/keymappings.go +++ b/internal/ui/keymappings.go @@ -87,16 +87,22 @@ func (a *App) edit() { } func (a *App) delete() { - if a.mode == normal { + switch a.mode { + case normal: card, ok := a.getFocusedCard() if !ok { return } - text := fmt.Sprintf("Do you want to delete '%s'?", card.Title) - a.deleteCardModal.SetText(text) - a.pages.ShowPage(deleteCardModalPage) - a.SetFocus(a.deleteCardModal) + text := fmt.Sprintf("Do you want to delete the CARD %q?", card.Title) + a.deleteModal.SetText(text) + a.pages.ShowPage(deleteModalPage) + a.SetFocus(a.deleteModal) + case boardEdit: + text := fmt.Sprintf("Do you want to delete the STATUS %q?", a.focusedStatusName()) + a.deleteModal.SetText(text) + a.pages.ShowPage(deleteModalPage) + a.SetFocus(a.deleteModal) } } diff --git a/internal/ui/ui.go b/internal/ui/ui.go index 9d4ab8b..b60eee2 100644 --- a/internal/ui/ui.go +++ b/internal/ui/ui.go @@ -19,12 +19,12 @@ const ( ) const ( - mainPage string = "main" - quitPage string = "quit" - cardFormPage string = "card form" - deleteCardModalPage string = "delete card modal" - viewPage string = "view" - statusFormPage string = "status form" + mainPage string = "main" + quitPage string = "quit" + cardFormPage string = "card form" + deleteModalPage string = "delete modal" + viewPage string = "view" + statusFormPage string = "status form" ) const ( @@ -51,7 +51,7 @@ type App struct { modeView *modeView quitModal *tview.Modal cardForm *cardForm - deleteCardModal *tview.Modal + deleteModal *tview.Modal statusSelection statusSelection cardView *cardView statusbar *statusbar @@ -75,7 +75,7 @@ func NewApp(path string) (App, error) { focusedColumn: 0, columns: nil, board: kanban, - deleteCardModal: tview.NewModal(), + deleteModal: tview.NewModal(), mode: normal, modeView: newModeView(), statusSelection: statusSelection{0, 0, 0}, @@ -108,8 +108,8 @@ func (a *App) Init() error { a.initCardForm() a.pages.AddPage(cardFormPage, a.cardForm, false, false) - a.initDeleteCardModal() - a.pages.AddPage(deleteCardModalPage, a.deleteCardModal, false, false) + a.initDeleteModal() + a.pages.AddPage(deleteModalPage, a.deleteModal, false, false) a.initCardView() a.pages.AddPage(viewPage, a.cardView, false, false) @@ -366,3 +366,7 @@ func (a *App) saveNewStatus(name string) { a.refresh(refreshArgs{updateFocusedColumnOnly: false, reinitialiseColumns: true}) } + +// TODO +func (a *App) deleteFocusedStatusColumn() { +}