missing files
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_box_transform/flutter_box_transform.dart';
|
||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
|
||||
import 'package:oc_front/core/services/specialized_services/booking_service.dart';
|
||||
import 'package:oc_front/main.dart';
|
||||
import 'package:oc_front/models/workflow.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:oc_front/widgets/logs.dart';
|
||||
import 'package:oc_front/models/workflow.dart';
|
||||
import 'package:flutter_spinkit/flutter_spinkit.dart';
|
||||
import 'package:flutter_box_transform/flutter_box_transform.dart';
|
||||
import 'package:oc_front/widgets/lib/tranformablebox.dart' as fork;
|
||||
import 'package:oc_front/widgets/sheduler_items/scheduler_calendar.dart';
|
||||
import 'package:oc_front/widgets/sheduler_items/scheduler_item.dart';
|
||||
import 'package:oc_front/widgets/sheduler_items/scheduler_calendar.dart';
|
||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
|
||||
import 'package:oc_front/core/services/specialized_services/workflow_execution_service.dart';
|
||||
|
||||
double menuSize = 300;
|
||||
// ignore: must_be_immutable
|
||||
@@ -19,8 +19,8 @@ class ScheduleWidget extends StatefulWidget {
|
||||
bool loading = true;
|
||||
bool isList = true;
|
||||
bool isBox = true;
|
||||
AbstractService<WorkflowExecutions> service;
|
||||
ScheduleWidget ({ super.key, required this.start, required this.end, required this.service,
|
||||
AbstractService<WorkflowExecutions> service = WorkflowExecutionService();
|
||||
ScheduleWidget ({ super.key, required this.start, required this.end,
|
||||
this.isBox =true, this.isList = true, this.loading = false});
|
||||
@override ScheduleWidgetState createState() => ScheduleWidgetState();
|
||||
}
|
||||
@@ -43,19 +43,16 @@ class ScheduleWidgetState extends State<ScheduleWidget> {
|
||||
"${widget.start.year}-${widget.start.month > 9 ? widget.start.month : "0${widget.start.month}"}-${widget.start.day > 9 ? widget.start.day : "0${widget.start.day}"}",
|
||||
"${widget.end.year}-${widget.end.month > 9 ? widget.end.month : "0${widget.end.month}"}-${widget.end.day > 9 ? widget.end.day : "0${widget.end.day}"}"], {}),
|
||||
builder: (ctx, as) {
|
||||
Future.delayed(const Duration(minutes: 1), () {
|
||||
setState(() {});
|
||||
});
|
||||
Map<String, List<WorkflowExecution>> data = {};
|
||||
if (as.hasData && as.data!.data != null) {
|
||||
for (var element in as.data!.data!.executions) {
|
||||
if (element.executionData == null) { continue; }
|
||||
DateTime dateTime = DateTime.parse(element.executionData!);
|
||||
if (element.startDate == null) { continue; }
|
||||
DateTime dateTime = DateTime.parse(element.startDate!);
|
||||
DateTime date = DateTime(dateTime.year, dateTime.month, dateTime.day);
|
||||
var str = "${date.toIso8601String()}Z";
|
||||
if (data[str] == null) { data[str] = []; }
|
||||
data[str]!.add(element);
|
||||
data[str]!.sort((a, b) => DateTime.parse(a.executionData!).compareTo(DateTime.parse(b.executionData!)));
|
||||
data[str]!.sort((a, b) => DateTime.parse(a.startDate!).compareTo(DateTime.parse(b.startDate!)));
|
||||
}
|
||||
}
|
||||
bool isInfo = getMainWidth(context) <= 600 && selected != null && widget.isBox;
|
||||
@@ -63,12 +60,12 @@ class ScheduleWidgetState extends State<ScheduleWidget> {
|
||||
List<Widget> children = [];
|
||||
if (selected != null) {
|
||||
for (var wf in data[selected!] ?? (<WorkflowExecution>[])) {
|
||||
DateTime d2 = DateTime.parse(wf.executionData!).toLocal();
|
||||
DateTime d2 = DateTime.parse(wf.startDate!).toLocal();
|
||||
children.add( InkWell(
|
||||
onTap: () => setState(() { selectedReal = wf.executionData; }),
|
||||
onTap: () => setState(() { selectedReal = wf.startDate; }),
|
||||
child: Container( margin: const EdgeInsets.all(10),
|
||||
decoration: BoxDecoration(
|
||||
border: Border.all(color: selectedReal != null && selectedReal == wf.executionData ? lightColor : Colors.transparent, width: 2),
|
||||
border: Border.all(color: selectedReal != null && selectedReal == wf.startDate ? lightColor : Colors.transparent, width: 2),
|
||||
borderRadius: BorderRadius.circular(4), color: Colors.white
|
||||
),
|
||||
child: Container(
|
||||
@@ -96,13 +93,12 @@ class ScheduleWidgetState extends State<ScheduleWidget> {
|
||||
))
|
||||
));
|
||||
}
|
||||
|
||||
}
|
||||
String? selectedID;
|
||||
WorkflowExecution? sel;
|
||||
if (selectedReal != null) {
|
||||
try {
|
||||
sel = data[selected!]!.firstWhere((element) => element.executionData == selectedReal);
|
||||
sel = data[selected!]!.firstWhere((element) => element.startDate == selectedReal);
|
||||
selectedID = sel.id;
|
||||
} catch(e) { /* */ }
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ class SchedulerCalendarWidgetState extends State<SchedulerCalendarWidget> {
|
||||
}
|
||||
children.add(InkWell( onTap: () => widget.parent!.setState(() {
|
||||
selected = day.toIso8601String();
|
||||
selectedReal = ev.executionData;
|
||||
selectedReal = ev.startDate;
|
||||
if (selectedReal == null) {
|
||||
widget.parent!.widget.isDayPlanner = true;
|
||||
}
|
||||
@@ -158,9 +158,9 @@ class SchedulerCalendarWidgetState extends State<SchedulerCalendarWidget> {
|
||||
shouldFillViewport: true,
|
||||
eventLoader: (day) {
|
||||
return widget.data[day.toIso8601String()] != null ? widget.data[day.toIso8601String()]!.map((e) {
|
||||
DateTime dateTime = DateTime.parse(e.executionData!);
|
||||
DateTime dateTime = DateTime.parse(e.startDate!);
|
||||
return Event("[${dateTime.hour > 9 ? dateTime.hour : "0${dateTime.hour}"}:${dateTime.minute > 9 ? dateTime.minute : "0${dateTime.minute}"}:${dateTime.second > 9 ? dateTime.second : "0${dateTime.second}"}] ${e.name}",
|
||||
colors[(e.status ?? 1) - 1], e.executionData );
|
||||
colors[(e.status ?? 1) - 1], e.startDate );
|
||||
}).toList() : [];
|
||||
},
|
||||
));
|
||||
@@ -169,10 +169,10 @@ class SchedulerCalendarWidgetState extends State<SchedulerCalendarWidget> {
|
||||
|
||||
class Event {
|
||||
final String title;
|
||||
String? executionData;
|
||||
String? startDate;
|
||||
Color color;
|
||||
|
||||
Event(this.title, this.color, this.executionData);
|
||||
Event(this.title, this.color, this.startDate);
|
||||
|
||||
@override
|
||||
String toString() => title;
|
||||
|
||||
@@ -26,23 +26,23 @@ class SchedulerItemWidgetState extends State<SchedulerItemWidget> {
|
||||
for (var element in widget.data.keys.toList()..sort((a, b) => DateTime.parse(a).compareTo(DateTime.parse(b)))) {
|
||||
List<Widget> widgets = [];
|
||||
for (var ev in widget.data[element] ?? ([] as List<WorkflowExecution>)) {
|
||||
widget.keys[ev.executionData!] = GlobalKey();
|
||||
var d2 = DateTime.parse(ev.executionData!).toLocal();
|
||||
widget.keys[ev.startDate!] = GlobalKey();
|
||||
var d2 = DateTime.parse(ev.startDate!).toLocal();
|
||||
DateTime? d3;
|
||||
try { d3 = DateTime.parse(ev.endDate!).toLocal();
|
||||
} catch (e) { /* */ }
|
||||
widgets.add(InkWell(
|
||||
onTap: () => widget.parent?.setState(() {
|
||||
selected = selected != element || ev.executionData != selectedReal ? element : null;
|
||||
selectedReal = selected == null ? null : ev.executionData;
|
||||
selected = selected != element || ev.startDate != selectedReal ? element : null;
|
||||
selectedReal = selected == null ? null : ev.startDate;
|
||||
if (selectedReal == null) {
|
||||
widget.parent!.widget.isDayPlanner = true;
|
||||
}
|
||||
}),
|
||||
child: Container( key: widget.keys[ev.executionData!],
|
||||
child: Container( key: widget.keys[ev.startDate!],
|
||||
padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 50),
|
||||
decoration: BoxDecoration(
|
||||
border: selectedReal == ev.executionData ?
|
||||
border: selectedReal == ev.startDate ?
|
||||
Border.all(color: lightColor, width: 2) : Border(top: BorderSide(color: midColor)),
|
||||
),
|
||||
child: Row(children: [
|
||||
@@ -59,7 +59,7 @@ class SchedulerItemWidgetState extends State<SchedulerItemWidget> {
|
||||
SizedBox( width: (widget.width - 330) / 2,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(left: 20),
|
||||
child: Text(ev.name?.toUpperCase() ?? "", overflow: TextOverflow.ellipsis,
|
||||
child: Text("${ev.name?.toUpperCase().split("EXECUTION")[0].replaceAll("_", "") ?? ""} EXECUTION", overflow: TextOverflow.ellipsis,
|
||||
style: const TextStyle(color: Colors.black, fontWeight: FontWeight.w500)),
|
||||
)),
|
||||
SizedBox( width: (widget.width - 340) / 2,
|
||||
|
||||
Reference in New Issue
Block a user