Todo editing

This commit is contained in:
Sewmina
2022-04-05 06:52:58 +05:30
parent b7ce14a558
commit 7aa8712c16
7 changed files with 95 additions and 20 deletions

View File

@@ -6,6 +6,7 @@ import 'package:intl/intl.dart';
import 'package:tasktracker/NewTask.dart';
import 'package:tasktracker/NotificationsManager.dart';
import 'Data.dart';
import 'DebugHelper.dart';
import 'Dialogs.dart';
import 'User.dart' as User;
@@ -14,19 +15,21 @@ DateFormat dateTimeFormat = DateFormat("yyyy-MM-dd HH:mm");
DateFormat durationFormat = DateFormat("HH:mm:ss");
class NewTodo extends StatefulWidget {
NewTodo({Key? key, this.selectedTask, this.metadata, this.dueDate,this.notificationTime}) : super(key: key);
NewTodo({Key? key, this.selectedTask, this.metadata, this.dueDate,this.notificationTime, this.old_id}) : super(key: key);
late String? old_id;
late String? metadata;
late String? selectedTask;
late DateTime? dueDate;
late DateTime? notificationTime;
@override
_NewActivity createState() => _NewActivity(selectedCat: selectedTask, metadata: metadata);
_NewActivity createState() => _NewActivity(selectedCat: selectedTask, metadata: metadata, DueDate: dueDate, notificationTime: notificationTime,oldId: old_id);
}
class _NewActivity extends State<NewTodo> {
late String init_selectedTask;
_NewActivity({String? metadata, String? selectedCat, DateTime? DueDate, this.notificationTime}) {
editing =selectedCat != null && DueDate !=null;
_NewActivity({String? metadata, String? selectedCat, DateTime? DueDate, this.notificationTime, this.oldId}) {
Debug.Log('selected cat : $selectedCat');
editing =selectedCat != null && DueDate !=null && metadata !=null && oldId!=null;
dueDate = DueDate ?? DateTime.now().add(Duration(days: 1));
this.metadataController.text = metadata ?? "";
if(this.metadataController.text.contains('[') && this.metadataController.text.contains(']') ){
@@ -36,7 +39,7 @@ class _NewActivity extends State<NewTodo> {
selectedStep='None';
}
this.init_selectedTask = this.selectedCat = selectedCat ?? User.taskTypes[0].name;
print(" meta:$metadata, task: $selectedCat");
Debug.Log(" meta:$metadata, task: $selectedCat, notification_time : ${notificationTime}");
}
TextEditingController metadataController = TextEditingController();
@@ -45,6 +48,7 @@ class _NewActivity extends State<NewTodo> {
DateTime? notificationTime;
bool editing = false;
String? oldId;
Map<String, TaskType?> taskTypes = <String, TaskType?>{};
Map<String, TaskType?> getActivities() {
Map<String, TaskType?> _cats = <String, TaskType?>{};
@@ -57,7 +61,7 @@ class _NewActivity extends State<NewTodo> {
String name = element.name;
if (_cats.keys.toString().contains(element.name)) {
} else {
String displayName = (name + ((element.relatedProject != null) ? ' [${element.relatedProject!.name}]' : ''));
String displayName = TaskType.getDisplayName(element);
_cats.putIfAbsent(displayName, () => element);
}
});
@@ -298,7 +302,13 @@ class _NewActivity extends State<NewTodo> {
}
void edit_action() async {
if(metadataController.text.isEmpty){
Dialogs.showAlertDialog(context, 'Invalid data', 'Please enter description to add new todo');
return;
}
await User.UserOperations.editTodo(oldId!,selectedCat,((selectedStep!=null && selectedStep != 'None') ? '[$selectedStep]' : '')+ metadataController.text, dueDate, notificationTime);
Navigator.of(context).pop();
}
}