Skip to content

Commit

Permalink
Add code list page (#30)
Browse files Browse the repository at this point in the history
  • Loading branch information
lovehzj committed Jan 13, 2022
1 parent d271d55 commit e627725
Show file tree
Hide file tree
Showing 20 changed files with 402 additions and 1 deletion.
2 changes: 2 additions & 0 deletions lib/generated/intl/messages_en.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ class MessageLookup extends MessageLookupByLibrary {
"byte": MessageLookupByLibrary.simpleMessage("byte"),
"cancel": MessageLookupByLibrary.simpleMessage("Cancel"),
"clearBacklog": MessageLookupByLibrary.simpleMessage("Clear Backlog"),
"codeQuery": MessageLookupByLibrary.simpleMessage("code query"),
"confirm": MessageLookupByLibrary.simpleMessage("Confirm"),
"confirmClearBacklog": MessageLookupByLibrary.simpleMessage("ConfirmClear?"),
"confirmDeleteQuestion": MessageLookupByLibrary.simpleMessage("ConfirmDelete?"),
Expand All @@ -40,6 +41,7 @@ class MessageLookup extends MessageLookupByLibrary {
"deleteTopic": MessageLookupByLibrary.simpleMessage("Delete Topic"),
"detail": MessageLookupByLibrary.simpleMessage("detail"),
"email": MessageLookupByLibrary.simpleMessage("email"),
"execute": MessageLookupByLibrary.simpleMessage("execute"),
"isLeader": MessageLookupByLibrary.simpleMessage("Is Leader"),
"languageSettings": MessageLookupByLibrary.simpleMessage("Language Settings"),
"name": MessageLookupByLibrary.simpleMessage("name"),
Expand Down
2 changes: 2 additions & 0 deletions lib/generated/intl/messages_zh.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ class MessageLookup extends MessageLookupByLibrary {
"byte": MessageLookupByLibrary.simpleMessage("比特"),
"cancel": MessageLookupByLibrary.simpleMessage("取消"),
"clearBacklog": MessageLookupByLibrary.simpleMessage("清理积压"),
"codeQuery": MessageLookupByLibrary.simpleMessage("code 查询"),
"confirm": MessageLookupByLibrary.simpleMessage("确认"),
"confirmClearBacklog": MessageLookupByLibrary.simpleMessage("确认清理积压吗?"),
"confirmDeleteQuestion": MessageLookupByLibrary.simpleMessage("确认删除吗?"),
Expand All @@ -40,6 +41,7 @@ class MessageLookup extends MessageLookupByLibrary {
"deleteTopic": MessageLookupByLibrary.simpleMessage("删除 Topic"),
"detail": MessageLookupByLibrary.simpleMessage("详细信息"),
"email": MessageLookupByLibrary.simpleMessage("邮箱"),
"execute": MessageLookupByLibrary.simpleMessage("执行"),
"isLeader": MessageLookupByLibrary.simpleMessage("是否是主节点"),
"languageSettings": MessageLookupByLibrary.simpleMessage("语言设置"),
"name": MessageLookupByLibrary.simpleMessage("名称"),
Expand Down
20 changes: 20 additions & 0 deletions lib/generated/l10n.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions lib/l10n/intl_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"byte": "byte",
"cancel": "Cancel",
"clearBacklog": "Clear Backlog",
"codeQuery": "code query",
"confirm": "Confirm",
"confirmClearBacklog": "ConfirmClear?",
"confirmDeleteQuestion": "ConfirmDelete?",
Expand All @@ -19,6 +20,7 @@
"deleteTopic": "Delete Topic",
"detail": "detail",
"email": "email",
"execute": "execute",
"isLeader": "Is Leader",
"languageSettings": "Language Settings",
"name": "name",
Expand Down
2 changes: 2 additions & 0 deletions lib/l10n/intl_zh.arb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"byte": "比特",
"cancel": "取消",
"clearBacklog": "清理积压",
"codeQuery": "code 查询",
"confirm": "确认",
"confirmClearBacklog": "确认清理积压吗?",
"confirmDeleteQuestion": "确认删除吗?",
Expand All @@ -19,6 +20,7 @@
"deleteTopic": "删除 Topic",
"detail": "详细信息",
"email": "邮箱",
"execute": "执行",
"isLeader": "是否是主节点",
"languageSettings": "语言设置",
"name": "名称",
Expand Down
11 changes: 11 additions & 0 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'package:paas_dashboard_flutter/generated/l10n.dart';
import 'package:paas_dashboard_flutter/route/page_route_const.dart';
import 'package:paas_dashboard_flutter/route/route_gen.dart';
import 'package:paas_dashboard_flutter/ui/bk/bk_page.dart';
import 'package:paas_dashboard_flutter/ui/code/code_list_page.dart';
import 'package:paas_dashboard_flutter/ui/general/author_screen.dart';
import 'package:paas_dashboard_flutter/ui/general/settings_screen.dart';
import 'package:paas_dashboard_flutter/ui/home/home_page.dart';
Expand All @@ -13,6 +14,8 @@ import 'package:paas_dashboard_flutter/ui/mysql/mysql_page.dart';
import 'package:paas_dashboard_flutter/ui/pulsar/pulsar_page.dart';
import 'package:paas_dashboard_flutter/ui/sql/sql_list_page.dart';
import 'package:paas_dashboard_flutter/vm/bk/bk_instance_list_view_model.dart';
import 'package:paas_dashboard_flutter/vm/code/code_list_view_model.dart';
import 'package:paas_dashboard_flutter/vm/code/code_view_model.dart';
import 'package:paas_dashboard_flutter/vm/general/settings_view_model.dart';
import 'package:paas_dashboard_flutter/vm/kubernetes/k8s_instance_list_view_model.dart';
import 'package:paas_dashboard_flutter/vm/mongo/mongo_database_view_model.dart';
Expand Down Expand Up @@ -68,6 +71,10 @@ class MyApp extends StatelessWidget {
create: (context) => BkInstanceListViewModel(),
child: BkPage(),
),
PageRouteConst.Code: (context) => ChangeNotifierProvider(
create: (context) => CodeListViewModel(),
child: CodeListPage(),
),
PageRouteConst.Kubernetes: (context) => ChangeNotifierProvider(
create: (context) => K8sInstanceListViewModel(),
child: K8sPage(),
Expand All @@ -94,6 +101,10 @@ class MyApp extends StatelessWidget {
),
},
onGenerateRoute: (settings) {
if (settings.name == PageRouteConst.CodeExecute) {
final args = settings.arguments as CodeViewModel;
return RouteGen.codeExecute(args);
}
if (settings.name == PageRouteConst.MongoInstance) {
final args = settings.arguments as MongoInstanceViewModel;
return RouteGen.mongoInstance(args);
Expand Down
13 changes: 13 additions & 0 deletions lib/persistent/persistent.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'package:paas_dashboard_flutter/persistent/persistent_api.dart';
import 'package:paas_dashboard_flutter/persistent/persistent_db.dart';
import 'package:paas_dashboard_flutter/persistent/persistent_memory.dart';
import 'package:paas_dashboard_flutter/persistent/po/bk_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/code_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/k8s_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/mongo_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/mysql_instance_po.dart';
Expand Down Expand Up @@ -121,6 +122,18 @@ class Persistent {
return (await getApi()).sqlList();
}

static Future<void> saveCode(String name, String sql) async {
return (await getApi()).saveCode(name, sql);
}

static Future<void> deleteCode(int id) async {
return (await getApi()).deleteCode(id);
}

static Future<List<CodePo>> codeList() async {
return (await getApi()).codeList();
}

static bool supportDb() {
return !kIsWeb;
}
Expand Down
9 changes: 9 additions & 0 deletions lib/persistent/persistent_api.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:paas_dashboard_flutter/module/ssh/ssh_step.dart';
import 'package:paas_dashboard_flutter/persistent/po/bk_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/code_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/k8s_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/mongo_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/mysql_instance_po.dart';
Expand Down Expand Up @@ -63,4 +64,12 @@ abstract class PersistentApi {
Future<List<SqlPo>> sqlList();

Future<SqlPo?> sqlInstance(String name);

Future<void> saveCode(String name, String code);

Future<void> deleteCode(int id);

Future<List<CodePo>> codeList();

Future<CodePo?> codeInstance(String name);
}
38 changes: 38 additions & 0 deletions lib/persistent/persistent_db.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import 'package:paas_dashboard_flutter/module/ssh/ssh_step.dart';
import 'package:paas_dashboard_flutter/module/zk/const.dart';
import 'package:paas_dashboard_flutter/persistent/persistent_api.dart';
import 'package:paas_dashboard_flutter/persistent/po/bk_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/code_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/k8s_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/mongo_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/mysql_instance_po.dart';
Expand Down Expand Up @@ -98,6 +99,9 @@ class PersistentDb implements PersistentApi {
await db.execute(
'CREATE TABLE sql_list(id INTEGER PRIMARY KEY, name TEXT, sql TEXT)',
);
await db.execute(
'CREATE TABLE code_list(id INTEGER PRIMARY KEY, name TEXT, code TEXT)',
);
}

@override
Expand Down Expand Up @@ -337,4 +341,38 @@ class PersistentDb implements PersistentApi {
var current = maps[0];
return SqlPo(current['id'], current['name'], current['sql']);
}

@override
Future<List<CodePo>> codeList() async {
var aux = await getInstance();
final List<Map<String, dynamic>> maps = await aux.database.query('code_list');
return List.generate(maps.length, (i) {
var aux = maps[i];
return CodePo(aux['id'], aux['name'], aux['code']);
});
}

@override
Future<void> deleteCode(int id) async {
var aux = await getInstance();
aux.database.delete('code_list', where: 'id = ?', whereArgs: [id]);
}

@override
Future<void> saveCode(String name, String code) async {
var aux = await getInstance();
var list = [name, code];
aux.database.execute('INSERT INTO code_list(name, code) VALUES (?, ?)', list);
}

@override
Future<CodePo?> codeInstance(String name) async {
var aux = await getInstance();
final List<Map<String, dynamic>> maps = await aux.database.query('code_list', where: "name = ?", whereArgs: [name]);
if (maps.length == 0) {
return null;
}
var current = maps[0];
return CodePo(current['id'], current['name'], current['code']);
}
}
25 changes: 25 additions & 0 deletions lib/persistent/persistent_memory.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import 'package:paas_dashboard_flutter/module/ssh/ssh_step.dart';
import 'package:paas_dashboard_flutter/module/zk/const.dart';
import 'package:paas_dashboard_flutter/persistent/persistent_api.dart';
import 'package:paas_dashboard_flutter/persistent/po/bk_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/code_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/k8s_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/mongo_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/mysql_instance_po.dart';
Expand Down Expand Up @@ -193,4 +194,28 @@ class PersistentMemory implements PersistentApi {
// TODO: implement sqlInstance
throw UnimplementedError();
}

@override
Future<List<CodePo>> codeList() {
// TODO: implement codeList
throw UnimplementedError();
}

@override
Future<void> deleteCode(int id) {
// TODO: implement deleteCode
throw UnimplementedError();
}

@override
Future<void> saveCode(String name, String code) {
// TODO: implement saveCode
throw UnimplementedError();
}

@override
Future<CodePo?> codeInstance(String name) {
// TODO: implement codeInstance
throw UnimplementedError();
}
}
19 changes: 19 additions & 0 deletions lib/persistent/po/code_instance_po.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
class CodePo {
final int id;
final String name;
final String code;

CodePo(this.id, this.name, this.code);

CodePo deepCopy() {
return new CodePo(id, name, code);
}

Map<String, dynamic> toMap() {
return {
'id': id,
'name': name,
'code': code,
};
}
}
2 changes: 2 additions & 0 deletions lib/route/page_route_const.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ class PageRouteConst {
static const String Root = '/';
static const String Author = '/author';
static const String Bookkeeper = '/bookkeeper';
static const String Code = '/code';
static const String CodeExecute = '/code/execute';
static const String Kubernetes = '/kubernetes';
static const String Mongo = '/mongo';
static const String MongoInstance = '/mongo/instance';
Expand Down
11 changes: 11 additions & 0 deletions lib/route/route_gen.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:paas_dashboard_flutter/ui/code/screen/code_execute_screen.dart';
import 'package:paas_dashboard_flutter/ui/mongo/mongo_instance.dart';
import 'package:paas_dashboard_flutter/ui/mongo/screen/mongo_database.dart';
import 'package:paas_dashboard_flutter/ui/pulsar/pulsar_instance.dart';
Expand All @@ -9,6 +10,7 @@ import 'package:paas_dashboard_flutter/ui/pulsar/screen/pulsar_source.dart';
import 'package:paas_dashboard_flutter/ui/pulsar/screen/pulsar_tenant.dart';
import 'package:paas_dashboard_flutter/ui/pulsar/screen/pulsar_topic.dart';
import 'package:paas_dashboard_flutter/ui/sql/screen/sql_execute_screen.dart';
import 'package:paas_dashboard_flutter/vm/code/code_view_model.dart';
import 'package:paas_dashboard_flutter/vm/mongo/mongo_database_view_model.dart';
import 'package:paas_dashboard_flutter/vm/mongo/mongo_instance_view_model.dart';
import 'package:paas_dashboard_flutter/vm/pulsar/pulsar_instance_view_model.dart';
Expand All @@ -22,6 +24,15 @@ import 'package:paas_dashboard_flutter/vm/sql/sql_view_model.dart';
import 'package:provider/provider.dart';

class RouteGen {
static Route codeExecute(CodeViewModel viewModel) {
// deep copy view model
return MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => viewModel,
child: CodeExecuteScreen(),
));
}

static Route mongoInstance(MongoInstanceViewModel viewModel) {
// deep copy view model
return MaterialPageRoute(
Expand Down
Loading

0 comments on commit e627725

Please sign in to comment.