Add confirmation popup when delete
This commit is contained in:
parent
2044c33ee3
commit
7b74528cca
29
kls
29
kls
|
@ -219,6 +219,31 @@ def handle_horizontal_navigation(key: str, menu: Menu):
|
|||
globals().update(selected_menu=next_menu)
|
||||
|
||||
|
||||
def confirm_action(message: str) -> bool:
|
||||
"""Display a confirmation popup and return True if the user confirms."""
|
||||
rows, cols = SCREEN.getmaxyx() # Get screen size
|
||||
popup_height = 5
|
||||
popup_width = len(message) + 10
|
||||
start_y = (rows - popup_height) // 2
|
||||
start_x = (cols - popup_width) // 2
|
||||
|
||||
# Create a new window for the popup
|
||||
popup = curses.newwin(popup_height, popup_width, start_y, start_x)
|
||||
popup.box() # Draw a border around the popup
|
||||
popup.addstr(2, 2, message) # Display the message
|
||||
popup.addstr(3, 2, "Press 'y' to confirm, 'n' to cancel")
|
||||
|
||||
# Refresh the popup window and wait for input
|
||||
popup.refresh()
|
||||
while True:
|
||||
key = popup.getkey() # Wait for a key press
|
||||
if key.lower() == 'y':
|
||||
return True
|
||||
elif key.lower() == 'n':
|
||||
return False
|
||||
|
||||
|
||||
|
||||
def catch_input(menu: Menu):
|
||||
while True: # refresh third menu until key pressed
|
||||
try:
|
||||
|
@ -233,9 +258,9 @@ def catch_input(menu: Menu):
|
|||
handle_vertical_navigation(key, menu)
|
||||
elif key == "KEY_MOUSE":
|
||||
handle_mouse(menu)
|
||||
elif key in KEY_BINDINGS.keys():
|
||||
elif key == "KEY_DC" and confirm_action("Are you sure you want to delete this resource?"):
|
||||
handle_key_bindings(key, namespace(), api_resource(), resource())
|
||||
elif curses.ascii.unctrl(key) in KEY_BINDINGS.keys():
|
||||
elif key != "KEY_DC" and curses.ascii.unctrl(key) in KEY_BINDINGS.keys():
|
||||
handle_key_bindings(curses.ascii.unctrl(key), namespace(), api_resource(), resource())
|
||||
elif key in ["/", "\x1b", "KEY_BACKSPACE",
|
||||
"\x08"] or key.isalnum() or key == "-": # \x1b - escape, \x08 - backspace
|
||||
|
|
Loading…
Reference in New Issue