ppm attachments fix

main_design2.0
Sikander Saleem 2 years ago
parent a9d4d2a373
commit d63a18226a

@ -120,7 +120,7 @@ class Pentry {
List<String> files = [];
if (map["vAttachments"] != null) if (map["vAttachments"] is List) {
List list = map["vAttachments"];
files = list.map((e) => URLs.getFileUrl(e["name"])).toList();
files = list.map((e) => URLs.getFileUrl(e["attachmentName"])).toList();
}
List<PPMCheckList> ppmCheckLists = [];
if (map['vChecklists'] != null) {

@ -1,3 +1,4 @@
import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/pantry/pentry.dart';
@ -50,7 +51,9 @@ class Visit {
List<String> images = [];
if (parsedJson["vAttachments"] is List) {
List list = parsedJson["vAttachments"];
images = list.map((e) => e["attachmentURL"].toString()).toList();
images = list.map((e) {
return URLs.getFileUrl(e["attachmentURL"].toString());
}).toList();
}
return Visit(
id: parsedJson["id"],

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/models/visits/visit.dart';
import 'package:test_sa/views/app_style/colors.dart';
@ -8,6 +9,7 @@ import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/pages/user/visits/pantry/edit_pentry.dart';
import 'package:test_sa/views/widgets/buttons/app_back_button.dart';
import 'package:test_sa/views/widgets/buttons/app_icon_button.dart';
import 'package:test_sa/views/widgets/images/files_list.dart';
import 'package:test_sa/views/widgets/images/images_list.dart';
import 'package:test_sa/views/widgets/requests/info_row.dart';
import 'package:test_sa/views/widgets/visits/visit_status.dart';
@ -21,6 +23,7 @@ class VisitDetailsPage extends StatelessWidget {
final Visit visit;
const VisitDetailsPage({Key key, this.visit}) : super(key: key);
@override
Widget build(BuildContext context) {
Subtitle subtitle = AppLocalization.of(context).subtitle;
@ -70,44 +73,45 @@ class VisitDetailsPage extends StatelessWidget {
padding: const EdgeInsets.symmetric(horizontal: 16),
children: [
const SizedBox(height: 8),
MaterialButton(
padding: EdgeInsets.zero,
onPressed: () {
if ((visit.images?.isNotEmpty ?? false) && (visit.images?.first?.isNotEmpty ?? false)) {
Navigator.of(context).push(
MaterialPageRoute(
builder: (_) => Scaffold(
body: InteractiveViewer(
child: Center(
child: ImageLoader(
url: visit.images.first,
boxFit: BoxFit.contain,
),
),
),
),
),
);
}
},
child: SizedBox(
height: 140 * AppStyle.getScaleFactor(context),
width: MediaQuery.of(context).size.width,
child: ImageLoader(
url: visit.images.isEmpty ? " " : visit.images.first,
boxFit: BoxFit.cover,
// MaterialButton(
// padding: EdgeInsets.zero,
// onPressed: () {
// if ((visit.images?.isNotEmpty ?? false) && (visit.images?.first?.isNotEmpty ?? false)) {
// Navigator.of(context).push(
// MaterialPageRoute(
// builder: (_) => Scaffold(
// body: InteractiveViewer(
// child: Center(
// child: ImageLoader(
// url: visit.images.first,
// boxFit: BoxFit.contain,
// ),
// ),
// ),
// ),
// ),
// );
// }
// },
// child: SizedBox(
// height: 140 * AppStyle.getScaleFactor(context),
// width: MediaQuery.of(context).size.width,
// child: ImageLoader(
// url: visit.images.isEmpty ? " " : visit.images.first,
// boxFit: BoxFit.cover,
// ),
// ),
// ),
// const SizedBox(
// height: 8,
// ),
if (visit?.images?.isNotEmpty ?? false)
SizedBox(
height: 60 * AppStyle.getScaleFactor(context),
child: FilesList(
images: visit.images,
),
),
),
const SizedBox(
height: 8,
),
SizedBox(
height: 60 * AppStyle.getScaleFactor(context),
child: ImagesList(
images: visit.images,
),
),
).paddingOnly(top: 4, bottom: 4),
const SizedBox(
height: 8,
),

@ -21,12 +21,16 @@ class FilesList extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ListView.separated(
padding: padding ?? EdgeInsets.symmetric(horizontal: 32 * AppStyle.getScaleFactor(context)),
scrollDirection: Axis.horizontal,
itemCount: images.length,
itemCount: images?.length ?? 0,
separatorBuilder: (context, itemIndex) => 8.width,
itemBuilder: (context, itemIndex) {
if (images[itemIndex] == null || !images[itemIndex].contains(".")) {
return Text("Bad\nFile");
}
var isImage =
images[itemIndex].split(".").last.toLowerCase() == "png" || images[itemIndex].split(".").last.toLowerCase() == "jpg" || images[itemIndex].split(".").last.toLowerCase() == "jpeg";
var isPdf = images[itemIndex].split(".").last.toLowerCase() == "pdf";
@ -59,9 +63,13 @@ class FilesList extends StatelessWidget {
} else if (_isLocalUrl(images[itemIndex])) {
OpenFile.open(images[itemIndex]);
} else {
if (!await launchUrl(Uri.parse(images[itemIndex]), mode: LaunchMode.externalApplication)) {
Fluttertoast.showToast(msg: "UnExpected Error with file.");
throw Exception('Could not launch ');
try {
if (!await launchUrl(Uri.parse(images[itemIndex]), mode: LaunchMode.externalApplication)) {
Fluttertoast.showToast(msg: "UnExpected Error with file.");
throw Exception('Could not launch ');
}
} catch (ex) {
Fluttertoast.showToast(msg: "No Viewer found.");
}
}
});

Loading…
Cancel
Save