mirror of
				https://github.com/inventree/inventree-app.git
				synced 2025-10-31 21:35:42 +00:00 
			
		
		
		
	Code Cleanup (#312)
* Open email and telephone links for company * Cleanup imports
This commit is contained in:
		| @@ -9,9 +9,13 @@ | ||||
|  | ||||
| import "dart:io"; | ||||
| import "package:currency_formatter/currency_formatter.dart"; | ||||
|  | ||||
| import "package:audioplayers/audioplayers.dart"; | ||||
| import "package:one_context/one_context.dart"; | ||||
| import "package:url_launcher/url_launcher.dart"; | ||||
| import "package:audioplayers/audioplayers.dart"; | ||||
|  | ||||
| import "package:inventree/l10.dart"; | ||||
| import "package:inventree/widget/snacks.dart"; | ||||
|  | ||||
|  | ||||
|  | ||||
| List<String> debug_messages = []; | ||||
| @@ -80,6 +84,19 @@ Future<void> playAudioFile(String path) async { | ||||
| } | ||||
|  | ||||
|  | ||||
| // Open an external URL | ||||
| Future<void> openLink(String url) async { | ||||
|  | ||||
|   final link = Uri.parse(url); | ||||
|  | ||||
|   try { | ||||
|     await launchUrl(link); | ||||
|   } catch (e) { | ||||
|     showSnackIcon(L10().error, success: false); | ||||
|   } | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Helper function for rendering a money / currency object as a String | ||||
|  */ | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
|  | ||||
|  | ||||
| import "package:inventree/inventree/model.dart"; | ||||
| import "package:inventree/inventree/part.dart"; | ||||
|  | ||||
|   | ||||
| @@ -2,17 +2,16 @@ import "dart:async"; | ||||
| import "dart:io"; | ||||
|  | ||||
| import "package:font_awesome_flutter/font_awesome_flutter.dart"; | ||||
| import "package:inventree/api.dart"; | ||||
| import "package:flutter/material.dart"; | ||||
| import "package:inventree/inventree/sentry.dart"; | ||||
| import "package:inventree/widget/dialogs.dart"; | ||||
| import "package:url_launcher/url_launcher.dart"; | ||||
|  | ||||
| import "package:path/path.dart" as path; | ||||
|  | ||||
| import "package:inventree/api.dart"; | ||||
| import "package:inventree/api_form.dart"; | ||||
| import "package:inventree/fa_icon_mapping.dart"; | ||||
| import "package:inventree/l10.dart"; | ||||
| import "package:inventree/inventree/sentry.dart"; | ||||
| import "package:inventree/widget/dialogs.dart"; | ||||
|  | ||||
|  | ||||
| // Paginated response object | ||||
|   | ||||
| @@ -1,12 +1,13 @@ | ||||
| import "dart:io"; | ||||
|  | ||||
| import "package:flutter/material.dart"; | ||||
|  | ||||
| import "package:inventree/api.dart"; | ||||
| import "package:inventree/helpers.dart"; | ||||
| import "package:inventree/inventree/stock.dart"; | ||||
| import "package:inventree/inventree/company.dart"; | ||||
| import "package:flutter/material.dart"; | ||||
| import "package:inventree/l10.dart"; | ||||
|  | ||||
| import "package:inventree/inventree/stock.dart"; | ||||
| import "package:inventree/inventree/company.dart"; | ||||
| import "package:inventree/inventree/model.dart"; | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -1,9 +1,7 @@ | ||||
| import "package:inventree/inventree/company.dart"; | ||||
| import "package:inventree/inventree/part.dart"; | ||||
|  | ||||
| import "package:inventree/inventree/model.dart"; | ||||
|  | ||||
| // TODO: In the future, status codes should be retrieved from the server | ||||
| const int PO_STATUS_PENDING = 10; | ||||
| const int PO_STATUS_PLACED = 20; | ||||
| const int PO_STATUS_COMPLETE = 30; | ||||
|   | ||||
| @@ -1,11 +1,11 @@ | ||||
| import "dart:io"; | ||||
|  | ||||
| import "package:device_info_plus/device_info_plus.dart"; | ||||
| import "package:inventree/preferences.dart"; | ||||
| import "package:package_info_plus/package_info_plus.dart"; | ||||
| import "package:sentry_flutter/sentry_flutter.dart"; | ||||
|  | ||||
| import "package:inventree/api.dart"; | ||||
| import "package:inventree/preferences.dart"; | ||||
|  | ||||
| Future<Map<String, dynamic>> getDeviceInfo() async { | ||||
|  | ||||
|   | ||||
| @@ -1,13 +1,14 @@ | ||||
| import "dart:async"; | ||||
|  | ||||
| import "package:intl/intl.dart"; | ||||
| import "package:inventree/helpers.dart"; | ||||
| import "package:inventree/inventree/part.dart"; | ||||
|  | ||||
| import "package:inventree/inventree/model.dart"; | ||||
| import "package:inventree/l10.dart"; | ||||
|  | ||||
| import "package:inventree/api.dart"; | ||||
| import "package:inventree/helpers.dart"; | ||||
| import "package:inventree/l10.dart"; | ||||
|  | ||||
| import "package:inventree/inventree/part.dart"; | ||||
| import "package:inventree/inventree/model.dart"; | ||||
|  | ||||
|  | ||||
|  | ||||
| class InvenTreeStockItemTestResult extends InvenTreeModel { | ||||
|   | ||||
| @@ -1,8 +1,10 @@ | ||||
| import "package:flutter/material.dart"; | ||||
| import "package:flutter_markdown/flutter_markdown.dart"; | ||||
| import "package:inventree/l10.dart"; | ||||
| import "package:url_launcher/url_launcher.dart"; | ||||
|  | ||||
| import "package:inventree/l10.dart"; | ||||
| import "package:inventree/helpers.dart"; | ||||
|  | ||||
|  | ||||
| class ReleaseNotesWidget extends StatelessWidget { | ||||
|  | ||||
| @@ -10,16 +12,6 @@ class ReleaseNotesWidget extends StatelessWidget { | ||||
|  | ||||
|   final String releaseNotes; | ||||
|  | ||||
|   // Callback function when a link is clicked in the markdown | ||||
|   Future<void> openLink(String url) async { | ||||
|  | ||||
|     final link = Uri.parse(url); | ||||
|  | ||||
|     if (await canLaunchUrl(link)) { | ||||
|       await launchUrl(link); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   Widget build (BuildContext context) { | ||||
|     return Scaffold( | ||||
|   | ||||
| @@ -5,6 +5,7 @@ import "package:font_awesome_flutter/font_awesome_flutter.dart"; | ||||
| import "package:inventree/l10.dart"; | ||||
| import "package:inventree/api.dart"; | ||||
| import "package:inventree/app_colors.dart"; | ||||
| import "package:inventree/helpers.dart"; | ||||
|  | ||||
| import "package:inventree/inventree/company.dart"; | ||||
| import "package:inventree/inventree/purchase_order.dart"; | ||||
| @@ -15,6 +16,7 @@ import "package:inventree/widget/refreshable_state.dart"; | ||||
| import "package:inventree/widget/snacks.dart"; | ||||
| import "package:inventree/widget/supplier_part_list.dart"; | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Widget for displaying detail view of a single Company instance | ||||
|  */ | ||||
| @@ -68,7 +70,7 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> { | ||||
|   List<SpeedDialChild> actionButtons(BuildContext context) { | ||||
|     List<SpeedDialChild> actions = []; | ||||
|  | ||||
|     // TODO | ||||
|     // TODO - Actions for this company | ||||
|  | ||||
|     return actions; | ||||
|   } | ||||
| @@ -147,9 +149,9 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> { | ||||
|   if (widget.company.website.isNotEmpty) { | ||||
|     tiles.add(ListTile( | ||||
|       title: Text("${widget.company.website}"), | ||||
|       leading: FaIcon(FontAwesomeIcons.globe), | ||||
|       onTap: () { | ||||
|         // TODO - Open website | ||||
|       leading: FaIcon(FontAwesomeIcons.globe, color: COLOR_CLICK), | ||||
|       onTap: () async { | ||||
|         openLink(widget.company.website); | ||||
|       }, | ||||
|     )); | ||||
|  | ||||
| @@ -159,9 +161,9 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> { | ||||
|   if (widget.company.email.isNotEmpty) { | ||||
|     tiles.add(ListTile( | ||||
|       title: Text("${widget.company.email}"), | ||||
|       leading: FaIcon(FontAwesomeIcons.at), | ||||
|       onTap: () { | ||||
|         // TODO - Open email | ||||
|       leading: FaIcon(FontAwesomeIcons.at, color: COLOR_CLICK), | ||||
|       onTap: () async { | ||||
|         openLink("mailto:${widget.company.email}"); | ||||
|       }, | ||||
|     )); | ||||
|  | ||||
| @@ -171,9 +173,9 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> { | ||||
|   if (widget.company.phone.isNotEmpty) { | ||||
|     tiles.add(ListTile( | ||||
|       title: Text("${widget.company.phone}"), | ||||
|       leading: FaIcon(FontAwesomeIcons.phone), | ||||
|       leading: FaIcon(FontAwesomeIcons.phone, color: COLOR_CLICK), | ||||
|       onTap: () { | ||||
|         // TODO - Call phone number | ||||
|         openLink("tel:${widget.company.phone}"); | ||||
|       }, | ||||
|     )); | ||||
|  | ||||
| @@ -256,10 +258,7 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> { | ||||
|     } | ||||
|  | ||||
|     if (widget.company.isCustomer) { | ||||
|  | ||||
|       // TODO - Add list of sales orders | ||||
|  | ||||
|       tiles.add(Divider()); | ||||
|     } | ||||
|  | ||||
|     if (widget.company.notes.isNotEmpty) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user