diff --git a/pvesnap/recovery_ui.py b/pvesnap/recovery_ui.py index 1e12cac..ecdeba0 100644 --- a/pvesnap/recovery_ui.py +++ b/pvesnap/recovery_ui.py @@ -87,7 +87,17 @@ def _pages(win, lines, title, footer="beliebige Taste = weiter"): put(win, row + 2, 2, truncate(text, width - 4), attr) more = " (%d-%d von %d)" % (top + 1, min(top + rows, len(lines)), len(lines)) \ if len(lines) > rows else "" - fill(win, height - 1, " " + footer + more, curses.color_pair(C_FOOTER)) + # Eine Liste wird wie ueberall sonst auf die Breite umgebrochen; ein + # fester Text wuerde auf schmalen Terminals hinten abgeschnitten. + zeilen = keybar(width, footer) if isinstance(footer, list) else [footer] + if more: + # Die Seitenangabe gehoert ans Ende, egal welche Form die + # Fusszeile hat - sonst weiss man bei langen Inhalten nicht, + # dass es weitergeht. + zeilen[-1] = zeilen[-1] + more + for offset, zeile in enumerate(zeilen[-2:]): + fill(win, height - len(zeilen[-2:]) + offset, " " + zeile, + curses.color_pair(C_FOOTER)) win.refresh() key = read_key(win) if key == curses.KEY_DOWN and top + rows < len(lines): @@ -526,8 +536,11 @@ def _details(stdscr, proxmox, instance): # Laufwerk auch wieder herein. Und v gehoert hierher, weil ein # ausgeworfenes Laufwerk beim Host liegt und genau jetzt befuellt # werden will. - footer = ("s Start | h Stop | e Auswerfen/Einklinken | v Laufwerke | " - "p SPICE/USB | f Loesen | x Verwerfen | q zurueck") + footer = [("s", "Starten", "Start"), ("h", "Herunterfahren", "Stop"), + ("e", "Auswerfen/Einklinken", "Ausw."), + ("v", "Laufwerke", "Laufw."), ("p", "SPICE/USB", "SPICE"), + ("f", "Loesen", "Loesen"), ("x", "Verwerfen", "Verw."), + ("q", "zurueck", "zurueck")] key = _pages(stdscr, lines, "Wiederherstellung %s" % instance.label, footer) if key in ("q", "\x1b") or is_escape(key):