This commit is contained in:
lollipopkit
2024-05-14 23:39:17 +08:00
parent 04dfede535
commit ba4abcecfb
25 changed files with 86 additions and 279 deletions

View File

@@ -1,4 +1,3 @@
import 'package:fl_lib/fl_lib.dart';
/// raw dat from server:

View File

@@ -131,11 +131,11 @@ final class PveLxc extends PveResIface implements PveCtrlIface {
String get summary {
if (available) {
return uptime.secondsToDuration().toAgoStr(
day: l10n.day,
hour: l10n.hour,
minute: l10n.minute,
second: l10n.second,
);
day: l10n.day,
hour: l10n.hour,
minute: l10n.minute,
second: l10n.second,
);
}
return l10n.stopped;
}
@@ -214,11 +214,11 @@ final class PveQemu extends PveResIface implements PveCtrlIface {
String get summary {
if (available) {
return uptime.secondsToDuration().toAgoStr(
day: l10n.day,
hour: l10n.hour,
minute: l10n.minute,
second: l10n.second,
);
day: l10n.day,
hour: l10n.hour,
minute: l10n.minute,
second: l10n.second,
);
}
return l10n.stopped;
}
@@ -269,11 +269,11 @@ final class PveNode extends PveResIface {
String get topRight {
if (isRunning) {
return uptime.secondsToDuration().toAgoStr(
day: l10n.day,
hour: l10n.hour,
minute: l10n.minute,
second: l10n.second,
);
day: l10n.day,
hour: l10n.hour,
minute: l10n.minute,
second: l10n.second,
);
}
return l10n.stopped;
}

View File

@@ -1,56 +0,0 @@
import 'package:fl_lib/fl_lib.dart';
import 'package:flutter/material.dart';
import 'package:logging/logging.dart';
import '../../data/res/misc.dart';
const _level2Color = {
'INFO': Colors.blue,
'WARNING': Colors.yellow,
};
class DebugProvider extends ChangeNotifier {
final widgets = <Widget>[];
void addLog(LogRecord record) {
final color = _level2Color[record.level.name] ?? Colors.blue;
widgets.add(Text.rich(TextSpan(
children: [
TextSpan(
text: '[${DateTime.now().hourMinute}][${record.loggerName}]',
style: const TextStyle(color: Colors.cyan),
),
TextSpan(
text: '[${record.level}]',
style: TextStyle(color: color),
),
TextSpan(
text: record.error == null
? '\n${record.message}'
: '\n${record.message}: ${record.error}',
style: const TextStyle(color: Colors.white),
),
],
)));
if (record.stackTrace != null) {
widgets.add(SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Text(
'${record.stackTrace}',
style: const TextStyle(color: Colors.white),
),
));
}
widgets.add(UIs.height13);
if (widgets.length > Miscs.maxDebugLogLines) {
widgets.removeRange(0, widgets.length - Miscs.maxDebugLogLines);
}
notifyListeners();
}
void clear() {
widgets.clear();
notifyListeners();
}
}

View File

@@ -2,9 +2,9 @@
class BuildData {
static const String name = "ServerBox";
static const int build = 896;
static const int build = 897;
static const String engine = "3.19.6";
static const String buildAt = "2024-05-12 15:46:37";
static const int modifications = 3;
static const String buildAt = "2024-05-14 22:32:07";
static const int modifications = 12;
static const int script = 47;
}

View File

@@ -1,5 +1,5 @@
import 'package:fl_lib/fl_lib.dart';
import 'package:toolbox/data/provider/app.dart';
import 'package:toolbox/data/provider/debug.dart';
import 'package:toolbox/data/provider/private_key.dart';
import 'package:toolbox/data/provider/server.dart';
import 'package:toolbox/data/provider/sftp.dart';
@@ -7,7 +7,7 @@ import 'package:toolbox/data/provider/snippet.dart';
abstract final class Pros {
static final app = AppProvider();
static final debug = DebugProvider();
static final debug = DebugProvider(maxLines: 177);
static final key = PrivateKeyProvider();
static final server = ServerProvider();
static final sftp = SftpProvider();

View File

@@ -4,4 +4,5 @@ abstract final class Urls {
static const myGithub = 'https://github.com/lollipopkit';
static const appHelp = '$myGithub/flutter_server_box#-help';
static const appWiki = '$myGithub/flutter_server_box/wiki';
static const analysis = 'https://countly.lolli.tech';
}

View File

@@ -2,7 +2,6 @@ import 'package:fl_lib/fl_lib.dart';
import 'package:toolbox/data/model/container/type.dart';
import 'package:toolbox/data/res/store.dart';
const _keyConfig = 'providerConfig';
class ContainerStore extends PersistentStore {