Allow removing unreachable remotes from session manager
This commit is contained in:
+19
-5
@@ -412,7 +412,7 @@ def build_main_rows(
|
||||
PickerRow(
|
||||
f"retry:{entry.target}",
|
||||
"retry",
|
||||
"! 查询失败 · 单击重试",
|
||||
"! 查询失败 · Enter 重试 · d/D 移除记录",
|
||||
result.error,
|
||||
target=entry.target,
|
||||
)
|
||||
@@ -759,11 +759,20 @@ class SessionSelector:
|
||||
None,
|
||||
)
|
||||
return self._activate(row)
|
||||
if key in {"d", "D"} and self.view == "confirm-remove":
|
||||
row = next(
|
||||
(item for item in rows if item.kind == "confirm-yes"),
|
||||
None,
|
||||
)
|
||||
return self._activate(row)
|
||||
if key in {"d", "D"} and self.view == "main":
|
||||
row = self._selected_row(rows)
|
||||
if row is not None and row.deletable:
|
||||
self._show_delete_session_confirmation(row)
|
||||
return None
|
||||
if row is not None and row.kind == "retry" and row.target is not None:
|
||||
self._show_remove_confirmation(row.target)
|
||||
return None
|
||||
if row is not None and row.target is not None and row.session == "default":
|
||||
self.message = "Herdr 不支持删除 default Session"
|
||||
else:
|
||||
@@ -902,9 +911,8 @@ class SessionSelector:
|
||||
self.input_value = self.aliases.get(row.endpoint_key, "")
|
||||
self.message = ""
|
||||
elif row.kind == "remove":
|
||||
self.view = "confirm-remove"
|
||||
self.input_target = row.target
|
||||
self.selected_key = "confirm-no"
|
||||
assert row.target is not None
|
||||
self._show_remove_confirmation(row.target)
|
||||
elif row.kind == "stop-session":
|
||||
assert (
|
||||
row.window_id is not None
|
||||
@@ -1012,6 +1020,12 @@ class SessionSelector:
|
||||
self.selected_key = "delete-session-no"
|
||||
self.message = ""
|
||||
|
||||
def _show_remove_confirmation(self, target: str) -> None:
|
||||
self.view = "confirm-remove"
|
||||
self.input_target = target
|
||||
self.selected_key = "confirm-no"
|
||||
self.message = ""
|
||||
|
||||
def _finish_delete_session(
|
||||
self,
|
||||
target: str,
|
||||
@@ -1243,7 +1257,7 @@ class SessionSelector:
|
||||
line = f" {main} {detail}"
|
||||
self._safe_add(screen, y, 0, line, attribute)
|
||||
|
||||
footer = "Enter 打开 · d/D 删除停止项 · Ctrl+R 刷新 · Esc 关闭"
|
||||
footer = "Enter 打开/重试 · d/D 删除/移除 · Ctrl+R 刷新 · Esc 关闭"
|
||||
if self.view in {"working-delete-session", "working-stop-session"}:
|
||||
footer = "远端操作进行中,请稍候"
|
||||
elif self.view != "main":
|
||||
|
||||
Reference in New Issue
Block a user