#40 new: docker container restart

This commit is contained in:
lollipopkit
2023-05-16 16:45:46 +08:00
parent 2161596efc
commit 82ed2e70dc
4 changed files with 17 additions and 15 deletions

View File

@@ -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)

View File

@@ -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);

View File

@@ -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) {

View File

@@ -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) {