GUI: Update main window header disposition

This commit is contained in:
deajan 2025-01-25 17:25:00 +01:00
parent f582f52447
commit b4c3481d59
6 changed files with 74 additions and 70 deletions

View file

@ -593,7 +593,7 @@ def _main_gui(viewer_mode: bool):
def gui_update_state() -> None:
nonlocal current_state
nonlocal backup_tz
nonlocal backend_type
nonlocal repo_type
nonlocal snapshot_list
if current_state:
@ -618,7 +618,7 @@ def _main_gui(viewer_mode: bool):
window["--STATE-BUTTON--"].Update(
_t("generic.not_connected_yet"), button_color=GUI_STATE_UNKNOWN_BUTTON
)
window["-backend_type-"].Update(backend_type)
window["-repo_type-"].Update(repo_type)
window["snapshot-list"].Update(snapshot_list)
def get_gui_data(repo_config: dict) -> Tuple[bool, List[str]]:
@ -751,11 +751,11 @@ def _main_gui(viewer_mode: bool):
full_config, repo_name=repo_name
)
backup_destination = _t("main_gui.local_folder")
backend_type, repo_uri = get_anon_repo_uri(repo_config.g("repo_uri"))
repo_type, repo_uri = get_anon_repo_uri(repo_config.g("repo_uri"))
else:
repo_config = None
backup_destination = "None"
backend_type = "None"
repo_type = "None"
repo_uri = "None"
repo_list = npbackup.configuration.get_repo_list(full_config)
@ -775,7 +775,7 @@ def _main_gui(viewer_mode: bool):
config_file,
repo_config,
backup_destination,
backend_type,
repo_type,
repo_uri,
repo_list,
)
@ -866,7 +866,7 @@ def _main_gui(viewer_mode: bool):
repo_config = None
config_file = None
full_config = None
backend_type = None
repo_type = None
repo_list = []
else:
(
@ -874,7 +874,7 @@ def _main_gui(viewer_mode: bool):
config_file,
repo_config,
_,
backend_type,
repo_type,
_,
repo_list,
) = get_config(config_file=config_file, repo_name=args.repo_name)
@ -894,60 +894,62 @@ def _main_gui(viewer_mode: bool):
[
[
sg.Column(
[[sg.Image(data=OEM_LOGO)]], vertical_alignment="top"
[[sg.Image(data=OEM_LOGO)]], vertical_alignment="middle"
),
sg.Column(
[
[sg.Text(OEM_STRING, font="Arial 14")],
(
[sg.Text(_t("main_gui.viewer_mode"))]
if viewer_mode
else []
),
[
sg.Text("{} ".format(_t("main_gui.backup_state"))),
sg.Text("", key="-backend_type-"),
sg.Text(OEM_STRING, font="Arial 14")
],
[
sg.Text(_t("main_gui.viewer_mode"))
] if viewer_mode
else [],
[
sg.Text(
_t("main_gui.no_config"),
font=("Arial", 14),
text_color="red",
key="-NO-CONFIG-",
visible=False,
)
]
if not viewer_mode
else []
],
justification="C",
element_justification="C",
vertical_alignment="top",
),
sg.Column(
[
[
sg.Text(_t("main_gui.backup_state"), size=(20, 1)),
sg.Button(
_t("generic.refresh"),
key="--STATE-BUTTON--",
button_color=("white", "grey"),
)
],
],
justification="C",
element_justification="C",
vertical_alignment="top",
),
[
sg.Text(_t("main_gui.backup_list_to"), size=(20, 1)),
sg.Combo(
repo_list,
key="-active_repo-",
default_value=repo_list[0] if repo_list else None,
enable_events=True,
size=(20, 1),
),
]
if not viewer_mode
else [],
[
sg.Text(_t("main_gui.repo_type"), size=(20, 1)),
sg.Text("", key="-repo_type-"),
],
]
)
],
(
[
sg.Text(
_t("main_gui.no_config"),
font=("Arial", 14),
text_color="red",
key="-NO-CONFIG-",
visible=False,
)
]
if not viewer_mode
else []
),
(
[
sg.Text(_t("main_gui.backup_list_to")),
sg.Combo(
repo_list,
key="-active_repo-",
default_value=repo_list[0] if repo_list else None,
enable_events=True,
size=(20, 1),
),
]
if not viewer_mode
else []
),
[
sg.Table(
values=[[]],
@ -1129,7 +1131,7 @@ def _main_gui(viewer_mode: bool):
_config_file,
_repo_config,
_backup_destination,
_backend_type,
_repo_type,
_repo_uri,
_repo_list,
) = get_config(window=window, config_file=cfg_file)
@ -1138,7 +1140,7 @@ def _main_gui(viewer_mode: bool):
config_file = _config_file
repo_config = _repo_config
_ = _backup_destination
backend_type = _backend_type
repo_type = _repo_type
_ = _repo_uri
repo_list = _repo_list
else:
@ -1152,8 +1154,8 @@ def _main_gui(viewer_mode: bool):
event = "--STATE-BUTTON--"
if event == _t("generic.destination"):
try:
if backend_type:
if backend_type in ["REST", "SFTP"]:
if repo_type:
if repo_type in ["REST", "SFTP"]:
destination_string = repo_config.g("repo_uri").split("@")[-1]
else:
destination_string = repo_config.g("repo_uri")

View file

@ -50,16 +50,16 @@ def get_anon_repo_uri(repository: str) -> Tuple[str, str]:
"""
if not repository:
return "UNDEFINED", None
backend_type = repository.split(":")[0].upper()
if backend_type.upper() in ["REST", "SFTP"]:
repo_type = repository.split(":")[0].upper()
if repo_type.upper() in ["REST", "SFTP"]:
res = re.match(
r"(sftp|rest)(.*:\/\/)(.*):?(.*)@(.*)", repository, re.IGNORECASE
)
if res:
backend_uri = res.group(1) + res.group(2) + res.group(5)
repo_uri = res.group(1) + res.group(2) + res.group(5)
else:
backend_uri = repository
elif backend_type.upper() in [
repo_uri = repository
elif repo_type.upper() in [
"S3",
"B2",
"SWIFT",
@ -67,11 +67,11 @@ def get_anon_repo_uri(repository: str) -> Tuple[str, str]:
"GS",
"RCLONE",
]:
backend_uri = repository
repo_uri = repository
else:
backend_type = "LOCAL"
backend_uri = repository
return backend_type, backend_uri
repo_type = "LOCAL"
repo_uri = repository
return repo_type, repo_uri
def gui_thread_runner(

View file

@ -47,12 +47,12 @@ def gui_update_state(window, full_config: dict, unencrypted: str = None) -> list
repo_config.g("repo_opts.repo_password")
or repo_config.g("repo_opts.repo_password_command")
):
backend_type, repo_uri = get_anon_repo_uri(repo_config.g("repo_uri"))
repo_type, repo_uri = get_anon_repo_uri(repo_config.g("repo_uri"))
repo_group = repo_config.g("repo_group")
if not unencrypted and unencrypted != repo_name:
repo_uri = ENCRYPTED_DATA_PLACEHOLDER
repo_and_group_list.append(
gui_object("repo", repo_name, repo_group, backend_type, repo_uri)
gui_object("repo", repo_name, repo_group, repo_type, repo_uri)
)
else:
logger.warning("Incomplete URI/password for repo {}".format(repo_name))

View file

@ -84,11 +84,11 @@ class ResticRunner:
"GZ",
"RCLONE",
]:
self._backend_type = backend.lower()
self._repo_type = backend.lower()
else:
self._backend_type = "local"
self._repo_type = "local"
except AttributeError:
self._backend_type = None
self._repo_type = None
self._ignore_cloud_files = True
self._additional_parameters = None
self._environment_variables = {}
@ -119,7 +119,7 @@ class ResticRunner:
self.password = None
if self.repository:
try:
if self._backend_type == "local":
if self._repo_type == "local":
self.repository = os.path.expanduser(self.repository)
self.repository = os.path.expandvars(self.repository)
os.environ["RESTIC_REPOSITORY"] = str(self.repository)
@ -482,7 +482,7 @@ class ResticRunner:
if value > 0:
self._backend_connections = value
elif value == 0:
if self._backend_type == "local":
if self._repo_type == "local":
self._backend_connections = 2
else:
self._backend_connections = 8
@ -559,9 +559,9 @@ class ResticRunner:
args += " --limit-upload {}".format(self.limit_upload)
if self.limit_download:
args += " --limit-download {}".format(self.limit_download)
if self.backend_connections and self._backend_type != "local":
if self.backend_connections and self._repo_type != "local":
args += " -o {}.connections={}".format(
self._backend_type, self.backend_connections
self._repo_type, self.backend_connections
)
if self.verbose:
args += " -vv"

View file

@ -15,6 +15,7 @@ en:
only_include: Only include
destination_folder: Destination folder
backup_state: Backup state
repo_type: Repo type
backup_list_to: List of backups to repo
local_folder: Local folder
external_server: external server

View file

@ -15,6 +15,7 @@ fr:
only_include: Inclure seulement
destination_folder: Dossier de destination
backup_state: Etat de sauvegarde
repo_type: Type de dépot
backup_list_to: Liste des sauvegardes vers le dépot
local_folder: Dossier local
external_server: serveur externalisé