mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
#40 new: docker container restart
This commit is contained in:
@@ -4,20 +4,8 @@ import 'package:hive_flutter/hive_flutter.dart';
|
||||
|
||||
part 'server_private_info.g.dart';
|
||||
|
||||
///
|
||||
/// Code generated by jsonToDartModel https://ashamp.github.io/jsonToDartModel/
|
||||
///
|
||||
@HiveType(typeId: 3)
|
||||
class ServerPrivateInfo {
|
||||
/*
|
||||
{
|
||||
"ip": "",
|
||||
"port": 1,
|
||||
"user": "",
|
||||
"authorization": ""
|
||||
}
|
||||
*/
|
||||
|
||||
@HiveField(0)
|
||||
late String name;
|
||||
@HiveField(1)
|
||||
|
||||
@@ -127,6 +127,9 @@ class DockerProvider extends BusyProvider {
|
||||
|
||||
Future<DockerErr?> delete(String id) async => await run('docker rm $id');
|
||||
|
||||
Future<DockerErr?> restart(String id) async =>
|
||||
await run('docker restart $id');
|
||||
|
||||
Future<DockerErr?> run(String cmd) async {
|
||||
if (!cmd.startsWith(_dockerPrefixReg)) {
|
||||
return DockerErr(type: DockerErrType.cmdNoPrefix);
|
||||
@@ -151,7 +154,9 @@ class DockerProvider extends BusyProvider {
|
||||
if (code != 0) {
|
||||
setBusyState(false);
|
||||
return DockerErr(
|
||||
type: DockerErrType.unknown, message: errs.join('\n').trim());
|
||||
type: DockerErrType.unknown,
|
||||
message: errs.join('\n').trim(),
|
||||
);
|
||||
}
|
||||
await refresh();
|
||||
setBusyState(false);
|
||||
|
||||
@@ -21,6 +21,8 @@ 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) {
|
||||
|
||||
@@ -447,8 +447,11 @@ class _DockerManagePageState extends State<DockerManagePage> {
|
||||
(item) {
|
||||
return ListTile(
|
||||
title: Text(item.name),
|
||||
subtitle: Text('${item.image} - ${item.status}',
|
||||
style: grey.copyWith(fontSize: 11)),
|
||||
isThreeLine: true,
|
||||
subtitle: Text(
|
||||
'${item.image}\n${item.status}',
|
||||
style: textSize13Grey,
|
||||
),
|
||||
trailing: _buildMoreBtn(item, _docker.isBusy),
|
||||
);
|
||||
},
|
||||
@@ -477,6 +480,10 @@ class _DockerManagePageState extends State<DockerManagePage> {
|
||||
value: DockerMenuItems.rm,
|
||||
child: DockerMenuItems.rm.build(_s),
|
||||
),
|
||||
PopupMenuItem<DropdownBtnItem>(
|
||||
value: DockerMenuItems.restart,
|
||||
child: DockerMenuItems.restart.build(_s),
|
||||
),
|
||||
],
|
||||
onSelected: (value) {
|
||||
if (busy) {
|
||||
|
||||
Reference in New Issue
Block a user