mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-18 07:44:26 +01:00
new: snippet fmt
This commit is contained in:
18
lib/data/model/app/menu/base.dart
Normal file
18
lib/data/model/app/menu/base.dart
Normal file
@@ -0,0 +1,18 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
abstract class PopMenu {
|
||||
static 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),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
73
lib/data/model/app/menu/container.dart
Normal file
73
lib/data/model/app/menu/container.dart
Normal file
@@ -0,0 +1,73 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:toolbox/core/extension/context/locale.dart';
|
||||
import 'package:toolbox/data/model/app/menu/base.dart';
|
||||
|
||||
enum ContainerMenu {
|
||||
start,
|
||||
stop,
|
||||
restart,
|
||||
rm,
|
||||
logs,
|
||||
terminal,
|
||||
//stats,
|
||||
;
|
||||
|
||||
static List<ContainerMenu> items(bool running) {
|
||||
if (running) {
|
||||
return [
|
||||
stop,
|
||||
restart,
|
||||
rm,
|
||||
logs,
|
||||
terminal,
|
||||
//stats,
|
||||
];
|
||||
} else {
|
||||
return [start, rm, logs];
|
||||
}
|
||||
}
|
||||
|
||||
IconData get icon {
|
||||
switch (this) {
|
||||
case ContainerMenu.start:
|
||||
return Icons.play_arrow;
|
||||
case ContainerMenu.stop:
|
||||
return Icons.stop;
|
||||
case ContainerMenu.restart:
|
||||
return Icons.restart_alt;
|
||||
case ContainerMenu.rm:
|
||||
return Icons.delete;
|
||||
case ContainerMenu.logs:
|
||||
return Icons.logo_dev;
|
||||
case ContainerMenu.terminal:
|
||||
return Icons.terminal;
|
||||
// case DockerMenuType.stats:
|
||||
// return Icons.bar_chart;
|
||||
}
|
||||
}
|
||||
|
||||
String get toStr {
|
||||
switch (this) {
|
||||
case ContainerMenu.start:
|
||||
return l10n.start;
|
||||
case ContainerMenu.stop:
|
||||
return l10n.stop;
|
||||
case ContainerMenu.restart:
|
||||
return l10n.restart;
|
||||
case ContainerMenu.rm:
|
||||
return l10n.delete;
|
||||
case ContainerMenu.logs:
|
||||
return l10n.log;
|
||||
case ContainerMenu.terminal:
|
||||
return l10n.terminal;
|
||||
// case DockerMenuType.stats:
|
||||
// return s.stats;
|
||||
}
|
||||
}
|
||||
|
||||
PopupMenuItem<ContainerMenu> get widget => PopMenu.build(
|
||||
this,
|
||||
icon,
|
||||
toStr,
|
||||
);
|
||||
}
|
||||
30
lib/data/model/app/menu/server_func.dart
Normal file
30
lib/data/model/app/menu/server_func.dart
Normal file
@@ -0,0 +1,30 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:toolbox/core/extension/context/locale.dart';
|
||||
|
||||
enum ServerTabMenu {
|
||||
terminal,
|
||||
sftp,
|
||||
container,
|
||||
process,
|
||||
pkg,
|
||||
snippet,
|
||||
;
|
||||
|
||||
IconData get icon => switch (this) {
|
||||
ServerTabMenu.sftp => Icons.insert_drive_file,
|
||||
ServerTabMenu.snippet => Icons.code,
|
||||
ServerTabMenu.pkg => Icons.system_security_update,
|
||||
ServerTabMenu.container => Icons.view_agenda,
|
||||
ServerTabMenu.process => Icons.list_alt_outlined,
|
||||
ServerTabMenu.terminal => Icons.terminal,
|
||||
};
|
||||
|
||||
String get toStr => switch (this) {
|
||||
ServerTabMenu.sftp => 'SFTP',
|
||||
ServerTabMenu.snippet => l10n.snippet,
|
||||
ServerTabMenu.pkg => l10n.pkg,
|
||||
ServerTabMenu.container => l10n.container,
|
||||
ServerTabMenu.process => l10n.process,
|
||||
ServerTabMenu.terminal => l10n.terminal,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user