mirror of
https://github.com/inventree/inventree-app.git
synced 2025-04-28 13:36:50 +00:00
Part detail view is now refreshabel
- lso add a progress dialog when reloading a model object
This commit is contained in:
parent
9b14483273
commit
578d54367a
@ -89,9 +89,30 @@ class InvenTreeModel {
|
||||
/*
|
||||
* Reload this object, by requesting data from the server
|
||||
*/
|
||||
Future<bool> reload() async {
|
||||
Future<bool> reload(BuildContext context) async {
|
||||
|
||||
var response = await api.get(url, params: defaultGetFilters());
|
||||
showProgressDialog(context, "Refreshing data", "Refreshing data for ${NAME}");
|
||||
|
||||
var response = await api.get(url, params: defaultGetFilters())
|
||||
.timeout(Duration(seconds: 10))
|
||||
.catchError((e) {
|
||||
|
||||
hideProgressDialog(context);
|
||||
|
||||
if (e is TimeoutException) {
|
||||
showErrorDialog(context, "Timeout", "No response from server");
|
||||
} else {
|
||||
showErrorDialog(context, "Error", e.toString());
|
||||
}
|
||||
|
||||
return null;
|
||||
});
|
||||
|
||||
if (response == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
hideProgressDialog(context);
|
||||
|
||||
if (response.statusCode != 200) {
|
||||
print("Error retrieving data");
|
||||
|
@ -6,6 +6,7 @@ import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:InvenTree/api.dart';
|
||||
import 'package:InvenTree/widget/refreshable_state.dart';
|
||||
import 'package:InvenTree/widget/drawer.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
|
||||
@ -21,7 +22,10 @@ class PartDetailWidget extends StatefulWidget {
|
||||
}
|
||||
|
||||
|
||||
class _PartDisplayState extends State<PartDetailWidget> {
|
||||
class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
||||
|
||||
@override
|
||||
String app_bar_title = "Part";
|
||||
|
||||
_PartDisplayState(this.part) {
|
||||
// TODO
|
||||
@ -29,6 +33,11 @@ class _PartDisplayState extends State<PartDetailWidget> {
|
||||
|
||||
InvenTreePart part;
|
||||
|
||||
@override
|
||||
Future<void> request(BuildContext context) async {
|
||||
await part.reload(context);
|
||||
}
|
||||
|
||||
/*
|
||||
* Build a list of tiles to display under the part description
|
||||
*/
|
||||
@ -154,22 +163,11 @@ class _PartDisplayState extends State<PartDetailWidget> {
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text("Part Details"),
|
||||
),
|
||||
drawer: new InvenTreeDrawer(context),
|
||||
floatingActionButton: FloatingActionButton(
|
||||
child: FaIcon(FontAwesomeIcons.ellipsisH),
|
||||
// TODO - Add pop-up icons
|
||||
// Ref: https://stackoverflow.com/questions/46480221/flutter-floating-action-button-with-speed-dial#46480722
|
||||
),
|
||||
body: Center(
|
||||
Widget getBody(BuildContext context) {
|
||||
return Center(
|
||||
child: ListView(
|
||||
children: partTiles(),
|
||||
),
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
@ -50,7 +50,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
|
||||
|
||||
@override
|
||||
Future<void> request(BuildContext context) async {
|
||||
await item.reload();
|
||||
await item.reload(context);
|
||||
}
|
||||
|
||||
void _editStockItem() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user