fix & opt.

- fix: ssh paste
- opt.: docker logs & shell
This commit is contained in:
lollipopkit
2023-05-27 18:58:38 +08:00
parent 4f45ce3f50
commit 02494651fc
9 changed files with 36 additions and 55 deletions

View File

@@ -3,7 +3,6 @@ import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:provider/provider.dart';
import 'package:toolbox/core/extension/navigator.dart';
import 'package:toolbox/core/route.dart';
import 'package:toolbox/core/utils/misc.dart';
import 'package:toolbox/view/page/ssh.dart';
import 'package:toolbox/view/widget/input_field.dart';
@@ -154,7 +153,7 @@ class _DockerManagePageState extends State<DockerManagePage> {
context.pop();
final result = await _docker.run(cmd);
if (result != null) {
showSnackBar(context, Text(getErrMsg(result) ?? _s.unknownError));
showSnackBar(context, Text(result.message ?? _s.unknownError));
}
},
child: Text(_s.run),
@@ -176,13 +175,6 @@ class _DockerManagePageState extends State<DockerManagePage> {
return 'docker run -itd --name $name $suffix';
}
String? getErrMsg(DockerErr err) {
switch (err.type) {
default:
return err.message;
}
}
void onSubmitted() {
if (_textController.text == '') {
showRoundDialog(
@@ -308,7 +300,7 @@ class _DockerManagePageState extends State<DockerManagePage> {
if (result != null) {
showSnackBar(
context,
Text(getErrMsg(result) ?? _s.unknownError),
Text(result.message ?? _s.unknownError),
);
}
},
@@ -354,24 +346,25 @@ class _DockerManagePageState extends State<DockerManagePage> {
}
Widget _buildEditHost() {
if (_docker.items!.isNotEmpty || _docker.images!.isNotEmpty) {
return placeholder;
final children = <Widget>[];
if (_docker.items!.isEmpty && _docker.images!.isEmpty) {
children.add(Padding(
padding: const EdgeInsets.fromLTRB(17, 17, 17, 0),
child: Text(
_s.dockerEmptyRunningItems,
textAlign: TextAlign.center,
),
));
}
return Padding(
padding: const EdgeInsets.fromLTRB(17, 17, 17, 0),
child: Column(
children: [
Text(
_s.dockerEmptyRunningItems,
textAlign: TextAlign.center,
),
TextButton(
onPressed: () => _showEditHostDialog(),
child: Text(_s.dockerEditHost),
)
],
children.add(
TextButton(
onPressed: _showEditHostDialog,
child: Text(_s.dockerEditHost),
),
);
return Column(
children: children,
);
}
Future<void> _showEditHostDialog() async {
@@ -483,6 +476,7 @@ class _DockerManagePageState extends State<DockerManagePage> {
case DockerMenuType.rm:
showRoundDialog(
context: context,
title: Text(_s.attention),
child: Text(_s.sureDelete(dItem.name)),
actions: [
TextButton(
@@ -505,19 +499,13 @@ class _DockerManagePageState extends State<DockerManagePage> {
_docker.restart(dItem.containerId);
break;
case DockerMenuType.logs:
final logs = await _docker.logs(dItem.containerId);
showRoundDialog(
context: context,
child: SingleChildScrollView(
child: Text(logs),
AppRoute(
SSHPage(
spi: widget.spi,
initCmd: 'docker logs ${dItem.containerId}',
),
actions: [
TextButton(
onPressed: () => copy2Clipboard(logs),
child: Text(_s.copy),
)
],
);
'Docker logs',
).go(context);
break;
case DockerMenuType.terminal:
AppRoute(

View File

@@ -288,6 +288,9 @@ class _SSHPageState extends State<SSHPage> {
),
);
}
if (children.isEmpty) {
return;
}
_menuController.show(
context: context,
contextMenuBuilder: (context) {
@@ -343,7 +346,7 @@ class _SSHPageState extends State<SSHPage> {
_listen(session.stderr);
if (widget.initCmd != null) {
_terminal.write(widget.initCmd!);
_terminal.textInput(widget.initCmd!);
_terminal.keyInput(TerminalKey.enter);
}