Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: builtin editor #503

Merged
merged 1 commit into from
Jul 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 3 additions & 11 deletions lib/data/model/sftp/req.dart
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
import 'dart:async';

import 'package:fl_lib/fl_lib.dart';
import 'package:server_box/data/res/store.dart';

import '../../../core/utils/server.dart';
import '../server/server_private_info.dart';
import 'worker.dart';
part of 'worker.dart';

class SftpReq {
final ServerPrivateInfo spi;
Expand Down Expand Up @@ -69,9 +62,8 @@ class SftpReqStatus {
int get hashCode => id ^ super.hashCode;

void dispose() {
// ignore: deprecated_member_use_from_same_package
worker.dispose();
completer?.complete();
worker._dispose();
completer?.complete(true);
}

void onNotify(dynamic event) {
Expand Down
16 changes: 6 additions & 10 deletions lib/data/model/sftp/worker.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@ import 'dart:typed_data';

import 'package:dartssh2/dartssh2.dart';
import 'package:easy_isolate/easy_isolate.dart';
import 'package:fl_lib/fl_lib.dart';
import 'package:server_box/core/utils/server.dart';
import 'package:server_box/data/model/server/server_private_info.dart';
import 'package:server_box/data/res/store.dart';

import '../../../core/utils/server.dart';
import 'req.dart';
part 'req.dart';

class SftpWorker {
final Function(Object event) onNotify;
Expand All @@ -20,14 +23,7 @@ class SftpWorker {
required this.req,
});

/// Use [@Deprecated] to prevent calling [SftpWorker.dispose] directly
///
/// Don't delete this method
@Deprecated(
"Use [SftpWorkerStatus.dispose] to dispose the worker, "
"instead of [SftpWorker.dispose]",
)
void dispose() {
void _dispose() {
worker.dispose();
}

Expand Down
3 changes: 1 addition & 2 deletions lib/data/provider/sftp.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import 'dart:async';

import 'package:flutter/material.dart';

import '../model/sftp/req.dart';
import 'package:server_box/data/model/sftp/worker.dart';

class SftpProvider extends ChangeNotifier {
final List<SftpReqStatus> _status = [];
Expand Down
2 changes: 2 additions & 0 deletions lib/data/res/github_id.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ abstract final class GithubIds {
'FrancXPT',
'Liloupar',
'dccif',
'mikropsoft',
};

static const participants = <GhId>{
Expand Down Expand Up @@ -95,6 +96,7 @@ abstract final class GithubIds {
'logce',
'h-lyf',
'88484396',
'honggeigei',
};
}

Expand Down
6 changes: 3 additions & 3 deletions lib/l10n/app_tr.arb
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@
"disk": "Disk",
"diskIgnorePath": "Disk için göz ardı edilen yol",
"displayCpuIndex": "CPU dizinini görüntüle",
"displayName": "Görünen ad",
"displayName": "Görünen ad",
"dl2Local": "{fileName} dosyasını yerel olarak indirmek istiyor musunuz?",
"doc": "Dokümantasyon",
"dockerEditHost": "DOCKER_HOST'u düzenle",
Expand Down Expand Up @@ -117,7 +117,7 @@
"fullScreen": "Tam ekran modu",
"fullScreenJitter": "Tam ekran titremesi",
"fullScreenJitterHelp": "Ekran yanıklarını önlemek için",
"fullScreenTip": "Cihaz yatay moda döndürüldüğünde tam ekran modu etkinleştirilsin mi? Bu seçenek yalnızca sunucu sekmesi için geçerlidir."
"fullScreenTip": "Cihaz yatay moda döndürüldüğünde tam ekran modu etkinleştirilsin mi? Bu seçenek yalnızca sunucu sekmesi için geçerlidir.",
"getPushTokenFailed": "Push token alınamıyor",
"gettingToken": "Token alınıyor...",
"goBackQ": "Geri dön?",
Expand Down Expand Up @@ -225,7 +225,7 @@
"primaryColorSeed": "Birincil renk tohumu",
"privateKey": "Özel Anahtar",
"process": "Süreç",
"pushToken": "Push token"
"pushToken": "Push token",
"pveIgnoreCertTip": "Etkinleştirilmesi önerilmez, güvenlik risklerine dikkat edin! PVE'nin varsayılan sertifikasını kullanıyorsanız, bu seçeneği etkinleştirmeniz gerekir.",
"pveLoginFailed": "Giriş başarısız. Linux PAM girişi için sunucu yapılandırmasındaki kullanıcı adı/şifre ile kimlik doğrulaması yapılamadı.",
"pveVersionLow": "Bu özellik şu anda test aşamasında ve sadece PVE 8+ üzerinde test edilmiştir. Lütfen dikkatli kullanın.",
Expand Down
32 changes: 7 additions & 25 deletions lib/view/page/server/edit.dart
Original file line number Diff line number Diff line change
Expand Up @@ -296,10 +296,7 @@ class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
final subtitle =
val.isEmpty ? null : Text(val.keys.join(','), style: UIs.textGrey);
return ListTile(
leading: const Padding(
padding: EdgeInsets.only(left: 10),
child: Icon(HeroIcons.variable),
),
leading: const Icon(HeroIcons.variable),
subtitle: subtitle,
title: Text(l10n.envVars),
trailing: const Icon(Icons.keyboard_arrow_right),
Expand Down Expand Up @@ -388,10 +385,7 @@ class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
),
),
ListTile(
leading: const Padding(
padding: EdgeInsets.only(left: 10),
child: Icon(MingCute.certificate_line),
),
leading: const Icon(MingCute.certificate_line),
title: Text('PVE ${l10n.ignoreCert}'),
subtitle: Text(l10n.pveIgnoreCertTip, style: UIs.text12Grey),
trailing: ListenableBuilder(
Expand All @@ -414,7 +408,7 @@ class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
_customCmds.listenVal(
(vals) {
return ListTile(
leading: const Icon(BoxIcons.bxs_file_json).paddingOnly(left: 10),
leading: const Icon(BoxIcons.bxs_file_json),
title: const Text('JSON'),
subtitle: vals.isEmpty
? null
Expand All @@ -432,10 +426,7 @@ class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
},
).cardx,
ListTile(
leading: const Padding(
padding: EdgeInsets.only(left: 10),
child: Icon(MingCute.doc_line),
),
leading: const Icon(MingCute.doc_line),
title: Text(l10n.doc),
trailing: const Icon(Icons.open_in_new, size: 17),
onTap: () => l10n.customCmdDocUrl.launch(),
Expand All @@ -448,10 +439,7 @@ class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
const Text('Wake On LAN', style: UIs.text13Grey),
UIs.height7,
ListTile(
leading: const Padding(
padding: EdgeInsets.only(left: 10),
child: Icon(BoxIcons.bxs_help_circle),
),
leading: const Icon(BoxIcons.bxs_help_circle),
title: Text(l10n.about),
subtitle: Text(l10n.wolTip, style: UIs.text12Grey),
).cardx,
Expand Down Expand Up @@ -513,19 +501,13 @@ class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
.toList();
children.add(ListTile(
title: Text(l10n.clear),
trailing: const Padding(
padding: EdgeInsets.only(right: 13),
child: Icon(Icons.clear),
),
trailing: const Icon(Icons.clear),
onTap: () => _jumpServer.value = null,
contentPadding: const EdgeInsets.symmetric(horizontal: 17),
));
return CardX(
child: ExpandTile(
leading: const Padding(
padding: EdgeInsets.only(left: 10),
child: Icon(Icons.map),
),
leading: const Icon(Icons.map),
initiallyExpanded: _jumpServer.value != null,
title: Text(l10n.jumpServer),
children: children,
Expand Down
6 changes: 5 additions & 1 deletion lib/view/page/setting/platform/ios.dart
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,12 @@ class _IOSSettingsPageState extends State<IOSSettingsPage> {
final result = await AppRoutes.kvEditor(data: urls).go(context);
if (result == null || result is! Map<String, String>) return;

await context.showLoadingDialog(fn: () async {
final suc = await context.showLoadingDialog(fn: () async {
await wc.updateApplicationContext({'urls': result});
return true;
});
if (suc == true) {
context.showSnackBar(l10n.success);
}
}
}
2 changes: 1 addition & 1 deletion lib/view/page/storage/local.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import 'package:fl_lib/fl_lib.dart';
import 'package:flutter/material.dart';
import 'package:server_box/core/extension/context/locale.dart';
import 'package:server_box/data/model/server/server_private_info.dart';
import 'package:server_box/data/model/sftp/req.dart';
import 'package:server_box/data/model/sftp/worker.dart';
import 'package:server_box/data/res/misc.dart';
import 'package:server_box/data/res/provider.dart';
import 'package:server_box/view/widget/omit_start_text.dart';
Expand Down
39 changes: 20 additions & 19 deletions lib/view/page/storage/sftp.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@ import 'package:server_box/core/utils/comparator.dart';
import 'package:server_box/data/model/server/server_private_info.dart';
import 'package:server_box/data/model/sftp/absolute_path.dart';
import 'package:server_box/data/model/sftp/browser_status.dart';
import 'package:server_box/data/model/sftp/req.dart';
import 'package:server_box/data/model/sftp/worker.dart';
import 'package:server_box/data/res/misc.dart';
import 'package:server_box/data/res/provider.dart';
import 'package:server_box/data/res/store.dart';
import 'package:server_box/view/widget/omit_start_text.dart';

import 'package:icons_plus/icons_plus.dart';
import 'package:server_box/view/widget/two_line_text.dart';
import 'package:server_box/view/widget/unix_perm.dart';

import 'package:icons_plus/icons_plus.dart';

class SftpPage extends StatefulWidget {
final ServerPrivateInfo spi;
final String? initPath;
Expand Down Expand Up @@ -401,16 +401,10 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {

final permStr = newPerm.perm;
if (ok == true && permStr != perm.perm) {
await context.showLoadingDialog(
fn: () async {
await _client!.run('chmod $permStr "${_getRemotePath(file)}"');
await _listDir();
},
onErr: (e, s) {
context.showErrDialog(e: e, s: s, operation: l10n.permission);
return false;
},
);
await context.showLoadingDialog(fn: () async {
await _client!.run('chmod $permStr "${_getRemotePath(file)}"');
await _listDir();
});
}
},
),
Expand Down Expand Up @@ -758,15 +752,22 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
context.showRoundDialog(
title: l10n.error,
child: Text('Unsupport file: ${name.filename}'),
actions: [
TextButton(
onPressed: () => context.pop(),
child: Text(l10n.ok),
),
],
actions: Btns.oks(onTap: () => context.pop()),
);
return;
}

final confirm = await context.showRoundDialog(
title: l10n.attention,
child: SimpleMarkdown(data: '```sh\n$cmd\n```'),
actions: Btns.okCancels(
onTapOk: () => context.pop(true),
onTapCancel: () => context.pop(false),
red: true,
),
);
if (confirm != true) return;

final suc = await context.showLoadingDialog(
fn: () => _client?.run(cmd) ?? Future.value(false),
);
Expand Down
5 changes: 2 additions & 3 deletions lib/view/page/storage/sftp_mission.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:server_box/core/extension/context/locale.dart';
import 'package:server_box/core/route.dart';
import 'package:server_box/data/model/sftp/worker.dart';
import 'package:server_box/data/provider/sftp.dart';
import 'package:server_box/data/res/provider.dart';

import '../../../data/model/sftp/req.dart';
import '../../../data/provider/sftp.dart';

class SftpMissionPage extends StatefulWidget {
const SftpMissionPage({super.key});

Expand Down
4 changes: 2 additions & 2 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -385,8 +385,8 @@ packages:
dependency: "direct main"
description:
path: "."
ref: "v1.0.89"
resolved-ref: "2ea7a87e7f4c1bd68902557799a4e9406e559dcf"
ref: "v1.0.90"
resolved-ref: "9f17bfce9f6cc9e071c40648bcac8d94e2dee919"
url: "https://github.com/lppcg/fl_lib"
source: git
version: "0.0.1"
Expand Down
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ dependencies:
fl_lib:
git:
url: https://github.com/lppcg/fl_lib
ref: v1.0.89
ref: v1.0.90

dependency_overrides:
# dartssh2:
Expand Down