1
0
mirror of https://github.com/go-vikunja/app synced 2024-06-03 11:09:47 +00:00

added ability to set due date

This commit is contained in:
benimautner 2022-04-11 10:58:05 +02:00
parent ec390136fe
commit 1864397e8c
3 changed files with 44 additions and 1 deletions

View File

@ -97,6 +97,7 @@ class TaskTileState extends State<TaskTile> {
title: task.title,
description: task.description,
owner: task.owner,
due: task.due
));
}
}

View File

@ -1,4 +1,5 @@
import 'dart:developer';
import 'package:intl/intl.dart';
import 'package:flutter/material.dart';
import 'package:vikunja_app/global.dart';
import 'package:vikunja_app/models/task.dart';
@ -22,16 +23,20 @@ class _TaskEditPageState extends State<TaskEditPage> {
String _title, _description;
bool _done;
bool changed = false;
DateTime _due;
TimeOfDay _temp_due_tod;
TextEditingController titleController = TextEditingController();
TextEditingController descriptionController = TextEditingController();
@override
void initState() {
titleController.text = widget.task.title;
log("In init state: " + widget.task.due.toIso8601String());
titleController.text = widget.task.title;
descriptionController.text = widget.task.description;
if(widget.task.done == null)
widget.task.done = false;
_done = widget.task.done;
_due = widget.task.due;
super.initState();
}
@ -105,6 +110,20 @@ class _TaskEditPageState extends State<TaskEditPage> {
});
}),
),
Padding(
padding: EdgeInsets.symmetric(vertical: 10),
child: Row(
children: [
Text(DateFormat('dd/MM/yy hh:mm a').format(_due).toString()),
Expanded(
child: Padding(
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
child: FancyButton(
child: const VikunjaButtonText("Pick Due Date"),
onPressed: () => _showDatePicker(context),
)))],
)
),
Builder(
builder: (context) => Padding(
padding: EdgeInsets.symmetric(vertical: 10.0),
@ -129,12 +148,34 @@ class _TaskEditPageState extends State<TaskEditPage> {
);
}
_showDatePicker(context) async {
DateTime date = await showDialog(
context: context,
builder: (_) => DatePickerDialog(
initialDate: _due,
firstDate: DateTime(0),
lastDate: DateTime(9999),
initialCalendarMode: DatePickerMode.day,
));
TimeOfDay time = await showDialog(
context: context,
builder: (_) => TimePickerDialog(
initialTime: TimeOfDay.fromDateTime(_due),
)
);
if(date != null && time != null)
setState(() {
_due = new DateTime(date.year,date.month, date.day,time.hour,time.minute);
});
}
_saveTask(BuildContext context) async {
setState(() => _loading = true);
Task updatedTask = widget.task;
updatedTask.title = _title;
updatedTask.description = _description;
updatedTask.done = _done;
updatedTask.due = _due.toUtc();
VikunjaGlobal.of(context)
.taskService

View File

@ -13,6 +13,7 @@ dependencies:
flutter_secure_storage: 3.3.5
http: 0.13.4
after_layout: ^1.0.7
intl: ^0.17.0
dev_dependencies:
flutter_test: