diff --git a/assets/translations/en.json b/assets/translations/en.json
index 2705b68a..be579151 100644
--- a/assets/translations/en.json
+++ b/assets/translations/en.json
@@ -215,7 +215,9 @@
"empty": "No jobs",
"createUser": "Create",
"serviceTurnOff": "Turn off",
- "serviceTurnOn": "Turn on"
+ "serviceTurnOn": "Turn on",
+ "jobAdded": "Job added"
+
},
"validations": {
"required": "Required",
diff --git a/assets/translations/ru.json b/assets/translations/ru.json
index 553d7b01..9fa3fc62 100644
--- a/assets/translations/ru.json
+++ b/assets/translations/ru.json
@@ -215,7 +215,8 @@
"empty": "Пусто",
"createUser": "Создать запись",
"serviceTurnOff": "Остановить",
- "serviceTurnOn": "Запустить"
+ "serviceTurnOn": "Запустить",
+ "jobAdded": "Задача добавленна"
},
"validations": {
"required": "обязательное поле",
diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist
index 6b4c0f78..f2872cf4 100644
--- a/ios/Flutter/AppFrameworkInfo.plist
+++ b/ios/Flutter/AppFrameworkInfo.plist
@@ -21,6 +21,6 @@
CFBundleVersion
1.0
MinimumOSVersion
- 8.0
+ 9.0
diff --git a/ios/build/Pods.build/Release-iphonesimulator/Flutter.build/dgph b/ios/build/Pods.build/Release-iphonesimulator/Flutter.build/dgph
new file mode 100644
index 00000000..0c4ca337
Binary files /dev/null and b/ios/build/Pods.build/Release-iphonesimulator/Flutter.build/dgph differ
diff --git a/ios/build/Pods.build/Release-iphonesimulator/Pods-Runner.build/dgph b/ios/build/Pods.build/Release-iphonesimulator/Pods-Runner.build/dgph
new file mode 100644
index 00000000..0c4ca337
Binary files /dev/null and b/ios/build/Pods.build/Release-iphonesimulator/Pods-Runner.build/dgph differ
diff --git a/ios/build/Pods.build/Release-iphonesimulator/flutter_secure_storage.build/dgph b/ios/build/Pods.build/Release-iphonesimulator/flutter_secure_storage.build/dgph
new file mode 100644
index 00000000..0c4ca337
Binary files /dev/null and b/ios/build/Pods.build/Release-iphonesimulator/flutter_secure_storage.build/dgph differ
diff --git a/ios/build/Pods.build/Release-iphonesimulator/package_info.build/dgph b/ios/build/Pods.build/Release-iphonesimulator/package_info.build/dgph
new file mode 100644
index 00000000..0c4ca337
Binary files /dev/null and b/ios/build/Pods.build/Release-iphonesimulator/package_info.build/dgph differ
diff --git a/ios/build/Pods.build/Release-iphonesimulator/path_provider.build/dgph b/ios/build/Pods.build/Release-iphonesimulator/path_provider.build/dgph
new file mode 100644
index 00000000..0c4ca337
Binary files /dev/null and b/ios/build/Pods.build/Release-iphonesimulator/path_provider.build/dgph differ
diff --git a/ios/build/Pods.build/Release-iphonesimulator/share_plus.build/dgph b/ios/build/Pods.build/Release-iphonesimulator/share_plus.build/dgph
new file mode 100644
index 00000000..0c4ca337
Binary files /dev/null and b/ios/build/Pods.build/Release-iphonesimulator/share_plus.build/dgph differ
diff --git a/ios/build/Pods.build/Release-iphonesimulator/shared_preferences.build/dgph b/ios/build/Pods.build/Release-iphonesimulator/shared_preferences.build/dgph
new file mode 100644
index 00000000..0c4ca337
Binary files /dev/null and b/ios/build/Pods.build/Release-iphonesimulator/shared_preferences.build/dgph differ
diff --git a/ios/build/Pods.build/Release-iphonesimulator/url_launcher.build/dgph b/ios/build/Pods.build/Release-iphonesimulator/url_launcher.build/dgph
new file mode 100644
index 00000000..0c4ca337
Binary files /dev/null and b/ios/build/Pods.build/Release-iphonesimulator/url_launcher.build/dgph differ
diff --git a/ios/build/Pods.build/Release-iphonesimulator/wakelock.build/dgph b/ios/build/Pods.build/Release-iphonesimulator/wakelock.build/dgph
new file mode 100644
index 00000000..0c4ca337
Binary files /dev/null and b/ios/build/Pods.build/Release-iphonesimulator/wakelock.build/dgph differ
diff --git a/lib/config/hive_config.dart b/lib/config/hive_config.dart
index e704b50c..4e84c848 100644
--- a/lib/config/hive_config.dart
+++ b/lib/config/hive_config.dart
@@ -22,15 +22,13 @@ class HiveConfig {
await Hive.openBox(BNames.users);
var cipher = HiveAesCipher(await getEncriptedKey());
-
await Hive.openBox(BNames.appConfig, encryptionCipher: cipher);
}
static Future getEncriptedKey() async {
- final FlutterSecureStorage secureStorage = FlutterSecureStorage();
- var containsEncryptionKey =
- await secureStorage.containsKey(key: BNames.key);
- if (!containsEncryptionKey) {
+ final secureStorage = FlutterSecureStorage();
+ var hasEncryptionKey = await secureStorage.containsKey(key: BNames.key);
+ if (!hasEncryptionKey) {
var key = Hive.generateSecureKey();
await secureStorage.write(key: BNames.key, value: base64UrlEncode(key));
}
diff --git a/lib/logic/api_maps/hetzner.dart b/lib/logic/api_maps/hetzner.dart
index 0c29a040..dcf3a518 100644
--- a/lib/logic/api_maps/hetzner.dart
+++ b/lib/logic/api_maps/hetzner.dart
@@ -73,7 +73,6 @@ class HetznerApi extends ApiMap {
required User rootUser,
required String domainName,
}) async {
-
var client = await getClient();
Response dbCreateResponse = await client.post(
@@ -87,12 +86,12 @@ class HetznerApi extends ApiMap {
"format": "ext4"
},
);
-
+
var dbPassword = StringGenerators.dbPassword();
var dbId = dbCreateResponse.data['volume']['id'];
var data = jsonDecode(
- '''{"name":"$domainName","server_type":"cx11","start_after_create":false,"image":"ubuntu-20.04", "volumes":[$dbId], "networks":[], "user_data":"#cloud-config\\nruncmd:\\n- curl https://git.selfprivacy.org/ilchub/selfprivacy-nixos-infect/raw/branch/master/nixos-infect | PROVIDER=hetzner NIX_CHANNEL=nixos-21.05 DOMAIN=$domainName LUSER=${rootUser.login} PASSWORD=${rootUser.password} HASHED_PASSWORD=${rootUser.hashPassword.hash} SALT=${rootUser.hashPassword.salt} CF_TOKEN=$cloudFlareKey DB_PASSWORD=$dbPassword bash 2>&1 | tee /tmp/infect.log","labels":{},"automount":true, "location": "fsn1"}''');
+ '''{"name":"$domainName","server_type":"cx11","start_after_create":false,"image":"ubuntu-20.04", "volumes":[$dbId], "networks":[], ssh_keys:[kherel], "user_data":"#cloud-config\\nruncmd:\\n- curl https://git.selfprivacy.org/ilchub/selfprivacy-nixos-infect/raw/branch/development/nixos-infect | PROVIDER=hetzner NIX_CHANNEL=nixos-21.05 DOMAIN=$domainName LUSER=${rootUser.login} PASSWORD=${rootUser.password} CF_TOKEN=$cloudFlareKey DB_PASSWORD=$dbPassword bash 2>&1 | tee /tmp/infect.log","labels":{},"automount":true, "location": "fsn1"}''');
Response serverCreateResponse = await client.post(
'/servers',
diff --git a/lib/logic/cubit/jobs/jobs_cubit.dart b/lib/logic/cubit/jobs/jobs_cubit.dart
index aebe2ddd..20285342 100644
--- a/lib/logic/cubit/jobs/jobs_cubit.dart
+++ b/lib/logic/cubit/jobs/jobs_cubit.dart
@@ -1,3 +1,4 @@
+import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:selfprivacy/config/get_it_config.dart';
import 'package:selfprivacy/logic/api_maps/server.dart';
@@ -6,6 +7,7 @@ import 'package:selfprivacy/logic/models/jobs/job.dart';
import 'package:equatable/equatable.dart';
import 'package:selfprivacy/logic/models/user.dart';
export 'package:provider/provider.dart';
+import 'package:easy_localization/easy_localization.dart';
part 'jobs_state.dart';
@@ -21,6 +23,10 @@ class JobsCubit extends Cubit {
newJobsList.addAll((state as JobsStateWithJobs).jobList);
}
newJobsList.add(job);
+ getIt().showSnackBar(SnackBar(
+ content: Text('jobs.jobAdded'.tr()),
+ duration: const Duration(seconds: 2),
+ ));
emit(JobsStateWithJobs(newJobsList));
}
diff --git a/lib/logic/cubit/services/services_cubit.dart b/lib/logic/cubit/services/services_cubit.dart
new file mode 100644
index 00000000..36bc3155
--- /dev/null
+++ b/lib/logic/cubit/services/services_cubit.dart
@@ -0,0 +1,10 @@
+import 'package:bloc/bloc.dart';
+import 'package:equatable/equatable.dart';
+
+part 'services_state.dart';
+
+class ServicesCubit extends Cubit {
+ ServicesCubit() : super(ServicesInitial());
+
+
+}
diff --git a/lib/logic/cubit/services/services_state.dart b/lib/logic/cubit/services/services_state.dart
new file mode 100644
index 00000000..e58e02cf
--- /dev/null
+++ b/lib/logic/cubit/services/services_state.dart
@@ -0,0 +1,10 @@
+part of 'services_cubit.dart';
+
+abstract class ServicesState extends Equatable {
+ const ServicesState();
+
+ @override
+ List