#83 opt.: batch delete servers

This commit is contained in:
lollipopkit
2023-08-01 13:55:05 +08:00
parent 33932f7428
commit 027b9cc4f7
12 changed files with 48 additions and 29 deletions

View File

@@ -320,11 +320,11 @@ abstract class S {
/// **'Delete'**
String get delete;
/// No description provided for @deleteAllServers.
/// No description provided for @deleteServers.
///
/// In en, this message translates to:
/// **'Delete all servers'**
String get deleteAllServers;
/// **'Batch delete servers'**
String get deleteServers;
/// No description provided for @disabled.
///

View File

@@ -116,7 +116,7 @@ class SDe extends S {
String get delete => 'Löschen';
@override
String get deleteAllServers => 'Alle Server löschen';
String get deleteServers => 'Batch-Löschung von Servern';
@override
String get disabled => 'Behinderte';

View File

@@ -116,7 +116,7 @@ class SEn extends S {
String get delete => 'Delete';
@override
String get deleteAllServers => 'Delete all servers';
String get deleteServers => 'Batch delete servers';
@override
String get disabled => 'Disabled';

View File

@@ -116,7 +116,7 @@ class SId extends S {
String get delete => 'Menghapus';
@override
String get deleteAllServers => 'Hapus semua server';
String get deleteServers => 'Penghapusan server secara batch';
@override
String get disabled => 'Dengan disabilitas';

View File

@@ -116,7 +116,7 @@ class SZh extends S {
String get delete => '删除';
@override
String get deleteAllServers => '删除所有服务器';
String get deleteServers => '批量删除服务器';
@override
String get disabled => '已禁用';
@@ -798,7 +798,7 @@ class SZhTw extends SZh {
String get delete => '刪除';
@override
String get deleteAllServers => '刪除所有服務器';
String get deleteServers => '批量刪除服務器';
@override
String get disabled => '已禁用';

View File

@@ -37,7 +37,7 @@
"debug": "Debug",
"decode": "Decode",
"delete": "Löschen",
"deleteAllServers": "Alle Server löschen",
"deleteServers": "Batch-Löschung von Servern",
"disabled": "Behinderte",
"disconnected": "Disconnected",
"diskIgnorePath": "Pfad für Datenträger ignorieren",

View File

@@ -37,7 +37,7 @@
"debug": "Debug",
"decode": "Decode",
"delete": "Delete",
"deleteAllServers": "Delete all servers",
"deleteServers": "Batch delete servers",
"disabled": "Disabled",
"disconnected": "Disconnected",
"diskIgnorePath": "Ignore path for disk",

View File

@@ -37,7 +37,7 @@
"debug": "Debug",
"decode": "Membaca sandi",
"delete": "Menghapus",
"deleteAllServers": "Hapus semua server",
"deleteServers": "Penghapusan server secara batch",
"disabled": "Dengan disabilitas",
"disconnected": "Terputus",
"diskIgnorePath": "Abaikan jalan untuk disk",

View File

@@ -37,7 +37,7 @@
"debug": "调试",
"decode": "解码",
"delete": "删除",
"deleteAllServers": "删除所有服务器",
"deleteServers": "批量删除服务器",
"disabled": "已禁用",
"disconnected": "连接断开",
"diskIgnorePath": "忽略的磁盘路径",

View File

@@ -37,7 +37,7 @@
"debug": "調試",
"decode": "解碼",
"delete": "刪除",
"deleteAllServers": "刪除所有服務器",
"deleteServers": "批量刪除服務器",
"disabled": "已禁用",
"disconnected": "連接斷開",
"diskIgnorePath": "忽略的磁盤路徑",

View File

@@ -102,8 +102,12 @@ class BackupPage extends StatelessWidget {
));
}
Widget _buildCard(String text, IconData icon, MediaQueryData media,
FutureOr Function() onTap) {
Widget _buildCard(
String text,
IconData icon,
MediaQueryData media,
FutureOr Function() onTap,
) {
final textColor = primaryColor.isBrightColor ? Colors.black : Colors.white;
return GestureDetector(
onTap: onTap,

View File

@@ -173,7 +173,7 @@ class _SettingPageState extends State<SettingPage> {
_buildUpdateInterval(),
_buildMaxRetry(),
_buildDiskIgnorePath(),
_buildDeleteAllServers(),
_buildDeleteServers(),
].map((e) => RoundRectCard(e)).toList(),
);
}
@@ -941,21 +941,36 @@ class _SettingPageState extends State<SettingPage> {
);
}
Widget _buildDeleteAllServers() {
Widget _buildDeleteServers() {
return ListTile(
title: Text(_s.deleteAllServers),
title: Text(_s.deleteServers),
trailing: const Icon(Icons.delete_forever),
onTap: () => showRoundDialog(
context: context,
title: Text(_s.attention),
child: Text(_s.sureDelete(_s.all)),
actions: [
TextButton(
onPressed: () => _serverProvider.deleteAll(),
child: Text(_s.ok),
)
],
),
onTap: () async {
final all = _serverProvider.servers.keys.map(
(e) => TextButton(
onPressed: () => showRoundDialog(
context: context,
title: Text(_s.attention),
child: Text(_s.sureDelete(e)),
actions: [
TextButton(
onPressed: () => _serverProvider.delServer(e),
child: Text(_s.ok),
)
],
),
child: Text(e),
),
);
showRoundDialog<List<String>>(
context: context,
title: Text(_s.choose),
child: Column(
mainAxisSize: MainAxisSize.min,
children: all.toList(),
),
);
},
);
}
}