#42 new: docker logs

This commit is contained in:
lollipopkit
2023-05-18 22:06:12 +08:00
parent a9fa981e96
commit 472599498e
16 changed files with 178 additions and 127 deletions

View File

@@ -2,8 +2,8 @@
class BuildData {
static const String name = "ServerBox";
static const int build = 310;
static const int build = 313;
static const String engine = "3.10.0";
static const String buildAt = "2023-05-14 17:02:42.374273";
static const int modifications = 20;
static const String buildAt = "2023-05-16 17:56:08.999957";
static const int modifications = 6;
}

View File

@@ -1,45 +1,105 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import '../../view/widget/dropdown_menu.dart';
enum ServerTabMenuType {
sftp,
snippet,
pkg,
docker,
edit;
class ServerTabMenuItems {
static const List<DropdownBtnItem> firstItems = [sftp, snippet, pkg, docker];
static const List<DropdownBtnItem> secondItems = [edit];
static const sftp =
DropdownBtnItem(text: 'SFTP', icon: Icons.insert_drive_file);
static const snippet = DropdownBtnItem(text: 'Snippet', icon: Icons.code);
static const pkg =
DropdownBtnItem(text: 'Pkg', icon: Icons.system_security_update);
static const docker =
DropdownBtnItem(text: 'Docker', icon: Icons.view_agenda);
static const edit = DropdownBtnItem(text: 'Edit', icon: Icons.edit);
}
class DockerMenuItems {
static const rm = DropdownBtnItem(text: 'Remove', icon: Icons.delete);
static const start = DropdownBtnItem(text: 'Start', icon: Icons.play_arrow);
static const stop = DropdownBtnItem(text: 'Stop', icon: Icons.stop);
static const restart =
DropdownBtnItem(text: 'Restart', icon: Icons.restart_alt);
}
String getDropdownBtnText(S s, String text) {
switch (text) {
case 'Snippet':
return s.snippet;
case 'Pkg':
return s.pkg;
case 'Remove':
return s.delete;
case 'Start':
return s.start;
case 'Stop':
return s.stop;
case 'Edit':
return s.edit;
default:
return text;
IconData get icon {
switch (this) {
case ServerTabMenuType.sftp:
return Icons.insert_drive_file;
case ServerTabMenuType.snippet:
return Icons.code;
case ServerTabMenuType.pkg:
return Icons.system_security_update;
case ServerTabMenuType.docker:
return Icons.view_agenda;
case ServerTabMenuType.edit:
return Icons.edit;
}
}
String text(S s) {
switch (this) {
case ServerTabMenuType.sftp:
return 'SFTP';
case ServerTabMenuType.snippet:
return s.snippet;
case ServerTabMenuType.pkg:
return s.pkg;
case ServerTabMenuType.docker:
return 'Docker';
case ServerTabMenuType.edit:
return s.edit;
}
}
PopupMenuItem<ServerTabMenuType> build(S s) => _build(this, icon, text(s));
}
enum DockerMenuType {
start,
stop,
restart,
rm,
logs;
static List<DockerMenuType> items(bool running) {
if (running) {
return [stop, restart, rm, logs];
} else {
return [start, rm, logs];
}
}
IconData get icon {
switch (this) {
case DockerMenuType.start:
return Icons.play_arrow;
case DockerMenuType.stop:
return Icons.stop;
case DockerMenuType.restart:
return Icons.restart_alt;
case DockerMenuType.rm:
return Icons.delete;
case DockerMenuType.logs:
return Icons.logo_dev;
}
}
String text(S s) {
switch (this) {
case DockerMenuType.start:
return s.start;
case DockerMenuType.stop:
return s.stop;
case DockerMenuType.restart:
return s.restart;
case DockerMenuType.rm:
return s.delete;
case DockerMenuType.logs:
return s.log;
}
}
PopupMenuItem<DockerMenuType> build(S s) => _build(this, icon, text(s));
}
PopupMenuItem<T> _build<T>(T t, IconData icon, String text) {
return PopupMenuItem<T>(
value: t,
child: Row(
children: [
Icon(icon),
const SizedBox(
width: 10,
),
Text(text),
],
),
);
}