1
0
Fork 0
mirror of https://github.com/borgbase/vorta synced 2024-12-22 07:43:09 +00:00
Commit graph

821 commits

Author SHA1 Message Date
jetchirag
25b4cc0b8b
Introduced password input widget (#1662)
Move existing code for password input widgets into common classes to increase maintainability and reusability alongside reducing redundancy. This implements a `PasswordLineEdit` that can show a red border when an invalid password is entered. It also features a button for showing/hiding the password entered. When combining two of these entries for setting a new password `PasswordInput` can be used from now on. It combines a form for entering and confirming a password with a label to show a message when there is an issue with the password. It also checks the entered password against some rules regarding its length. This PR replaces existing widgets for entering passwords with these two new widgets.

* src/vorta/views/partials/password_input.py : Implement common input widgets/classes

* src/vorta/views/repo_add_dialog.py : Use new widgets.
* src/vorta/assets/UI/repoadd.ui : ^^^
2023-07-28 07:39:10 +00:00
Divyansh Singh
157ac373a9
Run actions on multiple archives. By @diivi (#1723) 2023-07-05 11:28:09 +01:00
yfprojects
ec1dfcd803
Add profile name to error notification. (#1728)
In a similar fashion like #1637 the commit adds the profile name to the error notification.

* src/vorta/scheduler.py

Co-authored-by: herrwusel <herrwusel@noreply.github.com>
2023-06-28 19:25:08 +00:00
Punyam Singh
d087654eb3
Update GSoC notice in README (#1739)
* README.md
2023-06-27 09:30:41 +00:00
Manu
50be34cabe
Use maintained stale action (#1737) 2023-06-25 21:53:29 +01:00
Divyansh Singh
92608f9eaa
Assign names to repos. By @diivi (#1665) 2023-06-24 20:57:46 +01:00
Divyansh Singh
f76195e47d
Disable compact button for older borg versions. By @diivi (#1727) 2023-06-23 20:20:23 +01:00
Divyansh Singh
c56c6700ca
Show trigger (user/scheduled) in Archive tab. By @diivi (#1732) 2023-06-23 14:21:54 +01:00
Manu
210a968f91
Replace CC-BY Vaadin icon (#1735) 2023-06-21 09:09:38 +01:00
Manu
70ad554e03
Replace Font Awesome icons with Fork Awesome and others (#1729) 2023-06-19 08:16:37 +01:00
ratchek
2cb9afd4d5
Add a dev mode that allows for local storing of config files and logs (#1682)
Allows vorta to be called with the command-line flag `--development` or `-D` that will make it use a directory in the project tree to store all the settings, logs, and cache. This default directory will be called `.dev_config` and placed in the projects root.
Also allows for a custom directory path allowing for multiple "configuration" folders at once.
This can be used to prevent the vorta instance that a developer is working on from accessing the configuration files that they have set up for their personal backups.

* .gitignore : Add `.dev_config`.

* src/vorta/utils.py (parse_args): Add `--development` flag. The default will be `DEFAULT_DIR_FLAG`.

* src/vorta/utils.py : Add `DEFAULT_DIR_FLAG`.

* src/vorta/config.py : Add methods for populating the config directories exposed by this module.

* src/vorta/__main__.py (main): Handle `--development` flag and update config directories if its specified.

* Access config constants through the `config` module instead of importing them directly with `from .config import`.

---------
Co-authored-by: yfprojects <62463991+real-yfprojects@users.noreply.github.com>
2023-05-30 10:43:20 +00:00
yfprojects
5a3a7cf58e
Run pre-commit in lint ci and polish ci setup. (#1712)
Fix phonies in Makefile and run pre-commit for lint target.
Instead of running black, flake8 and ruff the lint phony now runs pre-commit which has these tools configured as hooks.

* Makefile

Define common composite action for setting up pre-commit and python.

* .github/actions/setup/action.yml

* .github/workflows/test.yml

Update codecov/codecov-action used in test ci to v3.

* .github/workflows/test.yml
2023-05-28 15:41:58 +00:00
Aaditya Sinha
d7634e8719
Clear contents of log_text after successfull backup (#1626)
Currently the label `logText` is not cleared after a borg command finished. When creating a backup the label will show the path of the last backuped file even after backup completion.

This changes that and clears `logText` after the backup.

* src/vorta/borg/create.py (BorgCreateJob.process_result)

---------

Co-authored-by: yfprojects <62463991+real-yfprojects@users.noreply.github.com>
2023-05-18 19:29:59 +00:00
real-yfprojects
82270adf4f
Add re-format with ruff to .git-blame-ignore.revs.
* .git-blame-ignore-revs
2023-05-01 10:30:01 +02:00
real-yfprojects
24e1dd5c56
Run pre-commit (with newly added ruff) on code base.
Includes all changes by `pre-commit --all-files` including the changes introduced by ruff.
2023-05-01 10:28:11 +02:00
Divyansh Singh
f0a5a36275
ci: Add ruff including print checks
Adds ruff replacing isort. Ruff comes with all flake8 rules and additional rules for print statements.

* .github/workflows/test.yml : Replace isort with ruff in comment

* .editorconfig : Update `yml` config to apply to all yaml files.

* Makefile (lint): Run ruff, remove isort

* .pre-commit-config.yaml : Remove isort, run ruff

* pyproject.toml : Configure ruff. Remove isort config.

* requirements.d/dev.txt : Add ruff, remove isort

* setup.cfg : Extend flake8 file ignore

* src/vorta/__main__.py : Add *noqa* for print statement.
2023-05-01 10:25:14 +02:00
Manu
4d65912d65
Fix pyobjc imports, bump minimum Python version (#1698) 2023-04-29 12:26:01 +01:00
Manu
20b7b4936c
hostname and fqdn template var consistent with Borg (#1697) 2023-04-17 22:14:19 +01:00
i1sm3ky
7535f92ac8
PyQt6 Upgrade (#1685)
This puts Vorta on PyQt6 and starts a new main branch 0.9.

---------

Co-authored-by: real-yfprojects <real-yfprojects@users.noreply.github.com>
Co-authored-by: Manu <3916435+m3nu@users.noreply.github.com>
Co-authored-by: yfprojects <62463991+real-yfprojects@users.noreply.github.com>
2023-04-17 11:17:01 +01:00
Hofer-Julian
8571ef6cb8 Remove paramiko from dependencies 2023-04-09 16:00:55 +01:00
Manu
7c1b9535b2 Bump version to v0.8.11 2023-04-09 14:44:24 +01:00
Divyansh Singh
b51b1ef85e
Save list view as setting. By @diivi (#1621)
* feat: add a setting for files list views

* separate logic from data class

* make mode optional

* rename display mode methods

* refactor

* move code above connect signals comment

* reorder code

---------

Co-authored-by: yfprojects <62463991+real-yfprojects@users.noreply.github.com>
Co-authored-by: Manu <3916435+m3nu@users.noreply.github.com>
2023-04-05 12:20:42 +01:00
yfprojects
828e02953b
Use pf pattern format for extract. By @real-yfprojects (#1625)
* src/vorta/borg/extract.py : The pattern file passed to borg now contains `pf`-style patterns for included paths.
2023-04-05 12:08:06 +01:00
jetchirag
6d5e738107
Retain source tab sort settings. By @jetchirag (#1649) 2023-04-04 13:18:50 +01:00
bigtedde
a64493d254
Setting for Full Disk Access check. By @bigtedde (#1653) 2023-04-04 12:49:34 +01:00
Henry Spanka
e3451ed49e
Handle ctime and mtime diff changes (#1675)
Borg v1.2.4 added new change types called `mtime` and `ctime` for the modification and the creation time of a file.
Our diff json parser doesn't support these changes yet.
The plain text parser doesn't need to be updated since it is only used for earlier versions of borg.
This also extends the tooltip in the diff view to show changes in `ctime` or `mtime` in a localised manner.

* src/vorta/views/diff_result.py (ChangeType): Add `CTIME` and `MTIME` linking to `MODIFIED`.

* src/vorta/views/diff_result.py (DiffData): Add fields `ctime_change` and `mtime_change`.

* src/vorta/views/diff_result.py (parse_diff_json): Parse the new change types.

* src/vorta/views/diff_result.py (DiffTree.data): Add time changes to tooltip in a human readable format.

* tests/test_diff.py : Update test data to include new change types. Add additional test cases for unittesting the new change types.
2023-04-03 10:16:09 +02:00
Henry Spanka
f407032a76
Revert "Added --content-only flag for borg 1.2.4 in diff view"
This reverts commit e0fe766051.
2023-04-01 20:13:31 +02:00
Chirag Aggarwal
e0fe766051 Added --content-only flag for borg 1.2.4 in diff view
Signed-off-by: Chirag Aggarwal <thechiragaggarwal@gmail.com>
2023-03-30 18:40:31 +01:00
Nkwuda Sunday Cletus
d0245977d2
Disable Archive tab buttons during backup. By @sunny775 (#1587)
* Disable archive action buttons when running backup.
* Disable archive action buttons only individually.
* Fix enabling.
* fixup! Fix enabling.

---------

Co-authored-by: real-yfprojects <real-yfprojects@users.noreply.github.com>
Co-authored-by: Manu <3916435+m3nu@users.noreply.github.com>
2023-03-23 14:15:07 +00:00
Divyansh Singh
3ebb078409
feat: add profile name to log messages (#1637)
* feat: add profile name to log messages

* update tests

* add profile name to all occurences of backup progress event emit

* update tests

* merge with logs link code

---------

Co-authored-by: Hofer-Julian <30049909+Hofer-Julian@users.noreply.github.com>
2023-03-22 12:16:46 +01:00
Divyansh Singh
1f1278270d
Remove paramiko dependency (#1606)
Paramiko is a encryption key parsing library. It was used for determining which ssh keys are available on the system. This removes that fairly heavy dependency at replaces it with a very basic heuristic to determine ssh key file by their first line containing `-----BEGIN(\s\w+)? PRIVATE KEY-----`.

* src/vorta/utils.py: Implement `is_ssh_private_key_file`.

* src/vorta/utils.py (get_private_keys): Use `is_ssh_private_key_file` instead of paramiko. Enforce `077` permissions on key files.

* src/vorta/views/ssh_dialog.py : Remove paramiko.

* src/vorta/views/repo_tab.py (RepoTab.init_ssh): Show filename only in `sshComboBox`.

* src/vorta/views/repo_add_dialog.py (AddRepoWindow.init_ssh_key): Show filename only in `sshComboBox`.
2023-03-17 15:03:48 +00:00
Chirag Aggarwal
c4d16e250d Fixes math error for negative size in diff view in archive tab
Signed-off-by: Chirag Aggarwal <thechiragaggarwal@gmail.com>
2023-03-14 16:08:27 +01:00
Divyansh Singh
6bc532187b
Add link to the logs folder in borg warnings (#1609)
In case a borg job finishes with warning, vorta will display it and tell the user to have a look in the logs. This adds a clickable link to the log message that opens the default file explorer at the log location.

* src/vorta/application.py (VortaApp.check_failed_response): Improve wording of warning message and link logs.

* src/vorta/borg/create.py (BorgCreateJob.process_result): Link logs.
* src/vorta/borg/compact.py (BorgCompactJob.finished_event): ^^
* src/vorta/borg/check.py (BorgCheckJob.finished_event): ^^

* src/vorta/assets/UI/mainwindow.ui : Enable `openExternalLinks` for `progressText` label.
2023-03-12 07:05:46 +00:00
Vamp
961e0b5057
Migrate from appdirs to platformdirs (#1617)
Fixes #1610. Replace deprecated `appdirs` with fork `platformdirs`. Use the new `*_path` api of set fork. This changes the type of the constants defined in `vorta.config` holding locations to `pathlib.Path`.

* setup.cfg : Replace dep `appdirs` with `platformdirs`.

* src/vorta/config.py : Migrate. Simplify code for ensuring that the directories exist.

* src/vorta/log.py
* src/vorta/autostart.py
* src/vorta/application.py
* src/vorta/__main__.py
2023-03-10 16:00:39 +00:00
Divyansh Singh
b01fa1056a
Replace print with logging in application.py (#1612)
Log `An instance of Vorta is already running. Opening main window.` and `Creating backup using existing Vorta instance.` with severity *info* instead of printing it.

* src/vorta/application.py (VortaApp.__init__)
2023-03-08 16:47:50 +00:00
Manu
e07c022ca3 Add GSoC link 2023-03-07 14:23:22 +00:00
yfprojects
79420c1271 Change check order in PR template. 2023-03-06 11:41:06 +00:00
Divyansh Singh
a00ed62e49
Fix detecting whether sources are configured (#1613)
Fixes #1463. This makes the code count the database rows for the current profile only. 
Previously one could run a backup without any sources when one had sources configured in a different profile.

* src/vorta/borg/create.py (BorgCreateJob.prepare)
2023-03-02 16:55:31 +00:00
yfprojects
618a1fe278
Add tooltips to settings. (#1521)
This adds tooltips to the settings as well as a 'info' button that shows the tooltip when hovering over it.

* Add tooltips to settings.

* src/vorta/store/models.py (SettingsModel): Add `tooltip` column.

* src/vorta/store/migrations.py (run_migrations): Create `tooltip` column.

* src/vorta/store/connection.py (init_db): Populate `tooltip` column. Increase `SCHEMA_VERSION`.

* src/vorta/views/misc_tab.py (MiscTab.populate): Set tooltip of checkbox widgets.

* src/vorta/store/settings.py : Add tooltips and update label of `override_mount_permissions`

* Add *help* button to settings.

* src/vorta/assets/icons/help-about.svg: Add info icon.

* src/vorta/views/partials/tooltip_button.py: Implement `ToolTipButton`.

* src/vorta/views/misc_tab.py: Add `ToolTipButton` for each setting with a tooltip.
	Add `set_icons` and connect it to palette change.

* tests/test_misc.py (test_autostart): Update test.

---------

Co-authored-by: real-yfprojects <real-yfprojects@users.noreply.github.com>
2023-02-25 10:10:43 +00:00
Roberto Previdi
bcc126b634
Improve size column readability in archives tab (#1598)
Use one size unit for all archives. The unit is selected by a simple algorithm that picks the largest unit that can represent the smallest size with a given precision. Align all sizes in archive and source tab to the left.

* src/vorta/utils.py : Implement `find_best_size_formatting`. Add missing sizes to `sort_sizes`. Simplify `pretty_bytes` and add `fixed_unit` option for use with `find_best_size_formatting`. Implement `clamp` utility function. Add type hints and docstrings.

* src/vorta/views/archive_tab.py (ArchiveTab.populate_from_profile): Use `find_best_sizes_formatting`.

* src/vorta/views/source_tab.py (SizeItem.__init__): Set alignment to left.

* tests/test_utils.py : Add comprehensive tests for `pretty_bytes` and `find_best_sizes_formatting`.

Co-authored-by: yfprojects <62463991+real-yfprojects@users.noreply.github.com>
2023-02-21 21:01:49 +00:00
Joshua Goins
a048dad136 Allow copying the public part of the first SSH key
Previously this button would only work if you had more than one SSH key
which prevents the first one from being copied.
2023-02-19 18:02:32 +00:00
ratchek
0cf9f0b36f
Modify pre-commit config file using autoupdate (#1601)
A new version of Poetry broke isort which caused errors when running
pre-commit.

This PR runs `pre-commit autoupdate` which updates the configuration
to use the newest isort, which has a hotfix for the bug. It also
updates pre-commit, black, and flake8 as a side-effect.

* Change black version back to 22.12
2023-02-18 18:10:24 +00:00
yfprojects
f1e1ea4538 Update type of debug_enabled input. 2023-02-18 16:23:30 +00:00
yfprojects
35d9a3b438
Adjust dev files for borgbase/vorta.borgbase.com#32 (#1585)
* Add `pre-commit` to developer requirements.

* Add virtual python environments to `.gitignore`.

* Update pull request template.

---------

Co-authored-by: real-yfprojects <real-yfprojects@users.noreply.github.com>
2023-02-14 07:38:27 +00:00
Théophile Bastian
1b27b9b499 Allow creating an SSH key when bootstrapping Vorta
Fixes #1579
2023-02-09 19:28:34 +00:00
herrwusel
ffafcee05c
Correctly supply prune pattern for borg >=1.2.2 (#1565)
Adds different behaviour when borg version >=1.2.2 but <2.0.0: The prune pattern is supplied without a style prefix like `sh:`.
Fixes #1564.

---------

Co-authored-by: herrwusel <herrwusel@user.noreply.github.com>
Co-authored-by: yfprojects <62463991+real-yfprojects@users.noreply.github.com>
2023-02-06 21:02:55 +00:00
Manu
a4ab7e713a
Specify build system (minor) (#1580) 2023-02-04 17:23:34 +00:00
Alan Barros de Oliveira
78863544ae
Remove pip install dependency. By @abdeoliveira (#1578) 2023-02-04 14:43:21 +00:00
Manu
aff9fc2d2c Bump version to v0.8.10 2023-01-22 12:54:46 +01:00
Manu
2e589a065a Update translations (and Transifex config) 2023-01-22 12:52:33 +01:00