add del confirmation dialog
parent
9e5583e99b
commit
58358a3f2d
|
|
@ -80,36 +80,6 @@ func (v *podView) logsCmd(evt *tcell.EventKey) *tcell.EventKey {
|
|||
return nil
|
||||
}
|
||||
|
||||
// func (v *podView) logsCmd(evt *tcell.EventKey) *tcell.EventKey {
|
||||
// if !v.rowSelected() {
|
||||
// return evt
|
||||
// }
|
||||
|
||||
// previous := false
|
||||
// if evt.Rune() == 'p' {
|
||||
// log.Debug("Previous logs detected")
|
||||
// previous = true
|
||||
// }
|
||||
|
||||
// cc, err := fetchContainers(v.list, v.selectedItem, true)
|
||||
// if err != nil {
|
||||
// v.app.flash(flashErr, err.Error())
|
||||
// log.Error("Error fetching containers", err)
|
||||
// return evt
|
||||
// }
|
||||
// if len(cc) == 1 {
|
||||
// v.showLogs(v.selectedItem, "", previous)
|
||||
// } else {
|
||||
// p := v.GetPrimitive("choose").(*selectList)
|
||||
// p.populate(cc)
|
||||
// p.SetSelectedFunc(func(i int, t, d string, r rune) {
|
||||
// v.showLogs(v.selectedItem, t, previous)
|
||||
// })
|
||||
// v.switchPage("choose")
|
||||
// }
|
||||
// return evt
|
||||
// }
|
||||
|
||||
func (v *podView) shellCmd(evt *tcell.EventKey) *tcell.EventKey {
|
||||
if !v.rowSelected() {
|
||||
return evt
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ type (
|
|||
app *appView
|
||||
title string
|
||||
selectedItem string
|
||||
selectedRow int
|
||||
namespaces map[int]string
|
||||
selectedNS string
|
||||
update sync.Mutex
|
||||
|
|
@ -62,6 +63,12 @@ func newResourceView(title string, app *appView, list resource.List, c colorerFn
|
|||
|
||||
details := newDetailsView(app, v.backCmd)
|
||||
v.AddPage("details", details, true, false)
|
||||
|
||||
confirm := tview.NewModal().
|
||||
AddButtons([]string{"OK", "Cancel"}).
|
||||
SetTextColor(tcell.ColorFuchsia)
|
||||
v.AddPage("confirm", confirm, false, false)
|
||||
|
||||
return &v
|
||||
}
|
||||
|
||||
|
|
@ -93,6 +100,7 @@ func (v *resourceView) getTitle() string {
|
|||
}
|
||||
|
||||
func (v *resourceView) selChanged(r, c int) {
|
||||
v.selectedRow = r
|
||||
v.selectItem(r, c)
|
||||
v.getTV().cmdBuff.setActive(false)
|
||||
}
|
||||
|
|
@ -133,13 +141,24 @@ func (v *resourceView) deleteCmd(evt *tcell.EventKey) *tcell.EventKey {
|
|||
if !v.rowSelected() {
|
||||
return evt
|
||||
}
|
||||
v.getTV().setDeleted()
|
||||
|
||||
sel := v.getSelectedItem()
|
||||
confirm := v.GetPrimitive("confirm").(*tview.Modal)
|
||||
confirm.SetText(fmt.Sprintf("Delete %s %s?", v.list.GetName(), sel))
|
||||
confirm.SetDoneFunc(func(_ int, button string) {
|
||||
if button == "OK" {
|
||||
v.getTV().setDeleted()
|
||||
v.app.flash(flashInfo, fmt.Sprintf("Deleting %s %s", v.list.GetName(), sel))
|
||||
if err := v.list.Resource().Delete(sel); err != nil {
|
||||
v.app.flash(flashErr, "Boom!", err.Error())
|
||||
} else {
|
||||
v.refresh()
|
||||
}
|
||||
v.selectedItem = noSelection
|
||||
}
|
||||
v.switchPage(v.list.GetName())
|
||||
})
|
||||
v.SwitchToPage("confirm")
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -251,7 +270,7 @@ func (v *resourceView) refresh() {
|
|||
data = v.decorateDataFn(data)
|
||||
}
|
||||
v.getTV().update(data)
|
||||
|
||||
v.selectItem(v.selectedRow, 0)
|
||||
v.refreshActions()
|
||||
v.app.infoView.refresh()
|
||||
v.app.Draw()
|
||||
|
|
@ -267,12 +286,12 @@ func (v *resourceView) getTV() *tableView {
|
|||
}
|
||||
|
||||
func (v *resourceView) selectItem(r, c int) {
|
||||
if r == 0 {
|
||||
t := v.getTV()
|
||||
if r == 0 || t.GetCell(r, 0) == nil {
|
||||
v.selectedItem = noSelection
|
||||
return
|
||||
}
|
||||
|
||||
t := v.getTV()
|
||||
switch v.list.GetNamespace() {
|
||||
case resource.NotNamespaced:
|
||||
v.selectedItem = strings.TrimSpace(t.GetCell(r, 0).Text)
|
||||
|
|
|
|||
Loading…
Reference in New Issue