2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-06-14 03:05:32 +00:00

Add function to open a link

- Does not seem to actually ... work.. yet
This commit is contained in:
Oliver Walters
2021-01-21 21:14:42 +11:00
parent fc6e90ce0b
commit 02cfeef31e
5 changed files with 68 additions and 7 deletions

View File

@ -3,6 +3,7 @@ import 'dart:async';
import 'package:InvenTree/api.dart';
import 'package:InvenTree/widget/dialogs.dart';
import 'package:flutter/cupertino.dart';
import 'package:url_launcher/url_launcher.dart';
import 'dart:convert';
@ -54,6 +55,19 @@ class InvenTreeModel {
// Legacy API provided external link as "URL", while newer API uses "link"
String get link => jsondata['link'] ?? jsondata['URL'] ?? '';
void openLink() async {
if (link.isNotEmpty) {
print("Opening link: ${link}");
if (await canLaunch(link)) {
await launch(url);
} else {
// TODO
}
}
}
String get keywords => jsondata['keywords'] as String ?? '';
// Create a new object from JSON data (not a constructor!)

View File

@ -267,6 +267,7 @@ class PartList extends StatelessWidget {
return ListTile(
title: Text("${part.name}"),
subtitle: Text("${part.description}"),
trailing: Text("${part.inStock}"),
leading: InvenTreeAPI().getImage(
part.thumbnail,
width: 40,

View File

@ -1,17 +1,18 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:InvenTree/inventree/part.dart';
import 'package:InvenTree/widget/category_display.dart';
import 'package:InvenTree/widget/dialogs.dart';
import 'package:InvenTree/widget/fields.dart';
import 'package:InvenTree/widget/part_stock_detail.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:InvenTree/api.dart';
import 'package:InvenTree/widget/refreshable_state.dart';
import 'package:InvenTree/widget/drawer.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
class PartDetailWidget extends StatefulWidget {
@ -268,7 +269,9 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
title: Text("${part.link}"),
leading: FaIcon(FontAwesomeIcons.link),
trailing: Text(""),
onTap: null,
onTap: () {
part.openLink();
},
)
);
}