2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-04-29 14:06:47 +00:00

Merge branch 'user-feedbac'

This commit is contained in:
Oliver Walters 2021-05-19 19:55:54 +10:00
commit f91c40cccd
3 changed files with 60 additions and 3 deletions

View File

@ -1,6 +1,11 @@
## InvenTree App Release Notes ## InvenTree App Release Notes
--- ---
### 0.1.5 - May 2021
---
- Added ability for user to submit feedback
### 0.1.4 - April 2021 ### 0.1.4 - April 2021
--- ---

@ -1 +1 @@
Subproject commit 8c2bf9e993d5c618a0a7b5cb94d189b89d70cbe9 Subproject commit 3f8e2a12cf99a3061dca3ad4070b4681140f36aa

View File

@ -1,7 +1,9 @@
import 'package:InvenTree/inventree/sentry.dart';
import 'package:InvenTree/settings/about.dart'; import 'package:InvenTree/settings/about.dart';
import 'package:InvenTree/settings/app_settings.dart'; import 'package:InvenTree/settings/app_settings.dart';
import 'package:InvenTree/settings/login.dart'; import 'package:InvenTree/settings/login.dart';
import 'package:InvenTree/user_profile.dart'; import 'package:InvenTree/widget/snacks.dart';
import 'package:InvenTree/widget/dialogs.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
@ -24,6 +26,7 @@ class InvenTreeSettingsWidget extends StatefulWidget {
class _InvenTreeSettingsState extends State<InvenTreeSettingsWidget> { class _InvenTreeSettingsState extends State<InvenTreeSettingsWidget> {
final _scaffoldKey = GlobalKey<ScaffoldState>(); final _scaffoldKey = GlobalKey<ScaffoldState>();
final _feedbackKey = GlobalKey<FormState>();
final String docsUrl = "https://inventree.readthedocs.io/en/latest/app/app/"; final String docsUrl = "https://inventree.readthedocs.io/en/latest/app/app/";
@ -41,7 +44,7 @@ class _InvenTreeSettingsState extends State<InvenTreeSettingsWidget> {
tiles: <Widget>[ tiles: <Widget>[
ListTile( ListTile(
title: Text(I18N.of(context).server), title: Text(I18N.of(context).server),
subtitle: Text("Configure server settings"), subtitle: Text(I18N.of(context).configureServer),
leading: FaIcon(FontAwesomeIcons.server), leading: FaIcon(FontAwesomeIcons.server),
onTap: _editServerSettings, onTap: _editServerSettings,
), ),
@ -67,6 +70,15 @@ class _InvenTreeSettingsState extends State<InvenTreeSettingsWidget> {
}, },
), ),
ListTile(
title: Text(I18N.of(context).feedback),
subtitle: Text(I18N.of(context).submitFeedback),
leading: FaIcon(FontAwesomeIcons.comments),
onTap: () {
_submitFeedback(context);
},
),
] ]
).toList() ).toList()
) )
@ -97,4 +109,44 @@ class _InvenTreeSettingsState extends State<InvenTreeSettingsWidget> {
MaterialPageRoute(builder: (context) => InvenTreeAboutWidget(info))); MaterialPageRoute(builder: (context) => InvenTreeAboutWidget(info)));
}); });
} }
void _sendReport(BuildContext context, String message) async {
bool result = await sentryReportMessage(message);
if (result) {
showSnackIcon(
I18N.of(context).feedbackSuccess,
success: true,
);
} else {
showSnackIcon(
I18N.of(context).feedbackError,
success: false,
);
}
}
void _submitFeedback(BuildContext context) async {
TextEditingController _controller = TextEditingController();
_controller.clear();
showFormDialog(
I18N.of(context).submitFeedback,
key: _feedbackKey,
callback: () {
_sendReport(context, _controller.text);
},
fields: <Widget>[
TextField(
decoration: InputDecoration(
),
keyboardType: TextInputType.multiline,
maxLines: null,
controller: _controller
)
]
);
}
} }