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