mirror of
https://github.com/go-vikunja/app
synced 2024-06-04 11:39:47 +00:00
Added settings page
This commit is contained in:
parent
2dfe99b51b
commit
36ce680927
|
@ -76,4 +76,14 @@ class ListAPIService extends APIService implements ListService {
|
|||
void setDisplayDoneTasks(int listId, String value) {
|
||||
_storage.write(key: "display_done_tasks_list_$listId", value: value);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String> getDefaultList() {
|
||||
return _storage.read(key: "default_list_id");
|
||||
}
|
||||
|
||||
@override
|
||||
void setDefaultList(int listId) {
|
||||
_storage.write(key: "default_list_id", value: listId.toString());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ import 'package:vikunja_app/pages/namespace/namespace_edit.dart';
|
|||
import 'package:vikunja_app/pages/placeholder.dart';
|
||||
import 'package:vikunja_app/global.dart';
|
||||
import 'package:vikunja_app/models/namespace.dart';
|
||||
import 'package:vikunja_app/pages/settings.dart';
|
||||
|
||||
class HomePage extends StatefulWidget {
|
||||
@override
|
||||
|
@ -64,6 +65,13 @@ class HomePageState extends State<HomePage> with AfterLayoutMixin<HomePage> {
|
|||
VikunjaGlobal.of(context).logoutUser(context);
|
||||
},
|
||||
),
|
||||
ListTile(
|
||||
title: Text('Settings'),
|
||||
leading: Icon(Icons.settings),
|
||||
onTap: () {
|
||||
Navigator.push(context, MaterialPageRoute(builder: (context) => SettingsPage()));
|
||||
},
|
||||
)
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
42
lib/pages/settings.dart
Normal file
42
lib/pages/settings.dart
Normal file
|
@ -0,0 +1,42 @@
|
|||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:vikunja_app/global.dart';
|
||||
import 'package:vikunja_app/models/list.dart';
|
||||
|
||||
class SettingsPage extends StatefulWidget {
|
||||
@override
|
||||
State<StatefulWidget> createState() => SettingsPageState();
|
||||
|
||||
}
|
||||
|
||||
class SettingsPageState extends State<SettingsPage> {
|
||||
List<TaskList> taskListList;
|
||||
int defaultList;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if(taskListList == null)
|
||||
VikunjaGlobal.of(context).listService.getAll().then((value) => setState(() => taskListList = value));
|
||||
if(defaultList == null)
|
||||
VikunjaGlobal.of(context).listService.getDefaultList().then((value) => setState(() => defaultList = value == null ? null : int.tryParse(value)));
|
||||
return new Scaffold(
|
||||
appBar: AppBar(title: Text("Settings"),),
|
||||
body: Column(
|
||||
children: [
|
||||
taskListList != null ?
|
||||
ListTile(
|
||||
title: Text("Default List"),
|
||||
trailing: DropdownButton(
|
||||
items: taskListList.map((e) => DropdownMenuItem(child: Text(e.title), value: e.id)).toList(),
|
||||
value: defaultList,
|
||||
onChanged: (value){
|
||||
setState(() => defaultList = value);
|
||||
VikunjaGlobal.of(context).listService.setDefaultList(value);
|
||||
},
|
||||
),) : ListTile(title: Text("..."),)
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -22,6 +22,8 @@ abstract class ListService {
|
|||
Future delete(int listId);
|
||||
Future<String> getDisplayDoneTasks(int listId);
|
||||
void setDisplayDoneTasks(int listId, String value);
|
||||
Future<String> getDefaultList();
|
||||
void setDefaultList(int listId);
|
||||
}
|
||||
|
||||
abstract class TaskService {
|
||||
|
|
Loading…
Reference in New Issue
Block a user