Todo editing
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user