Started adding label task

This commit is contained in:
kolaente 2019-03-20 08:25:52 +01:00
parent a400d7cf88
commit 009c303460
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
3 changed files with 73 additions and 35 deletions

View File

@ -1,7 +1,8 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_typeahead/flutter_typeahead.dart';
import 'package:vikunja_app/components/datetimePicker.dart'; import 'package:vikunja_app/components/datetimePicker.dart';
import 'package:vikunja_app/components/label.dart'; import 'package:vikunja_app/components/label.dart';
import 'package:vikunja_app/global.dart'; import 'package:vikunja_app/global.dart';
import 'package:vikunja_app/models/label.dart'; import 'package:vikunja_app/models/label.dart';
import 'package:vikunja_app/models/task.dart'; import 'package:vikunja_app/models/task.dart';
@ -29,7 +30,7 @@ class _TaskEditPageState extends State<TaskEditPage> {
Duration _repeatAfter; Duration _repeatAfter;
List<Label> _labels; List<Label> _labels;
var _reminderInputs = new List<Widget>(); var _reminderInputs = new List<Widget>();
var _labelStrings = new List<String>(); var _labelWidgets = new List<LabelComponent>();
@override @override
Widget build(BuildContext ctx) { Widget build(BuildContext ctx) {
@ -45,10 +46,8 @@ class _TaskEditPageState extends State<TaskEditPage> {
)))); ))));
} }
if (_labelStrings.length == 0) { if (_labels == null) {
_labels = _labels ?? widget.task.labels; _labels = widget.task.labels ?? new List();
_labels?.map((label) => _labelStrings.add(label.title));
} }
return Scaffold( return Scaffold(
@ -230,28 +229,37 @@ class _TaskEditPageState extends State<TaskEditPage> {
), ),
), ),
Wrap( Wrap(
spacing: 10, spacing: 10,
children: <Widget>[ children: _labels.map((Label label) {
LabelComponent( return LabelComponent(
label: Label( label: label,
id: 12134, onDelete: () {
title: 'Lorem Ipsum', _removeLabel(label);
color: Color(0xFFe8e8e8)), },
onDelete: () { );
print('deleted'); }).toList()),
}, TypeAheadFormField(
), textFieldConfiguration: TextFieldConfiguration(
LabelComponent( controller: _typeAheadController,
label: Label( decoration: InputDecoration(
id: 12134, title: 'Lorem Ipsum Dolor sit amet'), labelText: 'City'
), )
LabelComponent( ),
label: Label(id: 12134, title: 'Ipsum'), suggestionsCallback: (pattern) {
), return CitiesService.getSuggestions(pattern);
LabelComponent( },
label: Label(id: 12134, title: 'Dolor'), itemBuilder: (context, suggestion) {
), return ListTile(
], title: Text(suggestion),
);
},
transitionBuilder: (context, suggestionsBox, controller) {
return suggestionsBox;
},
onSuggestionSelected: (suggestion) {
// Here we need to save it
print(suggestion);
},
), ),
Builder( Builder(
builder: (context) => Padding( builder: (context) => Padding(
@ -314,6 +322,14 @@ class _TaskEditPageState extends State<TaskEditPage> {
}); });
} }
_removeLabel(Label label) {
}
_searchLabel(String query) {
VikunjaGlobal.of(context)
}
// FIXME: Move the following two functions to an extra class or type. // FIXME: Move the following two functions to an extra class or type.
_priorityFromString(String priority) { _priorityFromString(String priority) {
switch (priority) { switch (priority) {

View File

@ -125,6 +125,13 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_typeahead:
dependency: "direct main"
description:
name: flutter_typeahead
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.1"
front_end: front_end:
dependency: transitive dependency: transitive
description: description:
@ -209,6 +216,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.3.9+1" version: "0.3.9+1"
keyboard_visibility:
dependency: transitive
description:
name: keyboard_visibility
url: "https://pub.dartlang.org"
source: hosted
version: "0.5.2"
logging: logging:
dependency: transitive dependency: transitive
description: description:
@ -272,6 +286,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.6.2" version: "1.6.2"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.0"
petitparser: petitparser:
dependency: transitive dependency: transitive
description: description:
@ -360,7 +381,7 @@ packages:
name: source_span name: source_span
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.4.1" version: "1.5.4"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
@ -388,28 +409,28 @@ packages:
name: term_glyph name: term_glyph
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.1" version: "1.1.0"
test: test:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: test name: test
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.5.1+1" version: "1.5.3"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.2.1" version: "0.2.2"
test_core: test_core:
dependency: transitive dependency: transitive
description: description:
name: test_core name: test_core
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.2.0+1" version: "0.2.1+1"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
@ -467,5 +488,5 @@ packages:
source: hosted source: hosted
version: "2.1.15" version: "2.1.15"
sdks: sdks:
dart: ">=2.1.0-dev.5.0 <3.0.0" dart: ">=2.1.0 <3.0.0"
flutter: ">=0.1.2 <2.0.0" flutter: ">=0.1.4 <2.0.0"

View File

@ -14,6 +14,7 @@ dependencies:
http: 0.12.0 http: 0.12.0
after_layout: ^1.0.7 after_layout: ^1.0.7
datetime_picker_formfield: ^0.1.8 datetime_picker_formfield: ^0.1.8
flutter_typeahead: ^1.2.1
dev_dependencies: dev_dependencies:
flutter_test: flutter_test: