2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-04-27 21:16:48 +00:00

Code Cleanup (#312)

* Open email and telephone links for company

* Cleanup imports
This commit is contained in:
Oliver 2023-04-11 22:38:57 +10:00 committed by GitHub
parent 946abb60a0
commit 164295c3e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 74 additions and 56 deletions

View File

@ -12,22 +12,31 @@
<string>6.0</string>
<key>CFBundleLocalizations</key>
<array>
<string>de</string>
<string>el</string>
<string>cs-CZ</string>
<string>da-DK</string>
<string>de-DE</string>
<string>el-GR</string>
<string>en</string>
<string>es</string>
<string>fr</string>
<string>he</string>
<string>it</string>
<string>ja</string>
<string>ko</string>
<string>nl</string>
<string>no</string>
<string>pl</string>
<string>ru</string>
<string>sv</string>
<string>tr</string>
<string>vi</string>
<string>es-ES</string>
<string>es-MX</string>
<string>fa-IR</string>
<string>fr-FR</string>
<string>he-IL</string>
<string>hu-HU</string>
<string>id-ID</string>
<string>it-IT</string>
<string>ja-JP</string>
<string>ko-KR</string>
<string>nl-NL</string>
<string>no-NO</string>
<string>pl-PL</string>
<string>pt-BR</string>
<string>pt-PT</string>
<string>ru-RU</string>
<string>sv-SE</string>
<string>th-TH</string>
<string>tr-TR</string>
<string>vi-VN</string>
<string>zh-CN</string>
</array>
<key>CFBundleName</key>
@ -69,7 +78,10 @@
<false/>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>http</string>
<string>https</string>
<string>mailto</string>
<string>tel</string>
</array>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>

View File

@ -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
*/

View File

@ -1,5 +1,4 @@
import "package:inventree/inventree/model.dart";
import "package:inventree/inventree/part.dart";

View File

@ -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

View File

@ -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";

View File

@ -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;

View File

@ -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 {

View File

@ -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 {

View File

@ -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(

View File

@ -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) {