2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-04-28 13:36:50 +00:00

Company list is now refreshable

This commit is contained in:
Oliver Walters 2020-04-15 12:07:36 +10:00
parent 578d54367a
commit 90a39ae3de
6 changed files with 32 additions and 43 deletions

View File

@ -30,7 +30,7 @@ class CategoryDisplayWidget extends StatefulWidget {
class _CategoryDisplayState extends RefreshableState<CategoryDisplayWidget> { class _CategoryDisplayState extends RefreshableState<CategoryDisplayWidget> {
@override @override
String app_bar_title = "Part Category"; String getAppBarTitle(BuildContext context) { return "Part Category"; }
_CategoryDisplayState(this.category) {} _CategoryDisplayState(this.category) {}

View File

@ -6,6 +6,7 @@ import 'package:flutter/material.dart';
import 'package:InvenTree/api.dart'; import 'package:InvenTree/api.dart';
import 'package:InvenTree/inventree/company.dart'; import 'package:InvenTree/inventree/company.dart';
import 'package:InvenTree/widget/drawer.dart'; import 'package:InvenTree/widget/drawer.dart';
import 'package:InvenTree/widget/refreshable_state.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
abstract class CompanyListWidget extends StatefulWidget { abstract class CompanyListWidget extends StatefulWidget {
@ -30,21 +31,23 @@ class CustomerListWidget extends CompanyListWidget {
} }
class _CompanyListState extends State<CompanyListWidget> { class _CompanyListState extends RefreshableState<CompanyListWidget> {
var _companies = new List<InvenTreeCompany>(); var _companies = new List<InvenTreeCompany>();
var _filteredCompanies = new List<InvenTreeCompany>(); var _filteredCompanies = new List<InvenTreeCompany>();
var _title = "Companies"; String _title = "Companies";
@override
String getAppBarTitle(BuildContext context) { return _title; }
Map<String, String> _filters = Map<String, String>(); Map<String, String> _filters = Map<String, String>();
_CompanyListState(this._title, this._filters) { _CompanyListState(this._title, this._filters) {}
_requestData();
}
void _requestData() { @override
Future<void> request(BuildContext context) async {
InvenTreeCompany().list(context, filters: _filters).then((var companies) { InvenTreeCompany().list(context, filters: _filters).then((var companies) {
@ -94,38 +97,24 @@ class _CompanyListState extends State<CompanyListWidget> {
} }
@override @override
Widget build(BuildContext context) { Widget getBody(BuildContext context) {
return Scaffold( return ListView(
appBar: AppBar( children: <Widget>[
title: Text("$_title"), TextField(
actions: <Widget>[ decoration: InputDecoration(
IconButton( hintText: 'Filter results',
icon: FaIcon(FontAwesomeIcons.plus), ),
tooltip: 'New', onChanged: (String text) {
onPressed: null, setState(() {
) _filterResults(text);
], });
},
), ),
drawer: new InvenTreeDrawer(context), ListView.builder(
body: ListView( shrinkWrap: true,
children: <Widget>[ physics: ClampingScrollPhysics(),
TextField( itemBuilder: _showCompany, itemCount: _filteredCompanies.length)
decoration: InputDecoration( ],
hintText: 'Filter results',
),
onChanged: (String text) {
setState(() {
_filterResults(text);
});
},
),
ListView.builder(
shrinkWrap: true,
physics: ClampingScrollPhysics(),
itemBuilder: _showCompany, itemCount: _filteredCompanies.length)
],
)
); );
} }
} }

View File

@ -27,7 +27,7 @@ class _LocationDisplayState extends RefreshableState<LocationDisplayWidget> {
final InvenTreeStockLocation location; final InvenTreeStockLocation location;
@override @override
String app_bar_title = "Stock Location"; String getAppBarTitle(BuildContext context) { return "Stock Location"; }
_LocationDisplayState(this.location) {} _LocationDisplayState(this.location) {}

View File

@ -25,7 +25,7 @@ class PartDetailWidget extends StatefulWidget {
class _PartDisplayState extends RefreshableState<PartDetailWidget> { class _PartDisplayState extends RefreshableState<PartDetailWidget> {
@override @override
String app_bar_title = "Part"; String getAppBarTitle(BuildContext context) { return "Part"; }
_PartDisplayState(this.part) { _PartDisplayState(this.part) {
// TODO // TODO

View File

@ -11,7 +11,7 @@ abstract class RefreshableState<T extends StatefulWidget> extends State<T> {
// Storage for context once "Build" is called // Storage for context once "Build" is called
BuildContext context; BuildContext context;
String app_bar_title = "App Bar Title"; String getAppBarTitle(BuildContext context) { return "App Bar Title"; }
void initState() { void initState() {
super.initState(); super.initState();
@ -31,7 +31,7 @@ abstract class RefreshableState<T extends StatefulWidget> extends State<T> {
// Function to construct an appbar (override if needed) // Function to construct an appbar (override if needed)
AppBar getAppBar(BuildContext context) { AppBar getAppBar(BuildContext context) {
return AppBar( return AppBar(
title: Text(app_bar_title) title: Text(getAppBarTitle(context))
); );
} }

View File

@ -31,7 +31,7 @@ class StockDetailWidget extends StatefulWidget {
class _StockItemDisplayState extends RefreshableState<StockDetailWidget> { class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
@override @override
String app_bar_title = "Stock Item"; String getAppBarTitle(BuildContext context) { return "Stock Item"; }
final TextEditingController _quantityController = TextEditingController(); final TextEditingController _quantityController = TextEditingController();
final TextEditingController _notesController = TextEditingController(); final TextEditingController _notesController = TextEditingController();