This commit is contained in:
mr
2025-02-05 16:04:57 +01:00
parent e1968e14b0
commit 058633742e
3 changed files with 38 additions and 16 deletions

View File

@@ -2,7 +2,6 @@ import 'package:oc_front/main.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_item.dart';
@@ -19,6 +18,7 @@ class ScheduleWidget extends StatefulWidget {
bool loading = true;
bool isList = true;
bool isBox = true;
String? selectedID;
AbstractService<WorkflowExecutions> service = WorkflowExecutionService();
ScheduleWidget ({ super.key, required this.start, required this.end,
this.isBox =true, this.isList = true, this.loading = false});
@@ -62,7 +62,9 @@ class ScheduleWidgetState extends State<ScheduleWidget> {
for (var wf in data[selected!] ?? (<WorkflowExecution>[])) {
DateTime d2 = DateTime.parse(wf.startDate!).toLocal();
children.add( InkWell(
onTap: () => setState(() { selectedReal = wf.startDate; }),
onTap: () => setState(() {
selectedReal = wf.startDate;
}),
child: Container( margin: const EdgeInsets.all(10),
decoration: BoxDecoration(
border: Border.all(color: selectedReal != null && selectedReal == wf.startDate ? lightColor : Colors.transparent, width: 2),
@@ -94,12 +96,12 @@ class ScheduleWidgetState extends State<ScheduleWidget> {
));
}
}
String? selectedID;
WorkflowExecution? sel;
if (selectedReal != null) {
try {
sel = data[selected!]!.firstWhere((element) => element.startDate == selectedReal);
selectedID = sel.id;
widget.selectedID = sel.id;
} catch(e) { /* */ }
}
menuSize = isInfo ? getMainWidth(context) : (menuSize > getMainWidth(context) / 2 ? getMainWidth(context) / 2 : menuSize);
@@ -129,7 +131,9 @@ class ScheduleWidgetState extends State<ScheduleWidget> {
child: Column(
children: [
Row( children: [
InkWell( onTap: () => setState(() { widget.isDayPlanner = true; }),
InkWell( onTap: () => setState(() {
widget.isDayPlanner = true;
}),
child: Tooltip( message: "day planning", child:
Container( height: 50, width: (isInfo ? getMainWidth(context) : (selected != null ? menuSize : 0)) / (selectedReal != null ? 2 : 1 ),
alignment: Alignment.center,
@@ -139,7 +143,10 @@ class ScheduleWidgetState extends State<ScheduleWidget> {
child: Icon(Icons.calendar_today_outlined, color: widget.isDayPlanner ? Colors.white : Colors.grey),
)
)),
InkWell( onTap: () => setState(() { widget.isDayPlanner = false; }),
InkWell( onTap: () => setState(() {
widget.isDayPlanner = false;
}),
child: Tooltip( message: "monitor task", child:
Container( height: 50, width: selectedReal == null ? 0 : (
(isInfo ? getMainWidth(context) : (selected != null ? menuSize : 0)) / 2),
@@ -158,8 +165,8 @@ class ScheduleWidgetState extends State<ScheduleWidget> {
SingleChildScrollView( child: Column(
mainAxisAlignment: children.isEmpty || widget.loading ? MainAxisAlignment.center : MainAxisAlignment.start,
children: [
...( widget.isDayPlanner ? children : ( selectedID != null ? [
widget.loading ? const SpinKitCircle(color: Colors.white,) : LogsWidget(exec: sel, search: search, level: level)
...( widget.isDayPlanner ? children : ( widget.selectedID != null ? [
LogsWidget(exec: sel, search: search, level: level)
] : [])),
children.isEmpty ? Container( height: 100, alignment: Alignment.center, child: const Text("No event found", style: TextStyle(color: Colors.grey, fontSize: 20))) : Container()
]),

View File

@@ -1,6 +1,4 @@
import 'package:flutter/material.dart';
import 'package:flutter_box_transform/flutter_box_transform.dart';
import 'package:oc_front/core/sections/header/header.dart';
import 'package:oc_front/main.dart';
import 'package:oc_front/models/workflow.dart';
import 'package:oc_front/widgets/sheduler_items/schedule.dart';
@@ -34,7 +32,9 @@ class SchedulerItemWidgetState extends State<SchedulerItemWidget> {
widgets.add(InkWell(
onTap: () => widget.parent?.setState(() {
selected = selected != element || ev.startDate != selectedReal ? element : null;
widget.parent!.widget.selectedID = selected;
selectedReal = selected == null ? null : ev.startDate;
print("there");
if (selectedReal == null) {
widget.parent!.widget.isDayPlanner = true;
}