import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:inventree/inventree/model.dart'; import 'package:inventree/inventree/part.dart'; import 'package:inventree/inventree/stock.dart'; import 'package:inventree/widget/category_display.dart'; import 'package:inventree/widget/location_display.dart'; import 'package:inventree/widget/paginator.dart'; import 'package:inventree/widget/part_list.dart'; import 'package:inventree/widget/refreshable_state.dart'; import "package:inventree/l10.dart"; class StockLocationList extends StatefulWidget { const StockLocationList(this.filters); final Map filters; @override _StockLocationListState createState() => _StockLocationListState(filters); } class _StockLocationListState extends RefreshableState { _StockLocationListState(this.filters); final Map filters; @override String getAppBarTitle(BuildContext context) => L10().stockLocations; @override Widget getBody(BuildContext context) { return PaginatedStockLocationList(filters); } } class PaginatedStockLocationList extends StatefulWidget { const PaginatedStockLocationList(this.filters); final Map filters; @override _PaginatedStockLocationListState createState() => _PaginatedStockLocationListState(filters); } class _PaginatedStockLocationListState extends PaginatedSearchState { _PaginatedStockLocationListState(Map filters) : super(filters); @override Future requestPage(int limit, int offset, Map params) async { final page = await InvenTreeStockLocation().listPaginated(limit, offset, filters: params); return page; } @override Widget buildItem(BuildContext context, InvenTreeModel model) { InvenTreeStockLocation location = model as InvenTreeStockLocation; return ListTile( title: Text(location.name), subtitle: Text(location.pathstring), trailing: Text("${location.itemcount}"), onTap: () { Navigator.push( context, MaterialPageRoute( builder: (context) => LocationDisplayWidget(location) ) ); }, ); } }