From 15f63adf0ae1821557caf9d9801eea9fe8fb6412 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Wed, 19 May 2021 19:55:45 +1000 Subject: [PATCH] Reintroduces ability to sumbit user feedback to sentry --- assets/release_notes.md | 5 ++++ lib/l10n | 2 +- lib/settings/settings.dart | 56 ++++++++++++++++++++++++++++++++++++-- 3 files changed, 60 insertions(+), 3 deletions(-) diff --git a/assets/release_notes.md b/assets/release_notes.md index 584dbbd0..2f875463 100644 --- a/assets/release_notes.md +++ b/assets/release_notes.md @@ -1,6 +1,11 @@ ## InvenTree App Release Notes --- +### 0.1.5 - May 2021 +--- + +- Added ability for user to submit feedback + ### 0.1.4 - April 2021 --- diff --git a/lib/l10n b/lib/l10n index 8c2bf9e9..3f8e2a12 160000 --- a/lib/l10n +++ b/lib/l10n @@ -1 +1 @@ -Subproject commit 8c2bf9e993d5c618a0a7b5cb94d189b89d70cbe9 +Subproject commit 3f8e2a12cf99a3061dca3ad4070b4681140f36aa diff --git a/lib/settings/settings.dart b/lib/settings/settings.dart index 784fcdc6..be44e7c2 100644 --- a/lib/settings/settings.dart +++ b/lib/settings/settings.dart @@ -1,7 +1,9 @@ +import 'package:InvenTree/inventree/sentry.dart'; import 'package:InvenTree/settings/about.dart'; import 'package:InvenTree/settings/app_settings.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:font_awesome_flutter/font_awesome_flutter.dart'; @@ -24,6 +26,7 @@ class InvenTreeSettingsWidget extends StatefulWidget { class _InvenTreeSettingsState extends State { final _scaffoldKey = GlobalKey(); + final _feedbackKey = GlobalKey(); final String docsUrl = "https://inventree.readthedocs.io/en/latest/app/app/"; @@ -41,7 +44,7 @@ class _InvenTreeSettingsState extends State { tiles: [ ListTile( title: Text(I18N.of(context).server), - subtitle: Text("Configure server settings"), + subtitle: Text(I18N.of(context).configureServer), leading: FaIcon(FontAwesomeIcons.server), onTap: _editServerSettings, ), @@ -67,6 +70,15 @@ class _InvenTreeSettingsState extends State { }, ), + ListTile( + title: Text(I18N.of(context).feedback), + subtitle: Text(I18N.of(context).submitFeedback), + leading: FaIcon(FontAwesomeIcons.comments), + onTap: () { + _submitFeedback(context); + }, + ), + ] ).toList() ) @@ -97,4 +109,44 @@ class _InvenTreeSettingsState extends State { 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: [ + TextField( + decoration: InputDecoration( + ), + keyboardType: TextInputType.multiline, + maxLines: null, + controller: _controller + ) + ] + ); + } } \ No newline at end of file