2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-04-28 05:26:47 +00:00

Fix dialog context poppin' issues for stock actions

This commit is contained in:
Oliver Walters 2021-02-27 09:55:34 +11:00
parent de9226aab6
commit d03e1db4c3
2 changed files with 21 additions and 34 deletions

View File

@ -141,24 +141,30 @@ Future<void> showTimeoutError(BuildContext context) async {
await showServerError(I18N.of(context).timeout, I18N.of(context).noResponse);
}
void showFormDialog(String title, {GlobalKey<FormState> key, List<Widget> fields, List<Widget> actions, Function callback}) {
void showFormDialog(String title, {String acceptText, String cancelText, GlobalKey<FormState> key, List<Widget> fields, List<Widget> actions, Function callback}) {
BuildContext dialogContext;
if (acceptText == null) {
acceptText = I18N.of(OneContext().context).save;
}
if (cancelText == null) {
cancelText = I18N.of(OneContext().context).cancel;
}
// Undefined actions = OK + Cancel
if (actions == null) {
actions = <Widget>[
FlatButton(
child: Text(I18N.of(OneContext().context).cancel),
child: Text(cancelText),
onPressed: () {
print("cancel and close the dialog");
// Close the form
Navigator.pop(dialogContext);
}
),
FlatButton(
child: Text(I18N.of(OneContext().context).save),
child: Text(acceptText),
onPressed: () {
if (key.currentState.validate()) {
key.currentState.save();

View File

@ -101,8 +101,6 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
void _addStock() async {
Navigator.of(context).pop();
double quantity = double.parse(_quantityController.text);
_quantityController.clear();
@ -121,14 +119,9 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
showFormDialog( I18N.of(context).addStock,
key: _addStockKey,
actions: <Widget>[
FlatButton(
child: Text(I18N.of(context).add),
onPressed: () {
if (_addStockKey.currentState.validate()) _addStock();
},
)
],
callback: () {
_addStock();
},
fields: <Widget> [
Text("Current stock: ${item.quantity}"),
QuantityField(
@ -154,7 +147,6 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
}
void _removeStock() async {
Navigator.of(context).pop();
double quantity = double.parse(_quantityController.text);
_quantityController.clear();
@ -174,14 +166,9 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
showFormDialog(I18N.of(context).removeStock,
key: _removeStockKey,
actions: <Widget>[
FlatButton(
child: Text(I18N.of(context).remove),
onPressed: () {
if (_removeStockKey.currentState.validate()) _removeStock();
},
)
],
callback: () {
_removeStock();
},
fields: <Widget>[
Text("Current stock: ${item.quantity}"),
QuantityField(
@ -201,8 +188,6 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
void _countStock() async {
Navigator.of(context).pop();
double quantity = double.parse(_quantityController.text);
_quantityController.clear();
@ -220,14 +205,10 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
showFormDialog(I18N.of(context).countStock,
key: _countStockKey,
actions: <Widget> [
FlatButton(
child: Text(I18N.of(context).count),
onPressed: () {
if (_countStockKey.currentState.validate()) _countStock();
},
)
],
callback: () {
_countStock();
},
acceptText: I18N.of(context).count,
fields: <Widget> [
QuantityField(
label: I18N.of(context).countStock,