Task item details

This commit is contained in:
Hillel Coren 2023-03-22 17:54:52 +02:00
parent c6906de123
commit 42d26a26de
1 changed files with 35 additions and 19 deletions

View File

@ -27,6 +27,7 @@ import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_items_desktop.
import 'package:invoiceninja_flutter/ui/task/edit/task_edit_details_vm.dart'; import 'package:invoiceninja_flutter/ui/task/edit/task_edit_details_vm.dart';
import 'package:invoiceninja_flutter/utils/colors.dart'; import 'package:invoiceninja_flutter/utils/colors.dart';
import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/dialogs.dart';
import 'package:invoiceninja_flutter/utils/formatting.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart';
import 'package:invoiceninja_flutter/utils/localization.dart'; import 'package:invoiceninja_flutter/utils/localization.dart';
@ -482,9 +483,21 @@ class _TaskEditDesktopState extends State<TaskEditDesktop> {
], ],
), ),
), ),
if (settings.allowBillableTaskItems)
Padding( Padding(
padding: const EdgeInsets.only(top: 4), padding: const EdgeInsets.only(right: 8, left: 4),
child: IconButton( child: IconButton(
onPressed: taskTimes[index].isEmpty
? null
: () => viewModel.onUpdatedTaskTime(
taskTime.rebuild((b) =>
b..isBillable = !taskTime.isBillable),
index),
icon: Icon(taskTime.isBillable
? Icons.check_box_outlined
: Icons.check_box_outline_blank)),
),
IconButton(
icon: Icon( icon: Icon(
Icons.clear, Icons.clear,
color: overlapping.contains(index) ? Colors.red : null, color: overlapping.contains(index) ? Colors.red : null,
@ -495,14 +508,17 @@ class _TaskEditDesktopState extends State<TaskEditDesktop> {
onPressed: taskTimes[index].isEmpty onPressed: taskTimes[index].isEmpty
? null ? null
: () { : () {
confirmCallback(
context: context,
callback: (_) {
viewModel.onRemoveTaskTime(index); viewModel.onRemoveTaskTime(index);
setState(() { setState(() {
_updatedAt = _updatedAt =
DateTime.now().millisecondsSinceEpoch; DateTime.now().millisecondsSinceEpoch;
}); });
});
}, },
), ),
),
], ],
); );
}).toList(), }).toList(),