checkpoint: ui mostly setup for status deletion

This commit is contained in:
Dan Anglin 2024-01-17 18:55:06 +00:00
parent 6ff571a716
commit f116562a5f
Signed by: dananglin
GPG key ID: 0C1D44CFBEE68638
3 changed files with 39 additions and 24 deletions

View file

@ -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.

View file

@ -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)
}
}

View file

@ -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() {
}