Compare commits

...

1352 Commits

Author SHA1 Message Date
Inex Code 1684d60a54 ci: Fix appimage builds (#488)
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/tag Build is failing Details
Reviewed-on: #488
2024-03-14 21:32:21 +02:00
Inex Code aad595c04e Merge pull request 'chore: update iOS icons' (#487) from inex/release-party into master
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is failing Details
Reviewed-on: #487
2024-03-14 20:04:25 +02:00
Inex Code c078dee25a chore: update iOS icons 2024-03-14 20:04:11 +02:00
Inex Code 04401e3c00 hotfix: Backups unable to init
continuous-integration/drone/push Build was killed Details
2024-03-14 19:51:51 +02:00
Inex Code 66b487545f Merge pull request 'chore: 0.11.0 release' (#485) from inex/release-party into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #485
2024-03-14 19:25:45 +02:00
Inex Code 48c28261b8 chore: 0.11.0 release 2024-03-14 20:22:03 +03:00
Inex Code e874392a83 refactor: Remove the server deletion function
continuous-integration/drone/push Build is failing Details
2024-03-14 18:19:52 +02:00
Inex Code 7a2d468324 Merge pull request 'update translations' (#478) from translations into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #478
2024-03-14 18:17:26 +02:00
Weblate 79b9f53fa6 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/
2024-03-14 16:00:58 +00:00
Dmitri B 61752c71f2 Translated using Weblate (Estonian)
Currently translated at 100.0% (571 of 571 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/et/
2024-03-14 16:00:58 +00:00
Deem Alosili 54ebaf34db Translated using Weblate (Arabic)
Currently translated at 98.7% (564 of 571 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ar/
2024-03-14 16:00:58 +00:00
Inex Code a9114fb3f4 Translated using Weblate (Kazakh)
Currently translated at 20.4% (117 of 571 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/kk/
2024-03-14 16:00:58 +00:00
Inex Code c1a9906729 Translated using Weblate (German)
Currently translated at 82.3% (470 of 571 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2024-03-14 16:00:58 +00:00
Inex Code d12ff88ab3 Translated using Weblate (Russian)
Currently translated at 100.0% (571 of 571 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2024-03-14 16:00:58 +00:00
Yaron 5144b0dcd9 Translated using Weblate (Hebrew)
Currently translated at 100.0% (546 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/he/
2024-03-14 16:00:58 +00:00
def 577098193b Translated using Weblate (French)
Currently translated at 41.9% (229 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/fr/
2024-03-14 16:00:58 +00:00
Meko b288230c3b Translated using Weblate (Ukrainian)
Currently translated at 100.0% (546 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:58 +00:00
Deem Alosili e665a8e0e4 Translated using Weblate (Arabic)
Currently translated at 100.0% (564 of 564 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ar/
2024-03-14 16:00:58 +00:00
Meko edebd82ef0 Translated using Weblate (Ukrainian)
Currently translated at 99.6% (544 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
def 9993ec2c87 Translated using Weblate (Arabic)
Currently translated at 99.6% (562 of 564 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ar/
2024-03-14 16:00:57 +00:00
Deem Alosili fff7bf98a5 Translated using Weblate (Arabic)
Currently translated at 99.6% (562 of 564 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ar/
2024-03-14 16:00:57 +00:00
def 3e70ff03a3 Translated using Weblate (Indonesian)
Currently translated at 0.1% (1 of 564 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/id/
2024-03-14 16:00:57 +00:00
def 89f6288f88 Translated using Weblate (French)
Currently translated at 41.5% (227 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/fr/
2024-03-14 16:00:57 +00:00
Meko 623e31fd2c Translated using Weblate (Ukrainian)
Currently translated at 90.2% (493 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
def 18b496ea9b Translated using Weblate (Spanish)
Currently translated at 17.0% (93 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/es/
2024-03-14 16:00:57 +00:00
def 55a2dd080c Translated using Weblate (German)
Currently translated at 85.5% (467 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2024-03-14 16:00:57 +00:00
Nil f5ea94fd1b Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (564 of 564 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/zh_Hans/
2024-03-14 16:00:57 +00:00
Deem Alosili e0a3698a51 Translated using Weblate (Arabic)
Currently translated at 96.6% (545 of 564 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ar/
2024-03-14 16:00:57 +00:00
Inex Code 3be041c4b5 Translated using Weblate (Estonian)
Currently translated at 100.0% (546 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/et/
2024-03-14 16:00:57 +00:00
Inex Code 6e2c2407a4 Translated using Weblate (Hebrew)
Currently translated at 97.8% (534 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/he/
2024-03-14 16:00:57 +00:00
Inex Code 66a59b7a9d Translated using Weblate (Latvian)
Currently translated at 31.1% (170 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/lv/
2024-03-14 16:00:57 +00:00
Inex Code 5b1e0a5cea Translated using Weblate (Slovenian)
Currently translated at 35.5% (194 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sl/
2024-03-14 16:00:57 +00:00
Inex Code 5394c06d46 Translated using Weblate (Azerbaijani)
Currently translated at 74.5% (407 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/az/
2024-03-14 16:00:57 +00:00
Inex Code 336193b531 Translated using Weblate (Thai)
Currently translated at 41.9% (229 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/th/
2024-03-14 16:00:57 +00:00
Inex Code 4a99c9955a Translated using Weblate (Slovak)
Currently translated at 74.5% (407 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sk/
2024-03-14 16:00:57 +00:00
Inex Code 261990acc8 Translated using Weblate (French)
Currently translated at 41.2% (225 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/fr/
2024-03-14 16:00:57 +00:00
Inex Code 22323de1d6 Translated using Weblate (Belarusian)
Currently translated at 76.7% (419 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/be/
2024-03-14 16:00:57 +00:00
Inex Code c93a98058b Translated using Weblate (Ukrainian)
Currently translated at 89.3% (488 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
Inex Code 58697d66d9 Translated using Weblate (Spanish)
Currently translated at 17.0% (93 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/es/
2024-03-14 16:00:57 +00:00
Inex Code 6c7d342911 Translated using Weblate (Czech)
Currently translated at 76.7% (419 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/cs/
2024-03-14 16:00:57 +00:00
Inex Code e7634df7c0 Translated using Weblate (Polish)
Currently translated at 86.8% (474 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2024-03-14 16:00:57 +00:00
Inex Code b3fd65e02d Translated using Weblate (German)
Currently translated at 85.1% (465 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2024-03-14 16:00:57 +00:00
Inex Code 3b28c31a9f Translated using Weblate (Russian)
Currently translated at 100.0% (546 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2024-03-14 16:00:57 +00:00
Inex Code c9f031fc41 Added translation using Weblate (Chinese (Traditional)) 2024-03-14 16:00:57 +00:00
Inex Code 21c24d7492 Added translation using Weblate (Chinese (Simplified)) 2024-03-14 16:00:57 +00:00
Inex Code 7caa84002c Added translation using Weblate (Arabic) 2024-03-14 16:00:57 +00:00
TabithiS 60359eea03 Translated using Weblate (Kazakh)
Currently translated at 20.9% (118 of 564 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/kk/
2024-03-14 16:00:57 +00:00
Meko a59c384106 Translated using Weblate (Ukrainian)
Currently translated at 89.3% (488 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
Dmitri B a9ee135241 Translated using Weblate (Estonian)
Currently translated at 100.0% (546 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/et/
2024-03-14 16:00:57 +00:00
Weblate 6137602637 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/
2024-03-14 16:00:57 +00:00
TabithiS 06cfd211a8 Translated using Weblate (Ukrainian)
Currently translated at 85.7% (462 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
TabithiS edb4695228 Translated using Weblate (Polish)
Currently translated at 88.8% (479 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2024-03-14 16:00:57 +00:00
TabithiS bd41849aeb Translated using Weblate (Japanese)
Currently translated at 0.5% (3 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ja/
2024-03-14 16:00:57 +00:00
TabithiS c54bfef4fc Translated using Weblate (Kazakh)
Currently translated at 2.7% (15 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/kk/
2024-03-14 16:00:57 +00:00
Nagibator Nagibuchiy 1a22917d0f Translated using Weblate (Ukrainian)
Currently translated at 81.0% (437 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
Nagibator Nagibuchiy 3e61dafa3f Translated using Weblate (Ukrainian)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/uk/
2024-03-14 16:00:57 +00:00
TabithiS 8780ceec83 Translated using Weblate (Kazakh)
Currently translated at 0.5% (3 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/kk/
2024-03-14 16:00:57 +00:00
Nagibator Nagibuchiy 120bb85f26 Translated using Weblate (Ukrainian)
Currently translated at 80.3% (433 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
TabithiS 081c30dd24 Translated using Weblate (Ukrainian)
Currently translated at 80.3% (433 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
Dmitri B b8ca1093fc Translated using Weblate (Estonian)
Currently translated at 100.0% (539 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/et/
2024-03-14 16:00:57 +00:00
Dmitri B 55b9ca652f Translated using Weblate (Estonian)
Currently translated at 100.0% (539 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/et/
2024-03-14 16:00:57 +00:00
Dmitri eeb93d6523 Translated using Weblate (Estonian)
Currently translated at 50.2% (271 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/et/
2024-03-14 16:00:57 +00:00
Yaron 8f3078931d Translated using Weblate (Hebrew)
Currently translated at 100.0% (539 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/he/
2024-03-14 16:00:57 +00:00
Inex Code b0528aba81 fix: english strings
continuous-integration/drone/push Build is passing Details
2024-03-14 17:59:49 +02:00
dettlaff b62c0cf388 fix: delete old english strings 2024-03-14 17:59:49 +02:00
Inex Code 6e1ed0474b build(ios): Update ios build things
continuous-integration/drone/push Build is passing Details
2024-03-13 19:35:25 +03:00
Inex Code b25e2f2d5f feat(ui): Overflow of the network graph card 2024-03-13 19:22:56 +03:00
Inex Code 4b08b96b38 feat(ui): Text overflow on the storage card 2024-03-13 19:03:44 +03:00
Inex Code f1c5fa7d82 feat(ui): Try out iOS bottom navbar 2024-03-13 18:32:04 +03:00
Inex Code e9538a4a84 feat(ui): Use adaptive widgets where possible 2024-03-13 18:20:50 +03:00
Inex Code 1cb5df19f3 fix: Title overflow of the provider and service cards titles 2024-03-13 18:02:13 +03:00
Inex Code bba29caeba feat: Add ssh settings
continuous-integration/drone/push Build is passing Details
2024-03-09 19:30:43 +03:00
Inex Code b2384a5635 feat(jobs): Block starting client-side jobs when server is rebuilding or moving a service 2024-03-08 14:14:23 +03:00
Inex Code ff2b6b8f03 refactor(ui): Move server settings to a separate screen 2024-03-05 18:10:15 +03:00
NaiJi ✨ 50ba929519 Merge pull request 'feat(ui): Move provider card title to the top row' (#449) from move-title-in-cards into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #449
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-03-04 13:01:04 +02:00
NaiJi ✨ 3fb7013f84 Merge branch 'master' into move-title-in-cards 2024-03-04 12:58:48 +02:00
NaiJi ✨ aec259301c feat(ui): Change provider card title to headline medium
- Resolve: #448
2024-03-04 14:58:16 +04:00
NaiJi ✨ b8b8ac43ea Merge branch 'master' into move-title-in-cards 2024-03-04 12:42:27 +02:00
Inex Code 67bcbe419f fix: Do not include faulty link-local DNS records in the list of found records
continuous-integration/drone/push Build is passing Details
2024-03-04 01:31:27 +03:00
Inex Code 60c6736487 fix: Empty server confirmation screen during recovery
continuous-integration/drone/push Build is passing Details
2024-03-02 18:50:05 +02:00
Inex Code b29ee2e90e fix: Misleading value of "Do not verify TLS"
continuous-integration/drone/push Build is passing Details
2024-03-01 11:16:53 +02:00
Inex Code 6611093f48 Merge pull request 'fix: Detect the situation when we have faulty link-local IPv6 records' (#473) from inex/fix-linklocal-ipv6 into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #473
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2024-03-01 11:14:24 +02:00
Inex Code 643020ebd7 fix: Detect the situation when we have faulty link-local IPv6 records 2024-03-01 11:54:27 +03:00
Inex Code c8577b3bdf fix: When using fallback upgrade, UI showed that upgrade failed
continuous-integration/drone/push Build is passing Details
2024-02-23 20:15:39 +03:00
Inex Code 212c60c613 Merge pull request 'fix: Return the binds migration interface' (#467) from inex/binds-migration into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #467
2024-02-23 18:51:52 +02:00
Inex Code a9a7b04ad5 fix: Return the binds migration interface
Turns out, there are still servers that didn't perform the binds migration. The can't perform it anymore because email changed the id. I'm getting back the option to perform the binds migration, with some fallback defaults.
2024-02-23 19:50:28 +03:00
Inex Code 490e5f92f3 refactor(ui): Code deduplication in AboutApplicationPage
continuous-integration/drone/push Build is passing Details
2024-02-23 17:56:54 +02:00
Inex Code e36cba045a feat(ui): Select device icon depending on the screen width 2024-02-23 17:56:54 +02:00
Inex Code b4f700d56a feat(ui): Select device icon depending on the platform we are runnning on 2024-02-23 17:56:54 +02:00
Inex Code 9532ddc8af feat(ui): About page now contains links 2024-02-23 17:56:54 +02:00
Inex Code 0d12b1d2d7 Merge pull request 'refactor: Introduce the API connection repository' (#440) from api-connection-refactor into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #440
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2024-02-23 16:49:39 +02:00
Inex Code 275e8b1f40 chore: Fixes from review 2024-02-23 17:49:10 +03:00
Inex Code 160e6d3b35 refactor: Remove unused job 2024-02-21 05:00:45 +03:00
Inex Code 7bb96b5ed0 chore: remove prints 2024-02-21 00:45:32 +03:00
Inex Code 43a339af91 refactor: Code deduplication in server data reload 2024-02-20 23:34:45 +03:00
Inex Code caa2fd3b8e refactor: Handle situation when the job has to be removed
Closes #166
2024-02-20 23:17:36 +03:00
Inex Code 4eb8f34e37 Merge remote-tracking branch 'origin/master' into api-connection-refactor 2024-02-20 20:13:19 +03:00
Inex Code 92cf2cde6d refactor: Refactor ServerDetailsCubit to use ApiConnectionRepository 2024-02-20 20:09:14 +03:00
Inex Code 9459191c09 refactor: Remove Job dependency on ClientJobsCubit 2024-02-20 20:04:39 +03:00
Inex Code 16094a3257 refactor: Rework ClientJobs cubit so it doesn't depend on other cubits
Also implemented tracking of the jobs and rebuild status
2024-02-20 19:33:24 +03:00
Inex Code fdb40fccd7 fix: Init ApiConnectionRepository after server access recovery 2024-02-14 15:59:01 +03:00
Inex Code 9a1f47711c chore: Update GraphQL schema with experimental system rebuild tracking 2024-02-12 20:20:30 +03:00
Inex Code 455b1ed7f9 refactor: Replace UsersCubit with UsersBloc 2024-02-09 18:01:05 +03:00
Inex Code e5f00f8770 refactor: Make sure that blocs use sealed classes 2024-02-09 16:54:04 +03:00
Inex Code 710b9b53dd refactor: Replace ApiDevicesCubit with DevicesBloc 2024-02-09 14:07:03 +03:00
Inex Code 27e5abfe4a Merge pull request 'feat: change NavigationDestinationLabelBehavior' (#458) from subtitles_for_menu_options into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #458
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-02-08 17:18:28 +02:00
def 035fe990d0 Merge branch 'master' into subtitles_for_menu_options 2024-02-08 17:15:21 +02:00
Inex Code 3a525f0d11 refactor: Replace RecoveryKeyCubit with RecoveryKeyBloc 2024-02-08 18:08:29 +03:00
Inex Code 1daf957245 chore: Move ConnectionStatus bloc to bloc folder 2024-02-08 16:58:45 +03:00
Inex Code 0f26683758 Merge pull request 'fix: remove snackbar style notifs' (#457) from remove_snackbar_style_notif into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #457
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-02-08 14:40:17 +02:00
def 087deede3a Merge branch 'master' into remove_snackbar_style_notif 2024-02-08 14:39:30 +02:00
Inex Code 46910061ed ci: Update Windows build
continuous-integration/drone/push Build was killed Details
2024-02-08 14:30:50 +02:00
aliaksei tratseuski dd81053f42 refactor(UI): Rewrite onboarding page
continuous-integration/drone/push Build was killed Details
rewrote OnboardingPage:
* decomposed into separate widgets
* now content stays centered on wide screens (set so width won't expand further than 480px)
* pageController is now properly disposed
* added some more code changes to
    * main (error widget builder)
    * brand_header (centerTitle instead of empty actions list)
    * console_page (listener callback fix, used gaps instead of SizedBox'es, added keys to list items)
    * service_page (just cleaner build method)
	* removed some dead code

Co-authored-by: Aliaksei Tratseuski <aliaksei.tratseuski@gmail.com>
Reviewed-on: #444
Co-authored-by: aliaksei tratseuski <misterfourtytwo@noreply.git.selfprivacy.org>
Co-committed-by: aliaksei tratseuski <misterfourtytwo@noreply.git.selfprivacy.org>
2024-02-08 13:59:52 +02:00
dettlaff c67661ff65 feat: change NavigationDestinationLabelBehavior 2024-02-08 00:19:27 +04:00
dettlaff ba0e247fba fix: remove SnackBarBehaviov 2024-02-08 00:06:55 +04:00
Inex Code 418d96b842 Merge pull request 'fix(hetzner): Fix the resize volume request' (#456) from hetzner-volume-resize-hotfix into master
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
Reviewed-on: #456
2024-02-07 12:47:41 +02:00
Inex Code 74675cab23 chore: Bump version to 0.10.1 2024-02-07 13:47:22 +03:00
Inex Code 98228cfc05 fix(hetzner): Fix the resize volume request 2024-02-07 13:39:41 +03:00
Inex Code 6914b01d2a refactor: remove ProviderVolumes cubit 2024-02-06 18:21:21 +03:00
aliaksei tratseuski 370186030a added keys to segmented_buttons _ButtonSegment's
continuous-integration/drone/push Build is passing Details
2024-02-05 12:59:29 +02:00
aliaksei tratseuski 40f4f8822f chore: segmented_buttons rewrite 2024-02-05 12:59:29 +02:00
NaiJi ✨ 1d834703be feat(ui): Move provider card title to the top row
- Resolve: #448
2024-02-04 11:12:14 +04:00
Inex Code 3b9d616045 refactor: Introduce VolumesBloc, remove ServerVolumeCubit 2024-02-01 18:30:06 +04:00
Inex Code 8684a2a48a Merge pull request 'style: Enable directives_ordering lint' (#445) from directives_ordering into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #445
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2024-01-31 18:25:43 +02:00
Inex Code 3222a9b500 refactor: Init blocs in initState and not in widget build 2024-01-31 18:06:49 +04:00
Inex Code e330f71b63 refactor: Optimistic state update when forgetting a snapshot 2024-01-31 18:06:22 +04:00
Inex Code 1ba8f324fe refactor: Use transformers for blocs 2024-01-31 16:17:27 +04:00
Inex Code 21c0e200a9 fix: Regenerate codegen for updated model name 2024-01-31 16:03:15 +04:00
Inex Code 725c592086 refactor: Fix callbacks returning sets 2024-01-31 15:14:37 +04:00
Inex Code 02870c3149 style: Formatting 2024-01-31 15:05:12 +04:00
Inex Code fe6f900165 refactor: Move event handler registration to the beginning of blocs 2024-01-31 15:04:59 +04:00
Inex Code f46865ca71 style: Apply directives_ordering lint 2024-01-31 14:57:12 +04:00
Inex Code 31c6a18918 Merge remote-tracking branch 'origin/directives_ordering' into api-connection-refactor
# Conflicts:
#	lib/config/bloc_config.dart
#	lib/logic/cubit/app_config_dependent/authentication_dependend_cubit.dart
#	lib/logic/cubit/backups/backups_cubit.dart
#	lib/logic/cubit/dns_records/dns_records_cubit.dart
#	lib/logic/cubit/providers/providers_cubit.dart
#	lib/logic/models/service.dart
#	lib/ui/pages/backups/backup_details.dart
#	lib/ui/pages/backups/change_period_modal.dart
#	lib/ui/pages/backups/change_rotation_quotas_modal.dart
#	lib/ui/pages/backups/copy_encryption_key_modal.dart
#	lib/ui/pages/more/more.dart
#	lib/ui/pages/server_storage/binds_migration/migration_process_page.dart
#	lib/ui/pages/server_storage/server_storage.dart
#	lib/ui/pages/server_storage/storage_card.dart
2024-01-31 14:50:40 +04:00
Inex Code acb5da9a92 style: Enable directives_ordering lint 2024-01-31 09:14:23 +04:00
Inex Code 149969aed8 refactor: Rename ServerVolume model to reflect that it is tied to provider 2024-01-29 20:49:20 +04:00
Inex Code 9bfaf5d381 refactor: Remove usesBinds from ApiServerVolumeCubit 2024-01-29 20:45:49 +04:00
Inex Code bdd00683cd refactor: Optimistic state update when removing all finished jobs 2024-01-29 20:14:12 +04:00
Inex Code 831a0e95eb refactor: Rewrite services cubit to bloc, using ApiRepo streams 2024-01-29 19:58:37 +04:00
Inex Code a5e7725733 refactor: Rewrite backups cubit to bloc, using ApiRepo streams 2024-01-29 17:54:09 +04:00
NaiJi ✨ 76c420301c Merge pull request 'fix(dns): Make sure that we notice domain ownership lost' (#441) from dns-check into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #441
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-28 09:55:42 +02:00
NaiJi ✨ 2b30136def fix(dns): Make sure that we notice domain ownership lost
- #390
2024-01-28 09:18:36 +04:00
Inex Code b1be3f24d6 refactor: Rewire cubit from depending on server_installation_cubit to the new connection manager 2024-01-26 18:46:09 +04:00
Inex Code 332e31b655 refactor: Remove binds migration 2024-01-26 14:58:59 +04:00
Inex Code 24e5c8baee refactor: Remove unused providers cubit 2024-01-26 14:49:36 +04:00
Inex Code fa21bdf034 refactor: Remove unused timer singleton 2024-01-26 14:43:44 +04:00
Inex Code f10441dca1 Merge pull request 'feat: Enable more languages' (#435) from enable-languages into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #435
2024-01-23 18:50:33 +02:00
Inex Code 82a6f79a35 feat: Enable more languages 2024-01-23 20:49:47 +04:00
Inex Code 1ee02b7433 Merge pull request 'chore: Oops, fix the changelog' (#426) from release-party into master
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/tag Build is passing Details
Reviewed-on: #426
2024-01-19 16:51:41 +02:00
Inex Code bb03bf6a10 chore: Oops, fix the changelog 2024-01-19 17:51:25 +03:00
Inex Code e7f02e4ad8 Merge pull request 'chore: Bump version to 0.10.0' (#425) from release-party into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #425
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2024-01-19 16:50:09 +02:00
Inex Code 175e189d5a chore: Update appimage version 2024-01-19 17:49:56 +03:00
Inex Code 4e7409ca6d chore: Bump version to 0.10.0 2024-01-19 17:47:45 +03:00
Inex Code a1ab687933 Merge pull request 'chore: Update translations' (#413) from translations into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #413
2024-01-19 16:00:03 +02:00
Inex Code 3fb5804b20 Translated using Weblate (Russian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/ru/
2024-01-19 13:59:45 +00:00
Inex Code 954630f5e9 Translated using Weblate (Belarusian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/be/
2024-01-19 13:59:45 +00:00
Inex Code 83fe4fa0f3 Translated using Weblate (Russian)
Currently translated at 100.0% (538 of 538 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2024-01-19 13:59:45 +00:00
Inex Code a93844b89c Added translation using Weblate (Estonian) 2024-01-19 13:59:45 +00:00
Yaron ba3d1b86b7 Translated using Weblate (Hebrew)
Currently translated at 100.0% (538 of 538 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/he/
2024-01-19 13:59:45 +00:00
Yaron c8c3ffb4b9 Translated using Weblate (Hebrew)
Currently translated at 99.2% (534 of 538 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/he/
2024-01-19 13:59:45 +00:00
Yaron 3c6eefdbbf Translated using Weblate (Hebrew)
Currently translated at 100.0% (533 of 533 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/he/
2024-01-19 13:59:45 +00:00
Weblate 82fc4c68c2 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/
2024-01-19 13:59:45 +00:00
NaiJi ✨ 2ab33144fd Translated using Weblate (Spanish)
Currently translated at 18.3% (98 of 533 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/es/
2024-01-19 13:59:45 +00:00
NaiJi ✨ e4be60a51b Translated using Weblate (Russian)
Currently translated at 100.0% (533 of 533 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2024-01-19 13:59:45 +00:00
Inex Code 98b715700a Merge pull request 'fix: Domain name overflows on the "Use this domain?" screen' (#422) from fix_overflows_use_this_domain into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #422
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-19 15:59:42 +02:00
NaiJi ✨ dca733f641 Merge pull request 'feat: Make DNS records deletion and creation dynamic' (#424) from dynamic-dns-deletion into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #424
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-19 15:46:58 +02:00
Inex Code 766f44ee19 style: Add missing trailing comma 2024-01-19 16:38:07 +03:00
NaiJi ✨ 40c423437a refactor: Rename variables and add needed comments
- #265
2024-01-19 17:23:09 +04:00
NaiJi ✨ 2836ce4870 fix(cloudflare): Convert MX name from @ to root domain
- #265
2024-01-19 00:50:42 +02:00
NaiJi ✨ 39f92f769b feat: Add selector._domainkey project record
- #265
2024-01-19 00:50:42 +02:00
NaiJi ✨ d841f9db44 feat: Make DNS deletion and creation dynamic
- #265
2024-01-19 00:50:42 +02:00
def cd33991f97 Merge branch 'master' into fix_overflows_use_this_domain 2024-01-18 15:31:47 +02:00
def 76d93ab782 fix: missclicked on "Approve" button 2024-01-18 15:31:07 +02:00
NaiJi ✨ 9e095a6808 Merge pull request 'fix(graphql): Remove and replace deprecated mutations' (#423) from actualizing-graphql into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #423
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-15 19:08:28 +02:00
NaiJi ✨ 07058d3db5 fix(graphql): Remove and replace deprecated mutations
- #418
2024-01-15 13:11:09 +04:00
def 79fae03e9b fix: overflows use this domain 2024-01-12 18:23:13 +02:00
NaiJi ✨ 09cb734859 Merge pull request 'fix: Update loginInfo with new service IDs' (#419) from new-service-ids into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #419
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2024-01-10 16:17:13 +02:00
Inex Code b974062626 fix: Update loginInfo with new service IDs 2024-01-10 15:50:37 +02:00
Inex Code 16dca8faf8 Merge pull request 'feat: Implement dynamic DNS records validation' (#392) from dynamic-dns into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #392
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-10 14:52:16 +02:00
NaiJi ✨ 528d0c4c10 Merge pull request 'chore: Update the copyright year' (#417) from copyright-year into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #417
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2024-01-09 22:41:27 +02:00
Inex Code 23922ef243 chore: Update the copyright year 2024-01-09 21:46:57 +02:00
NaiJi ✨ 8e952abd94 fix: Change kotlin version for gradle 2024-01-08 13:46:43 +04:00
NaiJi ✨ a45ac7e344 fix: Adapt domain iteration on recovery to new provider interface 2024-01-05 07:28:45 +04:00
NaiJi ✨ ff9c96a114 fix(cloudflare): Adapt Cloudflare DNS convertion 2024-01-05 07:15:27 +04:00
NaiJi ✨ 19e070133c Merge branch 'master' into dynamic-dns 2023-12-29 22:24:59 +02:00
NaiJi ✨ 1c07476764 refactor: Move DNS records validation to cubit layer 2023-12-29 23:58:58 +04:00
Inex Code 985db9a479 Merge pull request 'Use the new NixOS infect' (#415) from nixos-23.11 into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #415
2023-12-29 13:45:31 +02:00
Inex Code 2a4614c673 feat: Allow custom SSH keys during setup and use the new NixOS infect 2023-12-28 22:35:39 +03:00
Inex Code e26b6a23b2 fix(ui): Filled button overflow 2023-12-28 20:07:30 +03:00
def e3e5570e4e feat: Add the button to copy password on the new user creation screen (#409)
continuous-integration/drone/push Build is passing Details
#299

Co-authored-by: dettlaff <dettlaff@riseup.net>
Reviewed-on: #409
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2023-12-28 15:19:16 +02:00
def d7bf6a0c06 feat: Add animation to the recovery key screen (#410)
continuous-integration/drone/push Build is passing Details
#164
Co-authored-by: dettlaff <dettlaff@riseup.net>
Reviewed-on: #410
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2023-12-26 11:28:52 +02:00
NaiJi ✨ ada5f1a66c Merge branch 'master' into dynamic-dns 2023-12-20 15:09:29 +02:00
NaiJi ✨ 20d7f37b8b Merge pull request 'linter-3.16.1' (#411) from linter-3.16.1 into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #411
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-12-20 15:08:59 +02:00
NaiJi ✨ 371d83b4be fix(linter): Change httpClientAdapter callback creation 2023-12-20 17:04:33 +04:00
NaiJi ✨ 9ea952b46e refactor(linter): Force const constructor where needed 2023-12-20 16:58:46 +04:00
NaiJi ✨ 5c03749577 refactor(linter): Add library; to brand icons 2023-12-20 16:57:52 +04:00
NaiJi ✨ 2ef0121321 refactor(linter): Create HTTP client from adapter 2023-12-20 16:56:31 +04:00
NaiJi ✨ 02a2097b10 refactor(linter): Change DioError to DioException 2023-12-20 16:50:43 +04:00
NaiJi ✨ f1b0b3fc9e Merge branch 'master' into dynamic-dns 2023-12-18 08:46:19 +04:00
NaiJi ✨ 2f6b4e0f9c Merge pull request 'feat: Implement better domain ownership check during installation' (#394) from domain-ownership-setup into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #394
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-12-12 17:24:22 +02:00
Inex Code 4ed038d34c refactor: Tweak the design of the BrokenDomainOutlinedCard 2023-12-12 08:31:37 +03:00
def 2d29fdc58b Merge pull request 'docs: update screenshots' (#393) from update_screensots into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #393
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-12-06 14:37:23 +02:00
def 06dc8ebfb8 Merge branch 'master' into update_screensots 2023-12-06 14:37:14 +02:00
NaiJi ✨ 37d2f2fe11 Merge pull request 'fix(ui): Remove listening of a server volume cubit for migration page' (#400) from migration-button-error into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #400
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-12-03 20:10:37 +02:00
NaiJi ✨ 5d92c95ce0 Merge pull request 'fix(devices): Update refreshing state for Devices page' (#398) from device-screen-updating into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #398
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-12-03 20:09:18 +02:00
NaiJi ✨ 4eb3dac101 Merge pull request 'feat(backblaze): Include milliseconds since epoch to bucket name' (#403) from better-bucket-name into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #403
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-12-03 20:03:17 +02:00
NaiJi ✨ 55d77b2144 Merge branch 'master' into better-bucket-name 2023-12-03 20:03:11 +02:00
NaiJi ✨ f6ded5399c refactor(backblaze): Move milliseconds since epoch to the beginning of bucket name 2023-12-03 21:58:56 +04:00
NaiJi ✨ 2710ba3e26 Merge pull request 'fix(hetzner): Filter away ARM architecture from available servers' (#404) from arm-filtering into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #404
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-12-03 19:45:23 +02:00
NaiJi ✨ e00c783cb0 Merge branch 'master' into dynamic-dns 2023-12-03 11:55:41 +02:00
NaiJi ✨ 9d09354363 Merge branch 'master' into domain-ownership-setup 2023-12-03 11:55:32 +02:00
NaiJi ✨ 07998f115f Merge branch 'master' into device-screen-updating 2023-12-03 11:55:25 +02:00
NaiJi ✨ e733354aa1 Merge branch 'master' into migration-button-error 2023-12-03 11:55:15 +02:00
NaiJi ✨ f977193fae Merge branch 'master' into better-bucket-name 2023-12-03 11:55:03 +02:00
NaiJi ✨ 0a988ce637 Merge branch 'master' into arm-filtering 2023-12-03 11:54:55 +02:00
Inex Code 9663bbf146 Merge pull request 'ci: Disable sonarqube for now as it uses Dart 2.17.5 for reasons unknown' (#406) from ci-fix into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #406
2023-12-03 04:27:27 +02:00
Inex Code 9b9d325a09 ci: Disable sonarqube for now as it uses Dart 2.17.5 for reasons unknown 2023-12-03 05:27:07 +03:00
Inex Code 19b3ee52c6 Merge pull request 'ci: Fix test run' (#405) from ci-fix into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #405
2023-12-03 03:04:15 +02:00
Inex Code e269233057 ci: Fix test run 2023-12-03 04:04:00 +03:00
NaiJi ✨ ee49b634ae Merge 'master' into 'dynamic-dns' 2023-12-03 01:12:55 +04:00
NaiJi ✨ b5cfdfd68a fix(hetzner): Filter away ARM architecture from available servers
- Resolve #402
2023-12-03 01:01:46 +04:00
NaiJi ✨ faa02c54fe feat(backblaze): Include milliseconds since epoch to bucket name
- Resolve #263
2023-12-03 00:44:32 +04:00
NaiJi ✨ 79f73ec729 Merge pull request 'chore: Upgrade to Flutter 3.16.1' (#401) from flutter-upgrade into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #401
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2023-12-01 22:17:41 +02:00
Inex Code 84fb5dc613 chore: Upgrade to Flutter 3.16.1 2023-12-01 21:41:35 +02:00
Inex Code 8729926c36 Merge pull request 'chore: Update translations' (#374) from translations into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #374
2023-12-01 16:16:10 +02:00
Inex Code e80b5b8fb3 Merge branch 'master' into translations
# Conflicts:
#	assets/translations/en.json
2023-12-01 17:15:33 +03:00
Inex Code 53641980f7 Merge pull request 'chore(i18l): Rename button that initiates recovery process' (#399) from rename-recovery-button into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #399
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-30 15:31:23 +02:00
NaiJi ✨ 4abd1e15f1 fix(ui): Remove listening of a server volume cubit for migration page 2023-11-30 12:33:54 +04:00
NaiJi ✨ 5b94cc0cc0 fix(devices): Add refresh indicator to 'Other devices' section
- Resolve #163
2023-11-30 12:15:56 +04:00
NaiJi ✨ 2125c59df9 chore(i18l): Rename button that initiates recovery process
- Resolve #346
2023-11-30 10:20:21 +04:00
NaiJi ✨ da0b0b7670 fix(devices): Make devices state remember current device on refresh
- Resolve #258
2023-11-30 10:04:57 +04:00
NaiJi ✨ 0b4f8d66ef Merge branch 'master' into domain-ownership-setup 2023-11-30 07:50:01 +02:00
Marvin F e36339d2fc Translated using Weblate (German)
Currently translated at 88.5% (472 of 533 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2023-11-29 14:42:14 +00:00
Yaron 5fadc086bb Translated using Weblate (Hebrew)
Currently translated at 100.0% (533 of 533 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/he/
2023-11-29 14:42:14 +00:00
smtg 72fc8fc7ba Translated using Weblate (French)
Currently translated at 43.3% (231 of 533 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/fr/
2023-11-29 14:42:14 +00:00
Inex Code bf8fbbc2e2 Translated using Weblate (Russian)
Currently translated at 100.0% (533 of 533 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-11-29 14:42:14 +00:00
Inex Code feb8ac3b2b Added translation using Weblate (Hebrew) 2023-11-29 14:42:14 +00:00
NaiJi ✨ 656dd806a0 Translated using Weblate (Spanish)
Currently translated at 14.6% (78 of 532 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/es/
2023-11-29 14:42:14 +00:00
NaiJi ✨ dc3c6cfa19 Translated using Weblate (Russian)
Currently translated at 100.0% (532 of 532 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-11-29 14:42:14 +00:00
NaiJi ✨ ab49f0dcd2 Translated using Weblate (English)
Currently translated at 100.0% (532 of 532 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/en/
2023-11-29 14:42:14 +00:00
Weblate 32f866461c Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/
2023-11-29 14:42:14 +00:00
User 1234 c814127f50 Translated using Weblate (German)
Currently translated at 85.4% (454 of 531 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2023-11-29 14:42:14 +00:00
def bea6dd4635 Translated using Weblate (English)
Currently translated at 100.0% (531 of 531 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/en/
2023-11-29 14:42:14 +00:00
def 7df73f53bb Translated using Weblate (English)
Currently translated at 100.0% (531 of 531 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/en/
2023-11-29 14:42:14 +00:00
def 630800d034 Translated using Weblate (Russian)
Currently translated at 99.8% (530 of 531 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-11-29 14:42:14 +00:00
def 7b18f66291 Translated using Weblate (Russian)
Currently translated at 99.8% (530 of 531 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-11-29 14:42:14 +00:00
Inex Code ceb6f29048 Translated using Weblate (Russian)
Currently translated at 100.0% (530 of 530 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-11-29 14:42:14 +00:00
NaiJi ✨ 76f977bc50 Merge pull request 'feat(ui): Add jobs fab button to Snapshot List page' (#396) from snapshost-list-fab into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #396
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-29 16:42:12 +02:00
NaiJi ✨ 5a33bec6bd feat(ui): Make Snapshot List page show fab button
- Resolve #290
2023-11-29 18:38:27 +04:00
NaiJi ✨ 8037eec486 feat: Implement better domain ownership check during installation
- Produce support instructions for DNS domain recovery

- #389
2023-11-27 19:00:05 +04:00
def f8cdce1ebd Merge branch 'master' into update_screensots 2023-11-25 19:23:38 +02:00
dettlaff ffb13eafe7 docs: update screenshots 2023-11-25 21:22:54 +04:00
NaiJi ✨ 98f107b675 fix(cloudflare): Improve DNS records convertion to deSEC DNS 2023-11-22 15:14:02 +04:00
NaiJi ✨ e9c881c408 fix(cloudflare): Improve DNS records convertion to Cloudflare DNS 2023-11-22 12:09:19 +04:00
NaiJi ✨ cd9b47b924 Merge branch 'master' into 'dynamic-dns' 2023-11-22 09:34:31 +04:00
NaiJi ✨ 087813eaae Merge pull request 'fix: Revert lints of premaster flutter version back to 3.16' (#391) from fix-flutter-versioning-lints into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #391
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-20 17:46:03 +02:00
NaiJi ✨ e50ef9b189 fix: Revert lints of premaster flutter version back to 3.16 2023-11-20 19:38:24 +04:00
NaiJi ✨ 699f906bf1 Merge pull request 'refactor: Fix linter warnings' (#384) from lints into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #384
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-20 16:34:31 +02:00
NaiJi ✨ 8dc5847c6c Merge branch 'master' into 'lints' 2023-11-20 18:33:31 +04:00
NaiJi ✨ 1e68789a8c fix: Bump material_color_utilities version to 0.5.0, required by flutter test 2023-11-20 18:31:24 +04:00
NaiJi ✨ f11a75dfb7 refactor: Remove obsolete network objects 2023-11-20 18:29:26 +04:00
NaiJi ✨ d4ff17201e Merge pull request 'fix(hetzner): Remove optional status enum for getVolumes of Hetzner' (#388) from hetzner-volume into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #388
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-20 16:24:02 +02:00
NaiJi ✨ cea2f6d8a4 refactor: Correct a typo in Hetzner API 2023-11-20 18:10:19 +04:00
NaiJi ✨ f7afd6fd15 fix(hetzner): Remove optional status enum for getVolumes of Hetzner 2023-11-20 03:32:41 +04:00
NaiJi ✨ 54dee9c291 Merge pull request 'feat: Implement flexible precision formatting for prices' (#387) from string-trailing into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #387
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-20 00:02:51 +02:00
NaiJi ✨ a2b28e199d feat: Implement flexible precision formatting for prices 2023-11-19 23:51:36 +04:00
NaiJi ✨ c34a5b97d6 fix: Improve DNS formatting for Cloudflare DNS 2023-11-19 23:34:58 +04:00
NaiJi ✨ cd97833025 feat: Make GetDnsRecords query return also service DNS 2023-11-18 10:22:07 +04:00
NaiJi ✨ b46ef2f7a3 Merge branch 'master' into dynamic-dns 2023-11-18 09:24:10 +04:00
NaiJi ✨ 98262a473f Merge pull request 'fix(api): Force DateTime to UTC where timezone naive' (#386) from timezone-offset into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #386
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-13 12:25:45 +02:00
NaiJi ✨ ec8d08ff07 fix(api): Force DateTime to UTC where timezone naive
- Solve #385
2023-11-13 14:03:52 +04:00
NaiJi ✨ d45417effe feat: Implement model adapter for Digital Ocean DNS
- Adapt all external interfaces to new DNS record models
2023-11-09 18:48:49 +04:00
NaiJi ✨ 5a7ae23ec2 feat: Implement model adapter for Cloudflare DNS 2023-11-09 17:21:56 +04:00
NaiJi ✨ e9c01576b2 feat: Implement model adapters
- Move desec model conversion to adapters
2023-11-09 16:52:27 +04:00
NaiJi ✨ db1a8b6f67 refactor: Move deSEC DNS conversion into DesecDnsRecord model
- Get rid of desired dns records hardcore for deSEC
2023-11-08 18:31:28 +04:00
NaiJi ✨ c894456fe6 refactor: Fix linter warnings
- Remove unused text_extensions.dart
2023-11-06 17:15:38 +04:00
def dd9722646e Merge pull request 'update description' (#377) from update_description into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #377
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-10-21 17:44:12 +03:00
dettlaff a01f9d3786 Merge branch 'update_description' of git.selfprivacy.org:SelfPrivacy/selfprivacy.org.app into update_description 2023-10-21 18:42:13 +04:00
dettlaff c05a3d99a6 docs: update screenshot names, del old 2023-10-21 18:41:45 +04:00
def d14c2c5d36 docs: delete /fastlane/metadata/android/en-US/images/phoneScreenshots/4.jpg 2023-10-21 17:39:47 +03:00
dettlaff 1db6dc717a docs: upd description 2023-10-21 17:39:47 +03:00
dettlaff e337e93ac7 docs: add new screenshots 2023-10-21 17:39:47 +03:00
dettlaff 2eda1d18d2 docs: upd description 2023-10-12 01:45:37 +04:00
dettlaff d68b0b5251 docs: add new screenshots 2023-10-12 01:43:19 +04:00
Inex Code 98741e0a3a Merge pull request 'chore: Remove redundant metadata and bump version' (#373) from fdroid-metadata into master
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/tag Build is passing Details
Reviewed-on: #373
2023-10-09 12:41:31 +03:00
Inex Code f8dfa4e954 chore: Remove redundant metadata and bump version 2023-10-09 12:40:48 +03:00
NaiJi ✨ a9edf44752 Merge pull request 'feat: Implement confirmation modal for volume resizing' (#372) from volume-resize-modal into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #372
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-10-09 02:15:48 +03:00
NaiJi ✨ 87b58ec6d8 feat: Implement confirmation modal for volume resizing
- Resolve #308
2023-10-07 18:52:36 -03:00
NaiJi ✨ 7a10d46f0f Merge pull request 'refactor: Remove redundant zone id cache for Cloudflare' (#371) from cloudflare-caching into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #371
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-10-06 23:37:34 +03:00
NaiJi ✨ e1aeb89991 Merge branch 'master' into cloudflare-caching 2023-10-06 01:44:20 +03:00
NaiJi ✨ c2ae962322 refactor: Remove redundant zone id cache for Cloudflare 2023-10-05 19:42:29 -03:00
NaiJi ✨ dd54f5fa42 Merge pull request 'feat(ssh): Add support for ECDSA SSH keys' (#362) from ssh-edcsa into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #362
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-10-03 20:57:51 +03:00
NaiJi ✨ 34eda8ca2d Merge branch 'master' into ssh-edcsa 2023-10-03 20:57:35 +03:00
NaiJi ✨ 0cb2f2082a Merge pull request 'fix: Force size value truncation for digital ocean, change query url' (#368) from digital-ocean-volume into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #368
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-10-02 20:11:03 +03:00
NaiJi ✨ 6096ef2572 Merge branch 'master' into digital-ocean-volume 2023-10-02 20:10:54 +03:00
NaiJi ✨ c0624fe5b1 Merge pull request 'fix(ui): Disable storage card while volume information is being fetched' (#369) from storage-card-lock into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #369
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-10-02 20:10:47 +03:00
NaiJi ✨ 97a9793f9d fix(ui): Disable storage card while volume information is being fetched
- Resolve #317
2023-09-30 21:51:11 -03:00
NaiJi ✨ 043d29538c refactor: Conventionally reduce DiskSize to only 'int gb' for resize digital ocean volume 2023-09-30 21:35:58 -03:00
NaiJi ✨ fbacb5969d fix: Force size value truncation for digital ocean, change query url
- Resolve #367
2023-09-30 21:04:04 -03:00
NaiJi ✨ 172253902d feat(ssh): Add support for ECDSA SSH keys
- Resolve #319
2023-09-26 16:18:50 -03:00
Inex Code 0537ebcfb2 Merge pull request 'docs: Add issue templates' (#361) from issue-template into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #361
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2023-09-26 20:26:45 +03:00
Inex Code 5ff615bb8b docs: Fix grammar of issue templates 2023-09-26 20:26:28 +03:00
Inex Code fca04f89ad docs: Add issue templates 2023-09-26 20:26:28 +03:00
NaiJi ✨ e49b5db4b6 Merge pull request 'refactor(ui): Reorganize placeholders for empty pages' (#359) from plug-backgrounds into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #359
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-26 20:26:15 +03:00
Inex Code 914775ac48 chore(ui): Change icon of the Services placeholder 2023-09-26 20:20:13 +03:00
NaiJi ✨ f9c951f127 Merge branch 'master' into plug-backgrounds 2023-09-26 18:46:14 +03:00
NaiJi ✨ a83e1e0056 Merge pull request 'refactor(ui): Move service card name to its icon row' (#352) from service-card-naming into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #352
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-26 17:58:26 +03:00
NaiJi ✨ aa4429cc79 refactor(ui): Reorganize placeholders for empty pages
- Resolve #348
- Make 'Data Center' cards unclickable when uninitialized
2023-09-23 23:03:54 -03:00
NaiJi ✨ c64c6e11d7 refactor(ui): Change SizedBox dimension hardcode from 10 to 8 for service cards 2023-09-18 12:42:40 -03:00
NaiJi ✨ ec36f6b764 Merge branch 'master' into service-card-naming 2023-09-18 18:39:58 +03:00
NaiJi ✨ 9eedc02a07 Merge pull request 'feat: Add copy-to-clipboard for email on user page' (#329) from email-copy into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #329
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-18 18:38:55 +03:00
NaiJi ✨ 86f2d0c0bb Merge branch 'master' into email-copy 2023-09-18 18:34:47 +03:00
NaiJi ✨ a7e8c0aa6b Merge branch 'master' into service-card-naming 2023-09-18 18:34:16 +03:00
NaiJi ✨ d97d133479 Merge pull request 'refactor(ui): Make users be ordered properly on users page' (#343) from users-order into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #343
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-18 18:32:56 +03:00
NaiJi ✨ 70c47c69ab Merge branch 'master' into email-copy 2023-09-18 18:30:25 +03:00
NaiJi ✨ 8901507f08 Merge branch 'master' into service-card-naming 2023-09-18 18:30:03 +03:00
NaiJi ✨ 7aa3305d23 refactor: Rename isUserPrimary to isPrimaryUser for User 2023-09-18 12:28:41 -03:00
NaiJi ✨ dae535e35a Merge branch 'master' into users-order 2023-09-18 12:26:50 -03:00
NaiJi ✨ f34c4417b6 Merge pull request 'refactor(ui): Change measure units on 'Extending volume' page' (#344) from extending-fields into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #344
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-18 18:23:33 +03:00
NaiJi ✨ 90e73ec2f3 Merge pull request 'refactor(ui): Move service descriptions above login info for service cards' (#342) from service-descriptions into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #342
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-18 18:23:04 +03:00
NaiJi ✨ 40568925e1 refactor(ui): Move service card name to its icon row
- Resolves #350
2023-09-18 12:22:37 -03:00
NaiJi ✨ 5c329d47c1 refactor(ui): Make users be ordered properly on users page
- Resolves #340
2023-09-16 02:09:40 -03:00
NaiJi ✨ 887302f936 refactor(ui): Add measure units to 'Extending volume' page
- Resolves #301
2023-09-16 01:41:02 -03:00
NaiJi ✨ d2ed9f3a75 refactor(ui): Move service descriptions above login info for service cards
- Resolves #341
2023-09-16 00:46:16 -03:00
Inex Code eb92a8ee56 Merge pull request 'ci: Fix appimage version tag' (#338) from release-party into master
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/tag Build is passing Details
Reviewed-on: #338
2023-09-10 15:23:23 +03:00
Inex Code 3370ae2867 ci: Fix appimage version tag 2023-09-10 15:23:17 +03:00
Inex Code 8b858307fe Merge pull request 'chore: Bump app version' (#337) from release-party into master
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/tag Build is failing Details
Reviewed-on: #337
2023-09-10 15:11:24 +03:00
Inex Code da85253268 chore: Bump app version 2023-09-10 14:53:43 +03:00
Inex Code 2a210f6af2 Merge pull request 'Fix russian translations' (#336) from translations into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #336
2023-09-10 14:52:12 +03:00
NaiJi ✨ 096338cef7 Translated using Weblate (Russian)
Currently translated at 100.0% (530 of 530 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-09-10 11:42:53 +00:00
Inex Code 580a68fd7c Translated using Weblate (Russian)
Currently translated at 100.0% (530 of 530 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-09-10 11:42:53 +00:00
Inex Code 40725138bd Merge pull request 'Add russian translations' (#335) from translations into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #335
2023-09-10 14:09:03 +03:00
Inex Code dd7436b2fd Translated using Weblate (Russian)
Currently translated at 100.0% (530 of 530 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-09-10 09:49:36 +00:00
Inex Code d812066355 Translated using Weblate (Russian)
Currently translated at 100.0% (529 of 529 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-09-10 09:48:20 +00:00
Inex Code d1927989d7 Merge pull request 'chore(i18l): Add missing translation' (#334) from rotation-settings into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #334
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-09-10 12:48:17 +03:00
Inex Code beb526a635 chore(i18l): Add missing translation 2023-09-10 12:46:55 +03:00
Inex Code bf8c58b5b9 Merge pull request 'weblate-conflict' (#333) from weblate-conflict into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #333
2023-09-10 12:22:33 +03:00
Inex Code 509bcf808d chore(i18l): Resolve Weblate conflict 2023-09-10 12:21:18 +03:00
Inex Code dc3544e8ca Merge pull request 'feat(backups): Allow to change snapshot rotation settings' (#332) from rotation-settings into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #332
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-09-10 11:20:19 +03:00
Inex Code 0ffd7e61d6 feat(backups): Add note about the scope of backup rotation 2023-09-09 21:20:21 +03:00
Inex Code 1b26f2cf29 feat(backups): Allow to change snapshot rotation settings 2023-09-09 21:13:27 +03:00
Inex Code 90f84e8c9c Merge pull request 'feat(backups): Show the snapshot creation reason' (#331) from backup-reason into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #331
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-09-09 11:15:40 +03:00
Inex Code aac4b2773b feat(backups): Show the snapshot creation reason 2023-09-09 10:22:43 +03:00
Inex Code ef91ffaf2b Merge pull request 'feat: Implement dialogue to choose an domain from several during installation' (#330) from domain-selection into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #330
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-08 15:42:38 +03:00
Inex Code 505444fb21 Merge pull request 'feat: Implement visible accent when backup modal buttons are disabled' (#326) from gray-backups into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #326
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-08 15:42:19 +03:00
Inex Code 031ad47417 refactor(ui): Domain selection refresh 2023-09-08 15:41:12 +03:00
Inex Code d5fa841747 chore: Remove unused 'cloudflare_api_token' translation string 2023-09-08 09:57:57 +03:00
Inex Code 062fa725c4 fix(ui): DNS API key support page was using old code 2023-09-08 09:38:08 +03:00
NaiJi ✨ afa83f0d29 chore: I embarrassed myself... 2023-09-08 03:08:02 -03:00
NaiJi ✨ 14dbdbbc73 feat: Implement dialogue to choose an domain from several during installation 2023-09-08 02:54:28 -03:00
NaiJi ✨ 3c548e5aa9 feat: Add copy-to-clipboard for email on user page
- Implement setClipboard adapter and encapsulate platform dependency on clipboard service
2023-09-07 18:26:33 -03:00
NaiJi ✨ cd452d5f26 refactor: Change getOverrideColor lambda to simple variable in backup page 2023-09-07 18:04:26 -03:00
NaiJi ✨ a67c203266 Merge branch 'master' into gray-backups 2023-09-07 18:00:49 -03:00
NaiJi ✨ fd13828ec3 Merge pull request 'feat: Implement copying to clipboard for snapshot id of backups' (#325) from snapshot-id into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #325
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-07 23:58:39 +03:00
NaiJi ✨ 35faadcc63 Merge pull request 'fix: Change 'mailserver' string id to 'email' in loginInfo switch' (#327) from mailserver-description into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #327
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-07 23:57:47 +03:00
Inex Code fe93360870 refactor: Use snackbar to show snapshot id copy notification 2023-09-07 14:35:42 +03:00
NaiJi ✨ 7b8d9ddca9 fix: Change 'mailserver' string id to 'email' in loginInfo switch 2023-09-06 23:41:34 -03:00
NaiJi ✨ e07394e8b1 feat: Implement visible accent when backup modal buttons are disabled 2023-09-06 23:31:47 -03:00
NaiJi ✨ ffa985aba2 feat: Implement copying to clipboard for snapshot id of backups 2023-09-06 23:03:06 -03:00
NaiJi ✨ c5671cc767 Merge pull request 'feat: Include volume and ipv4 costs to overall monthly cost per server' (#270) from price-calculation into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #270
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-07 02:54:56 +03:00
NaiJi ✨ 8a5ee1d42e Merge 'master' into 'price-calculation' 2023-09-06 20:54:30 -03:00
Inex Code 0984892a01 feat: UI tweaks for server costs 2023-09-06 20:01:56 +03:00
Mithras 9d7bb26ab8 Translated using Weblate (Ukrainian)
Currently translated at 88.2% (419 of 475 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2023-09-05 21:36:51 +00:00
Mithras 30fde19ce9 Translated using Weblate (Russian)
Currently translated at 100.0% (475 of 475 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-09-05 21:36:51 +00:00
Weblate 5b363a9eb6 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/
2023-09-05 21:36:51 +00:00
NaiJi ✨ 82dfdf04f9 fix: Implement Backblaze bucket restoration on server recovery (#324)
continuous-integration/drone/push Build is passing Details
Resolves issue [320](#320).

Co-authored-by: NaiJi <naijiworld@protonmail.com>
Reviewed-on: #324
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-06 00:36:49 +03:00
NaiJi ✨ 1642cb907d Merge pull request 'refactor: Remove mentions of cloudflare from general variables' (#323) from dkim-record-naming into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #323
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-05 14:46:55 +03:00
NaiJi ✨ 85abd8f0fc refactor: Remove mentions of cloudflare from general variables 2023-09-05 08:45:09 -03:00
NaiJi ✨ 63ac367007 Merge pull request 'fix: Wrap DNS check in catch to avoid runtime crash' (#322) from dns-check-fix into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #322
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-05 14:43:02 +03:00
NaiJi ✨ 8f7730575e fix: Wrap DNS check in catch to avoid runtime crash 2023-09-05 08:34:01 -03:00
Inex Code d64764f4a8 Merge branch 'master' into price-calculation 2023-09-01 15:38:35 +03:00
Inex Code 645d58d513 Merge pull request 'feat(backups): Implement restore backup strategy and forget snapshot' (#274) from restore-strategy into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #274
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-14 07:31:19 +03:00
Inex Code bc3cfa20bb feat(backups): Add backup-related strings 2023-08-14 07:21:42 +03:00
Inex Code b01c61a47b feat(backups): Add snapshot restore modal 2023-08-14 07:10:15 +03:00
Inex Code 03f7e7d819 fix(ui): Fix encryption key modal behaviour when no key found
Closes #300
2023-08-14 07:09:06 +03:00
Inex Code 7e1620be3c fix(ui): Add loading animation for backups screen
Closes #309
2023-08-14 05:54:11 +03:00
Inex Code 4170224119 fix(ui): Add divider in backups screen 2023-08-14 05:48:15 +03:00
Inex Code 13e80a9e37 Merge branch 'master' into restore-strategy 2023-08-14 05:35:52 +03:00
Inex Code 7db7cd79b0 Merge pull request 'fix: Replace hard reset from server provider with direct server reboot' (#269) from soft-reset into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #269
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-14 05:34:30 +03:00
Inex Code 6e241ff4d2 Merge branch 'master' into soft-reset 2023-08-14 05:34:18 +03:00
NaiJi ✨ 8f30c3a4ba Merge pull request 'fix: Don't let start service migration if the same volume was picked' (#293) from service-migration into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #293
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-11 18:30:39 +03:00
NaiJi ✨ e4c5220fb4 refactor: Rename isTherePendingChange to isVolumePicked on migration page 2023-08-11 10:21:27 -03:00
NaiJi ✨ 2279ebf47f Merge 'master' into 'service-migration' 2023-08-11 10:17:31 -03:00
NaiJi ✨ 859437b911 Merge pull request 'feat: Add autofocus to cubit text fields for keyboard displaying' (#294) from keyboard into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #294
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-11 16:15:24 +03:00
NaiJi ✨ 43fa4a6fe2 Merge pull request 'fix(i18l): Add dot to the end of reset_config_description key for translations' (#295) from assets-dot into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #295
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-11 16:15:11 +03:00
NaiJi ✨ e77a9403ca fix(i18l): Add dot to the end of reset_config_description key for translations 2023-08-11 02:03:29 -03:00
NaiJi ✨ a94965ab0d feat: Add autofocus to cubit text fields for keyboard displaying 2023-08-10 23:21:45 -03:00
NaiJi ✨ 91dce222cc fix: Don't let start service migration if the same volume was picked 2023-08-10 23:07:03 -03:00
NaiJi ✨ 5eadbd9e6b Merge pull request 'fix(i18l): Change broken validations string for superuser SSH' (#276) from user-assets into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #276
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-08 22:13:54 +03:00
NaiJi ✨ e417088340 fix(i18l): Change broken validations string for superuser SSH 2023-08-07 10:26:52 -03:00
NaiJi ✨ 3ad6bb7bea Merge 'master' into 'soft-reset' 2023-08-07 10:15:23 -03:00
NaiJi ✨ 702a8049c5 Merge 'master' into 'restore-strategy' 2023-08-07 10:14:46 -03:00
NaiJi ✨ 316e1f5db6 Merge 'master' into 'price-calculation' 2023-08-07 10:14:08 -03:00
NaiJi ✨ 5570f16adf Merge pull request 'chore(router): Generate new build runner object for router class' (#275) from router into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #275
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-07 16:11:04 +03:00
NaiJi ✨ 4ef83fc6bd chore(router): Generate new build runner object for router class 2023-08-07 10:07:54 -03:00
NaiJi ✨ 80b83980ce feat(backup): Implement forget snapshot method 2023-08-07 09:44:26 -03:00
NaiJi ✨ 75b8a7b9ac feat(backups): Implement restore backup strategy 2023-08-07 09:23:48 -03:00
NaiJi ✨ d4340fc9e0 Merge pull request 'fix: Remove unused ZoneId member' (#273) from zone-id-fix into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #273
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-07 14:11:08 +03:00
NaiJi ✨ dce33b2d4c fix: Remove unuzed ZoneId member 2023-08-07 08:09:24 -03:00
NaiJi ✨ 5c473d96a9 Merge 'master' into 'soft-reset' 2023-08-07 08:03:24 -03:00
NaiJi ✨ 20c3948e60 Merge 'master' into 'price-calculation' 2023-08-07 07:58:57 -03:00
NaiJi ✨ 037498070a fix: Include IPv4 cost to overall server cost 2023-08-07 07:52:26 -03:00
NaiJi ✨ a17b66c729 Merge pull request 'refactor: Implement Cloudflare-specific objects to avoid usage of global models' (#268) from dto into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #268
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-07 12:06:45 +03:00
NaiJi ✨ e35514b670 Merge pull request 'feat: Replace general entity naming on UI with specifics.' (#264) from hardcoded-naming into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #264
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-07 12:06:30 +03:00
NaiJi ✨ 1db2f53c9a Merge pull request 'fix(hetzner): Normalize CPU usage percentage by cached amount of cores' (#272) from hetzner-cpu into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #272
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-07 12:02:35 +03:00
NaiJi ✨ d51661630b Merge pull request 'chore: Add missing trailing commas to encryption key modal page' (#271) from trailing-commas into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #271
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-07 11:14:43 +03:00
NaiJi ✨ 719a5a7274 fix(hetzner): Normalize CPU usage percentage by cached amount of cores 2023-08-07 04:08:54 -03:00
NaiJi ✨ 4b1c85c4a8 chore: Add missing trailing commas to encryption key modal page 2023-08-06 20:32:05 -03:00
NaiJi ✨ 4f8f87f8a8 feat: Include volume cost to overall monthly cost per server 2023-08-06 20:28:02 -03:00
NaiJi ✨ e97d52bad5 fix: Replace runSystemRebuild with rebootSystem 2023-08-06 18:24:41 -03:00
NaiJi ✨ ffe923ef13 fix: Replace hard reset from server provider with direct server reboot 2023-08-02 18:08:23 -03:00
NaiJi ✨ bd9a383d38 chore: Remove debug prints 2023-08-02 16:08:26 -03:00
NaiJi ✨ b2c67c80bd refactor: Implement Cloudflare objects to avoid usage of dynamic blobs
- Get rid of ZoneId term outside of Cloudflare
2023-08-02 16:04:49 -03:00
NaiJi ✨ bd8faf8760 feat: Replace general entity naming on UI with specifics.
- Pass actual provider namings to .tr functions as arguments
- Remove hardcoded namings where known
- Get rid of general mentions of 'DNS Provider' or 'Server Provider' where confusing
2023-07-28 20:42:41 -03:00
Inex Code 11e745f822 Merge pull request 'chore(i18l): Change DNS error alert to warn user about deleting custom DNS records' (#248) from dns-i18l-alert into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #248
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-07-28 06:24:14 +03:00
Inex Code 34e15e5047 chore(i18l): Change DNS error alert to warn user about deleting custom DNS records 2023-07-28 06:21:11 +03:00
NaiJi ✨ 55740ac59d Merge pull request 'refactor(digital-ocean-dns): Implement basic DTO for Digital Ocean DNS to avoid dynamic objects' (#247) from dto into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #247
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-28 05:19:45 +03:00
NaiJi ✨ c37e56b43a Merge master into dto 2023-07-27 21:29:05 -03:00
NaiJi ✨ ccac0ff7fa refactor(digital-ocean-dns): Implement basic DTO for Digital Ocean DNS to avoid dynamic objects 2023-07-27 20:55:32 -03:00
NaiJi ✨ fd1be6358c Merge pull request 'refactor(desec): Implement basic DTO for DESEC to avoid dynamic objects' (#246) from dto into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #246
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-28 00:32:25 +03:00
NaiJi ✨ 06fc2935a8 Merge pull request 'feat(platform): Implement custom platform-dependent storage path definition' (#240) from platform-path into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #240
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-28 00:24:40 +03:00
NaiJi ✨ 146350f8f4 refactor(desec): Implement basic DTO for DESEC to avoid dynamic objects 2023-07-26 21:33:50 -03:00
NaiJi ✨ b313cd340e refactor: Remove unused id field from DnsRecords object 2023-07-26 20:27:10 -03:00
NaiJi ✨ 603946ba73 Merge master into platform-path 2023-07-26 20:20:21 -03:00
NaiJi ✨ ed1421e9c5 chore: Merge pull request 'fix(ui): Prevent service moving if volume is null for some reason' (#245) from volume-null into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #245
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-26 00:59:14 +03:00
NaiJi ✨ 4dae3404fa fix(ui): Prevent service moving if volume is null for some reason 2023-07-25 18:56:47 -03:00
NaiJi ✨ b04dcef603 chore: Merge pull request 'style: Remove misleading code comment' (#244) from clipboard-key into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #244
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-07-25 22:50:13 +03:00
Inex Code 5df1d676f6 style: Remove misleading code comment 2023-07-25 22:46:12 +03:00
NaiJi ✨ 15039777e0 chore: Merge pull request 'feat(backups): Implement modal for copying backups encryption key' (#242) from clipboard-key into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #242
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-25 22:44:56 +03:00
Inex Code bbc619deed feat(backups): Show the user that the key is copied 2023-07-25 22:43:28 +03:00
Inex Code cfcfd5d708 feat(backups): Update the UI of the encryption key modal 2023-07-25 22:25:08 +03:00
Inex Code 3b1e71d771 fix: Add a workaround for the case when we don't have sreverTypeId 2023-07-25 18:39:58 +03:00
NaiJi ✨ c3752673f7 feat(backups): Implement modal for copying backups encryption key 2023-07-25 18:15:04 +03:00
NaiJi ✨ ac6a4c192e Merge pull request 'feat(graphql): Implement Accept-Language header for GraphQL API map' (#243) from graphql-locale into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #243
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-25 17:38:14 +03:00
NaiJi ✨ c7b714cea5 Merge pull request 'fix(recovery): Implement server type id requesting on recovery finish' (#241) from servertype-id into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #241
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-25 17:37:24 +03:00
NaiJi ✨ 27aaf93838 chore: Rename '_getApiToken' to 'get _token' for GraphQL API map 2023-07-22 11:26:48 -03:00
NaiJi ✨ 08f3258615 feat(graphql): Implement Accept-Language header for GraphQL API map 2023-07-22 11:24:37 -03:00
NaiJi ✨ 69822f24ca chore: Remove unused server basic info attribute 2023-07-21 19:50:20 -03:00
NaiJi ✨ 7b02074345 fix(recovery): Replace server basic info request method with server type info request method 2023-07-21 19:48:00 -03:00
NaiJi ✨ 80f28463ec fix(recovery): Implement server type id requesting on recovery finish 2023-07-21 18:07:26 -03:00
NaiJi ✨ d8660b9f3a feat(platform): Print storage path before Hive initialization 2023-07-21 14:44:01 -03:00
NaiJi ✨ 06a857aa8c chore(platform): Fix comment typo 2023-07-20 17:19:29 -03:00
NaiJi ✨ 91a22394f5 Merge branch 'master' into platform-path 2023-07-20 23:15:05 +03:00
NaiJi ✨ 3b1eee5a94 fix(platform): Make platform storage path nullable for compability with previous behaviour 2023-07-20 17:14:17 -03:00
NaiJi ✨ 25d6881837 chore: Remove misleading commentary 2023-07-20 17:07:08 -03:00
NaiJi ✨ 68ed776785 feat(platform): Implement custom platform-dependent storage path definition
- Create new PlatformAdapter util and hide i/o there
- Move other usages of Platform class in PlatformAdapter
2023-07-20 17:06:17 -03:00
NaiJi ✨ 51f5bb9f31 chore: Merge pull request 'feat(digital-ocean): Implement uniqueness check' (#239) from digital-ocean-uniqueness into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #239
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-20 19:07:41 +03:00
NaiJi ✨ 1e5b6c12e6 feat(digital-ocean): Implement uniqueness check
- Suggest to delete duplicate server
- Increase timeout by 5 iterations
2023-07-20 12:53:56 -03:00
NaiJi ✨ c0dbf4454c chore: Merge pull request 'feat(location): Make flag getter a part of server provider location object' (#238) from country-flag into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #238
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-17 20:02:32 +03:00
NaiJi ✨ a1ffb891a8 chore: Merge master into country-flag 2023-07-17 12:27:18 -03:00
NaiJi ✨ cbef1d578b feat(location): Make flag getter a part of server provider location object 2023-07-17 12:25:41 -03:00
Inex Code f25878de90 Merge pull request 'chore: Update translations' (#225) from translations into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #225
2023-07-17 17:09:12 +03:00
NaiJi ✨ 44bb4155cb Translated using Weblate (Slovak)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/sk/
2023-07-16 14:18:08 +00:00
NaiJi ✨ 8565c0a04e Translated using Weblate (Czech)
Currently translated at 95.1% (435 of 457 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/cs/
2023-07-16 14:18:08 +00:00
NaiJi ✨ 28188ffec6 Translated using Weblate (Russian)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/ru/
2023-07-16 14:18:08 +00:00
NaiJi ✨ afa9b25564 Translated using Weblate (Russian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/ru/
2023-07-16 14:18:08 +00:00
NaiJi ✨ be50de12bd Translated using Weblate (Russian)
Currently translated at 100.0% (457 of 457 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-07-16 14:18:08 +00:00
Mithras baa356e840 Translated using Weblate (Czech)
Currently translated at 100.0% (8 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/cs/
2023-07-16 14:18:08 +00:00
Mithras e684eb1e85 Translated using Weblate (Czech)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_ssh
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_ssh/cs/
2023-07-16 14:18:08 +00:00
Mithras 1306d42b66 Translated using Weblate (Belarusian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/be/
2023-07-16 14:18:08 +00:00
Mithras f63de69561 Translated using Weblate (Belarusian)
Currently translated at 100.0% (435 of 435 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/be/
2023-07-16 14:18:08 +00:00
Mithras b9370fc74b Translated using Weblate (Czech)
Currently translated at 100.0% (435 of 435 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/cs/
2023-07-16 14:18:08 +00:00
Mithras aa5bbd425b Translated using Weblate (Polish)
Currently translated at 99.7% (434 of 435 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-07-16 14:18:08 +00:00
Mithras 9718990c66 Translated using Weblate (German)
Currently translated at 100.0% (435 of 435 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2023-07-16 14:18:08 +00:00
Mithras 602449e483 Translated using Weblate (Russian)
Currently translated at 100.0% (435 of 435 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-07-16 14:18:08 +00:00
Not Telling Lol 8bf910390d Translated using Weblate (Latvian)
Currently translated at 41.3% (180 of 435 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/lv/
2023-07-16 14:18:08 +00:00
Weblate f350e8ced9 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/
2023-07-16 14:18:08 +00:00
Weblate d2f4e07cc1 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/
2023-07-16 14:18:08 +00:00
Mithras 28be8bd58a Translated using Weblate (Ukrainian)
Currently translated at 92.5% (397 of 429 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2023-07-16 14:18:08 +00:00
Mithras e8056e9c3c Translated using Weblate (French)
Currently translated at 53.6% (230 of 429 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/fr/
2023-07-16 14:18:08 +00:00
Not Telling Lol 8326b89b83 Translated using Weblate (Latvian)
Currently translated at 34.6% (148 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/lv/
2023-07-16 14:18:08 +00:00
Mithras 779708c0bf Translated using Weblate (Slovenian)
Currently translated at 48.2% (206 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sl/
2023-07-16 14:18:08 +00:00
Not Telling Lol 9d202b42dd Translated using Weblate (Latvian)
Currently translated at 12.6% (54 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/lv/
2023-07-16 14:18:08 +00:00
Mithras 5c0a9ee7be Translated using Weblate (Slovenian)
Currently translated at 29.7% (127 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sl/
2023-07-16 14:18:08 +00:00
Inex Code 3fc7a76a66 Added translation using Weblate (Latvian) 2023-07-16 14:18:08 +00:00
Mithras 649260bce2 Translated using Weblate (Slovenian)
Currently translated at 6.0% (26 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sl/
2023-07-16 14:18:08 +00:00
Mithras 54afeb04cc Translated using Weblate (Slovenian)
Currently translated at 3.9% (17 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sl/
2023-07-16 14:18:08 +00:00
Mithras d04bd5e6a2 Translated using Weblate (Polish)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/pl/
2023-07-16 14:18:08 +00:00
Mithras 38538c5568 Translated using Weblate (Polish)
Currently translated at 100.0% (8 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/pl/
2023-07-16 14:18:08 +00:00
Mithras fd8cf5cf78 Translated using Weblate (Polish)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_backblaze
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_backblaze/pl/
2023-07-16 14:18:08 +00:00
Mithras 5e7c6d63c2 Translated using Weblate (Polish)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: about
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-about/pl/
2023-07-16 14:18:08 +00:00
Mithras 17e59e04bd Translated using Weblate (Polish)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_old
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_old/pl/
2023-07-16 14:18:08 +00:00
Mithras 7302b47809 Translated using Weblate (Polish)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_ssh
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_ssh/pl/
2023-07-16 14:18:08 +00:00
Mithras ef8174a3c6 Translated using Weblate (Polish)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/pl/
2023-07-16 14:18:08 +00:00
Mithras 10f43e6bd9 Translated using Weblate (Polish)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/pl/
2023-07-16 14:18:08 +00:00
Mithras b68de55a9b Translated using Weblate (German)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/de/
2023-07-16 14:18:08 +00:00
Mithras 2bff45aab1 Translated using Weblate (Polish)
Currently translated at 100.0% (427 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-07-16 14:18:08 +00:00
Mithras b20f8f777d Translated using Weblate (German)
Currently translated at 100.0% (427 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2023-07-16 14:18:08 +00:00
Thary a17d8184c7 Translated using Weblate (Polish)
Currently translated at 100.0% (427 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-07-16 14:18:08 +00:00
Mithras aef47ce9a7 Translated using Weblate (Slovak)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/sk/
2023-07-16 14:18:08 +00:00
Mithras cc36bc2aa0 Translated using Weblate (Slovak)
Currently translated at 100.0% (8 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/sk/
2023-07-16 14:18:08 +00:00
Mithras 715255de81 Translated using Weblate (Slovak)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_backblaze
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_backblaze/sk/
2023-07-16 14:18:08 +00:00
Mithras 9f77dc6da0 Translated using Weblate (Slovak)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: about
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-about/sk/
2023-07-16 14:18:08 +00:00
Mithras e36b9b37be Translated using Weblate (Slovak)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_old
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_old/sk/
2023-07-16 14:18:08 +00:00
Mithras 000cff7b8c Translated using Weblate (Slovak)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_ssh
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_ssh/sk/
2023-07-16 14:18:08 +00:00
Mithras e6f367e57a Translated using Weblate (Slovak)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/sk/
2023-07-16 14:18:08 +00:00
Mithras 89f51f2ba0 Translated using Weblate (Slovak)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/sk/
2023-07-16 14:18:08 +00:00
Mithras a76425ad30 Translated using Weblate (Slovak)
Currently translated at 100.0% (427 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sk/
2023-07-16 14:18:08 +00:00
Mithras 4a43b5d3fb Translated using Weblate (Polish)
Currently translated at 100.0% (427 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-07-16 14:18:08 +00:00
Mithras 978e9f38a5 Translated using Weblate (Czech)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/cs/
2023-07-16 14:18:08 +00:00
Mithras 58f05cd6f6 Translated using Weblate (Azerbaijani)
Currently translated at 99.7% (426 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/az/
2023-07-16 14:18:08 +00:00
Mithras 28a78640e8 Translated using Weblate (Czech)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/cs/
2023-07-16 14:18:08 +00:00
Mithras 918aced080 Translated using Weblate (Belarusian)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/be/
2023-07-16 14:18:08 +00:00
Mithras a90037a4e5 Translated using Weblate (Czech)
Currently translated at 100.0% (8 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/cs/
2023-07-16 14:18:08 +00:00
Mithras 19a4a2f5c3 Translated using Weblate (Czech)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_backblaze
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_backblaze/cs/
2023-07-16 14:18:08 +00:00
Mithras da5c752069 Translated using Weblate (Czech)
Currently translated at 83.3% (5 of 6 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: about
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-about/cs/
2023-07-16 14:18:08 +00:00
Mithras f17d27647d Translated using Weblate (Czech)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_old
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_old/cs/
2023-07-16 14:18:08 +00:00
Mithras 6af96cf36f Translated using Weblate (Czech)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_ssh
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_ssh/cs/
2023-07-16 14:18:08 +00:00
Mithras 97561b31f1 Translated using Weblate (Czech)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/cs/
2023-07-16 14:18:08 +00:00
Mithras 49cc8768ec Translated using Weblate (Belarusian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/be/
2023-07-16 14:18:08 +00:00
Mithras 5fa0b0c23c Translated using Weblate (Belarusian)
Currently translated at 99.7% (426 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/be/
2023-07-16 14:18:08 +00:00
Mithras 91fe44a729 Translated using Weblate (Czech)
Currently translated at 99.7% (426 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/cs/
2023-07-16 14:18:08 +00:00
Mithras d8c006aa3c Translated using Weblate (Russian)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/ru/
2023-07-16 14:18:08 +00:00
Mithras 240d66d156 Translated using Weblate (Russian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/ru/
2023-07-16 14:18:08 +00:00
Mithras 65e51a0fe9 Translated using Weblate (Russian)
Currently translated at 100.0% (6 of 6 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: about
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-about/ru/
2023-07-16 14:18:08 +00:00
Mithras fa8e588772 Translated using Weblate (Russian)
Currently translated at 99.7% (426 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-07-16 14:18:08 +00:00
FoxMeste 1014df7cea Translated using Weblate (English)
Currently translated at 100.0% (427 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/en/
2023-07-16 14:18:08 +00:00
Inex Code a303efde5a Translated using Weblate (Russian)
Currently translated at 99.7% (426 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-07-16 14:18:08 +00:00
Mithras b644c7d218 Translated using Weblate (Russian)
Currently translated at 99.0% (423 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-07-16 14:18:08 +00:00
FoxMeste 3a84e8e502 Translated using Weblate (Czech)
Currently translated at 84.5% (338 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/cs/
2023-07-16 14:18:08 +00:00
FoxMeste c5b0df8ff0 Translated using Weblate (Czech)
Currently translated at 35.2% (141 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/cs/
2023-07-16 14:18:08 +00:00
Weblate 538fc01d23 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/
2023-07-16 14:18:08 +00:00
NaiJi ✨ 6453257aa3 chore: Merge pull request 'feat(provider): Implement proper load functions for DNS and Server providers' (#237) from server-providers-fix into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #237
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-16 17:18:05 +03:00
NaiJi ✨ 56231a4197 feat(provider): Implement proper load functions for DNS and Server providers 2023-07-16 10:05:37 -03:00
NaiJi ✨ 0a333214d8 chore: Merge pull request 'refactor(rest-api): Move rest api methods according to their business logic files positions' (#235) from docs into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #235
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-16 14:00:40 +03:00
NaiJi ✨ 83cb3d4031 chore: Merge pull request 'fix(installation): Add proper server type value loading' (#236) from installation-fix into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #236
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-16 13:58:05 +03:00
NaiJi ✨ 81aa6003be fix(installation): Add proper server type value loading 2023-07-16 07:25:14 -03:00
NaiJi ✨ 7ff1e36161 refactor(rest-api): Move rest api methods according to their business logic files positions
- Rename unmatching functions
2023-07-13 06:22:39 -03:00
NaiJi ✨ 5af30bce4d chore: Merge pull request 'fix(ui): Make currency be properly shown again via shortcode' (#234) from backups-testing into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #234
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-12 21:21:45 +03:00
NaiJi ✨ ddf2f71ac3 fix(ui): Make currency be properly shown again via shortcode 2023-07-12 13:14:46 -03:00
NaiJi ✨ e38a322e61 chore: Merge pull request 'fix(ui): Add background for dialogue pop ups and move them to root navigator' (#233) from backups-testing into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #233
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-12 14:23:50 +03:00
NaiJi ✨ f47ea8534f chore: Merge branch master into backups-testing 2023-07-10 09:42:01 -03:00
NaiJi ✨ bc6b08d621 fix(ui): Add background for dialogue pop ups and move them to root navigator 2023-07-10 09:39:57 -03:00
NaiJi ✨ c0d8d37989 chore: Merge backups-testing to master
continuous-integration/drone/push Build is passing Details
- Remove unused breaking isHidden field
- Add commentary for Hetzner Volume replicating Hetzner documentation
- Update router.gr (when i ran build_runner this file changed for some reason)

Co-authored-by: NaiJi <naijiworld@protonmail.com>
Reviewed-on: #232
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-10 12:00:46 +03:00
NaiJi ✨ aa5327df6e bug: Remove unused breaking isHidden field 2023-07-10 05:45:22 -03:00
NaiJi ✨ 70991e6bac chore(models): Add commentary for Hetzner Volume replicating Hetzner documentation 2023-07-10 05:44:56 -03:00
NaiJi ✨ eeb5dfc642 chore(ui): Update router.gr 2023-07-10 05:44:04 -03:00
NaiJi ✨ 071f5c2c5d chore: Merge pull request 'refactor(dns-provider): Rearrange DNS Provider interface' (#229) from docs into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #229
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-05 12:45:27 +03:00
NaiJi ✨ 91b22f531e refactor(dns-provider): Rearrange DNS Provider interface
Move all implement functions accordingly to their position in interface
2023-07-05 06:34:35 -03:00
NaiJi ✨ 8bc1121206 chore: Merge pull request 'backups-rewrite' (#228) from backups-rewrite into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #228
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-07-03 23:39:00 +03:00
Inex Code 7d974159a2 style(backups): Fix some UI issues of backup_details.dart 2023-07-03 23:37:23 +03:00
Inex Code a4dbba0968 feat(backups): Backups screens 2023-07-02 18:24:07 +03:00
Inex Code df214a07bc refactor: Remove unused utils, add duration formatter 2023-07-02 18:23:33 +03:00
Inex Code 2b8d3ee6d0 refactor: Getters for backup-related jobs 2023-07-02 18:23:12 +03:00
Inex Code 290c4166c5 feat: Add pub:duration as a dependency 2023-07-02 18:22:27 +03:00
Inex Code edb02764f7 fix: GraphQL fragments deduplication 2023-07-02 18:22:07 +03:00
Inex Code a8bddaaeba style: Reformatting 2023-07-02 14:41:54 +03:00
Inex Code 62b7a0ee7e feat(backups): Add descriptions for backups 2023-07-02 14:41:31 +03:00
NaiJi ✨ b3b7c83461 chore: Implement fragments for ServerJob type on backup requests 2023-06-29 15:38:46 -03:00
Inex Code 7f5488c76b refactor(services): Remove unused state getters 2023-06-29 13:52:25 +03:00
Inex Code 90ab4244f6 feat(backups): Expose if the service can be backed up 2023-06-29 13:51:38 +03:00
Inex Code 62e906d1a4 feat(jobs): Update the model and modal sheets 2023-06-29 12:53:13 +03:00
Inex Code e1e4779c51 feat(recovery): Couldn't save the dns token 2023-06-29 12:52:37 +03:00
Inex Code d2d8add10d feat(backups): Update the models 2023-06-29 12:52:09 +03:00
NaiJi ✨ 02cb4dbf8b chore: Merge branch master into backups-rewrite 2023-06-26 15:01:57 -03:00
NaiJi ✨ 7d03c3192d chore: Merge pull request 'refactor(server-provider): Rearrange Server Provider interface' (#227) from docs into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #227
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-06-26 21:01:08 +03:00
NaiJi ✨ a56f525060 refactor(server-provider): Rearrange Server Provider interface
- Move all implement functions accordingly to their position in interface
- Get rid of duplicate toInfect() functions, move them to ServerDomain
2023-06-26 14:15:53 -03:00
NaiJi ✨ e7ec1c1b53 chore: Merge master' into backups-rewrite 2023-06-22 23:23:13 -03:00
NaiJi ✨ feca9d3b06 chore: Update scheme.graphql and its models 2023-06-22 23:22:48 -03:00
NaiJi ✨ b8009cde71 Merge pull request 'refactor(price): Replace String shortcode with Currency class' (#226) from price into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #226
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-06-23 04:17:05 +03:00
NaiJi ✨ 88d8925ff7 refactor(price): Replace String shortcode with Currency class 2023-06-22 16:02:49 -03:00
NaiJi ✨ f05bedf460 chore: Implement new backups api 2023-06-22 11:14:00 -03:00
NaiJi ✨ e70cbab618 chore: Fix a typo in GraphQL scheme 2023-06-19 18:05:57 -03:00
NaiJi ✨ f4700965c6 chore: Merge master into backups-rewrite 2023-06-19 17:56:00 -03:00
NaiJi ✨ d0366862c0 Merge pull request 'refactor(api): Separate Rest API layer from business logic layer for DNS and Server Providers' (#213) from refactoring into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #213
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-06-19 23:03:55 +03:00
NaiJi ✨ a2ed839927 chore: Remove unused image from DNS Picket 2023-06-19 17:00:50 -03:00
NaiJi ✨ 9552df1ec2 chore: Remove unused abstraction for ServerProvider 2023-06-19 15:17:15 -03:00
NaiJi ✨ 215ad3579d chore: Rename ApiMaps to RestApiMap and GraphQLApiMap 2023-06-19 15:15:24 -03:00
NaiJi ✨ f9da202093 chore: Remove unused abstractions 2023-06-19 15:11:55 -03:00
NaiJi ✨ 3fedb17553 chore: Remove unused function from Desec API 2023-06-19 14:59:46 -03:00
NaiJi ✨ 0d49b89e43 chore: Remove unused function for Cloudflare provider 2023-06-19 14:52:07 -03:00
NaiJi ✨ e418a58e5b chore: Remove unused ApiTokenvalidatoin 2023-06-19 14:42:48 -03:00
NaiJi ✨ 0502e68cc1 chore: Remove unused function 2023-06-19 12:12:15 -03:00
NaiJi ✨ 6337889ab7 chore: Remove unneeded files 2023-06-19 11:59:11 -03:00
NaiJi ✨ 4adcca5746 fix: Resolve timer conflicts on emultiple emits 2023-06-16 00:52:04 -03:00
Inex Code c87b834550 fix: dialogs during server setup 2023-06-16 06:00:08 +03:00
Inex Code 53e72504f7 refactor: Allow changing values for TLS settings 2023-06-16 05:59:48 +03:00
Inex Code 5069563d45 chore(router): Rebuild the router with latest AutoRoute 2023-06-16 04:31:23 +03:00
Inex Code 13af7e5e1d feat(backups): Introduce read GraphQL nodes for backups 2023-06-16 04:30:46 +03:00
Inex Code a5bb654a76 refactor(backups): Rename BackbaleCredential to BackupsCredential
Also adding provider field
2023-06-16 04:28:45 +03:00
NaiJi ✨ 695b9e0f7c chore: Merge master into refactoring 2023-06-15 14:05:21 -03:00
NaiJi ✨ b46c53674b feat: Implement new dialogue stub onChange 2023-06-15 13:48:23 -03:00
NaiJi ✨ 085c71748d fix: Add currency to price tag on server info page 2023-06-14 15:11:51 -03:00
NaiJi ✨ 69707f543f fix: Properly convert Digital Ocean droplets to ServerBasicInfo 2023-06-14 14:56:07 -03:00
NaiJi ✨ 2b1f6a12ea fix: Change JSON parsing for Digital Ocean droplets 2023-06-13 23:47:06 -03:00
NaiJi ✨ 65283306a9 fix: Make dropletIds field for DigitalOceanVolume optional 2023-06-13 23:37:47 -03:00
NaiJi ✨ f6424200e2 chore: Implement basic DigitalOceanServerType model 2023-06-12 23:48:29 -03:00
NaiJi ✨ 8d8e8cf265 fix: Change spf1 record from domainName to '@' for Digital Ocean DNS 2023-06-09 07:19:24 -03:00
NaiJi ✨ bfd67bac8d fix: Change .id field to ['id'] for DnsRecord in Digital Ocean DNS 2023-06-09 06:13:16 -03:00
NaiJi ✨ 55f62f1200 fix: Change sizeByte field to size for HetznerVolume 2023-06-09 05:11:42 -03:00
NaiJi ✨ 9d62d3af8e chore: Merge master into refactoring 2023-06-09 04:10:15 -03:00
Inex Code 4a7f986ff4 Merge pull request 'json-force' (#212) from json-force into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: kherel/selfprivacy.org.app#212
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-06-07 15:14:33 +03:00
NaiJi ✨ 140acaee49 chore: Implement basic Digital Ocean server models 2023-06-07 03:22:27 -03:00
NaiJi ✨ f42e415633 chore: Replace dynamic blobs with HetznerLocation 2023-06-07 00:25:34 -03:00
NaiJi ✨ 875a9e2e86 chore: Replace dynamic blobs with HetznerServerInfo 2023-06-07 00:20:42 -03:00
NaiJi ✨ fa4939d7c6 chore: Implement better Price abstraction for Digital Ocean server provider 2023-06-07 00:11:36 -03:00
NaiJi ✨ 49fe40bb38 chore: Implement better Price abstraction for Hetzner server provider 2023-06-07 00:09:39 -03:00
NaiJi ✨ 2a66d246c7 chore: Replace dynamic blobs with HetznerServerType 2023-06-07 00:03:34 -03:00
NaiJi ✨ ffa13aee04 chore: Implement HetznerVolume model and use it instead dynamic json 2023-06-06 23:35:57 -03:00
NaiJi ✨ 53c56e6bd4 feat: Remove basic_utils dependency
Replace it with InternetAddress from dart:io
2023-06-05 12:14:54 -03:00
NaiJi ✨ 29cbf702e5 fix: Remove unneded DNS check depending on CLOUDFLARE 2023-06-05 11:18:41 -03:00
NaiJi ✨ a690fb5089 fix: Force JSON content-type for REST API requests 2023-06-05 09:46:42 -03:00
NaiJi ✨ 4da4ed6afd feat: Move current installation dialogue error to installation state 2023-06-02 19:04:23 -03:00
NaiJi ✨ 040fc43e1f fix: Add DNS provider type to provider classes to fix wrong domain type 2023-06-02 02:44:34 -03:00
NaiJi ✨ 3a40b5ed32 fix: Add missing DNS providers to different installation steps 2023-06-02 02:15:13 -03:00
NaiJi ✨ f81bf968fd fix: Add forced JSON content type to REST APIs 2023-06-02 01:36:33 -03:00
NaiJi ✨ 3a0221e8b1 chore: Merge master into desec 2023-06-02 00:52:32 -03:00
Inex Code 7a80590fc8 Merge pull request 'feat: Add DeSEC as a DNS provider' (#211) from desec into master
Reviewed-on: kherel/selfprivacy.org.app#211
2023-06-01 15:16:15 +03:00
NaiJi ✨ f55800cd72 fix: Implement better domain id check on DNS restoration 2023-06-01 15:12:49 +03:00
Inex Code 370cbf1052 fix(ui): Button margins 2023-06-01 15:12:49 +03:00
Inex Code 4e65d5f945 refactor: Migrate to Flutter 3.10 and Dart 3.0 2023-06-01 15:12:49 +03:00
def 523a1a6df8 update desec markdown 2023-06-01 15:12:49 +03:00
NaiJi ✨ 0c038fda43 fix: Remove price lists for DNS and move deSEC onto above Cloudflare 2023-06-01 15:12:49 +03:00
NaiJi ✨ 0e3e560485 feat: Remove certificate check during installation 2023-06-01 15:12:49 +03:00
NaiJi ✨ 25eb82c131 feat: Implement proper access recovery for DNS providers 2023-06-01 15:12:49 +03:00
NaiJi ✨ 73ec2687b2 fix: Make minor improvements for deSEC 2023-06-01 15:12:49 +03:00
NaiJi ✨ 8b0d318eac chore: Add assets for deSEC 2023-06-01 15:12:49 +03:00
NaiJi ✨ 6bee028188 feat: Implement proper DKIM creation for deSEC 2023-06-01 15:12:49 +03:00
NaiJi ✨ 32ef162f9b feat: Implement polymorphic DNS check for DNS API 2023-06-01 15:12:49 +03:00
NaiJi ✨ c67e37a40e fix: Adjust graphql schemas to new dns provider
- fix runtime bugs
2023-06-01 15:12:49 +03:00
NaiJi ✨ 01c09aaae4 feat: Implement deSEC API support 2023-06-01 15:12:49 +03:00
NaiJi ✨ b41b4159b4 feat: Implement infrastructure for new DNS provider deSEC 2023-06-01 15:12:49 +03:00
NaiJi ✨ d114d1477f fix: Adapt usage of DNS provider interface to refactoring 2023-05-30 12:48:18 -03:00
NaiJi ✨ b0769b8ed0 chore: Separate business logic from API layer for Digital Ocean DNS 2023-05-30 00:04:29 -03:00
NaiJi ✨ 8123632cc1 feat: Implement Cloudflare DNS provider layer and separate from API 2023-05-29 23:18:02 -03:00
NaiJi ✨ 7832094609 chore: Create cloudflare dns provider interface and separate it from api 2023-05-25 00:15:58 -03:00
NaiJi ✨ 509b2ac7c7 chore: Move DNS provider methods to the abstract interface 2023-05-25 00:02:10 -03:00
NaiJi ✨ 8863dc8b2c chore: Move DNS validation to provider layer for desec 2023-05-24 23:51:40 -03:00
NaiJi ✨ eebbf98349 chore: Move domain list getter to dns provider layer for desec 2023-05-24 23:47:43 -03:00
NaiJi ✨ 4bb26559aa chore: Move business logic from API for desec dns provider 2023-05-22 23:40:25 -03:00
NaiJi ✨ a0a3bbe9d6 chore: Merge branch desec into refactoring 2023-05-21 20:46:33 -03:00
def 0310d37f00 Merge pull request 'update desec markdown' (#209) from desec-markdown into desec
Reviewed-on: kherel/selfprivacy.org.app#209
2023-05-20 23:14:58 +03:00
def 309e7ba621 Merge pull request 'fix old link' (#208) from fix-old-link into master
Reviewed-on: kherel/selfprivacy.org.app#208
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-05-20 23:13:15 +03:00
def f48b8bfa44 update desec markdown 2023-05-19 12:53:53 +03:00
def 53cf228748 fix old link 2023-05-19 11:45:22 +03:00
NaiJi ✨ 0a796c9fc6 chore: Merge desec into refactoring 2023-05-18 19:12:08 -03:00
NaiJi ✨ d276a8f708 fix: Remove price lists for DNS and move deSEC onto above Cloudflare 2023-05-18 19:06:13 -03:00
NaiJi ✨ 4260152081 chore: Merge desec into refactoring 2023-05-17 13:58:15 -03:00
NaiJi ✨ 25c048044e chore: Merge master into desec 2023-05-17 10:32:34 -03:00
NaiJi ✨ 4afcedebb7 feat: Remove certificate check during installation 2023-05-16 17:02:08 -03:00
NaiJi ✨ 232699bdb1 feat: Implement proper access recovery for DNS providers 2023-05-16 15:49:03 -03:00
NaiJi ✨ ce017c6ea8 fix: Make minor improvements for deSEC 2023-05-16 15:03:31 -03:00
NaiJi ✨ 732f39ef48 chore: Add assets for deSEC 2023-05-16 14:58:51 -03:00
NaiJi ✨ 6ddc2328f0 feat: Implement proper DKIM creation for deSEC 2023-05-16 12:49:55 -03:00
NaiJi ✨ e9665ad75d feat: Implement polymorphic DNS check for DNS API 2023-05-16 11:06:01 -03:00
Inex Code 38812c9b89 Merge pull request 'fix(ui): Privacy policy link' (#207) from fix-privacy-policy-link into master
Reviewed-on: kherel/selfprivacy.org.app#207
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-05-15 12:25:13 +03:00
Inex Code 0fb404bed4 fix(ui): Privacy policy link 2023-05-15 12:22:06 +03:00
NaiJi ✨ 56dd40e90e fix: Adjust graphql schemas to new dns provider
- fix runtime bugs
2023-05-12 16:32:19 -03:00
NaiJi ✨ af90ddd78a feat: Implement deSEC API support 2023-05-12 03:07:43 -03:00
NaiJi ✨ 234064ed72 feat: Implement infrastructure for new DNS provider deSEC 2023-05-09 03:15:48 -03:00
NaiJi ✨ 72a04a54b3 refactor: Remove low level ApiController and replace Dns interfaces 2023-05-03 00:01:44 -03:00
NaiJi ✨ 5cbf399a58 fix: Remove accidental hardcode for staging options 2023-05-02 23:49:13 -03:00
NaiJi ✨ 30385c2470 refactor: Create empty DnsProvider interfaces 2023-05-02 23:42:18 -03:00
NaiJi ✨ 0d55361a9b fix: Improve installation failure dialogues 2023-05-02 17:05:55 -03:00
NaiJi ✨ da4b38b787 fix: Move DNS entries creation step to server provider layer 2023-04-28 14:19:52 -03:00
NaiJi ✨ b242838339 fix: Make launchInstall return correct object for volume 2023-04-26 14:39:33 -03:00
NaiJi ✨ 854febc5d2 fix: Replace hardcoded string from Hetzner to Cloudflare for DNS providers page 2023-04-26 14:35:57 -03:00
NaiJi ✨ 1e9f1f88a7 fix: Hetzner installation issues
- Replace serverType id with locaiton id
- Replaces id accessing in volume from .id to [id]
2023-04-25 16:44:43 -03:00
NaiJi ✨ 4c2cfca4c4 fix: Change server location type for Hetzner 2023-04-25 16:20:23 -03:00
NaiJi ✨ d282f37b71 fix: Return correct adapters for Hive and make it run 2023-04-25 16:04:19 -03:00
NaiJi ✨ 4aa13dd63a chore: resolve ui conflicts and make it build 2023-04-24 13:45:16 -03:00
NaiJi ✨ 3b49805c9c chore: Move volume api to abstract server provider interface 2023-04-24 12:09:23 -03:00
NaiJi ✨ f6591cbfc6 chore: Implement server installation for Digital Ocean 2023-04-19 10:41:30 -03:00
NaiJi ✨ 15c0586ab3 chore: Merge digital-ocean-dns into refactoring 2023-04-12 05:32:56 -03:00
NaiJi ✨ 755ac1d5c0 chore: Merge master into digital-ocean-dns 2023-04-12 02:42:33 -03:00
Inex Code e180c23cb7 Merge pull request 'UI Refactor and move to auto_route' (#203) from ui-refactor into master
Reviewed-on: kherel/selfprivacy.org.app#203
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-04-08 04:00:48 +03:00
Inex Code 931da1443d refactor(ui): Delete BrandCards 2023-04-05 13:38:07 +03:00
Inex Code 466a221dd0 refactor(ui): More compact view of console.dart 2023-04-05 13:38:07 +03:00
Inex Code 4fde816023 refactor(ui): Remove unused components 2023-04-05 13:38:07 +03:00
Inex Code a9d7a27e9d refactor(ui): Update recovery flow to use new support drawer 2023-04-05 13:38:07 +03:00
Inex Code d242f5141e refactor(ui): Remove brand alert dialogs and bottom sheet 2023-04-05 13:38:07 +03:00
Inex Code f5313a8148 chore: New lints 2023-04-05 13:38:07 +03:00
Inex Code 805f12b9e9 docs: Document WidgetSize widget 2023-04-05 13:38:07 +03:00
Inex Code f0f1e8cacc refactor(ui): Get rid of BrandText and restructure the buttons 2023-04-05 13:38:07 +03:00
Inex Code c18191f639 feat: Add jobs button to the app bar of HeroScreen 2023-04-05 13:38:07 +03:00
Inex Code 3a77864a64 chore(router): Bump router version 2023-04-05 13:38:07 +03:00
Inex Code af7196d84b refactor(router): Migrate to AutoRouter v6 2023-04-05 13:38:07 +03:00
Inex Code 3366585d76 fix(router): PopUpDialogs couldn't find the context. 2023-04-05 13:38:07 +03:00
Inex Code ee9b8a4e31 refactor(router): Move more pages to new router 2023-04-05 13:38:07 +03:00
Inex Code 999c8346be style: Fix formatting 2023-04-05 13:38:07 +03:00
Inex Code 9a8965f569 fix: Fix BottomBar showing incorrect animation when navigating from sibling routes 2023-04-05 13:38:07 +03:00
Inex Code 9d6721d58b refactor: Deprecate showFab on BrandHeroScreen 2023-04-05 13:38:07 +03:00
Inex Code 1f5f366bc5 refactor(server-api): GraphQL codegen removed dependency on JSON Serializable. 2023-04-05 13:38:07 +03:00
Inex Code 0df9d2ac27 feat: Use Material 3 animation curves 2023-04-05 13:38:07 +03:00
Inex Code 6656635785 fix: remove unnecessary logging 2023-04-05 13:38:07 +03:00
Inex Code 423efeeb20 feat: Introduce new router and adaptive layouts 2023-04-05 13:38:07 +03:00
Inex Code befdc0286e feat: Automatic day/night theme 2023-04-05 13:38:07 +03:00
Inex Code 54513998ce fix: Devices and Recovery Key cubits couldn't initialize right after server installation 2023-04-05 13:38:07 +03:00
Inex Code 0b3b46b452 feat: Breakpoints utility 2023-04-05 13:38:07 +03:00
Inex Code 8fc229647f feat: Add Support drawer and basic support cubit. 2023-04-05 13:38:07 +03:00
Inex Code 768d5ff226 chore(dependencies): Remove share_plus, add auto_route and flutter_adaptive_scaffold 2023-04-05 13:38:07 +03:00
NaiJi ✨ 74c84a8445 chore: Merge digital-ocean-dns into refactoring 2023-03-30 01:30:58 -03:00
NaiJi ✨ f35c416160 chore: Merge master into digital-ocean-dns 2023-03-30 00:25:30 -03:00
Inex Code fb8fdad0c5 Merge pull request 'refactor: Migrate to Flutter 3.7' (#194) from flutter-3.7 into master
Reviewed-on: kherel/selfprivacy.org.app#194
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-03-28 17:46:23 +03:00
NaiJi ✨ 7b2540640f chore: Rewrite server installation function on api level for Digital Ocean 2023-03-22 21:28:16 -03:00
NaiJi ✨ 4e4b61609f chore: Move volume functions to provider layer for Digital Ocean 2023-03-21 13:08:46 -03:00
NaiJi ✨ dde6f7e80d chore: Move volume functions to provider layer for Hetzner 2023-03-20 12:22:43 -03:00
NaiJi ✨ 760d52e68a chore: Merge digital-ocean-dns into refactoring 2023-03-20 11:06:09 -03:00
NaiJi ✨ 38c3363805 chore: Merge flutter-3.7 into digital-ocean-dns 2023-03-20 11:03:26 -03:00
NaiJi ✨ 523656bb0a chore: Merge master into flutter-3.7 2023-03-20 11:00:04 -03:00
Inex Code 1b17905ff9 Merge pull request 'Updated translations 2023-03-14' (#204) from translations into master
Reviewed-on: kherel/selfprivacy.org.app#204
2023-03-17 14:37:42 +02:00
Thary d7a067474e Translated using Weblate (Polish)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-03-15 17:12:41 +00:00
FoxMeste e7ca94fd0a Translated using Weblate (Polish)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-03-13 21:12:40 +00:00
FoxMeste f264b309d7 Translated using Weblate (Polish)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-03-10 12:12:39 +00:00
NaiJi ✨ 7b543f9030 chore: Implement server deletion for digital ocean on provider level 2023-03-10 00:47:02 +04:00
NaiJi ✨ bc9ab447f0 chore: Implement server deletion for hetzner on provider layer 2023-03-09 13:06:15 +04:00
FoxMeste 20dca20862 Translated using Weblate (Polish)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-03-06 12:23:51 +00:00
NaiJi ✨ 76536f8115 chore: Move basic functionality of Digital Ocean to provider layer 2023-03-03 03:01:09 +04:00
NaiJi ✨ cd59c19c9c chore: Start implementing Digital Ocean provider layer 2023-03-01 06:53:51 +04:00
NaiJi ✨ 97e9e9d9cb chore: Adapt MetricsRepository to new ProvidersControllers model 2023-02-28 07:00:52 +04:00
Côme 7f3a339207 Translated using Weblate (French)
Currently translated at 57.2% (229 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/fr/
2023-02-24 18:23:46 +00:00
Thary 38fff57e15 Translated using Weblate (Belarusian)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/be/
2023-02-24 18:23:45 +00:00
Thary 985c4a34e8 Translated using Weblate (Polish)
Currently translated at 72.0% (288 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-02-24 18:23:44 +00:00
NaiJi ✨ 62c0030f8e chore: Implement server installation logic on cubit layer 2023-02-22 21:58:59 +04:00
NaiJi ✨ ef04b5bf57 chore: Implement server installation on businness logic layer for hetzner 2023-02-22 21:03:58 +04:00
FoxMeste 17f15a591b Translated using Weblate (Belarusian)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/be/
2023-02-21 18:40:05 +00:00
FoxMeste fde7082fc9 Translated using Weblate (Belarusian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/be/
2023-02-21 18:40:05 +00:00
FoxMeste 5a47ef4819 Translated using Weblate (Thai)
Currently translated at 60.2% (241 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/th/
2023-02-21 18:40:04 +00:00
Côme b2f0819e18 Translated using Weblate (French)
Currently translated at 53.0% (212 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/fr/
2023-02-21 18:40:03 +00:00
NaiJi ✨ 8da7341ccb chore: Implement basics of hetzner installation logic 2023-02-21 13:11:04 +04:00
NaiJi ✨ e739f7ab9d chore: Merge digital-ocean-dns into refactoring 2023-02-17 13:36:18 +04:00
NaiJi ✨ 7ddc90383b chore: Merge flutter-3.7 into digital-ocean-dns 2023-02-17 13:35:51 +04:00
NaiJi ✨ 61f2cb010d chore: Merge master into flutter-3.7 2023-02-17 13:35:24 +04:00
FoxMeste 48ad69f231 Translated using Weblate (Russian)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-02-17 06:39:33 +00:00
FoxMeste 16d66155db Translated using Weblate (Polish)
Currently translated at 63.7% (255 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-02-17 06:39:33 +00:00
Revertron c30001c829 Translated using Weblate (Russian)
Currently translated at 99.5% (398 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-02-17 06:39:33 +00:00
Revertron 4f9a717dc3 Translated using Weblate (Slovak)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sk/
2023-02-17 06:39:33 +00:00
FoxMeste d72c790dea Translated using Weblate (Polish)
Currently translated at 20.0% (1 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_ssh
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_ssh/pl/
2023-02-17 06:39:33 +00:00
FoxMeste 9185111a56 Translated using Weblate (Polish)
Currently translated at 50.0% (1 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_backblaze
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_backblaze/pl/
2023-02-17 06:39:33 +00:00
FoxMeste 6d68bd3cd6 Translated using Weblate (Polish)
Currently translated at 59.0% (236 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-02-17 06:39:33 +00:00
FoxMeste 633710e3c5 Translated using Weblate (German)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2023-02-17 06:39:33 +00:00
FoxMeste 5482ecc232 Translated using Weblate (Macedonian)
Currently translated at 1.2% (5 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/mk/
2023-02-17 06:39:33 +00:00
FoxMeste 024aad0903 Translated using Weblate (Polish)
Currently translated at 50.0% (1 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_old
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_old/pl/
2023-02-17 06:39:33 +00:00
FoxMeste b3a1d18a23 Translated using Weblate (Spanish)
Currently translated at 18.0% (72 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/es/
2023-02-17 06:39:33 +00:00
FoxMeste 7322d5281a Translated using Weblate (Belarusian)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/be/
2023-02-17 06:39:33 +00:00
FoxMeste 1498a16853 Translated using Weblate (Polish)
Currently translated at 12.5% (1 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/pl/
2023-02-17 06:39:33 +00:00
FoxMeste 50b504d563 Translated using Weblate (Polish)
Currently translated at 50.0% (1 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/pl/
2023-02-17 06:39:33 +00:00
FoxMeste 0a028df6d4 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2023-02-17 06:39:33 +00:00
FoxMeste bac6e66ac0 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/az/
2023-02-17 06:39:33 +00:00
Revertron b4b8625a26 Translated using Weblate (English)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/en/
2023-02-17 06:39:33 +00:00
FoxMeste 35f00fa032 Translated using Weblate (Japanese)
Currently translated at 0.5% (2 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ja/
2023-02-17 06:39:33 +00:00
Ortibexon 59e7693f36 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/az/
2023-02-17 06:39:33 +00:00
Inex Code 0938f35a23 Added translation using Weblate (Slovenian) 2023-02-17 06:39:33 +00:00
FoxMeste f17bd9ed20 Translated using Weblate (Belarusian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_backblaze
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_backblaze/be/
2023-02-17 06:39:33 +00:00
FoxMeste b0f4a243a9 Translated using Weblate (German)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/de/
2023-02-17 06:39:33 +00:00
FoxMeste 7375074c48 Translated using Weblate (German)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_backblaze
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_backblaze/de/
2023-02-17 06:39:33 +00:00
FoxMeste 0e76f5301f Translated using Weblate (German)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_old
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_old/de/
2023-02-17 06:39:33 +00:00
FoxMeste b91cd9eb40 Translated using Weblate (German)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2023-02-17 06:39:33 +00:00
FoxMeste bd0e3e0158 Translated using Weblate (Belarusian)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_ssh
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_ssh/be/
2023-02-17 06:39:33 +00:00
FoxMeste c3d47fb526 Translated using Weblate (German)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/de/
2023-02-17 06:39:33 +00:00
FoxMeste 6d0db6a28d Translated using Weblate (German)
Currently translated at 100.0% (6 of 6 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: about
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-about/de/
2023-02-17 06:39:33 +00:00
Ortibexon 61a70970ed Translated using Weblate (Azerbaijani)
Currently translated at 40.5% (162 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/az/
2023-02-17 06:39:33 +00:00
FoxMeste 9816035757 Translated using Weblate (German)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/de/
2023-02-17 06:39:33 +00:00
FoxMeste 7269dd8620 Translated using Weblate (Belarusian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_old
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_old/be/
2023-02-17 06:39:33 +00:00
FoxMeste 7610b1da0d Translated using Weblate (German)
Currently translated at 100.0% (8 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/de/
2023-02-17 06:39:33 +00:00
FoxMeste b24b093232 Translated using Weblate (Belarusian)
Currently translated at 100.0% (8 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/be/
2023-02-17 06:39:33 +00:00
FoxMeste 8756d53545 Translated using Weblate (German)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_ssh
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_ssh/de/
2023-02-17 06:39:33 +00:00
Inex Code 0edc6ab30f Added translation using Weblate (Azerbaijani) 2023-02-17 06:39:33 +00:00
FoxMeste b057fda550 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/uk/
2023-02-17 06:39:33 +00:00
FoxMeste 2bde5fffef Translated using Weblate (Thai)
Currently translated at 42.0% (168 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/th/
2023-02-17 06:39:33 +00:00
FoxMeste a8fbeca007 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (8 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/uk/
2023-02-17 06:39:33 +00:00
FoxMeste 96b733f814 Translated using Weblate (Polish)
Currently translated at 53.2% (213 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-02-17 06:39:33 +00:00
FoxMeste 600b73279d Translated using Weblate (Belarusian)
Currently translated at 100.0% (6 of 6 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: about
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-about/be/
2023-02-17 06:39:33 +00:00
FoxMeste f731b4284b Translated using Weblate (Belarusian)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/be/
2023-02-17 06:39:33 +00:00
FoxMeste bc434439ef Translated using Weblate (Russian)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-02-17 06:39:33 +00:00
Inex Code c37ad33fe2 Added translation using Weblate (Macedonian) 2023-02-17 06:39:33 +00:00
FoxMeste 4735d89556 Translated using Weblate (German)
Currently translated at 46.2% (185 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2023-02-17 06:39:33 +00:00
FoxMeste 7d963ed0f2 Translated using Weblate (Polish)
Currently translated at 38.7% (156 of 403 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-02-17 06:39:33 +00:00
Weblate 7d9981c265 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/
2023-02-17 06:39:33 +00:00
Inex Code aeb1319262 Merge pull request 'Make Windows builds' (#202) from windows-builds into master
Reviewed-on: kherel/selfprivacy.org.app#202
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-02-17 08:39:31 +02:00
Alya Sirko f5f1f91900 Make Windows builds 2023-02-17 03:11:58 +02:00
NaiJi ✨ 3873c1d3cc chore: Merge digital-ocean-dnso into refactoring 2023-02-17 00:48:35 +04:00
NaiJi ✨ 512f270547 chore: Merge flutter-3.7 into digital-ocean-dns 2023-02-17 00:48:00 +04:00
NaiJi ✨ f731eae1c0 chore: Merge master into flutter-3.7 2023-02-17 00:47:17 +04:00
NaiJi ✨ aa241297bb chore: Merge fix-fdroid-metadata into master
Reviewed-on: kherel/selfprivacy.org.app#201
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-02-16 21:48:48 +02:00
Alya Sirko 5d0519cb11 add fdroid images 2023-02-16 21:24:40 +02:00
Alya Sirko 438bad3cd0 fix fdroid metadata 2023-02-16 21:22:19 +02:00
Alya Sirko c43a8bc047 try to fix fdroid metadata 2023-02-16 20:47:27 +02:00
NaiJi ✨ 02abb3d321 chore: Merge digital-ocean-dns into refactoring 2023-02-15 11:46:15 +04:00
NaiJi ✨ ba1f9dbfc9 chore: Merge flutter-3.7 into digital-ocean-dns 2023-02-15 11:45:48 +04:00
NaiJi ✨ 79dcb4178a chore: Merge ram-server-filtering into master
Reviewed-on: kherel/selfprivacy.org.app#200
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-02-15 09:45:48 +02:00
NaiJi ✨ 5db42c37b6 chore: Merge master into flutter-3.7 2023-02-15 11:45:14 +04:00
NaiJi ✨ e99b08bcc3 fix: Improve DigitalOcean server types filtering
- Convert RAM to GB
- Don't let it droplets with RAM less than 1024 MB
2023-02-15 11:03:13 +04:00
NaiJi ✨ be25775601 chore: Merge digital-ocean-dns into refactoring 2023-02-15 10:45:14 +04:00
NaiJi ✨ b818d3bfe1 chore: Marge flutter-3.7 into digital-ocean-dns 2023-02-15 10:44:51 +04:00
NaiJi ✨ 63c667355d chore: Merge master into flutter-3.7 2023-02-15 10:44:13 +04:00
NaiJi ✨ bad6926567 chore: Continue refactoring
- Rename APIGenericResult to GenericResult
- Wrap all provider functions results with GenericResult
- Move basic server commands and getters to business logic layer from API on Hetzner
2023-02-13 18:13:32 +04:00
Inex Code 74df5480df Merge pull request 'fix packaging metadata' (#197) from fix-metadata into master
Reviewed-on: kherel/selfprivacy.org.app#197
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-02-09 06:10:52 +02:00
Alya Sirko 6cebe27852 fix packaging metadata 2023-02-08 22:33:34 +02:00
Inex Code 176eb319e7 Merge pull request 'Set compileSdkVersion' (#196) from fix-build into master
Reviewed-on: kherel/selfprivacy.org.app#196
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-02-08 20:46:06 +02:00
Alya Sirko 9c27083a1c set compileSdkVersion 2023-02-08 20:19:27 +02:00
NaiJi ✨ efe4f620ee chore: Transfer some methords from api to provider 2023-02-07 20:51:15 +04:00
NaiJi ✨ c1738ec875 chore: Add build runner results 2023-02-06 13:28:30 +04:00
NaiJi ✨ 4d4a980aaf Merge branch 'digital-ocean-dns' into refactoring 2023-02-06 12:40:08 +04:00
NaiJi ✨ 2fd5c9a2cd chore: Merge flutter-3.7 into digital-ocean-dns 2023-02-06 12:39:39 +04:00
Inex Code 6b90c5aa3b refactor: Migrate to Flutter 3.7 2023-02-05 16:24:37 +03:00
Inex Code c4e5d44b8e Merge pull request 'fix/inex-ui' (#193) from fix/inex-ui into master
Reviewed-on: kherel/selfprivacy.org.app#193
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-02-02 17:39:18 +02:00
Inex Code dc05bd9e99 Merge pull request 'build(ios): Fix ios builds' (#192) from fix/ios into master
Reviewed-on: kherel/selfprivacy.org.app#192
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-02-02 17:38:53 +02:00
Inex Code cd552616bd docs(changelog): Add localizations to changelog 2023-02-02 12:46:08 +03:00
Inex Code 1bde176612 feat(translations): Activate support for some languages
Languages being activated are:
- Ukrainian
- German
- French
- Spanish
- Czech
- Polish
- Thai

Translation which are not finished will fall back to English.
2023-02-01 01:57:55 +03:00
Inex Code c271331f29 refactor(ui): Remove SafeArea where they are not needed 2023-02-01 01:40:42 +03:00
Inex Code 80547785d3 refactor(ui): Change the styling of "Server is not ready" card 2023-02-01 01:29:17 +03:00
Inex Code 44553eaf85 fix(ui): Add a title to setup wizard 2023-02-01 01:13:06 +03:00
Inex Code c8bc75d422 fix(ui): Make onboarding screen more adaptive 2023-02-01 01:11:59 +03:00
Inex Code e186dac39f fix(ui): Deduplicated launch_url functions
Also fixed issue of calling URI with duplicate protocol

Closes: #184
2023-02-01 01:11:50 +03:00
Inex Code 2cd564c38d build(ios): Fix ios builds 2023-01-31 20:48:30 +02:00
NaiJi ✨ a270f3dfbb feat: Implement general server provider and its factory 2023-01-30 19:44:52 +04:00
NaiJi ✨ 818de37acd chore: Merge digital-ocean-dns into refactoring 2023-01-29 08:57:08 +04:00
NaiJi ✨ fcd1c29606 fix: Remove breaking underscore from a launchURL call
In services.dart
2023-01-29 08:56:51 +04:00
NaiJi ✨ 10593229b2 chore: Merge master into digital-ocean-dns 2023-01-29 08:54:31 +04:00
NaiJi ✨ 42b9de656c chore: Merge recovery-fix into master
Reviewed-on: kherel/selfprivacy.org.app#190
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-01-29 06:50:31 +02:00
NaiJi ✨ 4548620f0a chore: Merge services-urls into master
Reviewed-on: kherel/selfprivacy.org.app#191
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-01-29 06:50:10 +02:00
NaiJi ✨ 9929cdd1a3 fix: Remove double protocol on opening a service link 2023-01-29 08:41:59 +04:00
NaiJi ✨ 9cbe3b2abb fix: Improve dns checking on recovery
No special case for when a user only has one server
2023-01-29 08:31:40 +04:00
NaiJi ✨ 27925f5d8a Merge branch 'digital-ocean-dns' into refactoring 2023-01-27 20:55:00 +04:00
NaiJi ✨ 3f3743c5c4 Merge branch 'master' into digital-ocean-dns 2023-01-27 20:54:43 +04:00
Inex Code 4e1659cfdc Updated translations 2023-01-24 (#189)
* French

    * FoxMeste (30)

* Ukrainian

    * CaminoConDios (9)
    * FoxMeste (11)
    * SomeUsername (46)
    * Illia (78)

* Spanish

    * CaminoConDios (70)

* Russian

    * Inex Code (3)
    * def (7)

* German

    * FoxMeste (63)

* Polish

    * CaminoConDios (38)
    * selfprivacy_weblate2 (151)

* Czech

    * Pavel Novák (34)

* Thai

    * Shitsanupong Raksat (4)
    * FoxMeste (156)

Co-authored-by: selfprivacy_weblate1 <selfprivacy_weblate1@riseup.net>
Co-authored-by: Illia <ilyxa05gg@gmail.com>
Co-authored-by: selfprivacy_weblate2 <selfprivacy_weblate2@riseup.net>
Co-authored-by: def <dettlaff@riseup.net>
Co-authored-by: CaminoConDios <CaminoConDios@riseup.net>
Co-authored-by: FoxMeste <NewJessica@riseup.net>
Co-authored-by: Shitsanupong Raksat <shitsanupong3@gmail.com>
Reviewed-on: kherel/selfprivacy.org.app#189
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-01-27 15:59:45 +02:00
NaiJi ✨ fd8c286a08 Merge branch 'digital-ocean-dns' into refactoring 2023-01-23 19:55:13 +04:00
NaiJi ✨ e48ae98f89 Merge branch 'master' into digital-ocean-dns 2023-01-23 19:54:50 +04:00
NaiJi ✨ 0ae4a40e62 chore: Rename api factories 2023-01-23 19:36:43 +04:00
Inex Code ad3b0380ea Merge pull request 'chore(translations): Add languages to md files' (#186) from new-translations into master
Reviewed-on: kherel/selfprivacy.org.app#186
2023-01-20 12:41:06 +02:00
Inex Code f06ad3bf9c chore(translations): Add languages to md files 2023-01-20 13:39:57 +03:00
NaiJi ✨ 14263083a5 feat: Implement server recovery for different dns providers 2023-01-17 18:33:25 +04:00
NaiJi ✨ 08cd59a709 feat: Implement DNS_PROVIDER_TYPE variable for infecting server 2023-01-17 17:29:15 +04:00
Inex Code 4ee93bf03c Merge pull request 'Include *.aab in Release Stage' (#185) from include-aab into master
Reviewed-on: kherel/selfprivacy.org.app#185
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-01-17 15:22:54 +02:00
Alya Sirko 439b079c09 Include AABs in Release Stage 2023-01-17 03:20:54 +02:00
NaiJi ✨ 841aee73e8 feat: Implement Digital Ocean DNS email entries 2023-01-16 21:25:48 +04:00
Inex Code fe8a7cf9ac Merge pull request 'Try to fix CI pipeline' (#183) from fix-ci into master
Reviewed-on: kherel/selfprivacy.org.app#183
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-01-16 07:49:32 +02:00
Alya Sirko 90b1cc67e4 typo 2023-01-14 01:22:20 +02:00
Alya Sirko 7d2b474210 try to fix pipeline 2023-01-14 01:14:28 +02:00
NaiJi ✨ 3b962c5f5a feat: Adapt Desired DNS Records checking for Digital Ocean 2023-01-11 22:01:46 +04:00
NaiJi ✨ 120a8fc644 feat: Implement proper DNS entries creation for Digital Ocean 2023-01-10 21:24:26 +04:00
NaiJi ✨ 07de11c75a fix: Implement correct DNS entries creation and deletion 2023-01-06 19:28:52 +04:00
NaiJi ✨ 9184a9db5d feat: Implement DnsProvider loaging 2023-01-05 14:12:59 +04:00
NaiJi ✨ 36bc5b2554 chore: Generate build runner files 2023-01-05 13:16:30 +04:00
NaiJi ✨ 2980887333 feat: Add DNS provider selection page
Upload cloudflare svg
2023-01-04 14:42:22 +04:00
NaiJi ✨ 6767b679a0 chore: Merge master into digital-ocean-dns 2023-01-03 13:00:01 +04:00
Inex Code b0c0805402 Merge pull request 'ci: Enable AAB generation' (#159) from release-party into master
Reviewed-on: kherel/selfprivacy.org.app#159
2022-12-31 09:57:12 +02:00
Inex Code 4ed0ffb846 ci: Enable AAB generation 2022-12-31 10:56:47 +03:00
NaiJi ✨ 9dbe79ed73 Merge pull request 'docs: Add Digital Ocean how-to markdown and privacy policy' (#158) from release-party into master
Reviewed-on: kherel/selfprivacy.org.app#158
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-12-31 08:33:14 +02:00
NaiJi ✨ e0c04468bc Merge branch 'master' into release-party 2022-12-31 10:06:34 +04:00
Inex Code d1c4aa9fc6 feat(about): Add privacy policy and licenses 2022-12-31 09:04:25 +03:00
NaiJi ✨ 12de989df6 docs: Add Digital Ocean how-to markdown 2022-12-31 10:01:27 +04:00
Inex Code dcb265b9f4 Merge pull request 'New Year release party 🎄🎉 (SP 0.8.0)' (#157) from release-party into master
Reviewed-on: kherel/selfprivacy.org.app#157
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2022-12-31 07:40:45 +02:00
Inex Code 2fb9932eb6 chore: Bump version 2022-12-31 08:40:32 +03:00
Inex Code 53fc0d4d28 chore: Disable staging ACME 2022-12-31 08:13:28 +03:00
Inex Code bbb1d55b64 feat(services): Sort the services by their status
Done by changing the indexes of ServiceStatus enum and sorting by it.
2022-12-31 08:08:25 +03:00
Inex Code 5f311ee907 feat(logging): Add limit to log console 2022-12-31 07:58:20 +03:00
Inex Code e2a9493b61 fix(jobs): Make jobs panel take less space
Closes: #136
2022-12-31 07:51:47 +03:00
Inex Code 3feb5acf71 style: Linting 2022-12-31 07:50:43 +03:00
Inex Code 48446ab3d5 fix(charts): Temporary fix for Hetzner CPU chart 2022-12-31 07:49:19 +03:00
NaiJi ✨ 6950e32558 docs(translations): Translate new assets to Russian 2022-12-31 08:29:42 +04:00
Inex Code b007fec75b refactor(initializing): Refresh the server istallation UI 2022-12-31 07:16:10 +03:00
Inex Code 040de69268 docs(translations): Add translations to use this domain screen 2022-12-31 06:58:37 +03:00
Inex Code a750fa2eeb fix(translations): typo 2022-12-31 06:44:31 +03:00
Inex Code 72969ec1eb fix(Incorrect translation keys): 2022-12-31 06:40:08 +03:00
NaiJi ✨ 41340f2026 docs: Add server type assets 2022-12-31 07:36:49 +04:00
NaiJi ✨ 979e8dd908 docs: Add select provider notice 2022-12-31 06:53:01 +04:00
NaiJi ✨ 3fad05c8d5 docs: Add english text for new installation process 2022-12-31 06:40:02 +04:00
Inex Code fc3d78662e refactor(theming): Remove gtk and win plugins for color extraction
Default plugin now takes care of that
2022-12-31 05:33:04 +03:00
Inex Code e342727181 refactor(services): Remove services switch on services screen cards 2022-12-31 05:31:59 +03:00
NaiJi ✨ f24137cd98 docs: Implement new basic onboading translations 2022-12-31 03:25:05 +04:00
NaiJi ✨ e560de58e7 feat: Implement DNS provider picker page 2022-12-30 07:25:18 +04:00
NaiJi ✨ d333787f37 fix: Change incorrect domain for domain lists 2022-12-28 17:23:28 +04:00
NaiJi ✨ 86cd12803a chore: Merge deletion-error into master
Reviewed-on: kherel/selfprivacy.org.app#155
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-12-23 12:12:55 +02:00
NaiJi ✨ f64f741a76 fix: Manage server deletion for Digital Ocean 2022-12-23 13:50:38 +04:00
NaiJi ✨ 41dc77103f feat: Implement error handling on server deletion
Notify users when errors occured and handle application state accordingly
2022-12-22 22:56:58 +04:00
NaiJi ✨ fc4f78162b feat: Implement domain list getter for digital ocean dns 2022-12-21 23:35:20 +04:00
NaiJi ✨ a45b93cd27 feat: Improve Dns Record structure and logic
It is to much digital ocean api. The decision with adding optional id is bad, but it will be refactored soon along with entire backend.
2022-12-21 23:31:03 +04:00
NaiJi ✨ 8922551239 Merge branch 'master' into digital-ocean-dns 2022-12-21 13:47:25 +04:00
Inex Code a0e531f18c Merge pull request 'feat: Implement logging for GraphQL API map' (#153) from graphql-logging into master
Reviewed-on: kherel/selfprivacy.org.app#153
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-12-19 21:05:02 +02:00
NaiJi ✨ 8dffcab30d chore: Rename and unify GraphQL logging classes 2022-12-19 22:53:07 +04:00
NaiJi ✨ 813d275d12 feat: Implement logging for GraphQL API map
Log to application console all requests and all responses
2022-12-19 22:47:35 +04:00
NaiJi ✨ 18d3039dc4 chore: Create infrastructure for Digital Ocean DNS provider
Also rename hardcoded cloudflare names from backend
2022-12-17 14:26:19 +04:00
NaiJi ✨ 1e8f17f16e chore: Merge recovery-error into master
Reviewed-on: kherel/selfprivacy.org.app#152
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-12-15 13:55:23 +02:00
NaiJi ✨ 7847839ea6 feat: Enable server provider logging 2022-12-15 15:42:21 +04:00
NaiJi ✨ 968667e4bf chore: Merge ssh-access-recovery into master
Reviewed-on: kherel/selfprivacy.org.app#151
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-12-13 06:34:01 +02:00
NaiJi ✨ d7318ed2e4 fix: Make recovery by API token endpoint expect GraphQL token
We pass GraphQL token, but at the same time we did not use it and tried to authorize without token...
2022-12-13 08:15:32 +04:00
NaiJi ✨ 51ca8bce27 chore: Merge endpoint-errors into master
Reviewed-on: kherel/selfprivacy.org.app#149
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-12-09 16:35:51 +02:00
NaiJi ✨ b5133aa2a6 fix: Remove breaking installation changes 2022-12-02 23:06:57 +04:00
NaiJi ✨ e0b32404be refactor: Implement better error handling on create server stage
Replace try-catch hell with APIGenericResult chain
2022-12-02 22:40:08 +04:00
NaiJi ✨ 29b0bf2397 fix: Fix some initializing errors
Correct progress index calculation and hardcore cloudflare loading until new providers for DNS are supported
2022-11-30 19:05:21 +04:00
NaiJi ✨ 899c84c54f chore: Rename Check step to Installation
It just feels more convenient tbh...
2022-11-30 19:04:04 +04:00
NaiJi ✨ 54d8b04439 fix: Fix backblaze token validation
True if correct, false if incorrect, null if no connection
2022-11-30 19:02:30 +04:00
NaiJi ✨ 65f5d987e2 feat: Implement error handling for server installation
Now user gets notified when connection error occurs
2022-11-29 19:21:36 +04:00
NaiJi ✨ 1dfd2180d2 feat: Implement distinction for connection errors on storage page
Now user gets notified when connection error occurs
2022-11-29 15:28:09 +04:00
NaiJi ✨ 6b5a4f7875 chore: Make assets for connectior eroor shorter
To fit on screen
2022-11-29 15:27:19 +04:00
NaiJi ✨ e62e8bf916 feat: Implement distinction for connection errors on dns provider page
Now user gets notified when connection error occurs
2022-11-28 23:55:37 +04:00
NaiJi ✨ 1df5f6594d feat: Implement distinction for connection errors on server type page
Now user gets notified when connection error occurs
2022-11-28 23:11:08 +04:00
NaiJi ✨ bd33b8d679 feat: Implement distinction for connection errors on initialing page
Now it's 'false' when api token is invalid and null response if couldn't connect at all, to show different kinds of errors to the user
2022-11-28 22:51:37 +04:00
NaiJi ✨ 58ce0f0f8b chore: Merge digital-ocean into master
Reviewed-on: kherel/selfprivacy.org.app#140
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-11-23 15:28:32 +02:00
NaiJi ✨ 8c6b56f61d fix: Make improvements by Code Review 2022-11-23 11:55:28 +04:00
NaiJi ✨ a70e793360 chore: Merge master into digital-ocean 2022-11-22 16:10:00 +04:00
Inex Code 32ca58537e Merge pull request 'feat: Add refresh indicator on Recovery Key page to support drag gestures' (#148) from recovery-keys into master
Reviewed-on: kherel/selfprivacy.org.app#148
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-11-22 14:07:24 +02:00
NaiJi ✨ 3ba2c6f731 feat: Add refresh indicator on Recovery Key page to support drag gestures 2022-11-21 17:17:27 +04:00
NaiJi ✨ 479efac6e9 chore: Fix an awkward commentary typo... 2022-11-20 18:35:44 +04:00
NaiJi ✨ 93b28d981e chore: Remove testing flag before merging into master 2022-11-20 18:34:20 +04:00
NaiJi ✨ 58c9e00ce0 fix(recovery): Add reverse dns validation for digital ocean
In Digital Ocean reverse dns is not domain name but just name, like mydomainname instead of mydomainname.xyz, so we need additional condition
2022-11-20 18:31:31 +04:00
NaiJi ✨ b2a5d57a1d feat(initializing): Add description and back button to server type step 2022-11-20 14:48:08 +04:00
NaiJi ✨ b53bb6d4dd refactor: Remove 'unused' warnings 2022-11-18 11:33:28 +04:00
NaiJi ✨ b26e22cd4e fix: Check on null for server type identifier
It is not needed to finish installation so it's okat if it's empty
2022-11-18 11:30:50 +04:00
NaiJi ✨ da394e22ac feat(server-api): Implement bad certificates fallback for staging environment
Without it client application won't accept staging certificates from server
2022-11-18 10:59:47 +04:00
NaiJi ✨ 0c4da8eb9f refactor: Move all API factories into encapsulated static class
Because it's very hard to track all different provider factories created in different cubits, if users reset application config the previous factories stayed unchanged which would lead to unexpected behavior
2022-11-18 09:49:04 +04:00
NaiJi ✨ 268816385f fix(recovery): Fix custom api token on recovering provider type 2022-11-18 05:19:54 +04:00
NaiJi ✨ 611fe6bf45 feat(server-api): Implement support for staging acme certificates
Related to https://letsencrypt.org/docs/staging-environment/ to not get domain banned by constant renewal
2022-11-17 11:21:49 +04:00
NaiJi ✨ 51dc4c67b2 feat(recovery): Implement access recovery routing for server providers 2022-11-17 11:14:34 +04:00
NaiJi ✨ 0234278c2c refactor: Rename server.dart to server_api.dart
Because the class is called ServerApi, not just Server, it's totally not consistent with all other apis
2022-11-16 04:24:40 +04:00
NaiJi ✨ bde364dde1 fix(digital-ocean): Adjust charts rendering for digital ocean values 2022-11-16 04:12:49 +04:00
NaiJi ✨ 2a5fceae91 fix(hetzner): Fix endpoints urls
Incorrect dereferencing in strings
2022-11-16 00:49:41 +04:00
NaiJi ✨ 92b417a103 feat(digital-ocean): Implement metrics for Digital Ocean 2022-11-15 08:00:10 +04:00
NaiJi ✨ 7fdc546714 refactor(server-api): Make appearance provider name polymorphic and required for metadata 2022-11-14 09:48:36 +04:00
NaiJi ✨ e20063a9ad chore: Remove unneeded metrics fields
PPS metrics aren't used in our charts
2022-11-12 22:44:15 +04:00
NaiJi ✨ a7cbde663e refactor(server-api): Generalize and encapsulate server metrics endpoints 2022-11-12 22:11:14 +04:00
NaiJi ✨ e66b24d869 refactor: Remove obsolete initializing steps enum type 2022-11-11 15:29:17 +04:00
NaiJi ✨ 10bdd4c800 refactor(server-api): Make general server info polymorphic
Removing Hetzner type hardcode from server page and replacing it with generic String-based metadata container
2022-11-11 07:32:01 +04:00
NaiJi ✨ b3395915da fix(digital-ocean): Add correct linuxDevice path to volume objects
linuxDevice consists of supposedly hardcoded 'scsi-0DO_Volume_' plus given volume name
2022-11-10 21:03:16 +04:00
NaiJi ✨ cdc47ecdb3 refactor(ui): Move all pop up dialogs into general utils function
To not import get_it everywhere and encapsulate all the related dirt into utils.
2022-11-09 22:43:05 +04:00
Inex Code 6eb49fa8f1 fix(digital-ocean): Change the cloud-config payload
Now the server builds!
2022-11-08 04:25:04 +03:00
NaiJi ✨ 59d186a8af fix(volume): Change raw int to DiskSize object in volume endpoints
We already have an abstraction for size, there is no need to pass size value as raw numeric variables
2022-11-04 16:19:39 +04:00
NaiJi ✨ aa1c04fdb8 fix(digital-ocean): Fix response code checking on volume actions
We can't compare with 'compelted' because Digital Ocean responses with 'in progress' right away or something, so it's better to check if it's just not 'error'
2022-11-04 16:05:40 +04:00
NaiJi ✨ edc171efd7 fix(digital-ocean): Fix emoji picking for Digital ocean locations 2022-11-04 15:59:38 +04:00
NaiJi ✨ ff32ae96a5 chore: Merge master into digital-ocean 2022-11-04 15:58:15 +04:00
Inex Code 0639ee4d57 Merge pull request 'docs: Add brief list of critical packages for Linux build' (#146) from readme into master
Reviewed-on: kherel/selfprivacy.org.app#146
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-11-02 23:09:31 +02:00
NaiJi ✨ 6d548ce197 docs: Add brief list of critical packages for Linux build
Since I always forget what implicit dependencies this application has, maybe we need better documentation structure
2022-11-03 00:55:09 +04:00
NaiJi ✨ dc4ba7bce5 fix(digital-ocean): Modify cloud-init, add write_files sections
Provide host.nix to infect with 0644 permissions
2022-11-02 18:59:41 +04:00
NaiJi ✨ 8c053f50b0 chore: Merge master into digital-ocean 2022-11-02 18:45:36 +04:00
NaiJi ✨ 667c59e93e chore: Merge deprecated into master
Reviewed-on: kherel/selfprivacy.org.app#145
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-11-01 14:57:08 +02:00
NaiJi ✨ 86b80156fd refactor: Generalize DKIM usage into DnsRecords
- Replace raw DKIM String object with a general DnsRecord structure
- Implement network utils for common operations with networking concepts and structures
- Implement initializing page pop up to re-try server deployment in case of a random networking error
2022-10-30 18:23:47 +04:00
NaiJi ✨ 57d82d0f7a refactor(server-api): Move provider name from hardcode string to a polymorphic variable
- Rename 'digital-ocean' to 'digitalocean'
2022-10-29 12:03:43 +04:00
NaiJi ✨ 68811efc1e refactor(server-api): Generalize and unify api response objects
- Separate response success from  business logic operation success
- Remove ApiResponse, replace with GenericResult
- Make GenericMutationResult inherit GenericResult
- Add generic error message for when a response couldn't be sent or received
2022-10-28 12:20:09 +04:00
NaiJi ✨ 0dc0ba215a fix(digital-ocean): Adjust droplet data preparations according to API notation 2022-10-27 20:01:22 +04:00
NaiJi ✨ cb94248df0 fix: Generate hive build runner model for server details 2022-10-27 17:08:59 +04:00
NaiJi ✨ 4aa6caed65 chore: Merge master into digital-ocean 2022-10-27 17:05:41 +04:00
NaiJi ✨ 25362665a4 chore: Merge build-runner into master
Reviewed-on: kherel/selfprivacy.org.app#144
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-10-27 16:04:42 +03:00
NaiJi ✨ 7c61d9a787 chore: Generate build runner models 2022-10-27 16:15:35 +04:00
NaiJi ✨ ed37775510 chore: Merge master into digital-ocean 2022-10-26 21:27:22 +04:00
NaiJi ✨ 7daa87f6c4 chore: Merge graphql into master
Reviewed-on: kherel/selfprivacy.org.app#141
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-10-26 20:25:23 +03:00
Inex Code 88bcdcff39 chore(server-api): Deprecate getDkim
Server API now aware of all required DNS records. More general approach to handle DNS records is required in the future.
2022-10-26 20:24:00 +03:00
Inex Code 1845bea361 chore(server-api): Deprecate ApiResponse
ApiResponse is a wrapper for REST API responses, which is removed. Our code, however, depends on this interface. This dependency must be removed.
2022-10-26 19:53:25 +03:00
NaiJi ✨ 34b8bf5b07 chore: Merge master into graphql 2022-10-26 20:45:28 +04:00
NaiJi ✨ 93c58323b2 chore: Merge master into digital-ocean 2022-10-26 20:41:45 +04:00
NaiJi ✨ c4e470583c chore: Merge linter into master
Reviewed-on: kherel/selfprivacy.org.app#143
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-10-26 19:34:42 +03:00
NaiJi ✨ aa3dee585b chore(dart): Fix warnings that appeared at Dart 2.18 SDK 2022-10-26 20:26:09 +04:00
NaiJi ✨ a69b096d6f fix(digital-ocean): Change /locations to /regions and fix tokens validation 2022-10-26 20:07:35 +04:00
NaiJi ✨ 5ddbfcb342 chore: Merge master into digital-ocean 2022-10-25 12:22:34 +04:00
NaiJi ✨ c487f16194 chore: Merge master into graphql 2022-10-25 12:17:33 +04:00
NaiJi ✨ f703e2c055 Merge pull request 'fix(assets): Fix broken strings for network domain elements' (#142) from assets-fix into master
Reviewed-on: kherel/selfprivacy.org.app#142
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-10-25 08:08:59 +03:00
NaiJi ✨ 20e4d9565b fix(assets): Fix broken strings for network domain elements 2022-10-24 16:19:39 +04:00
NaiJi ✨ 1b94e14727 feat(server-api): Migrate all server endpoints to GraphQL 2022-10-24 15:39:53 +04:00
NaiJi ✨ 19b45ac142 fix(server-api): Adapt ApiResponse structure to GraphQL format 2022-10-24 13:47:47 +04:00
NaiJi ✨ 2b419d5923 chore: Merge master into graphql 2022-10-24 09:34:55 +04:00
NaiJi ✨ d837989940 Merge pull request 'fix(assets): Fix broken string for bytes on disk size' (#139) from assets-fix into master
Reviewed-on: kherel/selfprivacy.org.app#139
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-10-23 21:24:24 +03:00
NaiJi ✨ daf50e8c92 refactor(server-api): Replace Rest API interface with Graphql endpoints everywhere they are used
With no implementations yet
2022-10-23 05:13:27 +04:00
NaiJi ✨ b574659dc3 fix(initializing): Implement store and load of server provider from BNames 2022-10-21 08:34:36 +04:00
NaiJi ✨ df9ec28d02 fix(initializing): Adjust server location and type list cards 2022-10-21 08:33:47 +04:00
NaiJi ✨ 0cab3e3240 chore: Merge master into assets-fix 2022-10-21 07:04:39 +04:00
NaiJi ✨ 522cbbf3d5 Merge pull request 'feat(timezone): Timezone search bar for the timezone selection screen' (#138) from timezone-bar into master
Reviewed-on: kherel/selfprivacy.org.app#138
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2022-10-21 05:58:36 +03:00
NaiJi ✨ e956a2c9a1 fix(assets): Fix broken string for bytes on disk size 2022-10-21 06:54:55 +04:00
NaiJi ✨ 7223b0e614 fix(initialization): Add missing setup progress step 2022-10-21 06:38:49 +04:00
Inex Code e7bb1dc16e feat(timezone): Design the search bar for 'Select Timezone' page 2022-10-20 22:33:40 +03:00
NaiJi ✨ e36a94ded5 feat(timezone): Implement search bar for 'Select Timezone' page 2022-10-20 22:29:19 +03:00
NaiJi ✨ cb1fe6eafd fix(initializing): Make provider and server type picking work 2022-10-20 18:44:29 +04:00
NaiJi ✨ eebff47d0c chore: Merge master into digital-ocean 2022-10-20 12:40:16 +04:00
Inex Code e1419ce38f Merge pull request 'fix(assets): Remove string hardcode from domain setup page' (#137) from assets-fix into master
Reviewed-on: kherel/selfprivacy.org.app#137
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-10-19 18:47:27 +03:00
NaiJi ✨ b40ab17197 fix(initializing): Move bloc provider from provider picker to initialization page 2022-10-19 18:43:01 +04:00
NaiJi ✨ 556df5aadc fix(assets): Remove string hardcode from domain setup page 2022-10-19 17:46:16 +04:00
NaiJi ✨ ea85ce6064 refactor: Apply formatting 2022-10-18 05:38:26 +00:00
NaiJi ✨ bb846b08c1 feat(digital-ocean): Implement system endpoints for digital ocean 2022-10-18 00:48:41 +00:00
NaiJi ✨ e4ed69d151 refactor(volume): Make volume interfaces work through volume entities, not IDs 2022-10-17 23:58:29 +00:00
NaiJi ✨ d19531232c feat(digital-ocean): Implement endpoints for server creation and deletion 2022-10-17 17:42:23 +00:00
NaiJi ✨ f5a75e6eb5 feat(initializing): Implement additional server type field for server installation 2022-10-16 01:16:47 +00:00
NaiJi ✨ 8a93af2b06 fix(region): Move region settings for provider api to factory 2022-10-16 00:51:10 +00:00
NaiJi ✨ 72760e7980 feat(initializing): Implement server type selection for initialization page 2022-10-15 21:51:37 +00:00
NaiJi ✨ fe820ef5be feat(initializing): Implement location selection step for initializing page 2022-10-15 19:49:31 +00:00
NaiJi ✨ b30e372322 feat(region): Implement endpoints for listing available types by region 2022-10-14 19:00:44 +00:00
NaiJi ✨ e032bd8a78 feat(region): Implement endpoints for listing available provider regions 2022-10-13 23:16:08 +00:00
NaiJi ✨ 2f59954641 feat(region): Remove hardcode for region of server installation 2022-10-13 21:16:21 +00:00
NaiJi ✨ f40ed08b02 feat(volume): Implement volume endpoints for Digital Ocean
volumeId type in VolumeApiProvider interfaces is now replaced with String from int to support Digital Ocean's UUID notation
2022-10-12 04:56:08 +00:00
NaiJi ✨ 79e9334aca feat(pricing): Replace raw double with simple type Price 2022-10-12 01:42:45 +00:00
NaiJi ✨ 70330c59ab feat(digital-ocean): Implement provider picker pages 2022-10-11 20:11:13 +00:00
NaiJi ✨ ee160042f8 feat(digital-ocean): Add Digital Ocean logo asset 2022-10-11 16:43:12 +00:00
NaiJi ✨ 90dd3beae0 Merge pull request 'fix(validations): Make validations and errors text more specific' (#135) from validations into master
Reviewed-on: kherel/selfprivacy.org.app#135
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-10-09 02:23:48 +03:00
NaiJi ✨ a305e0b53f fix(assets): Change naming to conventional and consistent 'username' 2022-10-08 19:28:07 +00:00
NaiJi ✨ f4e588c435 fix(user): Replace cubit context read with state variable on login page 2022-10-08 19:22:08 +00:00
NaiJi ✨ 465af52350 Merge branch 'master' into validations 2022-10-08 19:18:33 +00:00
NaiJi ✨ c4f3b76414 fix(validations): Make validations and errors text more specific 2022-10-08 16:41:19 +00:00
NaiJi ✨ b741399ba9 Merge pull request 'refactor(job): Implement polymorphic behavior on creation for jobs' (#134) from server-settings into master
Reviewed-on: kherel/selfprivacy.org.app#134
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-10-08 19:22:46 +03:00
NaiJi ✨ 0b5f8b6920 fix(job): Remove unnecessary cascade validation calls 2022-10-08 16:19:53 +00:00
NaiJi ✨ 7bad11967a refactor(job): Implement polymorphic predicate for job accessibility
Now every job type can impement canAddTo function to make JobsCubit know whether it can be applied or not
2022-10-07 17:50:18 +00:00
NaiJi ✨ db2f5c1342 fix(job): Fix server settings toogles not creating upgrade server job 2022-10-07 16:36:17 +00:00
NaiJi ✨ e619d6351f Merge pull request 'refactor(job): Make jobs execution polymorphic instead of relied on plain switch' (#133) from jobs-polymorphism into master
Reviewed-on: kherel/selfprivacy.org.app#133
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-10-06 23:01:43 +03:00
NaiJi ✨ 26466bb8d5 refactor(job): Force services to always reload after jobs execution 2022-10-06 19:45:25 +00:00
NaiJi ✨ d0be867aa6 refactor(job): Make jobs execution polymorphic instead of relied on plain switch 2022-10-06 19:16:07 +00:00
NaiJi ✨ c03e38ced1 Merge pull request 'fix(ui): New app bar now properly supports long titles' (#132) from inex/selfprivacy.org.app:fix/app-bars into master
Reviewed-on: kherel/selfprivacy.org.app#132
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2022-10-06 15:28:13 +03:00
Inex Code 3f663b7900 Merge branch 'master' into fix/app-bars 2022-10-06 10:40:06 +03:00
Inex Code 2fc20f43c3 fix(ui): New app bar now properly supports long titles 2022-10-06 10:38:29 +03:00
Inex Code eb8a67b081 Merge pull request 'refactor(service): Get rid of legacy common enums' (#129) from service-legacy into master
Reviewed-on: kherel/selfprivacy.org.app#129
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-10-06 09:43:12 +03:00
Inex Code f0ad720bf8 Merge branch 'master' into service-legacy 2022-10-06 09:42:54 +03:00
Inex Code bd9660c17c Merge pull request 'fix(i18l): Fix broken strings for configuration wizard' (#130) from asset-fix into master
Reviewed-on: kherel/selfprivacy.org.app#130
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-10-06 08:30:09 +03:00
NaiJi ✨ 1d48f2887d fix(i18l): Fix broken strings for configuration wizard 2022-10-05 12:30:37 +00:00
NaiJi ✨ 699e2f676f refactor(service): Get rid of legacy common enums 2022-10-05 01:41:48 +03:00
Inex Code 039534a8e9 Merge pull request 'chore(i18l): Add all plurals to en locale' (#128) from chore/plurals into master
Reviewed-on: kherel/selfprivacy.org.app#128
2022-10-04 16:46:53 +03:00
Inex Code d8c5726619 chore(i18l): Add all plurals to en locale
Also add translation status to README
2022-10-04 16:45:39 +03:00
Inex Code 1c3b0920cf Merge pull request 'chore: Update translations' (#127) from translations into master
Reviewed-on: kherel/selfprivacy.org.app#127
2022-10-04 14:47:51 +03:00
Inex Code 8aaf62ca5c Translated using Weblate (Russian)
Currently translated at 100.0% (351 of 351 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2022-10-04 11:45:34 +00:00
Inex Code 53e8ae5ce8 Translated using Weblate (English)
Currently translated at 100.0% (351 of 351 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/en/
2022-10-04 11:45:34 +00:00
Inex Code 408b359a2a Merge pull request 'feat: MD3 app bars' (#126) from fix/better-app-bars into master
Reviewed-on: kherel/selfprivacy.org.app#126
2022-10-04 13:36:54 +03:00
Inex Code 129eb76a04 feat: MD3 app bars
Fixed #123 spent @2h
2022-10-04 13:36:37 +03:00
Inex Code 571e32ecff Merge pull request 'merge: assets-refactor' (#125) from assets-refactor into master
Reviewed-on: kherel/selfprivacy.org.app#125
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-10-04 13:35:40 +03:00
Inex Code 9644ade367 fix(i18l): Use fallback English translations when localized one not available 2022-10-04 11:26:18 +03:00
Inex Code c1cba41b7b fix(i18l): Un-hardcode service status descriptions 2022-10-04 11:05:26 +03:00
NaiJi ✨ d36c8e987d Completely refactor language asset files 2022-10-04 02:32:35 +03:00
Alya Sirko fecf96f31e Merge pull request 'Chore: Fix Metadata and Add README' (#122) from metadata into master
Reviewed-on: kherel/selfprivacy.org.app#122
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-09-29 12:12:39 +03:00
Alya Sirko 8696f575ac fix metadata and add README 2022-09-29 12:08:04 +03:00
Inex Code a362f962a0 Merge pull request 'Ops: Bundle Fastlane Metadata in our F-Droid Repository' (#120) from fdroid-metadata into master
Reviewed-on: kherel/selfprivacy.org.app#120
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-09-22 18:49:05 +03:00
Alya Sirko 737c86eeed change icons for targets 2022-09-22 10:46:35 +03:00
Alya Sirko 280075c276 production 2022-09-22 05:15:00 +03:00
Alya Sirko 62a0b41e94 change icon and name for nightlies 2022-09-22 05:05:59 +03:00
Alya Sirko d9f1d8991a trigger build 2022-09-22 04:04:08 +03:00
Alya Sirko f5921582b9 try to use different meta for nightlies 2022-09-22 04:03:28 +03:00
Alya Sirko e182a4ae03 too soon, oops 2022-09-22 03:26:42 +03:00
Alya Sirko 2c5ab5c21c production use 2022-09-22 03:24:54 +03:00
Alya Sirko c609349365 add icon to fastlane 2022-09-22 02:52:14 +03:00
Alya Sirko 02b7f9fc29 build release nightly builds, not debug 2022-09-22 02:39:52 +03:00
Alya Sirko 97c459054e also do this for release builds 2022-09-22 02:37:29 +03:00
Alya Sirko 0c53263983 try to bundle metadata for fdroid repo 2022-09-22 02:19:45 +03:00
Alya Sirko cb49bc18cc hotfix 2022-09-20 15:02:10 +03:00
Alya Sirko ed0171c891 hotfix 2022-09-20 14:45:21 +03:00
Alya Sirko 6b911bb8a6 Merge branch 'master' into gh-actions 2022-09-20 14:44:28 +03:00
Inex Code 46398f1391 Merge pull request '0.7.0-hotfix' (#117) from 0.7.0-hotfix into master
Reviewed-on: kherel/selfprivacy.org.app#117
2022-09-20 13:17:32 +03:00
Inex Code e15026ae25 Disable block error showing snack bar 2022-09-20 12:44:05 +03:00
Inex Code ad55b204cf Fix jobs screen failing to draw when no jobs 2022-09-20 12:42:20 +03:00
Alya Sirko bb98a17b78 try to push to gitea 2022-09-20 11:26:58 +03:00
Alya Sirko 2206f423fd add release workflow 2022-09-20 11:11:38 +03:00
Alya Sirko ae4b884c81 Merge pull request 'Ops: simplified, refactored CI/CD pipeline; app rename and flavors; SonarQube; F-Droid nightlies' (#114) from cicd-nixshell into master
Reviewed-on: kherel/selfprivacy.org.app#114
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-09-20 09:01:23 +03:00
Alya Sirko ad4fdd5374 clean ci pipeline 2022-09-20 09:00:43 +03:00
Alya Sirko 59d20f8789 Revert "Revert "Rename to org.selfprivacy.app and add flavors.""
This reverts commit 77d36a3a6a.
2022-09-20 08:43:32 +03:00
Alya Sirko fb3e084b4f fix deployment 2022-09-20 08:31:20 +03:00
Alya Sirko 48b29cc772 dont build bundles 2022-09-20 08:22:58 +03:00
Alya Sirko 9a972364f1 dont build bundles 2022-09-20 08:16:57 +03:00
Alya Sirko f3a846f56a ci fixes 2022-09-20 08:11:07 +03:00
Alya Sirko 38ff70d821 wording 2022-09-20 07:33:30 +03:00
Alya Sirko 9fc3c4cb67 fix attachments names 2022-09-20 07:30:09 +03:00
Alya Sirko d4e82a1894 bump appimage 2022-09-20 07:26:03 +03:00
Alya Sirko c1c7205eae create releases in python 2022-09-20 07:11:27 +03:00
Alya Sirko 8ad7d2d699 create releases in python 2022-09-20 06:49:59 +03:00
Alya Sirko 09003f4ff5 targets with correct project id 2022-09-20 03:58:36 +03:00
Alya Sirko e9f36f6269 wording 2022-09-20 03:53:33 +03:00
Alya Sirko 01a2e38d81 delete dead signing code 2022-09-20 03:53:33 +03:00
Alya Sirko d63a6c3442 deploy nightlies 2022-09-20 03:53:33 +03:00
Alya Sirko 7127baaa13 fix fdroid nightlies 2022-09-20 03:53:33 +03:00
Alya Sirko ccad11ee5e use HEAD in Android nightlies and fix some targets 2022-09-20 03:53:31 +03:00
Alya Sirko c221c1cb73 add fdroid nightlies 2022-09-20 03:52:15 +03:00
Alya Sirko e3377cf073 add fdroid nightlies 2022-09-20 03:52:15 +03:00
Alya Sirko 2eab9a969d add fdroid nightlies 2022-09-20 03:52:15 +03:00
Alya Sirko 3c37985db8 add windows target 2022-09-20 03:52:15 +03:00
Alya Sirko 595c758021 add windows target 2022-09-20 03:52:15 +03:00
Alya Sirko d09251180a add windows target 2022-09-20 03:52:15 +03:00
Alya Sirko ea1637dcef add windows target 2022-09-20 03:52:15 +03:00
Alya Sirko 370b85014d add windows target 2022-09-20 03:52:15 +03:00
Alya Sirko 8862d5e4c2 add windows target 2022-09-20 03:52:15 +03:00
Alya Sirko c1168ab4fe add windows target 2022-09-20 03:52:15 +03:00
Alya Sirko bb5d6106e7 add windows target 2022-09-20 03:52:15 +03:00
Alya Sirko 869f8b69aa add windows target 2022-09-20 03:52:15 +03:00
Alya Sirko b85a6ba4c4 sign bundles with jarsign 2022-09-20 03:52:15 +03:00
Alya Sirko 0a310c9de2 sign bundles with jarsign 2022-09-20 03:52:15 +03:00
Alya Sirko 0f31212e1c add bundle signing task 2022-09-20 03:52:15 +03:00
Alya Sirko 591b29b7b7 add bundle signing task 2022-09-20 03:52:15 +03:00
Alya Sirko e748d8de19 dont sign using gradle 2022-09-20 03:52:13 +03:00
Alya Sirko c8913df84f add gpu acceleration to Flatkap 2022-09-20 03:49:21 +03:00
Alya Sirko 12927596a0 dont build test bundles 2022-09-20 03:49:21 +03:00
Alya Sirko 4c30ab35c6 include bundle for deploying 2022-09-20 03:49:21 +03:00
Alya Sirko 8ec743e953 appbundle signing doen 2022-09-20 03:49:21 +03:00
Alya Sirko 4a9bc46a7d test bundle packaging 2022-09-20 03:49:21 +03:00
Alya Sirko 6ba9d51e3c test bundle packaging 2022-09-20 03:49:21 +03:00
Alya Sirko 7e6d3b2f01 test bundle packaging 2022-09-20 03:49:21 +03:00
Alya Sirko 4029947ffc test bundle packaging 2022-09-20 03:49:21 +03:00
Alya Sirko 8c1a0a5dd2 test bundle packaging 2022-09-20 03:49:21 +03:00
Alya Sirko c8a703ab3b test bundle packaging 2022-09-20 03:49:21 +03:00
Alya Sirko 1e0215b9fd test bundle packaging 2022-09-20 03:49:21 +03:00
Alya Sirko 7ad061ff70 use flavors in Dockerfile 2022-09-20 03:49:21 +03:00
Alya Sirko 688c418593 fix flatpak building 2022-09-20 03:49:21 +03:00
Alya Sirko 7dddedbfc5 use flavors 2022-09-20 03:49:21 +03:00
Alya Sirko 77d36a3a6a Revert "Rename to org.selfprivacy.app and add flavors."
This reverts commit 0d280c6b49.
2022-09-20 03:49:21 +03:00
Alya Sirko 23b395550c rename app 2022-09-20 03:49:21 +03:00
Alya Sirko e09ac5b2e1 rename app 2022-09-20 03:49:21 +03:00
Alya Sirko 8fc7c6f7bd add sonarqube 2022-09-20 03:49:21 +03:00
Alya Sirko 8c16016ac8 add sonarqube 2022-09-20 03:49:21 +03:00
Alya Sirko 0023016a72 fix CI 2022-09-20 03:49:21 +03:00
Alya Sirko 5a152ad595 fix CI 2022-09-20 03:49:21 +03:00
Alya Sirko 3d761902e7 add desktop file 2022-09-20 03:49:21 +03:00
Alya Sirko 627d6df2fc Better CI 2022-09-20 03:49:21 +03:00
Alya Sirko cd19ef9a44 Better CI 2022-09-20 03:49:21 +03:00
Alya Sirko 2bcf2f314f Better CI 2022-09-20 03:49:21 +03:00
Alya Sirko 6d6233079a Better CI 2022-09-20 03:49:21 +03:00
Alya Sirko 672fcf7b76 Better CI 2022-09-20 03:49:21 +03:00
Alya Sirko 6451dee4cd Better CI 2022-09-20 03:49:21 +03:00
Alya Sirko 96a7e9bf06 Better CI 2022-09-20 03:49:21 +03:00
Inex Code 81c97e5249 Merge pull request 'Release 0.7.0' (#116) from graphql into master
Reviewed-on: kherel/selfprivacy.org.app#116
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2022-09-19 04:45:13 +03:00
Inex Code 8d24e7f8a6 Bump version 2022-09-19 04:35:49 +03:00
Inex Code 5fa7fe430a Merge branch 'master' into graphql 2022-09-19 04:34:44 +03:00
NaiJi ✨ bb6d615d37 Fix 'start migration button' subtitle 2022-09-19 03:48:59 +03:00
Inex Code 0425ea8ab8 Add a button to remove all removable server jobs 2022-09-19 03:42:00 +03:00
Inex Code 10891881ae Service migrations 2022-09-19 03:21:08 +03:00
NaiJi ✨ d6d7a0dcb6 Implement rebuild server job for settings page 2022-09-19 03:00:40 +03:00
NaiJi ✨ fe95f5e5d3 Add props into provider job state 2022-09-19 02:13:25 +03:00
Inex Code 2a4c691f1e Pre-release testing bug fixes 2022-09-19 01:11:26 +03:00
Inex Code 900e07f364 Implement user password reset 2022-09-18 23:25:26 +03:00
Inex Code a0b365f496 Add missing translation string 2022-09-18 23:12:25 +03:00
Inex Code e330878e6d Allow removing completed and failed server jobs 2022-09-18 23:12:09 +03:00
Inex Code 19aab4b57f Redesign the ServerJobCard 2022-09-18 20:57:00 +03:00
Inex Code 1817031be8 Animate color of BrandLinearIndicator 2022-09-18 20:57:00 +03:00
NaiJi ✨ 34d635c2c5 Add delay between provider and server storage resizing calls 2022-09-18 19:35:16 +03:00
NaiJi ✨ 35a617065e Implement root page pushing after extending volume button 2022-09-18 19:31:22 +03:00
Inex Code 89c907b109 Make job status an enum 2022-09-18 19:29:11 +03:00
NaiJi ✨ d9b82b1250 Implement volume extending button 2022-09-18 19:26:55 +03:00
Inex Code 8017c5ab4c Show services in Server Storage screen 2022-09-18 19:06:17 +03:00
NaiJi ✨ 159f861965 Implement initialization migration to binds error handling 2022-09-18 17:29:00 +03:00
Inex Code cb660eb2bb Refactor server_settings.dart to use vanilla ListTiles 2022-09-18 17:17:13 +03:00
NaiJi ✨ 39358a827f Implement migrate to binds logic 2022-09-18 17:05:41 +03:00
Inex Code 5ca4ee27e3 Introduce ListTileOnSurfaceVariant and refactor TextDetails on server details screen. 2022-09-18 16:24:17 +03:00
Inex Code 3d34f0bb55 Fix screens when no server initialized 2022-09-16 17:14:29 +03:00
Inex Code c84d16d8b7 Move files related to storage 2022-09-16 16:49:53 +03:00
Inex Code ae0295d959 Add storage usage to service screen, formatting 2022-09-16 16:36:51 +03:00
Inex Code 6f6df30767 Animate BrandLinearIndicator 2022-09-16 15:00:15 +03:00
Inex Code 641e329725 Move DiskStatus to the server volume cubit 2022-09-16 14:28:17 +03:00
Inex Code 61d049118f Add animation for graph loading 2022-09-16 13:36:26 +03:00
Inex Code 41efde80b2 Make SegmentedButtons responsive to visual density 2022-09-16 13:07:26 +03:00
Inex Code c8581e65aa Add adaptive density 2022-09-16 12:54:18 +03:00
Inex Code 5ca58a0cd3 Refactor network chart 2022-09-16 12:44:15 +03:00
NaiJi ✨ 11e58981b5 Implement migration process page 2022-09-16 12:08:31 +03:00
NaiJi ✨ 4a4fa35de3 Remove setTimezone from ServerDetailedInfo cubit 2022-09-16 11:11:03 +03:00
Inex Code d75c2837ca Catch error on metrics loading from Hetzner 2022-09-16 11:08:45 +03:00
NaiJi ✨ e3d7f2b3d7 Fix ServerDetailsCubit exception 2022-09-16 11:06:27 +03:00
Inex Code a7248a9b30 Remove unnecessary logging 2022-09-16 10:50:21 +03:00
Inex Code 36cbc8e89b Catch StateError on server_detailed_info_cubit.dart 2022-09-16 10:50:05 +03:00
Inex Code 3079b4bcc5 Add animations to segmented_buttons.dart 2022-09-16 01:28:10 +03:00
Inex Code 6e9bde827a Fix clipping on Cards with InkResponse 2022-09-16 01:01:41 +03:00
Inex Code 469fbde6c4 Replace brand_radio_tile.dart with segmented_buttons.dart 2022-09-16 00:59:37 +03:00
Inex Code 71a18695e4 Formatting fixes 2022-09-16 00:08:32 +03:00
Inex Code 6619e42cfa New providers page cards 2022-09-16 00:08:14 +03:00
Inex Code 0c31e7697c Refactor cards, move server details screen from modal to screen, move storage card to server screen. 2022-09-15 19:57:26 +03:00
Inex Code bb0da1ac14 Start the changelog for 0.7.0 2022-09-15 19:55:28 +03:00
Inex Code 03c38f637f Initial charts rework 2022-09-15 18:40:02 +03:00
NaiJi ✨ 8039283f37 Wrap get metrics endpoint with try-catch 2022-09-15 16:05:23 +03:00
NaiJi ✨ dc72b6d1b2 Implement server settings page functionality 2022-09-15 02:31:25 +03:00
Inex Code 12d4cd23ec Binds migration screen 2022-09-14 19:46:38 +03:00
Inex Code 34837d8e29 Introducing InfoBox widget, small UI fixes 2022-09-14 19:45:50 +03:00
Inex Code 1a17f73df4 Delete unused UI components. 2022-09-14 18:14:55 +03:00
Inex Code 31624a3412 Remove BrandDivider and use vanilla instead. 2022-09-14 17:59:38 +03:00
Inex Code 7e10c1324c Remove BrandDivider and use vanilla instead. 2022-09-14 16:37:29 +03:00
NaiJi ✨ c5eed6ace9 Improve server settings page 2022-09-12 20:38:22 +03:00
Inex Code b3ba7d959f Rename to org.selfprivacy.app and add flavors. 2022-09-12 14:41:22 +03:00
Alya Sirko 78f6dff028 Ops: refactor CI/CD pipeline, isolated Podman environment, various Linux builds (#112)
- New Podman-based building environment
  - caches everything
  - can build artifacts without the Internet
  - rootless, needs no system capabilities (only when uses FUSE, well)
  - the cost is it's VERY HUGE, but useful
- Refactored CI/CD pipeline
  - now it's a Python script, not a bunch of shell commands
  - optional nix flake for development environment and building a derivation
  - uploads all artifacts as a Gitea release
- New targets
  - AppImage bundle
  - Flatpak bundle
  - simple archive with binaries

Co-authored-by: Alya Sirko <alya@selfprivacy.org>
Reviewed-on: kherel/selfprivacy.org.app#112
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: Alya Sirko <alya.sirko@tuta.io>
Co-committed-by: Alya Sirko <alya.sirko@tuta.io>
2022-09-10 18:10:27 +03:00
Inex Code ef7d906504 Catch Hetzner metrics trying to emit when closed and disable logging. 2022-09-09 17:58:01 +03:00
Inex Code 11885b7ac7 Fix app connecting to 'https://api./' after access recovery
We no longer hold server domain in ServerAPI class. Instead, we get a domain from the app config every time.
2022-09-09 17:57:34 +03:00
Inex Code ae8827975a Fix server_storage_list_item.dart colors and text 2022-09-09 17:55:04 +03:00
NaiJi ✨ e4bb35d5d8 Catch cloudflare exceptions 2022-09-09 12:14:37 +03:00
NaiJi ✨ 06fbcff9a9 Fix graphql type errors 2022-09-08 22:58:45 +03:00
Inex Code da63ce45c8 Simplify root SSH keys page 2022-09-08 18:39:49 +03:00
Inex Code 2826892400 Add a new filled card style and fix red texts 2022-09-08 18:14:05 +03:00
Inex Code 981b9865cd Fix users not changing SSH keys and remove SSH keys screen 2022-09-08 18:13:18 +03:00
Inex Code 3eda30d924 Refresh DNS screen design 2022-09-08 10:53:25 +03:00
NaiJi ✨ 580da306e1 Fix extending volume button error 2022-09-06 15:33:12 +03:00
Inex Code 5f13be9339 Fix Hetzner size storage 2022-09-06 14:03:21 +03:00
Inex Code 6f5ffa0f80 Make DiskSize a constant constructor and fix slider on Volume resize screen 2022-09-06 13:27:27 +03:00
NaiJi ✨ 8d2fbb5100 Implement service page enabling/disabling and service restart 2022-09-06 13:25:28 +03:00
Inex Code 58479256c5 Refactor disk_size.dart and disk_status.dart to use getters 2022-09-06 12:17:44 +03:00
Inex Code 979e8ee37a New user screen UI 2022-09-05 16:12:00 +04:00
Inex Code 5f58022d42 Update user list screen to properly support newer cubit logic 2022-09-05 14:51:01 +04:00
NaiJi ✨ 5ee1dec6b5 Fix Job adapter runtime error 2022-09-05 08:21:16 +03:00
Inex Code 18b737a327 Reformatting 2022-09-05 07:34:47 +03:00
Inex Code 0879ea8e97 Refactor Users cubit to use GraphQL and unified data model 2022-09-05 07:01:36 +03:00
Inex Code c1bb617ca7 Add user type to the User model 2022-09-04 14:29:05 +03:00
Inex Code 894cd9524f Remove android.enableR8 from gradle.properties 2022-09-04 14:28:45 +03:00
Inex Code 33b8003f07 Add user-related GraphQL handlers 2022-09-04 13:45:03 +03:00
Alya Sirko 634946285b Ops: add Drone CI pipelines (debug and release) and Flakes-powered Nix shell environment (#110)
Co-authored-by: Alya Sirko <alya@selfprivacy.org>
Reviewed-on: kherel/selfprivacy.org.app#110
Co-authored-by: Alya Sirko <alya.sirko@tuta.io>
Co-committed-by: Alya Sirko <alya.sirko@tuta.io>
2022-09-04 09:30:24 +03:00
NaiJi ✨ 88a1393a1d Move disk status converting to disk status constructor 2022-09-02 09:06:10 +03:00
NaiJi ✨ a693f694ac Add endpoints for migration checking 2022-09-02 08:59:46 +03:00
NaiJi ✨ 0602ab7de2 Fetch russian text assets 2022-08-30 22:17:22 +03:00
NaiJi ✨ 503c8d37ea Implement server jobs cubit 2022-08-30 06:09:09 +03:00
Inex Code 7d8f8e1d38 Rewrite services cubit and add basic service screen. 2022-08-30 00:35:06 +04:00
NaiJi ✨ 62929a4839 Fix dkim runtime exception 2022-08-29 23:21:59 +03:00
NaiJi ✨ d168845b98 Fix storage card size view 2022-08-29 23:15:48 +03:00
NaiJi ✨ d247f41da4 Fix broken installation state check 2022-08-29 22:54:06 +03:00
Inex Code 254604d584 Fix money display 2022-08-29 22:43:42 +04:00
NaiJi ✨ 62db476575 Fix ipv4 bug 2022-08-29 21:18:07 +03:00
NaiJi ✨ b48017508a Fix ProviderVolume cubit exception 2022-08-29 19:37:31 +03:00
Inex Code 440151d0f5 Add SVG library. 2022-08-29 04:40:55 +04:00
Inex Code c0ce019360 Add Services type and GraphQL endpoints with parsers. 2022-08-29 04:40:35 +04:00
NaiJi ✨ d934a6a9cb Refactor graphql api, separate by logic 2022-08-26 22:28:01 +03:00
NaiJi ✨ 9526035176 Fix volume size calculation 2022-08-26 19:46:30 +03:00
NaiJi ✨ a698d3e7b2 Add padding to About page 2022-08-26 06:41:16 +03:00
NaiJi ✨ 6014e385bc Implement ServerJobCard 2022-08-26 05:34:25 +03:00
NaiJi ✨ 37d5ee9913 Implement ServerJob cubit 2022-08-25 02:45:02 +03:00
NaiJi ✨ 7bbdaf2ebe Last changes on storage pages and job backend logic 2022-08-24 08:35:49 +03:00
NaiJi ✨ d2c3d28b0f Merge from develop into graphql 2022-08-08 13:33:55 +03:00
NaiJi ✨ c230037351 Implement data_migration page and logic 2022-08-03 05:25:33 +03:00
NaiJi ✨ 96c7d7966a Update cubit for volume management and graphql 2022-08-01 02:10:37 +03:00
NaiJi ✨ 975c3e237b Merge pull request 'update ru clownflare markdown' (#106) from def/selfprivacy.org.app:master into develop
Reviewed-on: kherel/selfprivacy.org.app#106
2022-07-29 08:41:02 +03:00
NaiJi ✨ c747dcd4ae Implement Server Storage card for provider menu
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-07-29 08:38:21 +03:00
def e7ebfdfac6 fix russian lang 2022-07-28 23:41:27 +02:00
def 5305059a3a update ru clownflare markdown 2022-07-28 13:41:17 +02:00
Inex Code dcf120bdbc Merge pull request 'Fix installation Timer errors' (#105) from installation-timer into develop
Reviewed-on: kherel/selfprivacy.org.app#105
2022-07-27 16:05:23 +03:00
NaiJi ✨ c56a0f5976 Implement getApiTokens for graphql API map 2022-07-25 19:08:46 +03:00
NaiJi ✨ 7ead9a29ea Implement basic graphql api map structure 2022-07-25 17:06:55 +03:00
NaiJi ✨ d8ea528621 Add magic sleep before deleteVolume on creation failure
It seems Hetzner fails to accept our deleteVolume request so quickly after failing. We need to wait for about 10 seconds, I guess. The same magic sleep happens on deleteServer pack of requests. Please have patience...
2022-07-25 03:03:19 +03:00
NaiJi ✨ dab2c569ec Fix installation Timer errors
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-07-22 19:22:10 +03:00
Inex Code 2c9dcbe5e6 Merge pull request 'Implement Dns Provider Api Abstractions' (#101) from dns-provider-api into develop
Reviewed-on: kherel/selfprivacy.org.app#101
2022-07-19 15:09:19 +03:00
NaiJi ✨ dac310f913 Implement Dns Provider Api Abstractions 2022-07-14 16:34:08 +03:00
Inex Code 8deb240426 Merge pull request 'Implement Provider Api Abstractions' (#99) from naiji-dev into develop
Reviewed-on: kherel/selfprivacy.org.app#99
2022-07-13 21:46:35 +03:00
NaiJi ✨ 9993b09e7f Turn VolumeApiProvider into a mixin 2022-07-13 14:58:23 +03:00
NaiJi ✨ 37b7e9f839 Implement Provider Api Abstractions 2022-07-12 15:54:16 +03:00
Inex Code f40749ca57 Merge pull request 'volumes-hetzner' (#97) from volumes-hetzner into develop
Reviewed-on: kherel/selfprivacy.org.app#97
2022-07-04 02:16:25 +03:00
NaiJi ✨ 5fd8a68597 Change volume size from Gb to Byte 2022-06-28 21:06:52 +03:00
NaiJi ✨ 0a919907c8 Implement hetzner volumes cubit 2022-06-27 10:07:11 +03:00
NaiJi ✨ 352351663f Implement endpoints for hetzner volumes 2022-06-24 00:34:09 +03:00
Inex Code c4f62e012b Merge pull request 'naiji-dev' (#91) from naiji-dev into develop
Reviewed-on: kherel/selfprivacy.org.app#91
2022-06-23 12:12:37 +03:00
Inex Code 4afd40f5da Merge branch 'develop' into naiji-dev 2022-06-23 12:11:59 +03:00
Inex Code 7dc35306c4 Merge pull request 'Force domain to lowercase on recovery pages' (#95) from recovery-domain into develop
Reviewed-on: kherel/selfprivacy.org.app#95
2022-06-23 01:03:14 +03:00
NaiJi ✨ 7e2319bf21 Force domain to lowercase on recovery pages 2022-06-22 22:42:38 +03:00
NaiJi ✨ 0feb9bc299 Return to main page on backbutton press for some recovery pages 2022-06-15 07:58:02 +03:00
NaiJi ✨ 7870cf9f99 Update pubsec version to 0.6.1 2022-06-15 07:06:57 +03:00
NaiJi ✨ 9d4f7b4786 Add changelog for 0.6.1 2022-06-15 06:27:05 +03:00
NaiJi ✨ 6a22e2db6f Fix revert routing errors 2022-06-15 06:23:54 +03:00
NaiJi ✨ 313cfc7187 Bug fix error processing for installation cubits 2022-06-15 04:55:45 +03:00
Inex Code 3024016fe2 Merge pull request 'SelfPrivacy 0.6.0' (#90) from naiji-dev into master
Reviewed-on: kherel/selfprivacy.org.app#90
2022-06-10 18:55:38 +03:00
Inex Code 9cc3fa5f91 Merge branch 'master' into naiji-dev 2022-06-10 18:54:37 +03:00
NaiJi ✨ f370a7fc91 Fix minor recovery routing problem 2022-06-10 18:15:43 +03:00
NaiJi ✨ ed4234ee63 Fix assets typos 2022-06-10 17:57:48 +03:00
Inex Code 18d0c2c40f Bug fixes and linting 2022-06-10 00:13:06 +03:00
NaiJi ✨ ad53000415 Add recovery manuals
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-06-09 23:25:42 +03:00
Inex Code bf03f61668 Bump version 2022-06-09 19:49:57 +03:00
Inex Code 3c3cb376e2 Fix null check on DNS check 2022-06-09 19:15:53 +03:00
NaiJi ✨ 3fbdc05469 Minor flow bugfixes 2022-06-09 09:51:29 +03:00
NaiJi ✨ 43411adf2c Bugfix About application page for desktop 2022-06-09 07:36:22 +03:00
NaiJi ✨ 80e0488700 Minor bug fixing
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-06-07 22:59:15 +03:00
NaiJi ✨ 2ac8e4366b Linting!
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-06-06 01:40:34 +03:00
Inex Code 4db0413c42 Linting 2022-06-05 22:36:32 +03:00
NaiJi ✨ 5909b9a3e6 Minor UI fixes on recovery key pages 2022-06-01 17:29:37 +03:00
Inex Code e8d5ecccf6 Add devices screen 2022-05-31 17:30:44 +03:00
Inex Code 7810c2a279 Fix recovery flow 2022-05-31 17:30:35 +03:00
Inex Code 8ec3b8c3e3 Finish recovery key screen 2022-05-31 02:06:08 +03:00
NaiJi ✨ 1db8e9556e Fix UI colors and such :)
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-05-30 19:55:09 +03:00
NaiJi ✨ ead19d2210 Finish recovery key workflow and pages
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-05-30 16:55:52 +03:00
Inex Code b60fb19ecc some ui fixes 2022-05-30 16:49:42 +03:00
NaiJi ✨ 72ef16c6f6 Implement recovery key pages and device cubit
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-05-26 04:02:06 +03:00
NaiJi ✨ 5dcaa060a1 Linting
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-05-25 15:21:56 +03:00
Inex Code 14acfdec6b Linting 2022-05-24 21:55:39 +03:00
NaiJi ✨ edce25ec55 Hot bug fixing of recovery flow
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-05-24 20:45:13 +03:00
Inex Code a096e7e732 Add recovery_key_cubit.dart 2022-05-24 19:11:51 +03:00
NaiJi ✨ 804e2750da Fix metadata screenshots for f-droid 2022-05-24 12:53:28 +03:00
NaiJi ✨ 7344858e86 Implement recovery backblaze page 2022-05-24 11:06:58 +03:00
NaiJi ✨ ac93a384e9 Implement recovery cloudflare page 2022-05-24 10:55:51 +03:00
Inex Code fa6f74e884 Finish recovery flow cubit 2022-05-23 17:21:34 +03:00
NaiJi ✨ eddeac57d6 Implement server selection pages
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-05-21 01:56:50 +03:00
NaiJi ✨ eaa1ba143c Implement pages for server confirmation on restoring access
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-05-19 20:43:25 +03:00
NaiJi ✨ 6fd7f9400d Implement recovery by old token pages with mock .md
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-05-19 17:26:57 +03:00
NaiJi ✨ d8568fc82f Merge branch 'flutter-3' into naiji-dev 2022-05-19 12:09:31 +03:00
Inex Code df40a09419 Add cubit methods to try recover the server 2022-05-18 14:21:11 +03:00
Inex Code d2553b0d08 Add auth functions to server_installation_repository.dart 2022-05-18 13:39:11 +03:00
NaiJi ✨ 2d96b4505e Disable unavailable functionality when server is not created
- Remove create and upgrade server jobs when server is not there
- Disable root SSH panel page when server is not there
2022-05-18 12:07:14 +03:00
Inex Code dd77b99ac8 Rename Bnames boxes names to include the Box 2022-05-18 11:27:36 +03:00
NaiJi ✨ 20f6e8156c Add recovery token pages 2022-05-18 02:18:26 +03:00
Inex Code bf79fb1adf - Refactor Hive boxes
- Delete SSH generation leftovers
- Migrate users box to an encrypted box
2022-05-17 23:08:28 +03:00
NaiJi ✨ 19bc780db1 Implement async validation of domain field on recovering access
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-05-17 19:06:24 +03:00
NaiJi ✨ 0d0a3a4fee Refactor App Config Cubit infrastrucute
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-05-17 16:31:34 +03:00
NaiJi ✨ 93215d90fb Implement fallback recovery method page
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-05-17 16:30:05 +03:00
NaiJi ✨ 7a719f15ce Implement first recovery device method page
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-05-17 15:45:20 +03:00
NaiJi ✨ ee53590ba0 Implement recovery method select page
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-05-17 15:33:30 +03:00
NaiJi ✨ a56af9dbec Fix desktop theme 2022-05-17 02:42:46 +03:00
NaiJi ✨ f46ca7ad13 Merge branch 'flutter-3' into naiji-dev 2022-05-17 01:42:25 +03:00
Inex Code b4145dc5c8 First steps to move to Material You 2022-05-17 01:41:00 +03:00
NaiJi ✨ 10488d6832 Fix application failure on cloudflare 403 response
Check error response and show modal dialogue if domain couldn't be registered
2022-05-17 01:16:56 +03:00
Inex Code 8b5bf24f3a Merge branch 'dynamic-theming' into flutter-3
# Conflicts:
#	lib/main.dart
#	pubspec.lock
#	pubspec.yaml
2022-05-16 23:44:12 +03:00
Inex Code cc91b14b44 Migrate to flutter 3 2022-05-16 23:30:14 +03:00
NaiJi ✨ 129c1bb4c6 Refactor infrastructure
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-05-14 05:54:40 +03:00
NaiJi ✨ 4a42733d31 Refactor infrastructure: cubits and endpoints
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
2022-05-13 16:57:56 +03:00
NaiJi ✨ 01b1f7462d Implement recovery domain page frontend 2022-05-11 21:37:08 +03:00
NaiJi ✨ ce3e046f5a Improve server endpoints, add recovery page
- Handle Dio error codes properly to avoid exceptions
- Improve en and ru assets
- Improve dns recordings failure handling
- Add recovery button to initializing page
- Add recovery pages group
2022-05-10 23:42:33 +03:00
NaiJi ✨ 31be961dd0 Implement server endpoints for tokens
get /auth/recovery_token
post /auth/recovery_token
post /auth/recovery_token/use
post /auth/new_device/authorize
post /auth/new_device
delete /auth/new_device
get /auth/tokens
post /auth/tokens
delete /auth/tokens
2022-05-10 02:16:36 +03:00
NaiJi ✨ c4ae2b3b4f Merge pull request 'Fix username validation and exception handling' (#89) from naiji-dev into master
Reviewed-on: kherel/selfprivacy.org.app#89
2022-05-04 22:38:09 +03:00
NaiJi ✨ 8d6cbfdfc9 Fix docstyle comments 2022-05-04 22:32:24 +03:00
NaiJi ✨ 4c7cf05578 Refactor FieldCubit creation for user forms
Move all cubit fields to a special factory which encapsulates all logic related to their default properties, which leaves possibility for future dependency inversion on that factory or future factories of other cubit fields (in case we will have to replace it with other implementations).
2022-05-04 19:58:47 +03:00
Inex Code 9cec5e901a hardcode dark theme on linux for now 2022-05-03 15:18:06 +03:00
Inex Code c5fa712ef0 Test custom colors 2022-05-03 13:45:10 +03:00
NaiJi ✨ 4c99579f13 Fix username validation and exception handling
1. Refactor string validation classes
2. Rename string validation assets for length
3. Improve exception handling when server is not able to create requested server
2022-05-02 14:56:46 +03:00
Inex Code 265cc15ea5 Merge pull request 'Catch wakelock exception on desktop' (#88) from naiji-dev into master
Reviewed-on: kherel/selfprivacy.org.app#88
2022-05-02 10:51:07 +03:00
Inex Code 4ddde34b47 Fix server deletion 2022-04-29 13:53:58 +03:00
NaiJi ✨ 834cddfe13 Catch wakelock exception on desktop 2022-04-29 13:45:15 +03:00
Inex Code 125788c3ab Update pubspec.yaml 2022-04-19 14:59:03 +03:00
Inex Code 2e6bfcc5e1 Update changelog 2022-04-19 14:58:14 +03:00
Inex Code 902b9fbda5 Add android:exported to manifest, to make it compatible with android 12 2022-04-19 14:55:53 +03:00
Inex Code c36038b1ab Update Gradle dependency 2022-04-16 19:44:04 +03:00
Inex Code 45134d26da Raise target Android version to API 31 2022-04-09 07:25:21 +03:00
Inex Code cca55f82cc Encode password to base64 during server creation 2022-04-06 20:15:59 +03:00
Inex Code 4d8843f008 Update changelog 2022-04-05 19:03:37 +03:00
Inex Code bef625a934 Update breaking fl_chart dependency 2022-04-05 18:50:47 +03:00
Inex Code 073b7bfcb6 Merge pull request 'Fix users cubit, add changelog for 0.5.0' (#87) from NaiJi/selfprivacy.org.app:cubit-users into master
Reviewed-on: kherel/selfprivacy.org.app#87
2022-04-05 17:10:57 +03:00
NaiJi ✨ 8d884af594 Fix users cubit, add changelog for 0.5.0 2022-04-03 22:54:18 +03:00
Inex Code 3e2a86ede1 Merge pull request '0.5.0 DKIM' (#85) from inex/selfprivacy.org.app:dkim into master
Reviewed-on: kherel/selfprivacy.org.app#85
2022-03-23 16:18:43 +02:00
Inex Code 85235a2e7c Add SSH key adding and deleting 2022-03-23 17:07:52 +03:00
Inex Code d240e493b1 Add user synchronization and SSH keys screen 2022-03-03 20:38:30 +03:00
Inex Code e4bdd47848 Merge branch 'feature/service-configurations' into dkim
# Conflicts:
#	lib/logic/api_maps/hetzner.dart
#	lib/logic/api_maps/server.dart
#	lib/logic/cubit/backups/backups_cubit.dart
#	lib/logic/cubit/forms/initializing/cloudflare_form_cubit.dart
#	lib/logic/models/job.dart
#	lib/ui/pages/initializing/initializing.dart
#	lib/ui/pages/providers/providers.dart
#	pubspec.lock
#	pubspec.yaml
2022-02-18 02:37:15 +03:00
Inex Code e925a1897a Fix some typos 2022-02-16 10:28:29 +03:00
Inex Code 914d56ff87 DNS records cubit and screen 2022-02-16 10:09:53 +03:00
Inex Code 83a2d19e37 Introduce new brand screen, use it for backups 2022-02-16 10:01:05 +03:00
Inex Code 8de33ea19b Fix typo 2022-02-10 12:50:37 +03:00
kherel 7eff0968d0 update 2022-02-08 22:01:08 +01:00
Inex Code d06e8976c5 Fix infect stage and DKIM 2022-02-08 09:59:35 +03:00
Inex Code a0edbd636d Refactor DNS checks 2022-02-08 09:59:19 +03:00
Inex Code 9afe61db42 Migrate to Flutter 2.10 2022-02-08 09:58:12 +03:00
kherel 83ff387998 update 2022-02-07 08:53:13 +01:00
Inex Code f6508dfcad Attempts at string escaping 2022-02-02 12:53:21 +00:00
Inex Code 0bc3d9f31c Add DKIM key creation 2022-02-01 01:56:05 +00:00
Inex Code 88d5dbf010 Add more escaping to server infection 2022-02-01 01:55:09 +00:00
kherel 9566a6ad10 update 2022-01-25 18:02:32 +01:00
Illia Chub d79b41a3fe Added fastlane changelog for latest app vesion 2022-01-25 18:02:31 +01:00
Inex Code 3cd187e416 Enforce alphanumeric bucket id 2022-01-25 18:02:31 +01:00
Inex Code 2dfb92f650 Fix wrong server name escaping symbol 2022-01-25 18:02:31 +01:00
Inex Code 72100e483a Replace all non-alphanumeric symbols during hetzner creation 2022-01-25 18:02:31 +01:00
Inex Code de13b09f23 Add gifs to illustrate API token instructions 2022-01-25 18:02:31 +01:00
Inex Code 2e8908053c Bump version 2022-01-25 18:02:31 +01:00
Inex Code 8622ed30f1 Add more instructions to UI 2022-01-25 18:02:31 +01:00
Inex Code 5957e5720b Add user deletion (for real) 2022-01-25 18:02:31 +01:00
Inex Code e72df08453 Show that we are doing something when upgrading/restarting server 2022-01-25 18:02:31 +01:00
Inex Code 532a3ab197 Bump version to 0.4.1 2022-01-25 18:02:31 +01:00
Inex Code 3a63e75e8e Fix nixos-infect link to use master, not rolling 2022-01-25 18:02:31 +01:00
Illia Chub 495cd115fa
Added fastlane changelog for latest app vesion 2022-01-10 07:21:34 +02:00
Illia Chub 56fe8fd329 Merge pull request 'Version 0.4.2' (#83) from inex/selfprivacy.org.app:fixes-2021-dec into master
Reviewed-on: kherel/selfprivacy.org.app#83
2022-01-10 07:04:30 +02:00
Inex Code 893c5bb5c0 Enforce alphanumeric bucket id 2021-12-27 07:40:48 +00:00
Inex Code e7e9209cce Fix wrong server name escaping symbol 2021-12-26 21:41:53 +02:00
Inex Code 30937740b6 Replace all non-alphanumeric symbols during hetzner creation 2021-12-25 12:56:44 +00:00
Inex Code c937cfdbb4 Add gifs to illustrate API token instructions 2021-12-23 14:27:19 +00:00
Inex Code c66bff005c Bump version 2021-12-23 13:54:00 +00:00
Inex Code 85a27e8ee2 Add more instructions to UI 2021-12-23 13:52:12 +00:00
Inex Code 4ca873e794 Add user deletion (for real) 2021-12-20 15:25:31 +00:00
Inex Code 9b2fe905e6 Show that we are doing something when upgrading/restarting server 2021-12-20 15:03:50 +00:00
Illia Chub 9594c538c7 Merge pull request 'Fix branch of nixos-infect' (#82) from inex/selfprivacy.org.app:backups into master
Reviewed-on: kherel/selfprivacy.org.app#82
2021-12-16 19:37:04 +02:00
Inex Code 1c15712596 Bump version to 0.4.1 2021-12-16 11:27:29 +00:00
Inex Code 1b42d3a382 Fix nixos-infect link to use master, not rolling 2021-12-16 14:26:40 +03:00
Illia Chub 6653408dfb Add 'fastlane/metadata/android/en-US/changelogs/0.4.0.txt' 2021-12-10 08:20:43 +02:00
Illia Chub dfed4a113e Updated changelogs 2021-12-10 08:19:36 +02:00
Illia Chub af80823678 Updated changelogs 2021-12-10 08:15:37 +02:00
Illia Chub fe41ae2cb8 Update 'fastlane/metadata/android/en-US/full_description.txt' 2021-12-10 08:14:29 +02:00
Illia Chub 71d0cafdec Merge pull request 'Version 0.4.0' (#81) from inex/selfprivacy.org.app:backups into master
Reviewed-on: kherel/selfprivacy.org.app#81
2021-12-09 06:56:29 +02:00
Inex Code f633fecd57 Fix backup list parsing 2021-12-09 03:44:05 +00:00
Inex Code 2b8c009ef1 Add button to force refetch backups list 2021-12-09 03:35:15 +00:00
Inex Code 35c1eea7f0 Fix error when error is null 2021-12-09 06:23:27 +03:00
Inex Code 49efd16d37 Merge branch 'master' into backups 2021-12-06 20:42:35 +02:00
Inex Code d21b9df734 Version bump 2021-12-06 18:33:17 +00:00
Inex Code b40bea63d1 Backups and server upgrade 2021-12-06 18:31:19 +00:00
Inex Code 650e0e7376 Add translation strings for backups 2021-12-06 18:30:30 +00:00
690 changed files with 96962 additions and 10125 deletions

205
.drone.yml Normal file
View File

@ -0,0 +1,205 @@
kind: pipeline
type: exec
name: Nightly
steps:
- name: Prepare
commands:
- ln -s /var/lib/drone-runner-exec/.local $HOME/.local
- ln -s /var/lib/drone-runner-exec/fdroid $HOME/fdroid
- name: Run Tests
commands:
- ./ci.py --ci-run-tests
# - sonar-scanner -Dsonar.projectKey=SelfPrivacy-Flutter-App -Dsonar.sources=. -Dsonar.host.url=http://analyzer.lan:9000 -Dsonar.login="$SONARQUBE_TOKEN"
environment:
SONARQUBE_TOKEN:
from_secret: SONARQUBE_TOKEN
- name: Build Nightly Linux Release Artifact (Binary)
commands:
- ./ci.py --ci-build-linux
- name: Build Nightly Release Artifact (.APK)
commands:
- ./ci.py --ci-build-apk
- name: Sign and Commit Nightly Android Release Artifact (.APK) for F-Droid Repository
commands:
- rm -rf $HOME/fdroid/build/org.selfprivacy.app.nightly && mkdir $HOME/fdroid/build/org.selfprivacy.app.nightly
- git archive --format=tar HEAD | tar x -C $HOME/fdroid/build/org.selfprivacy.app.nightly
- ./ci.py --sign-apk-fdroid-nightly
environment:
STANDALONE_KEYSTORE_PASS:
from_secret: STANDALONE_KEYSTORE_PASS
FDROID_KEYSTORE_PASS:
from_secret: FDROID_KEYSTORE_PASS
GOOGLE_KEYSTORE_PASS:
from_secret: GOOGLE_KEYSTORE_PASS
- name: Deploy F-Droid Repository
commands:
- ./ci.py --deploy-fdroid-repo
environment:
SSH_PRIVATE_KEY:
from_secret: SSH_PRIVATE_KEY
trigger:
event:
- push
branch:
- master
node:
server: builder
---
kind: pipeline
type: exec
name: Release
steps:
- name: Prepare
commands:
- ln -s /var/lib/drone-runner-exec/.local $HOME/.local
- ln -s /var/lib/drone-runner-exec/fdroid $HOME/fdroid
- if podman volume exists release; then podman volume rm -f release; podman volume create release; else podman volume create release; fi
- git config user.email "builder@selfprivacy.org"
- git config user.name "Builder"
- name: Create an Empty Gitea Release
commands:
- ./ci.py --gitea-create-release
environment:
GITEA_RELEASE_TOKEN:
from_secret: GITEA_RELEASE_TOKEN
- name: Build Intermediate Linux Release Artifact (Binary)
commands:
- ./ci.py --build-linux
environment:
STANDALONE_KEYSTORE_PASS:
from_secret: STANDALONE_KEYSTORE_PASS
FDROID_KEYSTORE_PASS:
from_secret: FDROID_KEYSTORE_PASS
GOOGLE_KEYSTORE_PASS:
from_secret: GOOGLE_KEYSTORE_PASS
- name: Build Intermediate Android Release Artifact (.APK)
commands:
- ./ci.py --build-apk
environment:
STANDALONE_KEYSTORE_PASS:
from_secret: STANDALONE_KEYSTORE_PASS
FDROID_KEYSTORE_PASS:
from_secret: FDROID_KEYSTORE_PASS
GOOGLE_KEYSTORE_PASS:
from_secret: GOOGLE_KEYSTORE_PASS
- name: Build Intermediate Android Release Artifact (Bundle)
commands:
- ./ci.py --build-bundle
environment:
STANDALONE_KEYSTORE_PASS:
from_secret: STANDALONE_KEYSTORE_PASS
FDROID_KEYSTORE_PASS:
from_secret: FDROID_KEYSTORE_PASS
GOOGLE_KEYSTORE_PASS:
from_secret: GOOGLE_KEYSTORE_PASS
- name: Sign Android Release Artifact (.APK) for Standalone Use
commands:
- ./ci.py --sign-apk-standalone
environment:
STANDALONE_KEYSTORE_PASS:
from_secret: STANDALONE_KEYSTORE_PASS
FDROID_KEYSTORE_PASS:
from_secret: FDROID_KEYSTORE_PASS
GOOGLE_KEYSTORE_PASS:
from_secret: GOOGLE_KEYSTORE_PASS
- name: Sign and Commit Android Release Artifact (.APK) for F-Droid Repository
commands:
- rm -rf $HOME/fdroid/build/org.selfprivacy.app && mkdir $HOME/fdroid/build/org.selfprivacy.app
- git archive --format=tar HEAD | tar x -C $HOME/fdroid/build/org.selfprivacy.app
- ./ci.py --sign-apk-fdroid
environment:
STANDALONE_KEYSTORE_PASS:
from_secret: STANDALONE_KEYSTORE_PASS
FDROID_KEYSTORE_PASS:
from_secret: FDROID_KEYSTORE_PASS
GOOGLE_KEYSTORE_PASS:
from_secret: GOOGLE_KEYSTORE_PASS
- name: Sign Android Release Artifact (Bundle) for Google Play
commands:
- ./ci.py --sign-bundle
environment:
STANDALONE_KEYSTORE_PASS:
from_secret: STANDALONE_KEYSTORE_PASS
FDROID_KEYSTORE_PASS:
from_secret: FDROID_KEYSTORE_PASS
GOOGLE_KEYSTORE_PASS:
from_secret: GOOGLE_KEYSTORE_PASS
- name: Package Linux AppImage Artifact
commands:
- ./ci.py --package-linux-appimage
- name: Package Linux Flatpak Artifact
commands:
- ./ci.py --package-linux-flatpak
- name: Package Linux Archive Artifact
commands:
- ./ci.py --package-linux-archive
- name: Push Artifacts to the Release Volume
commands:
- git add -v *.AppImage *.AppImage.zsync *.flatpak *.apk *.apk.idsig *.aab *.tar.zstd
- git commit -m Release
- git archive --format=tar HEAD | podman volume import release -
trigger:
event:
- tag
node:
server: builder
---
kind: pipeline
type: exec
name: Deploy
steps:
- name: Prepare
commands:
- ln -s /var/lib/drone-runner-exec/.local $HOME/.local
- podman unshare podman volume mount release
- name: Deploy Artifacts to Gitea
commands:
- ./ci.py --deploy-gitea-release
environment:
GITEA_RELEASE_TOKEN:
from_secret: GITEA_RELEASE_TOKEN
- name: Deploy F-Droid Repository
commands:
- ./ci.py --deploy-fdroid-repo
environment:
SSH_PRIVATE_KEY:
from_secret: SSH_PRIVATE_KEY
trigger:
event:
- tag
node:
server: builder
depends_on:
- Release

View File

@ -14,3 +14,6 @@ max_line_length = 150
[*.md]
trim_trailing_whitespace = false
[*.json]
indent_size = 4

View File

@ -0,0 +1,68 @@
name: Bug report
about: File a bug report
labels:
- Bug
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report! Please provide a short but a descriptive title for your issue.
- type: textarea
id: expected-behaviour
attributes:
label: Expected Behavior
description: What did you expect to happen?
validations:
required: true
- type: textarea
id: actual-behaviour
attributes:
label: Actual Behavior
description: What actually happened?
validations:
required: true
- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to Reproduce
description: What steps can we follow to reproduce this issue?
placeholder: |
1. First step
2. Second step
3. and so on...
validations:
required: true
- type: textarea
id: context
attributes:
label: Context and notes
description: Additional information about environment or what were you trying to do. If you have an idea how to fix this issue, please describe it here too.
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output, if you have any. This will be automatically formatted into code, so no need for backticks.
render: shell
- type: input
id: app-version
attributes:
label: App Version
description: What version of SelfPrivacy app are you running? You can find it in the "About" section of the app.
validations:
required: true
- type: input
id: api-version
attributes:
label: Server API Version
description: What version of SelfPrivacy API are you running? You can find it in the "About" section of the app. Leave it empty if your app is not connected to the server yet.
- type: dropdown
id: os
attributes:
label: Operating System
description: What operating system are you using?
options:
- Android
- iOS
- Linux
- macOS
- Windows

View File

@ -0,0 +1,23 @@
name: Feature request
about: Suggest an idea for this project
label:
- Feature request
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this feature request! Please provide a short but a descriptive title for your issue.
- type: textarea
id: description
attributes:
label: Description
description: Describe the feature you'd like to see.
placeholder: |
As a user, I want to be able to...
validations:
required: true
- type: textarea
id: context
attributes:
label: Context and notes
description: Additional information about environment and what were you trying to do. If you have an idea how to implement this feature, please describe it here too.

View File

@ -0,0 +1,29 @@
name: Translation issue
about: File a translation (localization) issue
labels:
- Translations
body:
- type: markdown
attributes:
value: |
Translations can be modified and discussed on [Weblate](https://weblate.selfprivacy.org/projects/selfprivacy/). You can fix the mistranslation issue yourself there. Using the search, you can also find the string ID of the mistranslated string. If your issue is more complex, please file it here
If you are a member of SelfPrivacy core team, you **must** fix the issue yourself on Weblate.
- type: input
id: language
attributes:
label: Language
description: What language is affected?
placeholder: |
English
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: Describe the issue in detail. If you have an idea how to fix this issue, please describe it here too. Include the string ID of the mistranslated string, if possible.
placeholder: |
The string `string.id` is translated as "foo", but it should be "bar".
validations:
required: true

32
.github/workflows/windows.yml vendored Normal file
View File

@ -0,0 +1,32 @@
name: Windows Builder
on:
push:
tags:
- '*.*.*'
jobs:
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
# Install Python dependencies
- run: pip install requests pyyaml
# Install Flutter
- uses: subosito/flutter-action@v2
with:
flutter-version: '3.16.1'
channel: 'stable'
# Build Windows artifact
- run: flutter build windows
# Archive the build
- run: python ci.py --package-windows-archive
# Upload the build
- run: python ci.py --deploy-windows-archive
env:
GITEA_RELEASE_TOKEN: ${{ secrets.GITEA_RELEASE_TOKEN }}

View File

@ -1,10 +1,33 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.
# This file should be version controlled.
version:
revision: 1aafb3a8b9b0c36241c5f5b34ee914770f015818
channel: stable
revision: 5293f3cd4427b4b48ed155e7a3852c6b3c53d94a
channel: beta
project_type: app
# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: 5293f3cd4427b4b48ed155e7a3852c6b3c53d94a
base_revision: 5293f3cd4427b4b48ed155e7a3852c6b3c53d94a
- platform: linux
create_revision: 5293f3cd4427b4b48ed155e7a3852c6b3c53d94a
base_revision: 5293f3cd4427b4b48ed155e7a3852c6b3c53d94a
- platform: windows
create_revision: 5293f3cd4427b4b48ed155e7a3852c6b3c53d94a
base_revision: 5293f3cd4427b4b48ed155e7a3852c6b3c53d94a
# User provided section
# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'

58
Dockerfile Normal file
View File

@ -0,0 +1,58 @@
FROM ubuntu:22.04
ARG PACKAGES="build-essential openjdk-11-jdk-headless clang cmake curl git jq libblkid1 \
libblkid-dev libc6 libc6-dev libc-bin libcrypt1 libdbus-1-3 libexpat1 libffi7 \
libgcc-s1 libgcrypt20 libgcrypt20-dev libglib2.0-0 libglib2.0-dev libglu1-mesa \
libgpg-error0 libgtk-3-0 libgtk-3-dev liblz4-1 liblz4-dev liblzma5 liblzma-dev \
libmount1 libpcre3 libselinux1 libsepol2 libstdc++-10-dev libstdc++6 libuuid1 \
ninja-build pkg-config rsync unzip xz-utils zlib1g unzip libsecret-1-dev libsecret-tools \
libsecret-1-0 libjsoncpp-dev fuse flatpak-builder binutils coreutils desktop-file-utils \
fakeroot fuse libgdk-pixbuf2.0-dev patchelf python3-pip python3-setuptools squashfs-tools \
strace util-linux zsync"
ARG ANDROID_SDK_TOOLS_VERSION="8512546"
ARG ANDROID_SDK_TOOLS_URL="https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS_VERSION}_latest.zip"
ARG FLUTTER_VERSION="3.3.1"
ARG FLUTTER_URL="https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${FLUTTER_VERSION}-stable.tar.xz"
ARG FREEDESKTOP_SDK_VERSION="22.08"
# Update packages
RUN apt-get update && apt-get upgrade -y && apt-get install -y $PACKAGES
WORKDIR /opt
# Install Android SDK
ADD $ANDROID_SDK_TOOLS_URL .
RUN mkdir -p android-sdk/cmdline-tools && unzip commandlinetools-linux-${ANDROID_SDK_TOOLS_VERSION}_latest.zip \
&& rm commandlinetools-linux-${ANDROID_SDK_TOOLS_VERSION}_latest.zip && mv cmdline-tools android-sdk/cmdline-tools/latest
# Install Flutter
ENV FLUTTER_HOME "/opt/flutter"
ADD $FLUTTER_URL .
RUN tar -vxf flutter_linux_${FLUTTER_VERSION}-stable.tar.xz && \
rm flutter_linux_${FLUTTER_VERSION}-stable.tar.xz
# Flutter doesn't work without write permissions, so fuck it, fuck
RUN chmod -R 777 $FLUTTER_HOME
RUN git config --system --add safe.directory $FLUTTER_HOME
ENV ANDROID_HOME "/opt/android-sdk"
ENV ANDROID_SDK_ROOT "${ANDROID_HOME}"
ENV PATH "$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/build-tools/30.0.3:/opt/flutter/bin"
# Install needed Android SDK packages
RUN yes | sdkmanager 'build-tools;30.0.3' 'platforms;android-29' 'platforms;android-30' 'platforms;android-31'
WORKDIR /tmp
# Prepare dependencies for offline build
ENV PUB_CACHE "/tmp/flutter_pub_cache"
ENV GRADLE_USER_HOME "/tmp/gradle"
RUN git clone --depth=1 --single-branch https://git.selfprivacy.org/kherel/selfprivacy.org.app.git deps
WORKDIR /tmp/deps
RUN flutter build linux
RUN flutter build apk --flavor production
WORKDIR /tmp
RUN rm -rf deps
RUN find $GRADLE_USER_HOME/daemon -exec chmod 777 {} \;
# Install AppImage Builder and F-Droid Server
RUN pip3 install appimage-builder fdroidserver

View File

@ -1,17 +1,57 @@
# SelfPrivacy App
- [Official site](https://selfprivacy.org)
- [SelfPrivacy App (F-Droid)](https://f-droid.org/en/packages/pro.kherel.selfprivacy/)
SelfPrivacy — is a platform on your cloud hosting, that allows to deploy your own private services and control them using mobile application.
## Getting Started
To use this application, you'll be required to create accounts of different service providers. Please reffer to this manual: https://selfprivacy.org/docs/getting-started/
This project is a starting point for a Flutter application.
Application will do the following things for you:
A few resources to get you started if this is your first Flutter project:
1. Create your personal server
2. Setup NixOS
3. Bring all services to the ready-to-use state. Services include:
- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
* E-mail, ready to use with DeltaChat
* NextCloud - your personal cloud storage
* Bitwarden — secure and private password manager
* Pleroma — your private fediverse space for blogging
* Jitsi — awesome Zoom alternative
* Gitea — your own Git server
* OpenConnect — Personal VPN server
For help getting started with Flutter, view our
[online documentation](https://flutter.dev/docs), which offers tutorials,
samples, guidance on mobile development, and a full API reference.
**Project is currently in open beta state**. Feel free to try it. It would be much appreciated if you would provide us with some feedback.
## Building
Supported platforms are Android, Linux, and Windows. We are looking forward to support iOS and macOS builds.
For Linux builds, make sure you have these packages installed:
|Arch-based|Debian-based|
|----------|------------|
|pacman -S ninja xdg-user-dirs gnome-keyring unzip xz-utils zip|apt install ninja-build xdg-user-dirs gnome-keyring unzip xz-utils zip|
Install [Flutter](https://docs.flutter.dev/get-started/install/linux) and [Android SDK tools](https://developer.android.com/studio/command-line/sdkmanager), then try your setup:
```
flutter pub get
# Build .APK for Android
flutter build --flavor production apk
# Build AAB bundle for Google Play
flutter build --flavor production aab
# Build Linux binaries
flutter build linux
# Build Windows binaries
flutter build windows
# Package AppImage
appimage-builder --recipe appimage.yml
# Package Flatpak
flatpak-builder --force-clean --repo=flatpak-repo flatpak-build flatpak.yml
flatpak build-bundle flatpak-repo org.selfprivacy.app.flatpak org.selfprivacy.app
```
## Translations
[![Translation status](http://weblate.selfprivacy.org/widgets/selfprivacy/-/selfprivacy-app/multi-auto.svg)](http://weblate.selfprivacy.org/engage/selfprivacy/)
Translations are stored in `assets/translations/*.json` and can be edited on <https://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/>.

76
analysis_options.yaml Normal file
View File

@ -0,0 +1,76 @@
# This file configures the analyzer, which statically analyzes Dart code to
# check for errors, warnings, and lints.
#
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
# invoked from the command line by running `flutter analyze`.
# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml
analyzer:
exclude:
- lib/generated_plugin_registrant.dart
- lib/**.g.dart
- lib/**.graphql.dart
linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
# included above or to enable additional rules. A list of all available lints
# and their documentation is published at
# https://dart-lang.github.io/linter/lints/index.html.
#
# Instead of disabling a lint rule for the entire project in the
# section below, it can also be suppressed for a single line of code
# or a specific dart file by using the `// ignore: name_of_lint` and
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
# producing the lint.
rules:
avoid_print: false # Uncomment to disable the `avoid_print` rule
always_declare_return_types: true
always_put_control_body_on_new_line: true
always_put_required_named_parameters_first: true
always_use_package_imports: true
avoid_escaping_inner_quotes: true
avoid_setters_without_getters: true
collection_methods_unrelated_type: true
combinators_ordering: true
directives_ordering: true
eol_at_end_of_file: true
no_adjacent_strings_in_list: true
prefer_constructors_over_static_methods: true
prefer_expression_function_bodies: true
prefer_final_in_for_each: true
prefer_final_locals: true
prefer_final_parameters: true
prefer_foreach: true
prefer_if_elements_to_conditional_expressions: true
prefer_mixin: true
prefer_null_aware_method_calls: true
prefer_single_quotes: true
require_trailing_commas: true
sized_box_shrink_expand: true
sort_constructors_first: true
unawaited_futures: true
unnecessary_await_in_return: true
unnecessary_null_aware_operator_on_extension_on_nullable: true
unnecessary_null_checks: true
unnecessary_parenthesis: true
unnecessary_statements: true
unnecessary_to_list_in_spreads: true
unreachable_from_main: true
use_enums: true
use_if_null_to_convert_nulls_to_bools: true
use_is_even_rather_than_modulo: true
use_late_for_private_fields_and_variables: true
use_named_constants: true
use_setters_to_change_properties: true
use_string_buffers: true
use_string_in_part_of_directives: true
use_super_parameters: true
use_to_and_as_if_applicable: true
# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options

View File

@ -26,30 +26,65 @@ apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion 29
namespace 'org.selfprivacy.app'
compileSdkVersion flutter.compileSdkVersion
ndkVersion flutter.ndkVersion
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "pro.kherel.selfprivacy"
minSdkVersion 18
targetSdkVersion 29
applicationId "org.selfprivacy.app"
minSdkVersion 21
targetSdkVersion 33
compileSdkVersion 33
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
flavorDimensions "default"
productFlavors {
fdroid {
applicationId "pro.kherel.selfprivacy"
}
production {
applicationIdSuffix ""
}
nightly {
applicationIdSuffix ".nightly"
versionCode project.getVersionCode()
versionName "nightly-" + project.getVersionCode()
}
}
flavorDimensions "default"
productFlavors {
fdroid {
applicationId "pro.kherel.selfprivacy"
}
production {
applicationIdSuffix ""
}
nightly {
applicationIdSuffix ".nightly"
versionCode project.getVersionCode()
versionName "nightly-" + project.getVersionCode()
}
}
}

View File

@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="pro.kherel.selfprivacy">
package="org.selfprivacy.app">
<!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->

View File

@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="pro.kherel.selfprivacy">
package="org.selfprivacy.app">
<uses-permission android:name="android.permission.INTERNET" />
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
calls FlutterMain.startInitialization(this); in its onCreate method.
@ -7,13 +7,14 @@
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
<application
android:name="io.flutter.app.FlutterApplication"
android:name="${applicationName}"
android:label="SelfPrivacy"
android:icon="@mipmap/launcher_icon">
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:exported="true"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize"

View File

@ -1,4 +1,4 @@
package pro.kherel.selfprivacy
package org.selfprivacy.app
import io.flutter.embedding.android.FlutterActivity

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="?android:colorBackground" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
Flutter draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>

View File

@ -0,0 +1,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.selfprivacy.app">
<application
tools:replace="android:label"
android:label="SelfPrivacy (Nightly)">
</application>
</manifest>

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="pro.kherel.selfprivacy">
package="org.selfprivacy.app">
<!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->

View File

@ -1,12 +1,25 @@
buildscript {
ext.kotlin_version = '1.3.50'
ext.kotlin_version = '1.9.21'
ext.getVersionCode = { ->
try {
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'rev-list', '--first-parent', '--count', 'HEAD'
standardOutput = stdout
}
return Integer.parseInt(stdout.toString().trim())
}
catch (ignored) {
return -1
}
}
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath 'com.android.tools.build:gradle:7.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
@ -26,6 +39,6 @@ subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
tasks.register("clean", Delete) {
delete rootProject.buildDir
}

View File

@ -1,4 +1,4 @@
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
android.enableR8=true
android.bundle.enableUncompressedNativeLibs=false

View File

@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip

54
appimage.yml Normal file
View File

@ -0,0 +1,54 @@
# appimage-builder recipe see https://appimage-builder.readthedocs.io for details
version: 1
script:
- rm -rf AppDir || true
- cp -r build/linux/x64/release/bundle AppDir
- install -Dm644 assets/images/icon/logo.svg AppDir/usr/share/icons/hicolor/scalable/apps/org.selfprivacy.app.svg
AppDir:
path: AppDir
app_info:
id: org.selfprivacy.app
name: SelfPrivacy
icon: org.selfprivacy.app
version: 0.11.0
exec: selfprivacy
exec_args: $@
apt:
arch:
- amd64
allow_unauthenticated: true
sources:
- sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy main restricted
- sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted
- sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy universe
- sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy-updates universe
- sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy multiverse
- sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy-updates multiverse
- sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
- sourceline: deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted
- sourceline: deb http://security.ubuntu.com/ubuntu/ jammy-security universe
- sourceline: deb http://security.ubuntu.com/ubuntu/ jammy-security multiverse
include:
- libjsoncpp-dev
- libsecret-1-0
- xdg-desktop-portal
test:
fedora-30:
image: appimagecrafters/tests-env:fedora-30
command: ./AppRun
debian-stable:
image: appimagecrafters/tests-env:debian-stable
command: ./AppRun
archlinux-latest:
image: appimagecrafters/tests-env:archlinux-latest
command: ./AppRun
centos-7:
image: appimagecrafters/tests-env:centos-7
command: ./AppRun
ubuntu-xenial:
image: appimagecrafters/tests-env:ubuntu-xenial
command: ./AppRun
AppImage:
arch: x86_64
update-information: guess
comp: xz

BIN
assets/images/gifs/Backblaze.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

BIN
assets/images/gifs/CloudFlare.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

BIN
assets/images/gifs/Hetzner.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

View File

@ -0,0 +1,9 @@
<svg width="186" height="186" viewBox="0 0 186 186" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M181.85 0H179.81C180.898 0 181.782 0.882482 181.782 1.96861V180.23C181.782 181.316 180.898 182.199 179.81 182.199H14.7574C13.6692 182.199 12.7852 181.316 12.7852 180.23V181.859C12.7852 184.167 14.6893 186 16.9336 186H181.85C184.162 186 185.998 184.167 185.998 181.859V4.14088C186.066 1.83285 184.162 0 181.85 0Z" fill="#EFCD29"/>
<path d="M87.0484 106.577C87.1164 106.577 87.1164 106.645 87.1164 106.645L81.1999 131.287H105.478L99.5617 106.645C99.5617 106.577 99.5617 106.577 99.6297 106.577C105.138 104.133 109.015 98.6347 109.015 92.2537C109.015 80.9172 96.9774 72.4318 84.9402 78.8129C82.832 79.9669 80.9958 81.7318 79.9077 83.8362C74.7392 93.4756 79.2277 103.183 87.0484 106.577Z" fill="#FFDD00"/>
<path d="M87.0484 106.577C87.1164 106.577 87.1164 106.645 87.1164 106.645L81.1999 131.287H105.478L99.5617 106.645C99.5617 106.577 99.5617 106.577 99.6297 106.577C105.138 104.133 109.015 98.6347 109.015 92.2537C109.015 80.9172 96.9774 72.4318 84.9402 78.8129C82.832 79.9669 80.9958 81.7318 79.9077 83.8362C74.7392 93.4756 79.2277 103.183 87.0484 106.577Z" fill="#FFDD00"/>
<path d="M14.7574 182.199H179.81C180.898 182.199 181.782 181.316 181.782 180.23V1.96861C181.782 0.882482 180.898 0 179.81 0H17.0016H14.8254C13.7372 0 12.8532 0.882482 12.8532 1.96861V4.14088V46.3642H95.2092L125.336 82.4102L127.444 84.9898V148.257H12.7852V160.612V180.23C12.7852 181.316 13.6692 182.199 14.7574 182.199Z" fill="#FFDD00"/>
<path d="M14.7574 182.199H179.81C180.898 182.199 181.782 181.316 181.782 180.23V1.96861C181.782 0.882482 180.898 0 179.81 0H17.0016H14.8254C13.7372 0 12.8532 0.882482 12.8532 1.96861V4.14088V46.3642H95.2092L125.336 82.4102L127.444 84.9898V148.257H12.7852V160.612V180.23C12.7852 181.316 13.6692 182.199 14.7574 182.199Z" fill="#FFDD00"/>
<path d="M125.336 145.677V82.4102L95.2093 46.3643H12.7853H0V145.677H125.336ZM79.9078 83.9037C81.0639 81.7993 82.8321 80.0343 84.9403 78.8803C96.9095 72.4993 109.015 80.9847 109.015 92.3212C109.015 98.7022 105.138 104.201 99.6298 106.645C99.5618 106.645 99.5618 106.712 99.5618 106.712L105.478 131.354H81.2L87.1165 106.712C87.1165 106.645 87.1165 106.645 87.0485 106.645C79.2278 103.182 74.7393 93.4752 79.9078 83.9037Z" fill="#404548"/>
<path d="M127.444 148.257V84.9902L125.336 82.4785V145.678H0L12.7853 160.68V148.257H127.444Z" fill="#333638"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 209.51 94.74"><defs><style>.cls-1{fill:#fff;}</style></defs><path class="cls-1" d="M143.05,93.42l1.07-3.71c1.27-4.41.8-8.48-1.34-11.48-2-2.76-5.26-4.38-9.25-4.57L58,72.7a1.47,1.47,0,0,1-1.35-2,2,2,0,0,1,1.75-1.34l76.26-1c9-.41,18.84-7.75,22.27-16.71l4.34-11.36a2.68,2.68,0,0,0,.18-1,3.31,3.31,0,0,0-.06-.54,49.67,49.67,0,0,0-95.49-5.14,22.35,22.35,0,0,0-35,23.42A31.73,31.73,0,0,0,.34,93.45a1.47,1.47,0,0,0,1.45,1.27l139.49,0h0A1.83,1.83,0,0,0,143.05,93.42Z"/><path class="cls-1" d="M168.22,41.15q-1,0-2.1.06a.88.88,0,0,0-.32.07,1.17,1.17,0,0,0-.76.8l-3,10.26c-1.28,4.41-.81,8.48,1.34,11.48a11.65,11.65,0,0,0,9.24,4.57l16.11,1a1.44,1.44,0,0,1,1.14.62,1.5,1.5,0,0,1,.17,1.37,2,2,0,0,1-1.75,1.34l-16.73,1c-9.09.42-18.88,7.75-22.31,16.7l-1.21,3.16a.9.9,0,0,0,.79,1.22h57.63A1.55,1.55,0,0,0,208,93.63a41.34,41.34,0,0,0-39.76-52.48Z"/></svg>

After

Width:  |  Height:  |  Size: 923 B

View File

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="7.4053912mm"
height="7.5173831mm"
viewBox="0 0 7.4053913 7.5173831"
version="1.1"
id="svg1262"
sodipodi:docname="logo.notext.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<defs
id="defs1256" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6"
inkscape:cx="101.86078"
inkscape:cy="8.9271745"
inkscape:document-units="mm"
inkscape:current-layer="g3885"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="2560"
inkscape:window-height="1365"
inkscape:window-x="0"
inkscape:window-y="38"
inkscape:window-maximized="1" />
<metadata
id="metadata1259">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-254.94057,-266.78298)">
<g
id="g3885"
transform="matrix(0.26519825,0,0,0.26519825,228.89366,215.69135)"
style="fill:#000000">
<g
style="fill:#000000;stroke:#ffffff;stroke-opacity:1"
id="layer1-9"
transform="matrix(0.22901929,0,0,0.22901929,26.296508,84.906304)"
inkscape:export-filename="/home/nils/git/desec-stack/webapp/src/assets/logo.png"
inkscape:export-xdpi="567.52002"
inkscape:export-ydpi="567.52002">
<g
style="fill:#000000;stroke:#ffffff;stroke-opacity:1"
transform="translate(-194.13584,150.8067)"
id="g3933">
<path
inkscape:connector-curvature="0"
d="m 509.13584,366.2239 c 8.87906,-33.13708 42.93987,-52.8021 76.07695,-43.92304 21.43594,5.74374 38.17931,22.48711 43.92305,43.92304 0,0 -6.09923,-6.07815 -10,-6.07815 -3.90077,0 -10,6.07815 -10,6.07815 0,0 -6.09923,-6.07815 -10,-6.07815 -3.90077,0 -10,6.07815 -10,6.07815 0,0 -6.09923,-6.07815 -10,-6.07815 -3.90077,0 -10,6.07815 -10,6.07815 0,0 -6.09923,-6.07815 -10,-6.07815 -3.90077,0 -10,6.07815 -10,6.07815 0,0 -6.09923,-6.07815 -10,-6.07815 -3.90077,0 -10,6.07815 -10,6.07815 0,0 -6.09923,-6.07815 -10,-6.07815 -3.90077,0 -10,6.07815 -10,6.07815 z"
id="path2985-6-3"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" />
<path
inkscape:connector-curvature="0"
d="m 567.42674,364.89583 v 61.87321 c 0,9.34738 5.48085,16.17306 12.23879,16.17306 6.75795,0 12.23635,-6.83606 12.23635,-16.18344 0,0 -1.07806,-1.02674 -1.75904,-1.03964 -0.64261,-0.0122 -1.69589,0.91753 -1.69589,0.91753 0,6.70817 -3.93157,13.01592 -8.78142,13.01592 -4.84984,0 -8.78142,-6.30775 -8.78142,-13.01592 l -7.6e-4,-61.74072 z"
id="path3775-7-4-6"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:117.14173126;stroke-opacity:1;marker:none;enable-background:accumulate" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -0,0 +1,6 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.0013 24.0128V19.3592C16.927 19.3592 20.7505 14.4743 18.8591 9.2901C18.1652 7.37152 16.6276 5.83395 14.709 5.14C9.52482 3.26224 4.63995 7.07217 4.63995 11.9979H0C0 4.14669 7.59264 -1.97641 15.8248 0.595295C19.417 1.72467 22.2881 4.58211 23.4038 8.17433C25.9755 16.4201 19.8661 24.0128 12.0013 24.0128Z" fill="white"/>
<path d="M12.0149 19.3729H7.38855V14.7466H12.0149V19.3729Z" fill="white"/>
<path d="M7.38861 22.9376H3.82361V19.3726H7.38861V22.9376Z" fill="white"/>
<path d="M3.82354 19.373H0.843628V16.3931H3.82354V19.373Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 657 B

View File

@ -0,0 +1,10 @@
<svg width="24" height="23" viewBox="0 0 24 23" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_51804_9018)">
<path d="M22.5704 0H19.3252C18.5948 0 18.2817 0.302609 18.2817 1.04348V9.25565H5.35304V1.04348C5.35304 0.313043 5.05044 0 4.30957 0H1.04348C0.302609 0 0 0.302609 0 1.04348V22.1739C0 22.9148 0.302609 23.2174 1.04348 23.2174H4.30957C5.04 23.2174 5.35304 22.9252 5.35304 22.1739V13.8261H18.2922V22.1739C18.2922 22.9043 18.5948 23.2174 19.3357 23.2174H22.5809C23.3113 23.2174 23.6243 22.9148 23.6243 22.1739V1.04348C23.6035 0.333913 23.3009 0 22.5704 0Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_51804_9018">
<rect width="24" height="22.9565" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,12 +0,0 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

View File

@ -1,12 +0,0 @@
### О проекте
Всё больше организаций хотят владеть нашими данными
Проект позволяет только Вам в полной мере распоряжаться собственными **данными** на своём сервере.
### Миссия проекта
Цифровая независимость и приватность доступная каждому.
### Цель
Развивать программу, которая позволит каждому создавать приватные сервисы для себя и своих близких.

View File

@ -0,0 +1,8 @@
### Як атрымаць Backblaze API Token
1. Перайдзіце па спасылцы https://secure.backblaze.com/user_signin.htm і аўтарызуйцеся
2. У левай частцы інтэрфейсу абярыце **App Keys** y **B2 Cloud Storage** падкатэгорыі.
3. Націсніце на сінюю кнопку **Generate New Master Application Key**.
4. Пацвердзіце стварэнне ва ўсплываючым акне.
5. Схавайце _keyID_ і _applicationKey_ у бяспечным месце. Напрыклад, у мэнеджэры пароляў.
![Атрыманіе токена Backblaze](resource:assets/images/gifs/Backblaze.gif)

View File

@ -0,0 +1,8 @@
### Jak získat Backblaze API Token
1. Navštivte následující odkaz a autorizujte se: https://secure.backblaze.com/user_signin.htm
2. V levé části rozhraní vyberte položku **App Keys** v podkategorii **B2 Cloud Storage**.
3. Klikněte na modré tlačítko **Generate New Master Application Key** (Vygenerovat nový hlavní aplikační klíč**).
4. V zobrazeném vyskakovacím okně potvrďte vygenerování.
5. Save _keyID_ and _applicationKey_ in the safe place.. Například ve správci hesel.
![Nastavení tokenu Backblaze](resource:assets/images/gifs/Backblaze.gif)

View File

@ -0,0 +1,8 @@
### So erhalten Sie das Backblaze-API-Token
1. Besuchen Sie den folgenden Link und melden Sie sich an: https://secure.backblaze.com/user_signin.htm
2. Wählen Sie auf der linken Seite der Benutzeroberfläche **App Keys** in der Unterkategorie **B2 Cloud Storage** aus.
3. Klicken Sie auf die blaue Schaltfläche **Generate New Master Application Key**.
4. Bestätigen Sie im erscheinenden Popup-Fenster die Generierung.
5. Speichern Sie _keyID_ und _applicationKey_ an einem sicheren Ort. Zum Beispiel im Passwort-Manager.
![Backblaze token Einrichtung](resource:assets/images/gifs/Backblaze.gif)

View File

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

View File

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

View File

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

View File

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

View File

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

View File

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

View File

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

View File

@ -0,0 +1,8 @@
### Jak otrzymać Backblaze API Token
1. Odwiedź poniższy link i autoryzuj: https://secure.backblaze.com/user_signin.htm
2. Po lewej stronie wybierz **App Keys** w podkategorіі **B2 Cloud Storage**.
3. Naciśnij **Generate New Master Application Key**.
4. W wyświetlonym oknie podręcznym potwierdź generację.
5. Zapisz _keyID_ i _applicationKey_ w bezpiecznym miejscu. Na przykład w menedżerze haseł.
![Otrzymanie tokena Backblaze](resource:assets/images/gifs/Backblaze.gif)

View File

@ -0,0 +1,8 @@
### Как получить Backblaze API Token
1. Переходим по ссылке https://secure.backblaze.com/user_signin.htm и авторизуемся.
2. В левой части интерфейса выбираем **App Keys** в подкатегории **"Account"**.
3. Нажимаем на синюю кнопку **Generate New Master Application Key**.
4. Во всплывающем окне подтверждаем генерацию.
5. Сохраняем _keyID_ и _applicationKey_ в надёжном месте. Например в менеджере паролей.
![Получение токена Backblaze](resource:assets/images/gifs/Backblaze.gif)

View File

@ -0,0 +1,8 @@
### Ako získať token API spoločnosti Backblaze
1. Navštívte nasledujúci odkaz a autorizujte sa: https://secure.backblaze.com/user_signin.htm
2. Na ľavej strane rozhrania vyberte položku **App Keys** v podkategórii **B2 Cloud Storage** podkategória.
3. Kliknite na modré tlačidlo **Generate New Master Application Key**.
4. V zobrazenom pop-up okne potvrďte generovanie.
5. Uložte _keyID_ and _applicationKey_ in bezpečné miesto. Napríklad v správcovi hesiel.
![Prijatie tokenu Backblaze](resource:assets/images/gifs/Backblaze.gif)

View File

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

View File

@ -0,0 +1,8 @@
## Як отримати Backblaze API токен
1. Перейдіть за посиланням і авторизуйте: https://secure.backblaze.com/user_signin.htm
2. У лівій частині інтерфейсу виберіть **App Keys** у підкатегорії **B2 Cloud Storage**.
3. Натисніть кнопку синій **Створити новий майстер-ключ програми**.
4. У з'явилось спливаюче вікно підтверджують покоління.
5. Save _KeyID_ and _applicationKey_ in the safe place. Наприклад, в менеджері паролів.
![Backblaze токен налаштування](resource:assets/images/gifs/Backblaze.gif)

View File

@ -0,0 +1,17 @@
### Як атрымаць токен Cloudflare API
1. Перайдзіце па наступнай спасылцы: https://dash.cloudflare.com/
2. У правым куце націсніце на значок профілю (чалавек у крузе). Для мабільнай версіі сайта ў левым верхнім куце націсніце кнопку **Menu** (тры гарызантальныя палоскі), у выпадальным меню націсніце **My Profile**.
3. Ёсць чатыры катэгорыі канфігурацыі на выбар: *Communication*, *Authentication*, **API Tokens**, *Session*. Выберыце **API Tokens**.
4. Націсніце на кнопку **Create Token**.
5. Спусціцеся ўніз і паглядзіце поле **Create Custom Token** і націсніце кнопку **Get Started** справа.
6. У полі **Token Name** дайце назву токену.
7. Далей у нас налады. У крайнім левым полі абярыце **Zone**. У самым доўгім полі па цэнтры абярыце **DNS**. У крайнім правым полі абярыце **Edit**.
8. Далей прама пад гэтым радком націсніце «Дадаць яшчэ». З'явіцца аналагічнае поле.
9. У самым левым полі новага радка выберыце аналагічна папярэдняму радку — **Zone**. У цэнтры — крыху іншае. Тут абярыце тое ж, што і злева — **Zone**. У крайнім правым полі абярыце **Read**.
10. Далей паглядзіце на **Resources Zone**. Пад гэтым надпісам радок з двума палямі. Злева павінна быць **Include**, а справа павінна быць **Specific Zone**. Пасля таго як вы выберыце канкрэтную зону, справа з'явіцца іншае поле. Выберыце ў ім свой дамен.
11. Прагартайце ўніз і націсніце сінюю кнопку **Continue to Summary**.
12. Правер, ці ўсё ў цябе правільна. Аналагічны радок павінен прысутнічаць: *Domain — DNS:Edit, Zone:Read*.
13. Націсніце на **Create Token**.
14. Створаны токен капіюем і захоўваем у надзейным месцы (пажадана ў мэнэджару пароляў).
![Настройка токену Cloudfire](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,17 @@
### Jak získat token API Cloudflare
1. Přejděte na následující odkaz: https://dash.cloudflare.com/.
2. V pravém rohu klikněte na ikonu profilu (mužík v kruhu). V případě mobilní verze webu klikněte v levém horním rohu na **Menu** (tři vodorovné pruhy), v rozbalovací nabídce klikněte na **My profile**.
Na výběr jsou čtyři kategorie nastavení: *Communication*, *Authentication*, **API Tokens**, *Session*. Vyberte možnost **API Tokens**.
4. Klikněte na tlačítko **Create Token**.
5. Přejděte dolů, zobrazte pole **Create Custom Token** a klikněte na tlačítko **Get Started** vpravo.
6. V poli **Token Name** pojmenujte svůj token.
7. Dále máme přístupová práva. V poli zcela vlevo vyberte možnost **Zone**. V nejdelším poli uprostřed vyberte položku **DNS**. V pravém krajním poli vyberte možnost **Edit**.
8. Poté hned pod tímto řádkem klepněte na tlačítko Přidat další. Zobrazí se podobné pole.
9. Na zcela levé straně nového řádku vyberte totéž co u předchozího řádku - **Zone**. Prostřední pole se mírně liší. Zde vyberte totéž co na levém okraji - **Zone**. Na pravém okraji zcela vpravo vyberte možnost **Read**.
10. Dále se podívejte na položku **Zone Resources**. Pod ním se nachází řádek se dvěma poli. V levém z nich by mělo být uvedeno **Include** a v pravém **Specific Zone**. Jakmile vyberete možnost Specifická zóna, objeví se vpravo další pole. V něm vyberte svou doménu.
11. Přejděte úplně dolů a klikněte na modré tlačítko **Continue to Summary**.
12. Zkontrolujte, zda jste vše provedli správně. Měl by se objevit podobný řádek: *Domain - DNS:Edit, Zone:Read*.
13. Klepněte na tlačítko **Create Token**.
14. Zkopírujte vytvořený token a uložte jej na bezpečné místo (nejlépe do správce hesel).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,17 @@
### Wie man Cloudflare API Token bekommt
1. Besuchen Sie den folgenden link: https://dash.cloudflare.com/
2. Klicken Sie in der rechten Ecke auf das Profilsymbol (ein Mann in einem Kreis). Bei der mobilen Version der Website klicken Sie in der oberen linken Ecke auf die Schaltfläche **Menu** (drei horizontale Balken), im Dropdown-Menü klicken Sie auf **My Profile**
3. Es gibt vier Konfigurationskategorien, aus denen Sie wählen können: *Communication*, *Authentication*, **API Tokens**, *Session*. Wählen Sie **API Tokens**.
4. Klicken Sie auf die Schaltfläche **Create Token**.
5. Gehen Sie nach unten und sehen Sie das Feld **Create Custom Token** und klicken Sie auf der rechten Seite auf die Schaltfläche **Get Started**.
6. Geben Sie in das Feld **Token Name** einen Namen für Ihr Token ein.
7. Als nächstes folgen die Berechtigungen. Wählen Sie im Feld ganz links **Zone**. Wählen Sie im längsten Feld in der Mitte **DNS**. Wählen Sie im Feld ganz rechts **Edit**.
8. Klicken Sie anschließend direkt unter dieser Zeile auf Add More. Ein ähnliches Feld wird angezeigt.
9. Wählen Sie im ganz linken Feld der neuen Zeile, ähnlich wie in der letzten Zeile, **Zone**. In der Mitte - ein wenig anders. Wählen Sie hier dasselbe wie in der linken Zeile - **Zone**. Im Feld ganz rechts wählen Sie **Read**.
10. Als nächstes sehen Sie sich **Zone Resources** an. Unter dieser Aufschrift befindet sich eine Zeile mit zwei Feldern. Auf der linken Seite muss **Include** und auf der rechten Seite **Specific Zone** stehen. Sobald Sie Spezifische Zone auswählen, erscheint rechts ein weiteres Feld. Wählen Sie dort Ihre Domain aus.
11. Streichen Sie nach unten und drücken Sie die blaue Schaltfläche **Continue to Summary**.
12. Überprüfen Sie, ob Sie alles richtig gemacht haben. Eine ähnliche Zeichenfolge muss vorhanden sein: *Domain — DNS:Edit, Zone:Read*.
13. Klicken Sie auf **Create Token**.
14. Kopieren Sie das erstellte Token und speichern Sie es an einem zuverlässigen Ort (vorzugsweise im Passwort-Manager).
![Cloudflare token Einrichtung](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,17 @@
### Jak uzyskać token API Cloudflare'a
1. Przejdź pod następujący link: https://dash.cloudflare.com/.
2. W prawym rogu kliknij ikonę profilu (człowiek w kółku). W przypadku wersji mobilnej strony, w lewym górnym rogu kliknij **Menu** (trzy poziome paski), w rozwijanym menu kliknij **My Profile**.
Do wyboru są cztery kategorie ustawień: *Communication*, *Authentication*, **API Tokens**, *Session*. Należy wybrać **API Tokens**.
4. Kliknij przycisk **Create token**.
5. Zjedź na dół, zobacz pole **Create Custom Token** i kliknij przycisk **Get Started** po prawej stronie.
6. W polu **Token Name** nadaj nazwę swojemu tokenowi.
7. Następnie mamy prawa dostępu. W skrajnie lewym polu wybierz **Zone**. W najdłuższym polu, środkowym, wybierz **DNS**. W skrajnie prawym polu wybierz **Edit**.
8. Następnie, tuż pod tym wierszem, kliknij Add more. Pojawi się podobne pole.
9. W skrajnie lewej części nowej linii wybierz to samo, co w poprzedniej linii - **Zone**. Środkowe pole jest nieco inne. Tutaj wybierz to samo, co na lewym marginesie - **Zone**. W skrajnie prawym marginesie wybierz **Read**.
10. Następnie spójrz na **Strefę zasobów**. Poniżej tego znajduje się linia z dwoma polami. W lewym powinno być **Include**, a w prawym **Specific Zone**. Gdy wybierzesz Specific Zone, po prawej stronie pojawi się kolejne pole. Wybierz w nim swoją domenę.
11. Przejdź na sam dół i kliknij niebieski przycisk **Continue to Summary**.
12. Sprawdź, czy wszystko zrobiłeś poprawnie. Powinna pojawić się podobna linia: *Domain - DNS:Edit, Zone:Read*.
13. Kliknij na **Create Token**.
14. Skopiuj utworzony token i zapisz go w bezpiecznym miejscu (najlepiej w menedżerze haseł).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,17 @@
### Как получить токен API Cloudflare
1. Перейдите по следующей ссылке: https://dash.cloudflare.com/.
2. В правом углу нажмите на значок профиля (человечек в круге). Для мобильной версии сайта: в левом верхнем углу нажмите на кнопку **Menu** (три горизонтальные полоски), в выпадающем меню нажмите на **My Profile**.
3. На выбор предлагаются четыре категории настроек: *Communication*, *Authentication*, **API Tokens**, *Session*. Выберите **API Tokens**.
4. Нажмите на кнопку **Create token**.
5. Спуститесь в самый низ, увидите поле **Create Custom Token** и нажмите кнопку **Get Started** справа.
6. В поле **Token Name** дайте имя вашему токену.
7. Далее у нас есть права доступа. В крайнем левом поле выберите **Zone**. В самом длинном поле, по центру, выберите **DNS**. В крайнем правом поле выберите **Edit**.
8. Далее, прямо под этой строкой, нажмите **Добавить еще**. Появится аналогичное поле.
9. В крайнем левом поле новой строки выберите, аналогично предыдущей строке - **Zone**. В центральном - немного иначе. Здесь выберите то же, что и в левом - **Zone**. В крайнем правом поле выберите **Read**.
10. Далее посмотрите на **Resources Zone**. Под этой надписью находится строка с двумя полями. В левом должно быть **Include**, а в правом - **Specific Zone**. Как только вы выберете Specific Zone, справа появится еще одно поле. Выберите в нем свой домен.
11. Перейдите в самый низ и нажмите синюю кнопку **Continue to Summary**.
12. Проверьте, все ли вы сделали правильно. Должна присутствовать аналогичная строка: *Domain - DNS:Edit, Zone:Read*.
13. Нажмите на **Create Token**.
14. Копируем созданный токен и сохраняем его в надежном месте (желательно в менеджере паролей).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,17 @@
### Ako získať token API Cloudflare
1. Navštívte nasledujúce prepojenie: https://dash.cloudflare.com/
2. V pravom rohu kliknite na ikonu profilu (muž v kruhu). V prípade mobilnej verzie stránky kliknite v ľavom hornom rohu na tlačidlo **Menu** (tri vodorovné pruhy), v rozbaľovacej ponuke kliknite na **My profile**
3. Na výber sú štyri kategórie konfigurácie: *Communication*, *Authentication*, **Toky API**, *Session*. Vyberte **API Tokens**.
4. Kliknite na tlačidlo **Create Token**.
5. Prejdite na spodnú časť a zobrazte pole **Create Custom Token** a stlačte tlačidlo **Get Started** na pravej strane.
6. V poli **Token Name** zadajte svoj token.
7. Ďalej tu máme položku Permissions. V ľavom krajnom poli vyberte položku **Zone**. V najdlhšom poli uprostred vyberte položku **DNS**. V krajnom pravom poli vyberte položku **Edit**.
8. Ďalej priamo pod týmto riadkom kliknite na položku **Pridať ďalšie**. Zobrazí sa podobné pole.
9. V krajnom ľavom poli nového riadku vyberte podobne ako v predchádzajúcom riadku - **Zone**. V strede - trochu inak. Tu vyberte rovnako ako v ľavom poli - **Zone**. V krajnom pravom poli vyberte položku **Read**.
10. Ďalej sa pozrite na položku **Zone Resources**. Pod týmto nápisom sa nachádza riadok s dvoma poľami. V ľavom musí byť uvedené **Include** a v pravom **Specific Zone**. Keď vyberiete položku **Špecifická zóna**, vpravo sa objaví ďalšie pole. V ňom vyberte svoju doménu.
11. Prejdite na spodnú časť a stlačte modré tlačidlo **Continue to Summary**.
12. Skontrolujte, či máte všetko správne. Musí sa vyskytovať podobný reťazec: *Domain — DNS:Edit, Zone:Read*.
13. Kliknite na **Create Token**.
14. Vytvorený token skopírujeme a uložíme ho na spoľahlivé miesto (najlepšie do správcu hesiel).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,17 @@
### Як отримати токен Cloudflare API
1. Перейдіть за цим посиланням: https://dash.cloudflare.com/
2. В правому куті натисніть на іконку профілю (людина в колі). Для мобільної версії сайту, у верхньому лівому кутку натисніть кнопку **Menu** (три горизонтальні смужки), у випадаючому меню натисніть **My profile**
3. Є чотири категорії конфігурації на вибір: *Communication*, *Authentication*, **API Tokens**, *Session*. Виберіть **API Tokens**.
4. Натисніть кнопку **Create Token**.
5. Спустіться вниз і перегляньте поле **Create Custom Token** і натисніть кнопку **Get Started** праворуч.
6. У полі **Назва токена** введіть назву токена.
7. Далі у нас є Дозволи. У крайньому лівому полі виберіть **Zone**. У найдовшому полі по центру виберіть **DNS**. У крайньому правому полі виберіть **Edit**.
8. Далі прямо під цим рядком натисніть «Add more». З'явиться аналогічне поле.
9. У крайньому лівому полі нового рядка виберіть, як і в останньому рядку, — **Zone**. У центрі — трохи інше. Тут вибираємо те саме, що й зліва — **Zone**. У крайньому правому полі виберіть **Read**.
10. Далі подивіться на **Zone Resources**. Під цим написом — рядок із двома полями. Ліворуч має бути **Include**, а праворуч має бути **Specific Zone**. Після вибору «Specific Zone» праворуч з’явиться ще одне поле. Виберіть у ньому свій домен.
11. Прокрутіть униз і натисніть синю кнопку **Continue to Summary**.
12. Перевірте, чи все ви зробили правильно. Подібний рядок має бути присутнім: *Domain — DNS:Edit, Zone:Read*.
13. Натисніть **Create Token**.
14. Копіюємо створений токен і зберігаємо в надійному місці (бажано в менеджері паролів).
![Cloudflare налаштування токена](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,9 @@
### How to get deSEC API Token
1. Log in at: https://desec.io/login
2. Go to **Domains** page at: https://desec.io/domains
3. Go to **Token management** tab.
4. Click on the round "plus" button in the upper right corner.
5. **"Generate New Token"** dialogue must be displayed. Enter any **Token name** you wish. *Advanced settings* are not required, so do not touch anything there.
6. Click on **Save**.
7. Make sure you save the token's "**secret value**" as it will only be displayed once.
8. Now you can safely **close** the dialogue.

View File

@ -0,0 +1,9 @@
### Как получить deSEC API Токен
1. Авторизуемся в deSEC: https://desec.io/login
2. Переходим на страницу **Domains** по ссылке: https://desec.io/domains
3. Переходим на вкладку **Token management**.
4. Нажимаем на большую кнопку с плюсом в правом верхнем углу страницы.
5. Должен был появиться **"Generate New Token"** диалог. Вводим любое имя токена в **Token name**. *Advanced settings* необязательны, так что ничего там не трогаем.
6. Кликаем **Save**.
7. Обязательно сохраняем "**secret value**" ключ токена, потому что он отображается исключительно один раз.
8. Теперь спокойно закрываем диалог, нажав **close**.

View File

@ -0,0 +1,12 @@
### Як атрымаць токен Digital Ocean API
1. Перайдзіце па наступнай [link](https://cloud.digitalocean.com/) і падпішыцеся
у толькі што створаны ўліковы запіс.
2. Увайдзіце ў раней створаны праект. Калі вы яго не стварылі,
тады, калі ласка, працягвайце.
3. Перайдзіце па спасылцы "API" на панэлі злева.
4. Націсніце на кнопку "Generation New Token".
5. Увядзіце любую назву токена.
6. Усталюйце час заканчэння тэрміну дзеяння на "No Expiry".
7. Усталюйце сцяжок "Write (optional)".
8. Цяпер націсніце на кнопку "Generate Token".
9. Пасля гэтага будзе паказаны токен. Захоўвайце яго ў любым надзейным месцы, пажадана ў менеджэры пароляў.

View File

@ -0,0 +1,12 @@
### Jak získat token API Digital Ocean
1. Navštivte následující [link](https://cloud.digitalocean.com/) a podepište se.
k nově vytvořenému účtu.
2. Vstupte do dříve vytvořeného projektu. Pokud jste žádný nevytvořili,
pak prosím pokračujte.
3. Přejděte na odkaz "API" na levé liště.
4. Klikněte na tlačítko "Generate New Token" (Vygenerovat nový token).
5. Zadejte libovolný název tokenu.
6. Nastavte dobu platnosti na "No expiry".
7. Zaškrtněte políčko "Write (optional)".
8. Nyní klikněte na tlačítko "Generate Token".
9. Poté se zobrazí token. Uložte jej na libovolné spolehlivé místo, nejlépe do správce hesel.

View File

@ -0,0 +1,12 @@
### So erhalten Sie das Digital Ocean API-Token
1. Besuchen Sie den folgenden [link](https://cloud.digitalocean.com/) und melden Sie sich
in das neu erstellte Konto an.
2. Gehen Sie in ein zuvor erstelltes Projekt. Wenn Sie noch keine erstellt haben,
dann bitte fortfahren.
3. Gehen Sie zum Link "API" in der linken Leiste.
4. Klicken Sie auf "Generate New Token".
5. Geben Sie einen beliebigen Namen für das Token ein.
6. Setzen Sie die Ablaufzeit auf "No expiry".
7. Aktivieren Sie das Kontrollkästchen "Write (optional)".
8. Klicken Sie nun auf die Schaltfläche "Generate Token".
9. Danach wird der Token angezeigt. Bewahren Sie es an einem zuverlässigen Ort auf, vorzugsweise in einem Passwort-Manager.

View File

@ -0,0 +1,12 @@
### How to get Digital Ocean API Token
1. Visit the following [link](https://cloud.digitalocean.com/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Go to the "API" link on the left bar.
4. Click on the "Generate New Token".
5. Enter any name for the token.
6. Put expiration time to "No expiry".
7. Check the "Write (optional)" checkbox.
8. Now click on the "Generate Token" button.
9. After that, the token will be shown. Store it in any reliable place, preferably a password manager.

View File

@ -0,0 +1,12 @@
### How to get Digital Ocean API Token
1. Visit the following [link](https://cloud.digitalocean.com/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Go to the "API" link on the left bar.
4. Click on the "Generate New Token".
5. Enter any name for the token.
6. Put expiration time to "No expiry".
7. Check the "Write (optional)" checkbox.
8. Now click on the "Generate Token" button.
9. After that, the token will be shown. Store it in any reliable place, preferably a password manager.

View File

@ -0,0 +1,12 @@
### How to get Digital Ocean API Token
1. Visit the following [link](https://cloud.digitalocean.com/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Go to the "API" link on the left bar.
4. Click on the "Generate New Token".
5. Enter any name for the token.
6. Put expiration time to "No expiry".
7. Check the "Write (optional)" checkbox.
8. Now click on the "Generate Token" button.
9. After that, the token will be shown. Store it in any reliable place, preferably a password manager.

View File

@ -0,0 +1,12 @@
### How to get Digital Ocean API Token
1. Visit the following [link](https://cloud.digitalocean.com/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Go to the "API" link on the left bar.
4. Click on the "Generate New Token".
5. Enter any name for the token.
6. Put expiration time to "No expiry".
7. Check the "Write (optional)" checkbox.
8. Now click on the "Generate Token" button.
9. After that, the token will be shown. Store it in any reliable place, preferably a password manager.

View File

@ -0,0 +1,12 @@
### How to get Digital Ocean API Token
1. Visit the following [link](https://cloud.digitalocean.com/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Go to the "API" link on the left bar.
4. Click on the "Generate New Token".
5. Enter any name for the token.
6. Put expiration time to "No expiry".
7. Check the "Write (optional)" checkbox.
8. Now click on the "Generate Token" button.
9. After that, the token will be shown. Store it in any reliable place, preferably a password manager.

View File

@ -0,0 +1,12 @@
### How to get Digital Ocean API Token
1. Visit the following [link](https://cloud.digitalocean.com/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Go to the "API" link on the left bar.
4. Click on the "Generate New Token".
5. Enter any name for the token.
6. Put expiration time to "No expiry".
7. Check the "Write (optional)" checkbox.
8. Now click on the "Generate Token" button.
9. After that, the token will be shown. Store it in any reliable place, preferably a password manager.

View File

@ -0,0 +1,12 @@
### How to get Digital Ocean API Token
1. Visit the following [link](https://cloud.digitalocean.com/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Go to the "API" link on the left bar.
4. Click on the "Generate New Token".
5. Enter any name for the token.
6. Put expiration time to "No expiry".
7. Check the "Write (optional)" checkbox.
8. Now click on the "Generate Token" button.
9. After that, the token will be shown. Store it in any reliable place, preferably a password manager.

View File

@ -0,0 +1,12 @@
### Jak uzyskać token API Digital Ocean
1. Wejdź na stronę [link](https://cloud.digitalocean.com/) i zaloguj się
na konto, które właśnie utworzyłeś.
2. Zaloguj się do wcześniej utworzonego projektu. Jeśli jeszcze nie utworzyłeś projektu,
to przejdź dalej.
3. Kliknij na link "API" w lewym panelu.
4. Kliknij na przycisk "Generate New Token".
5. Wprowadź dowolną nazwę dla tokena.
6. Ustaw datę wygaśnięcia na "No expiry".
7. Zaznacz pole wyboru "Write (optional)".
8. Teraz kliknij przycisk "Generate Token".
9. Na ekranie pojawi się wówczas token. Przechowuj go w dowolnym bezpiecznym miejscu, najlepiej w menedżerze haseł.

View File

@ -0,0 +1,12 @@
### Как получить API-токен Digital Ocean
1. Перейдите по следующей [link](https://cloud.digitalocean.com/) и войдите
в только что созданную учетную запись.
2. Войдите в ранее созданный проект. Если вы еще не создали проект,
тогда приступайте.
3. Перейдите по ссылке "API" на левой панели.
4. Нажмите на кнопку "Generate New Token".
5. Введите любое имя для токена.
6. Установите срок действия на "No expiry".
7. Установите флажок "Write (optional)".
8. Теперь нажмите на кнопку "Generate Token".
9. После этого на экране появится токен. Сохраните его в любом надежном месте, лучше всего в менеджере паролей.

View File

@ -0,0 +1,12 @@
### Ako získať token API Digital Ocean
1. Navštívte nasledujúci [link](https://cloud.digitalocean.com/) a prihláste sa
do novo vytvoreného účtu.
2. Vstúpte do predtým vytvoreného projektu. Ak ste ho ešte nevytvorili,
potom pokračujte ďalej.
3. Prejdite na odkaz "API" na ľavej lište.
4. Kliknite na tlačidlo "Generate New Token".
5. Zadajte ľubovoľný názov tokenu.
6. Nastavte čas vypršania platnosti na "No expiry".
7. Začiarknite políčko "Write (optional)" zaškrtávacie políčko.
8. Teraz kliknite na tlačidlo "Generate Token" tlačidlo.
9. Potom sa zobrazí token. Uložte ho na akékoľvek spoľahlivé miesto, najlepšie do správcu hesiel.

View File

@ -0,0 +1,12 @@
### How to get Digital Ocean API Token
1. Visit the following [link](https://cloud.digitalocean.com/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Go to the "API" link on the left bar.
4. Click on the "Generate New Token".
5. Enter any name for the token.
6. Put expiration time to "No expiry".
7. Check the "Write (optional)" checkbox.
8. Now click on the "Generate Token" button.
9. After that, the token will be shown. Store it in any reliable place, preferably a password manager.

View File

@ -0,0 +1,11 @@
### Як отримати токен Digital Ocean API
1. Перейдіть за цим [посилання](https://cloud.digitalocean.com/) і увійдіть у щойно створений обліковий запис.
2. Увійдіть у раніше створений проект. Якщо ви його не створили, тоді, будь ласка, продовжуйте.
3. Перейдіть за посиланням «API» на лівій панелі.
4. Натисніть «Створити новий токен».
5. Введіть будь-яку назву токену.
6. Встановіть для терміну дії значення «Без терміну дії».
7. Встановіть прапорець «Написати (необов’язково)».
8. Тепер натисніть кнопку «Створити токен».
9. Після цього буде показано токен. Зберігайте його в будь-якому надійному місці, бажано в менеджері паролів.

View File

@ -0,0 +1,3 @@
У наступным акне увядзіце токен, атрыманы з кансолі папярэдняй версіі прыкладання.
Увядзіце яго без слова *Bearer*.

View File

@ -0,0 +1,3 @@
V dalším okně zadejte token získaný z konzoly předchozí verze aplikace.
Zadejte ji bez slova *Bearer*.

View File

@ -0,0 +1,3 @@
Geben Sie im nächsten Fenster das Token ein, das Sie von der Konsole der vorherigen Version der Anwendung erhalten haben.
Geben Sie es ohne das Wort *Bearer* ein.

View File

@ -0,0 +1,3 @@
In the next window, enter the token obtained from the console of the previous version of the application.
Enter it without the word *Bearer*.

View File

@ -0,0 +1,3 @@
In the next window, enter the token obtained from the console of the previous version of the application.
Enter it without the word *Bearer*.

View File

@ -0,0 +1,3 @@
In the next window, enter the token obtained from the console of the previous version of the application.
Enter it without the word *Bearer*.

View File

@ -0,0 +1,3 @@
In the next window, enter the token obtained from the console of the previous version of the application.
Enter it without the word *Bearer*.

View File

@ -0,0 +1,3 @@
In the next window, enter the token obtained from the console of the previous version of the application.
Enter it without the word *Bearer*.

Some files were not shown because too many files have changed in this diff Show More