Skip to content
Open
Changes from 5 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
6abd0f5
added peewee to requirements.d/dev.txt
SAMAD101 Sep 1, 2023
7b80066
removed peewee from requirements: not necessary
SAMAD101 Sep 6, 2023
5f07abd
Merge branch 'borgbase:master' into master
SAMAD101 Sep 6, 2023
b4f2e64
Merge branch 'borgbase:master' into master
SAMAD101 Sep 9, 2023
55ede38
some enhancements to ExistingRepoWindow: to allow creation of a new r…
SAMAD101 Sep 9, 2023
690d837
added qmessagebox for an extra alert
SAMAD101 Sep 12, 2023
e8afe15
added qmessagebox
SAMAD101 Sep 12, 2023
44639da
added differentiation for adding repo via folder and remote, implemen…
SAMAD101 Sep 15, 2023
7023ab6
added differentiation for adding repo via folder and remote, implemen…
SAMAD101 Sep 15, 2023
780082e
shortened
SAMAD101 Sep 19, 2023
92cc9ae
Merge branch 'borgbase:master' into issue1799
SAMAD101 Sep 20, 2023
0ec083e
Merge branch 'borgbase:master' into issue1799
SAMAD101 Sep 29, 2023
b0ec304
Merge branch 'borgbase:master' into issue1799
SAMAD101 Oct 5, 2023
45176f8
Simplify code, make it more modular.
real-yfprojects Oct 6, 2023
f71c8f8
Store full error (log) messages for borg jobs and fix new feature.
real-yfprojects Oct 6, 2023
cff9e3a
Pass is_remote_repo attribute between the dialog.
real-yfprojects Oct 20, 2023
1b57400
Merge branch 'borgbase:master' into issue1799
SAMAD101 Nov 8, 2023
75f276e
Merge branch 'borgbase:master' into issue1799
SAMAD101 Nov 17, 2023
115ec28
Merge branch 'master' into issue1799
m3nu Jan 9, 2024
d332042
Merge branch 'borgbase:master' into issue1799
SAMAD101 Jan 11, 2024
88cb2dc
Merge branch 'borgbase:master' into issue1799
SAMAD101 Feb 22, 2024
41ea359
fix for remote repos
SAMAD101 Feb 25, 2024
978304f
Merge branch 'master' into issue1799
real-yfprojects Apr 1, 2024
49bfe55
Merge branch 'borgbase:master' into issue1799
SAMAD101 Apr 1, 2024
3c3c197
Merge branch 'master' into issue1799
SAMAD101 May 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 38 additions & 4 deletions src/vorta/views/repo_add_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from vorta.borg.info_repo import BorgInfoRepoJob
from vorta.borg.init import BorgInitJob
from vorta.keyring.abc import VortaKeyring
from vorta.store.models import RepoModel
from vorta.store.models import BackupProfileMixin, RepoModel
from vorta.utils import borg_compat, choose_file_dialog, get_asset, get_private_keys
from vorta.views.partials.password_input import PasswordInput, PasswordLineEdit
from vorta.views.utils import get_colored_icon
Expand Down Expand Up @@ -223,7 +223,7 @@ def run(self):
self._set_status(params['message'])


class ExistingRepoWindow(RepoWindow):
class ExistingRepoWindow(RepoWindow, BackupProfileMixin):
def __init__(self):
super().__init__()
self.title.setText(self.tr('Connect to existing Repository'))
Expand All @@ -233,12 +233,46 @@ def __init__(self):
self.passwordInput = PasswordLineEdit()
self.repoDataFormLayout.addRow(self.passwordLabel, self.passwordInput)

def run_result(self, result):
self.saveButton.setEnabled(True)
if result['returncode'] == 0:
self.added_repo.emit(result)
self.accept()
else:
self._set_status(self.tr('Unable to add your repository.\nYou need to initialize a new repository.'))
self.initialize_new_repo_window()

def initialize_new_repo_window(self):
new_window = AddRepoWindow()
new_window.setParent(self, QtCore.Qt.WindowType.Sheet)
new_window.added_repo.connect(self.process_new_repo)

# Autofilling of fields from this previous window
new_window.repoURL.setText(self.values['repo_url'])
new_window.repoName.setText(self.values['repo_name'])
new_window.set_password(new_window.values['repo_url'])
new_window.passwordInput.passwordLineEdit.setText(self.passwordInput.get_password())
new_window.passwordInput.confirmLineEdit.setText(self.passwordInput.get_password())
new_window._set_status(self.tr("Autofilled from previous window"))
new_window.open()

def process_new_repo(self, result):
if result['returncode'] == 0:
new_repo = RepoModel.get(url=result['params']['repo_url'])
profile = self.profile()
profile.repo = new_repo.id
profile.save()

self.set_repos()
self.repoSelector.setCurrentIndex(self.repoSelector.count() - 1)
self.repo_added.emit()
self.init_repo_stats()

def set_password(self, URL):
'''Autofill password from keyring only if current entry is empty'''
password = VortaKeyring.get_keyring().get_password('vorta-repo', URL)
if password and self.passwordInput.get_password() == "":
self._set_status(self.tr("Autofilled password from password manager."))
self.passwordInput.setText(password)
self.passwordInput.set_error_label(self.tr("Autofilled password from password manager."))

def run(self):
if self.validate():
Expand Down