1
0
mirror of https://github.com/go-vikunja/app synced 2024-06-10 06:29:53 +00:00

added delete button

fixed exception when owner attribute is null
This commit is contained in:
benimautner 2022-04-11 21:05:37 +02:00
parent de4f076edc
commit b7db66cac4
6 changed files with 28 additions and 7 deletions

View File

@ -8,9 +8,10 @@ import 'package:vikunja_app/pages/task/edit_task.dart';
class TaskTile extends StatefulWidget {
final Task task;
final Function onEdit;
const TaskTile(
{Key key, @required this.task})
{Key key, @required this.task, this.onEdit})
: assert(task != null),
super(key: key);
/*
@ -68,7 +69,10 @@ class TaskTileState extends State<TaskTile> {
MaterialPageRoute(
builder: (context) => TaskEditPage(
task: _currentTask,
))).whenComplete(() => setState((){}));
))).whenComplete(() {
//setState((){});
widget.onEdit();
});
}),
onChanged: _change,
);

View File

@ -20,7 +20,7 @@ class TaskList {
TaskList.fromJson(Map<String, dynamic> json)
: id = json['id'],
owner = User.fromJson(json['owner']),
owner = json['owner'] == null ? null : User.fromJson(json['owner']),
description = json['description'],
title = json['title'],
updated = DateTime.parse(json['updated']),

View File

@ -21,7 +21,7 @@ class Namespace {
id = json['id'],
created = DateTime.parse(json['created']),
updated = DateTime.parse(json['updated']),
owner = User.fromJson(json['owner']);
owner = json['owner'] == null ? null : User.fromJson(json['owner']);
toJSON() => {
"created": created?.toIso8601String(),

View File

@ -34,7 +34,7 @@ class Task {
description = json['description'],
title = json['title'],
done = json['done'],
owner = User.fromJson(json['created_by']);
owner = json['created_by'] == null ? null : User.fromJson(json['created_by']);
toJSON() => {
'id': id,

View File

@ -50,7 +50,10 @@ class _ListPageState extends State<ListPage> {
MaterialPageRoute(
builder: (context) => ListEditPage(
list: _list,
))).whenComplete(() {_loadList(); setState(() {});})
))).whenComplete(() {
_loadList();
setState(() {});
})
)
],
),
@ -82,7 +85,7 @@ class _ListPageState extends State<ListPage> {
TaskTile _buildTile(Task task) {
// key: UniqueKey() seems like a weird workaround to fix the loading issue
// is there a better way?
return TaskTile(key: UniqueKey(), task: task);
return TaskTile(key: UniqueKey(), task: task,onEdit: () => _loadList());
}
Future<void> _loadList() {

View File

@ -140,6 +140,13 @@ class _TaskEditPageState extends State<TaskEditPage> {
? CircularProgressIndicator()
: VikunjaButtonText('Save'),
))),
Builder(
builder: (context) => Padding(
padding: EdgeInsets.symmetric(vertical: 10.0),
child: FancyButton(
onPressed: () {_deleteTask(context);},
child: VikunjaButtonText('Delete'),
))),
]),
),
),
@ -169,6 +176,13 @@ class _TaskEditPageState extends State<TaskEditPage> {
});
}
_deleteTask(BuildContext context) async {
await VikunjaGlobal.of(context).taskService.delete(widget.task.id).then(
(value) {
Navigator.pop(context);
});
}
_saveTask(BuildContext context) async {
setState(() => _loading = true);
Task updatedTask = widget.task;