mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
new: keepStatusWhenErr
This commit is contained in:
@@ -808,6 +808,18 @@ abstract class S {
|
|||||||
/// **'Keep app foreground!'**
|
/// **'Keep app foreground!'**
|
||||||
String get keepForeground;
|
String get keepForeground;
|
||||||
|
|
||||||
|
/// No description provided for @keepStatusWhenErr.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Preserve the last server state'**
|
||||||
|
String get keepStatusWhenErr;
|
||||||
|
|
||||||
|
/// No description provided for @keepStatusWhenErrTip.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Only in the event of an error during script execution'**
|
||||||
|
String get keepStatusWhenErrTip;
|
||||||
|
|
||||||
/// No description provided for @keyAuth.
|
/// No description provided for @keyAuth.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
|
|||||||
@@ -378,6 +378,12 @@ class SDe extends S {
|
|||||||
@override
|
@override
|
||||||
String get keepForeground => 'Stelle sicher, dass die App geöffnet bleibt.';
|
String get keepForeground => 'Stelle sicher, dass die App geöffnet bleibt.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keepStatusWhenErr => 'Den letzten Serverstatus beibehalten';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keepStatusWhenErrTip => 'Nur im Fehlerfall während der Ausführung des Skripts';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get keyAuth => 'Schlüsselauthentifzierung';
|
String get keyAuth => 'Schlüsselauthentifzierung';
|
||||||
|
|
||||||
|
|||||||
@@ -378,6 +378,12 @@ class SEn extends S {
|
|||||||
@override
|
@override
|
||||||
String get keepForeground => 'Keep app foreground!';
|
String get keepForeground => 'Keep app foreground!';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keepStatusWhenErr => 'Preserve the last server state';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keepStatusWhenErrTip => 'Only in the event of an error during script execution';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get keyAuth => 'Key Auth';
|
String get keyAuth => 'Key Auth';
|
||||||
|
|
||||||
|
|||||||
@@ -378,6 +378,12 @@ class SFr extends S {
|
|||||||
@override
|
@override
|
||||||
String get keepForeground => 'Laisser l\'application au premier plan !';
|
String get keepForeground => 'Laisser l\'application au premier plan !';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keepStatusWhenErr => 'Conserver le dernier état du serveur';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keepStatusWhenErrTip => 'Uniquement en cas d\'erreur lors de l\'exécution du script';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get keyAuth => 'Authentification par clé';
|
String get keyAuth => 'Authentification par clé';
|
||||||
|
|
||||||
|
|||||||
@@ -378,6 +378,12 @@ class SId extends S {
|
|||||||
@override
|
@override
|
||||||
String get keepForeground => 'Simpan Aplikasi Foreground!';
|
String get keepForeground => 'Simpan Aplikasi Foreground!';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keepStatusWhenErr => 'Menyimpan status server terakhir';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keepStatusWhenErrTip => 'Hanya ketika terjadi kesalahan saat menjalankan skrip';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get keyAuth => 'Auth kunci';
|
String get keyAuth => 'Auth kunci';
|
||||||
|
|
||||||
|
|||||||
@@ -378,6 +378,12 @@ class SZh extends S {
|
|||||||
@override
|
@override
|
||||||
String get keepForeground => '请保持应用处于前台!';
|
String get keepForeground => '请保持应用处于前台!';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keepStatusWhenErr => '保留上次的服务器状态';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keepStatusWhenErrTip => '仅限于执行脚本出错';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get keyAuth => '密钥认证';
|
String get keyAuth => '密钥认证';
|
||||||
|
|
||||||
@@ -1244,6 +1250,12 @@ class SZhTw extends SZh {
|
|||||||
@override
|
@override
|
||||||
String get keepForeground => '請保持應用處於前台!';
|
String get keepForeground => '請保持應用處於前台!';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keepStatusWhenErr => '保留上次的伺服器狀態';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keepStatusWhenErrTip => '仅在执行脚本时出错时';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get keyAuth => '密鑰認證';
|
String get keyAuth => '密鑰認證';
|
||||||
|
|
||||||
|
|||||||
@@ -388,6 +388,12 @@ class ServerProvider extends ChangeNotifier {
|
|||||||
raw = await s.client?.run(ShellFunc.status.exec).string;
|
raw = await s.client?.run(ShellFunc.status.exec).string;
|
||||||
segments = raw?.split(seperator).map((e) => e.trim()).toList();
|
segments = raw?.split(seperator).map((e) => e.trim()).toList();
|
||||||
if (raw == null || raw.isEmpty || segments == null || segments.isEmpty) {
|
if (raw == null || raw.isEmpty || segments == null || segments.isEmpty) {
|
||||||
|
if (Stores.setting.keepStatusWhenErr.fetch()) {
|
||||||
|
// Keep previous server status when err occurs
|
||||||
|
if (s.state != ServerState.failed && s.status.more.isNotEmpty) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
TryLimiter.inc(sid);
|
TryLimiter.inc(sid);
|
||||||
s.status.err = 'Seperate segments failed, raw:\n$raw';
|
s.status.err = 'Seperate segments failed, raw:\n$raw';
|
||||||
_setServerState(s, ServerState.failed);
|
_setServerState(s, ServerState.failed);
|
||||||
|
|||||||
@@ -230,6 +230,9 @@ class SettingStore extends PersistentStore {
|
|||||||
/// Try to use `sudo` to run docker command
|
/// Try to use `sudo` to run docker command
|
||||||
late final containerTrySudo = property('containerTrySudo', true);
|
late final containerTrySudo = property('containerTrySudo', true);
|
||||||
|
|
||||||
|
/// Keep previous server status when err occurs
|
||||||
|
late final keepStatusWhenErr = property('keepStatusWhenErr', false);
|
||||||
|
|
||||||
// Never show these settings for users
|
// Never show these settings for users
|
||||||
//
|
//
|
||||||
// ------BEGIN------
|
// ------BEGIN------
|
||||||
|
|||||||
@@ -118,6 +118,8 @@
|
|||||||
"isBusy": "Is busy now",
|
"isBusy": "Is busy now",
|
||||||
"jumpServer": "Server springen",
|
"jumpServer": "Server springen",
|
||||||
"keepForeground": "Stelle sicher, dass die App geöffnet bleibt.",
|
"keepForeground": "Stelle sicher, dass die App geöffnet bleibt.",
|
||||||
|
"keepStatusWhenErr": "Den letzten Serverstatus beibehalten",
|
||||||
|
"keepStatusWhenErrTip": "Nur im Fehlerfall während der Ausführung des Skripts",
|
||||||
"keyAuth": "Schlüsselauthentifzierung",
|
"keyAuth": "Schlüsselauthentifzierung",
|
||||||
"keyboardCompatibility": "Mögliche Verbesserungen bei der Kompatibilität der Eingabemethoden",
|
"keyboardCompatibility": "Mögliche Verbesserungen bei der Kompatibilität der Eingabemethoden",
|
||||||
"keyboardType": "Tastatur Typ",
|
"keyboardType": "Tastatur Typ",
|
||||||
|
|||||||
@@ -118,6 +118,8 @@
|
|||||||
"isBusy": "Is busy now",
|
"isBusy": "Is busy now",
|
||||||
"jumpServer": "Jump server",
|
"jumpServer": "Jump server",
|
||||||
"keepForeground": "Keep app foreground!",
|
"keepForeground": "Keep app foreground!",
|
||||||
|
"keepStatusWhenErr": "Preserve the last server state",
|
||||||
|
"keepStatusWhenErrTip": "Only in the event of an error during script execution",
|
||||||
"keyAuth": "Key Auth",
|
"keyAuth": "Key Auth",
|
||||||
"keyboardCompatibility": "Possible to improve input method compatibility",
|
"keyboardCompatibility": "Possible to improve input method compatibility",
|
||||||
"keyboardType": "Keyborad type",
|
"keyboardType": "Keyborad type",
|
||||||
|
|||||||
@@ -118,6 +118,8 @@
|
|||||||
"isBusy": "Est occupé maintenant",
|
"isBusy": "Est occupé maintenant",
|
||||||
"jumpServer": "Serveur de saut",
|
"jumpServer": "Serveur de saut",
|
||||||
"keepForeground": "Laisser l'application au premier plan !",
|
"keepForeground": "Laisser l'application au premier plan !",
|
||||||
|
"keepStatusWhenErr": "Conserver le dernier état du serveur",
|
||||||
|
"keepStatusWhenErrTip": "Uniquement en cas d'erreur lors de l'exécution du script",
|
||||||
"keyAuth": "Authentification par clé",
|
"keyAuth": "Authentification par clé",
|
||||||
"keyboardCompatibility": "Possibilité d'améliorer la compatibilité avec les méthodes de saisie",
|
"keyboardCompatibility": "Possibilité d'améliorer la compatibilité avec les méthodes de saisie",
|
||||||
"keyboardType": "Type de clavier",
|
"keyboardType": "Type de clavier",
|
||||||
|
|||||||
@@ -118,6 +118,8 @@
|
|||||||
"isBusy": "Sibuk sekarang",
|
"isBusy": "Sibuk sekarang",
|
||||||
"jumpServer": "Lompat server",
|
"jumpServer": "Lompat server",
|
||||||
"keepForeground": "Simpan Aplikasi Foreground!",
|
"keepForeground": "Simpan Aplikasi Foreground!",
|
||||||
|
"keepStatusWhenErr": "Menyimpan status server terakhir",
|
||||||
|
"keepStatusWhenErrTip": "Hanya ketika terjadi kesalahan saat menjalankan skrip",
|
||||||
"keyAuth": "Auth kunci",
|
"keyAuth": "Auth kunci",
|
||||||
"keyboardCompatibility": "Mungkin untuk meningkatkan kompatibilitas metode input",
|
"keyboardCompatibility": "Mungkin untuk meningkatkan kompatibilitas metode input",
|
||||||
"keyboardType": "Tipe Keyborad",
|
"keyboardType": "Tipe Keyborad",
|
||||||
|
|||||||
@@ -118,6 +118,8 @@
|
|||||||
"isBusy": "当前正忙",
|
"isBusy": "当前正忙",
|
||||||
"jumpServer": "跳板服务器",
|
"jumpServer": "跳板服务器",
|
||||||
"keepForeground": "请保持应用处于前台!",
|
"keepForeground": "请保持应用处于前台!",
|
||||||
|
"keepStatusWhenErr": "保留上次的服务器状态",
|
||||||
|
"keepStatusWhenErrTip": "仅限于执行脚本出错",
|
||||||
"keyAuth": "密钥认证",
|
"keyAuth": "密钥认证",
|
||||||
"keyboardCompatibility": "可能会改善输入法兼容性",
|
"keyboardCompatibility": "可能会改善输入法兼容性",
|
||||||
"keyboardType": "键盘类型",
|
"keyboardType": "键盘类型",
|
||||||
|
|||||||
@@ -118,6 +118,8 @@
|
|||||||
"isBusy": "當前正忙",
|
"isBusy": "當前正忙",
|
||||||
"jumpServer": "跳板服務器",
|
"jumpServer": "跳板服務器",
|
||||||
"keepForeground": "請保持應用處於前台!",
|
"keepForeground": "請保持應用處於前台!",
|
||||||
|
"keepStatusWhenErr": "保留上次的伺服器狀態",
|
||||||
|
"keepStatusWhenErrTip": "仅在执行脚本时出错时",
|
||||||
"keyAuth": "密鑰認證",
|
"keyAuth": "密鑰認證",
|
||||||
"keyboardCompatibility": "可能會改善輸入法兼容性",
|
"keyboardCompatibility": "可能會改善輸入法兼容性",
|
||||||
"keyboardType": "鍵盤類型",
|
"keyboardType": "鍵盤類型",
|
||||||
|
|||||||
@@ -202,6 +202,7 @@ class _SettingPageState extends State<SettingPage> {
|
|||||||
Widget _buildServer() {
|
Widget _buildServer() {
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
|
_buildKeepStatusWhenErr(),
|
||||||
_buildServerFuncBtns(),
|
_buildServerFuncBtns(),
|
||||||
_buildServerSeq(),
|
_buildServerSeq(),
|
||||||
_buildServerDetailCardSeq(),
|
_buildServerDetailCardSeq(),
|
||||||
@@ -1157,4 +1158,12 @@ class _SettingPageState extends State<SettingPage> {
|
|||||||
trailing: StoreSwitch(prop: _setting.containerTrySudo),
|
trailing: StoreSwitch(prop: _setting.containerTrySudo),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget _buildKeepStatusWhenErr() {
|
||||||
|
return ListTile(
|
||||||
|
title: Text(l10n.keepStatusWhenErr),
|
||||||
|
subtitle: Text(l10n.keepStatusWhenErrTip, style: UIs.textGrey),
|
||||||
|
trailing: StoreSwitch(prop: _setting.keepStatusWhenErr),
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user