Fusion debug
This commit is contained in:
parent
6b6da966b6
commit
6991283dd4
File diff suppressed because one or more lines are too long
@ -105,8 +105,7 @@ class APIService<T extends SerializerDeserializer> {
|
|||||||
BuildContext? context, Options? options) async {
|
BuildContext? context, Options? options) async {
|
||||||
var err = "";
|
var err = "";
|
||||||
try {
|
try {
|
||||||
var type = localStorage.getItem('tokenType') ?? "bearer";
|
_dio.options.headers["Authorization"] = "Bearer ${localStorage.getItem('accessToken') ?? ""}";
|
||||||
_dio.options.headers["Authorization"] = "${type[0].toUpperCase() + type.substring(1)} ${localStorage.getItem('accessToken') ?? ""}";
|
|
||||||
_dio.interceptors.clear();
|
_dio.interceptors.clear();
|
||||||
var response = await _request(url, method, body, options);
|
var response = await _request(url, method, body, options);
|
||||||
if (response.statusCode != null && response.statusCode! < 400) {
|
if (response.statusCode != null && response.statusCode! < 400) {
|
||||||
@ -145,9 +144,8 @@ class APIService<T extends SerializerDeserializer> {
|
|||||||
var err = "";
|
var err = "";
|
||||||
if (url != "") {
|
if (url != "") {
|
||||||
try {
|
try {
|
||||||
var type = localStorage.getItem('tokenType') ?? "bearer";
|
|
||||||
_dio.options.headers["Authorization"] =
|
_dio.options.headers["Authorization"] =
|
||||||
"${type[0].toUpperCase() + type.substring(1)} ${localStorage.getItem('accessToken') ?? ""}";
|
"Bearer ${localStorage.getItem('accessToken') ?? ""}";
|
||||||
_dio.interceptors.clear();
|
_dio.interceptors.clear();
|
||||||
var response = await _request(url, method, body, null);
|
var response = await _request(url, method, body, null);
|
||||||
if (response.statusCode != null && response.statusCode! < 400) {
|
if (response.statusCode != null && response.statusCode! < 400) {
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import 'package:localstorage/localstorage.dart';
|
import 'package:localstorage/localstorage.dart';
|
||||||
import 'package:oc_front/core/conf/conf_reader.dart';
|
|
||||||
import 'package:oc_front/core/services/api_service.dart';
|
import 'package:oc_front/core/services/api_service.dart';
|
||||||
import 'package:oc_front/core/services/perms_service.dart';
|
import 'package:oc_front/core/services/perms_service.dart';
|
||||||
import 'package:oc_front/main.dart';
|
import 'package:oc_front/main.dart';
|
||||||
@ -9,7 +8,7 @@ class AuthService {
|
|||||||
static var isAuth = const bool.fromEnvironment('AUTH_MODE', defaultValue: false);
|
static var isAuth = const bool.fromEnvironment('AUTH_MODE', defaultValue: false);
|
||||||
static const _clientID = String.fromEnvironment('CLIENT_ID', defaultValue: 'test-client');
|
static const _clientID = String.fromEnvironment('CLIENT_ID', defaultValue: 'test-client');
|
||||||
static APIService<SimpleData> service = APIService(
|
static APIService<SimpleData> service = APIService(
|
||||||
baseURL: AppConfig().get('AUTH_HOST', defaultValue: 'http://localhost:8080/auth'),
|
baseURL: const String.fromEnvironment('AUTH_HOST', defaultValue: 'http://localhost:8080/auth'),
|
||||||
);
|
);
|
||||||
|
|
||||||
static Future<void> init() async {
|
static Future<void> init() async {
|
||||||
|
@ -1,53 +0,0 @@
|
|||||||
import 'package:flutter/widgets.dart';
|
|
||||||
import 'package:oc_front/core/services/api_service.dart';
|
|
||||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
|
|
||||||
import 'package:oc_front/models/response.dart';
|
|
||||||
import 'package:oc_front/models/workflow.dart';
|
|
||||||
|
|
||||||
class CheckService extends AbstractService<Check> {
|
|
||||||
@override
|
|
||||||
late final APIService<Check> service;
|
|
||||||
|
|
||||||
@override
|
|
||||||
String subPath = "/check/";
|
|
||||||
|
|
||||||
CheckService() {
|
|
||||||
service = APIService<Check>(
|
|
||||||
baseURL: super
|
|
||||||
.conf
|
|
||||||
.get('CHECK_HOST', defaultValue: 'http://localhost:8080/check'));
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<APIResponse<Check>> search(
|
|
||||||
BuildContext? context, List<String> words, Map<String, dynamic> params) {
|
|
||||||
return service.get("$subPath${words.join("/")}", true, context);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<APIResponse<RawData>> all(BuildContext? context) {
|
|
||||||
throw UnimplementedError();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<APIResponse<Check>> get(BuildContext? context, String id) {
|
|
||||||
throw UnimplementedError();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<APIResponse<Check>> post(BuildContext? context,
|
|
||||||
Map<String, dynamic> body, Map<String, String> params) {
|
|
||||||
throw UnimplementedError();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<APIResponse<Check>> put(BuildContext? context, String id,
|
|
||||||
Map<String, dynamic> body, Map<String, String> params) {
|
|
||||||
throw UnimplementedError();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<APIResponse<Check>> delete(
|
|
||||||
BuildContext? context, String id, Map<String, String> params) {
|
|
||||||
throw UnimplementedError();
|
|
||||||
}
|
|
||||||
}
|
|
@ -4,25 +4,25 @@ import 'package:oc_front/core/services/specialized_services/abstract_service.dar
|
|||||||
import 'package:oc_front/models/response.dart';
|
import 'package:oc_front/models/response.dart';
|
||||||
import 'package:oc_front/models/workflow.dart';
|
import 'package:oc_front/models/workflow.dart';
|
||||||
|
|
||||||
class SchedulerService extends AbstractService<WorkflowExecution> {
|
class SchedulerService extends AbstractService<WorkflowExecutions> {
|
||||||
@override APIService<WorkflowExecution> service = APIService<WorkflowExecution>(
|
@override APIService<WorkflowExecutions> service = APIService<WorkflowExecutions>(
|
||||||
baseURL: const String.fromEnvironment('SCHEDULER_HOST', defaultValue: 'http://localhost:8080/scheduler')
|
baseURL: const String.fromEnvironment('SCHEDULER_HOST', defaultValue: 'http://localhost:8080/scheduler')
|
||||||
);
|
);
|
||||||
@override String subPath = "/";
|
@override String subPath = "/";
|
||||||
|
|
||||||
Future<APIResponse<WorkflowExecution>> schedule(BuildContext? context, String id, Map<String, dynamic> body, Map<String, dynamic> params) {
|
Future<APIResponse<WorkflowExecutions>> schedule(BuildContext? context, String id, Map<String, dynamic> body, Map<String, dynamic> params) {
|
||||||
print("$subPath$id");
|
print(body);
|
||||||
return service.post("$subPath$id", body, context);
|
return service.post("$subPath$id", body, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override Future<APIResponse<WorkflowExecution>> search(BuildContext? context, List<String> words, Map<String, dynamic> params) {
|
@override Future<APIResponse<WorkflowExecutions>> search(BuildContext? context, List<String> words, Map<String, dynamic> params) {
|
||||||
return throw UnimplementedError();
|
return throw UnimplementedError();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override Future<APIResponse<WorkflowExecution>> post(BuildContext? context, Map<String, dynamic> body, Map<String, String> params) {
|
@override Future<APIResponse<WorkflowExecutions>> post(BuildContext? context, Map<String, dynamic> body, Map<String, String> params) {
|
||||||
return throw UnimplementedError();
|
return throw UnimplementedError();
|
||||||
}
|
}
|
||||||
@override Future<APIResponse<WorkflowExecution>> put(BuildContext? context, String id, Map<String, dynamic> body, Map<String, String> params) {
|
@override Future<APIResponse<WorkflowExecutions>> put(BuildContext? context, String id, Map<String, dynamic> body, Map<String, String> params) {
|
||||||
return throw UnimplementedError();
|
return throw UnimplementedError();
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,8 +1,11 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
import 'package:oc_front/core/services/api_service.dart';
|
import 'package:oc_front/core/services/api_service.dart';
|
||||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
|
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
|
||||||
|
import 'package:oc_front/models/response.dart';
|
||||||
import 'package:oc_front/models/workflow.dart';
|
import 'package:oc_front/models/workflow.dart';
|
||||||
|
|
||||||
class WorflowService extends AbstractService<Workflow> {
|
class WorflowService extends AbstractService<Workflow> {
|
||||||
|
late final APIService<Check> serviceCheck;
|
||||||
@override
|
@override
|
||||||
late final APIService<Workflow> service;
|
late final APIService<Workflow> service;
|
||||||
@override
|
@override
|
||||||
@ -12,5 +15,13 @@ class WorflowService extends AbstractService<Workflow> {
|
|||||||
service = APIService<Workflow>(
|
service = APIService<Workflow>(
|
||||||
baseURL: super.conf.get('WORKFLOW_HOST',
|
baseURL: super.conf.get('WORKFLOW_HOST',
|
||||||
defaultValue: 'http://localhost:8080/workflow'));
|
defaultValue: 'http://localhost:8080/workflow'));
|
||||||
|
serviceCheck = APIService<Check>(
|
||||||
|
baseURL: super.conf.get('WORKFLOW_HOST',
|
||||||
|
defaultValue: 'http://localhost:8080/workflow'));
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<APIResponse<Check>> check(
|
||||||
|
BuildContext? context, List<String> words, Map<String, dynamic> params) {
|
||||||
|
return serviceCheck.get("${subPath}check/${words.join("/")}", true, context);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ class MapPageWidgetState extends State<MapPageWidget> {
|
|||||||
return FutureBuilder(future: widget._service.all(context), builder: (BuildContext context, AsyncSnapshot snapshot) {
|
return FutureBuilder(future: widget._service.all(context), builder: (BuildContext context, AsyncSnapshot snapshot) {
|
||||||
Map<String, Map<AbstractItem, LatLng>> coordinates = {};
|
Map<String, Map<AbstractItem, LatLng>> coordinates = {};
|
||||||
List<Marker> markerCoordinates = [];
|
List<Marker> markerCoordinates = [];
|
||||||
if (snapshot.data != null&& snapshot.data!.data != null && snapshot.data!.data!.values.isNotEmpty) {
|
if (snapshot.data != null&& snapshot.data!.data != null) {
|
||||||
for (var element in snapshot.data!.data!.values) {
|
for (var element in snapshot.data!.data!.values) {
|
||||||
if (element["type"] == "storage") {
|
if (element["type"] == "storage") {
|
||||||
StorageItem resource = StorageItem().deserialize(element);
|
StorageItem resource = StorageItem().deserialize(element);
|
||||||
|
@ -18,7 +18,6 @@ import 'package:flutter_flow_chart/flutter_flow_chart.dart';
|
|||||||
import 'package:oc_front/widgets/inputs/shallow_text_input.dart';
|
import 'package:oc_front/widgets/inputs/shallow_text_input.dart';
|
||||||
import 'package:oc_front/core/models/shared_workspace_local.dart';
|
import 'package:oc_front/core/models/shared_workspace_local.dart';
|
||||||
import 'package:datetime_picker_formfield/datetime_picker_formfield.dart';
|
import 'package:datetime_picker_formfield/datetime_picker_formfield.dart';
|
||||||
import 'package:oc_front/core/services/specialized_services/check_service.dart';
|
|
||||||
import 'package:oc_front/core/services/specialized_services/workflow_service.dart';
|
import 'package:oc_front/core/services/specialized_services/workflow_service.dart';
|
||||||
|
|
||||||
// ignore: must_be_immutable
|
// ignore: must_be_immutable
|
||||||
@ -40,9 +39,8 @@ class SchedulerFormsWidget extends StatefulWidget {
|
|||||||
@override SchedulerFormsWidgetState createState() => SchedulerFormsWidgetState();
|
@override SchedulerFormsWidgetState createState() => SchedulerFormsWidgetState();
|
||||||
}
|
}
|
||||||
class SchedulerFormsWidgetState extends State<SchedulerFormsWidget> {
|
class SchedulerFormsWidgetState extends State<SchedulerFormsWidget> {
|
||||||
CheckService check = CheckService();
|
WorflowService check = WorflowService();
|
||||||
void save(List<GlobalKey<FormFieldState>> formKeys) {
|
void save(List<GlobalKey<FormFieldState>> formKeys) {
|
||||||
print("save");
|
|
||||||
widget.error = null;
|
widget.error = null;
|
||||||
widget.errorEndDate = null;
|
widget.errorEndDate = null;
|
||||||
widget.errorCron = null;
|
widget.errorCron = null;
|
||||||
@ -63,6 +61,7 @@ class SchedulerFormsWidgetState extends State<SchedulerFormsWidget> {
|
|||||||
dash.error = "You need to link each processing element to a compute element";
|
dash.error = "You need to link each processing element to a compute element";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
print("qdjqksdn ${dash.error}");
|
||||||
if (dash.error != null) {
|
if (dash.error != null) {
|
||||||
showAlertBanner( context, () {}, AlertAlertBannerChild(text: dash.error.toString()),// <-- Put any widget here you want!
|
showAlertBanner( context, () {}, AlertAlertBannerChild(text: dash.error.toString()),// <-- Put any widget here you want!
|
||||||
alertBannerLocation: AlertBannerLocation.bottom,);
|
alertBannerLocation: AlertBannerLocation.bottom,);
|
||||||
@ -72,6 +71,7 @@ class SchedulerFormsWidgetState extends State<SchedulerFormsWidget> {
|
|||||||
for (var k in formKeys) {
|
for (var k in formKeys) {
|
||||||
if (k.currentState != null) {
|
if (k.currentState != null) {
|
||||||
if (!k.currentState!.validate()) {
|
if (!k.currentState!.validate()) {
|
||||||
|
print("bwak");
|
||||||
return;
|
return;
|
||||||
} else { k.currentState!.save();}
|
} else { k.currentState!.save();}
|
||||||
}
|
}
|
||||||
@ -84,7 +84,14 @@ class SchedulerFormsWidgetState extends State<SchedulerFormsWidget> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Duration durationBefore = widget.schedule.start!.difference(DateTime.now().toUtc()) + Duration(seconds: 5);
|
Duration durationBefore = widget.schedule.start!.difference(DateTime.now().toUtc()) + Duration(seconds: 5);
|
||||||
widget._schedulerService.schedule(context, widget.item.id ?? "", widget.schedule.serialize(), {}).then((value) {
|
print("qdjqksdn ${widget.item.id}");
|
||||||
|
widget._schedulerService.schedule(context, widget.item.id ?? "", widget.schedule.serialize(), {}).catchError( (e) {
|
||||||
|
print("THERE2");
|
||||||
|
setState(() {
|
||||||
|
widget.error = e.toString();
|
||||||
|
});
|
||||||
|
}).then((value) {
|
||||||
|
print("THERE");
|
||||||
setState(() { widget.valid = true; });
|
setState(() { widget.valid = true; });
|
||||||
Future.delayed(durationBefore, () {
|
Future.delayed(durationBefore, () {
|
||||||
try {
|
try {
|
||||||
@ -110,7 +117,7 @@ class SchedulerFormsWidgetState extends State<SchedulerFormsWidget> {
|
|||||||
} else {
|
} else {
|
||||||
e = widget.schedule.end!.toUtc().toIso8601String();
|
e = widget.schedule.end!.toUtc().toIso8601String();
|
||||||
}
|
}
|
||||||
check.search(context, [widget.item.id ?? "", s.substring(0, 19), e.substring(0, 19)], {}).then(
|
check.check(context, [widget.item.id ?? "", s.substring(0, 19), e.substring(0, 19)], {}).then(
|
||||||
(v) {
|
(v) {
|
||||||
if (v.data == null) { return; }
|
if (v.data == null) { return; }
|
||||||
widget.booking = v.data!.isAvailable;
|
widget.booking = v.data!.isAvailable;
|
||||||
@ -494,8 +501,7 @@ class SchedulerFormsWidgetState extends State<SchedulerFormsWidget> {
|
|||||||
onTap: () { PermsService.getPerm(Perms.WORKFLOW_BOOKING) ? checkBooking(formKeys, null) : null;
|
onTap: () { PermsService.getPerm(Perms.WORKFLOW_BOOKING) ? checkBooking(formKeys, null) : null;
|
||||||
}, child: Container( margin: const EdgeInsets.only(bottom: 5, left: 10, right: 10),
|
}, child: Container( margin: const EdgeInsets.only(bottom: 5, left: 10, right: 10),
|
||||||
decoration: BoxDecoration(borderRadius: BorderRadius.circular(5),
|
decoration: BoxDecoration(borderRadius: BorderRadius.circular(5),
|
||||||
border: Border.all(color: widget.booking == null ? (
|
border: Border.all(color: widget.booking == null ? Colors.black : (
|
||||||
PermsService.getPerm(Perms.WORKFLOW_BOOKING) && PermsService.getPerm(Perms.WORKFLOW_EDIT) ? Colors.black : Colors.grey) : (
|
|
||||||
widget.booking == true ? Colors.green : redColor), width: 1)),
|
widget.booking == true ? Colors.green : redColor), width: 1)),
|
||||||
width: 200, height: 30,
|
width: 200, height: 30,
|
||||||
child: Icon( Icons.verified_outlined,
|
child: Icon( Icons.verified_outlined,
|
||||||
@ -507,7 +513,7 @@ class SchedulerFormsWidgetState extends State<SchedulerFormsWidget> {
|
|||||||
setState(() { save(formKeys); });
|
setState(() { save(formKeys); });
|
||||||
}, child: Container( margin: const EdgeInsets.only(top: 5, bottom: 10, left: 10, right: 10),
|
}, child: Container( margin: const EdgeInsets.only(top: 5, bottom: 10, left: 10, right: 10),
|
||||||
decoration: BoxDecoration(borderRadius: BorderRadius.circular(5),
|
decoration: BoxDecoration(borderRadius: BorderRadius.circular(5),
|
||||||
border: Border.all(color: dash.error != null ? Colors.red : ( PermsService.getPerm(Perms.WORKFLOW_BOOKING) ?(widget.valid ? Colors.green : Colors.black) : Colors.grey ))),
|
border: Border.all(color: dash.error != null ? Colors.red : (widget.valid ? Colors.green : Colors.black) )),
|
||||||
width: 200, height: 30,
|
width: 200, height: 30,
|
||||||
child: Icon(Icons.schedule_send, color: dash.error != null ? Colors.red : (widget.valid ? Colors.green : Colors.black)),
|
child: Icon(Icons.schedule_send, color: dash.error != null ? Colors.red : (widget.valid ? Colors.green : Colors.black)),
|
||||||
))
|
))
|
||||||
|
@ -313,12 +313,14 @@ class FlowChartState<T extends FlowData> extends State<FlowChart> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|
||||||
if (!widget.dashboard.isOpened && widget.onDashboardAlertOpened != null ) {
|
if (!widget.dashboard.isOpened && widget.onDashboardAlertOpened != null ) {
|
||||||
if (widget.dashboard.id != null) {
|
if (widget.dashboard.id != null) {
|
||||||
widget.dashboard.isOpened = true;
|
widget.dashboard.isOpened = true;
|
||||||
Future.delayed(Duration(milliseconds: 100), () => widget.dashboard.load!(widget.dashboard.id!) );
|
Future.delayed(const Duration(milliseconds: 100), () => widget.dashboard.load!(widget.dashboard.id!) );
|
||||||
} else {
|
} else {
|
||||||
Future.delayed(Duration(milliseconds: 100), () {
|
try {
|
||||||
|
Future.delayed(const Duration(milliseconds: 100), () {
|
||||||
if (!widget.dashboard.inDialog) {
|
if (!widget.dashboard.inDialog) {
|
||||||
widget.dashboard.inDialog = true;
|
widget.dashboard.inDialog = true;
|
||||||
showDialog(
|
showDialog(
|
||||||
@ -334,6 +336,11 @@ class FlowChartState<T extends FlowData> extends State<FlowChart> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} catch (e) {
|
||||||
|
widget.dashboard.id = null;
|
||||||
|
widget.dashboard.name = "";
|
||||||
|
widget.dashboard.isOpened = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
widget.dashboard.isOpened = true;
|
widget.dashboard.isOpened = true;
|
||||||
@ -816,9 +823,9 @@ class ChartWidgetState<T extends FlowData> extends State<ChartWidget> {
|
|||||||
for (int i = 0; i < widget.dashboard.elements.length; i++)
|
for (int i = 0; i < widget.dashboard.elements.length; i++)
|
||||||
ElementWidget<T>(
|
ElementWidget<T>(
|
||||||
key: UniqueKey(),
|
key: UniqueKey(),
|
||||||
bottomLeftBadge: widget.flowChart.widget.itemLeftBottomBadges != null ?
|
bottomLeftBadge: widget.flowChart.widget.itemLeftBottomBadges != null && widget.dashboard.elements[i].element != null ?
|
||||||
widget.flowChart.widget.itemLeftBottomBadges!(widget.dashboard.elements[i].element as T) : null,
|
widget.flowChart.widget.itemLeftBottomBadges!(widget.dashboard.elements[i].element as T) : null,
|
||||||
topRightBadge: widget.flowChart.widget.itemrightTopBadges != null ?
|
topRightBadge: widget.flowChart.widget.itemrightTopBadges != null && widget.dashboard.elements[i].element != null ?
|
||||||
widget.flowChart.widget.itemrightTopBadges!(widget.dashboard.elements[i].element as T) : null,
|
widget.flowChart.widget.itemrightTopBadges!(widget.dashboard.elements[i].element as T) : null,
|
||||||
dashboard: widget.dashboard,
|
dashboard: widget.dashboard,
|
||||||
element: widget.dashboard.elements.elementAt(i),
|
element: widget.dashboard.elements.elementAt(i),
|
||||||
|
@ -23,19 +23,19 @@ class FlowChartMenuState extends State<FlowChartMenu> {
|
|||||||
return Row( mainAxisAlignment: MainAxisAlignment.end, children : [ Container( // SHORTCUT
|
return Row( mainAxisAlignment: MainAxisAlignment.end, children : [ Container( // SHORTCUT
|
||||||
width: widget.width,
|
width: widget.width,
|
||||||
height: 50,
|
height: 50,
|
||||||
padding: EdgeInsets.only(left: 20),
|
padding: const EdgeInsets.only(left: 20),
|
||||||
color: widget.dashboard.dashColor,
|
color: widget.dashboard.dashColor,
|
||||||
child: Row( children : [ Expanded(flex: 2, child: Row( children: [
|
child: Row( children : [ Expanded(flex: 2, child: Row( children: [
|
||||||
widget.chart.widget.flowChart.widget.onDashboardAlertOpened == null ? Container() : Container(
|
widget.chart.widget.flowChart.widget.onDashboardAlertOpened == null ? Container() : Container(
|
||||||
decoration: BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
border: Border(right: BorderSide(color: Colors.white, width: 1))
|
border: Border(right: BorderSide(color: Colors.white, width: 1))
|
||||||
),
|
),
|
||||||
child: Row( children: [
|
child: Row( children: [
|
||||||
Tooltip( message: "open file", child:Container( child:
|
Tooltip( message: "open file", child: Padding( padding: const EdgeInsets.only(right: 15),
|
||||||
Padding( padding: EdgeInsets.only(right: 15),
|
|
||||||
child: InkWell( mouseCursor: SystemMouseCursors.click,
|
child: InkWell( mouseCursor: SystemMouseCursors.click,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
widget.dashboard.name = "graph_${DateTime.now().toString().replaceAll(" ", "_").substring(0, DateTime.now().toString().length - 7)}";
|
widget.dashboard.id = null;
|
||||||
|
widget.dashboard.name = "";
|
||||||
widget.dashboard.isOpened = true;
|
widget.dashboard.isOpened = true;
|
||||||
if (!widget.dashboard.inDialog) {
|
if (!widget.dashboard.inDialog) {
|
||||||
widget.dashboard.inDialog = true;
|
widget.dashboard.inDialog = true;
|
||||||
@ -52,7 +52,7 @@ class FlowChartMenuState extends State<FlowChartMenu> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
child: Icon(Icons.folder, color: Colors.white))))),
|
child: Icon(Icons.folder, color: Colors.white)))),
|
||||||
])),
|
])),
|
||||||
InkWell( mouseCursor: SystemMouseCursors.click, child: Container(
|
InkWell( mouseCursor: SystemMouseCursors.click, child: Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
|
Loading…
Reference in New Issue
Block a user