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:
parent
de4f076edc
commit
b7db66cac4
|
@ -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,
|
||||
);
|
||||
|
|
|
@ -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']),
|
||||
|
|
|
@ -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(),
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue
Block a user