Started adding label task
This commit is contained in:
parent
a400d7cf88
commit
009c303460
|
@ -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) {
|
||||||
|
|
35
pubspec.lock
35
pubspec.lock
|
@ -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"
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Reference in New Issue
Block a user