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:
parent
946abb60a0
commit
164295c3e2
@ -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/>
|
||||
|
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user