mirror of
https://git.meshkee.com/applications/cssd.git
synced 2026-10-13 02:48:56 +03:30
Fix export issue
This commit is contained in:
@@ -11,6 +11,7 @@ import 'package:flutter_downloader/flutter_downloader.dart';
|
|||||||
import 'package:permission_handler/permission_handler.dart';
|
import 'package:permission_handler/permission_handler.dart';
|
||||||
|
|
||||||
import '../../config/routes.dart';
|
import '../../config/routes.dart';
|
||||||
|
import '../../providers/auth.dart';
|
||||||
import '../../providers/connectivity.dart';
|
import '../../providers/connectivity.dart';
|
||||||
import '../../widgets/CycleScreens/Result/banner.dart';
|
import '../../widgets/CycleScreens/Result/banner.dart';
|
||||||
import '../../widgets/CycleScreens/Result/search_box.dart';
|
import '../../widgets/CycleScreens/Result/search_box.dart';
|
||||||
@@ -38,23 +39,25 @@ class _ItemResultScreenState extends State<ItemResultScreen> {
|
|||||||
void initState() {
|
void initState() {
|
||||||
sc = new ScrollController();
|
sc = new ScrollController();
|
||||||
super.initState();
|
super.initState();
|
||||||
IsolateNameServer.registerPortWithName(_port.sendPort, 'downloader_send_port');
|
IsolateNameServer.registerPortWithName(
|
||||||
|
_port.sendPort, 'downloader_send_port');
|
||||||
_port.listen((dynamic data) {
|
_port.listen((dynamic data) {
|
||||||
String id = data[0];
|
String id = data[0];
|
||||||
DownloadTaskStatus status = data[1];
|
DownloadTaskStatus status = data[1];
|
||||||
int progress = data[2];
|
int progress = data[2];
|
||||||
if (status == DownloadTaskStatus.complete) {
|
if (status == DownloadTaskStatus.complete) {
|
||||||
print('Downloaded');
|
print('Downloaded');
|
||||||
}
|
}
|
||||||
setState((){ });
|
setState(() {});
|
||||||
});
|
});
|
||||||
|
|
||||||
FlutterDownloader.registerCallback(downloadCallback);
|
FlutterDownloader.registerCallback(downloadCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@pragma('vm:entry-point')
|
@pragma('vm:entry-point')
|
||||||
static void downloadCallback(String id, int status, int progress) {
|
static void downloadCallback(String id, int status, int progress) {
|
||||||
final SendPort? send = IsolateNameServer.lookupPortByName('downloader_send_port');
|
final SendPort? send =
|
||||||
|
IsolateNameServer.lookupPortByName('downloader_send_port');
|
||||||
send!.send([id, status, progress]);
|
send!.send([id, status, progress]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,7 +109,12 @@ class _ItemResultScreenState extends State<ItemResultScreen> {
|
|||||||
),
|
),
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
titleSpacing: -10,
|
titleSpacing: -10,
|
||||||
title: Text('Home', style: TextStyle(color: Colors.white,),),
|
title: Text(
|
||||||
|
'Home',
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
),
|
||||||
backgroundColor: Colors.black,
|
backgroundColor: Colors.black,
|
||||||
leading: IconButton(
|
leading: IconButton(
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
@@ -281,30 +289,33 @@ class ItemResultFloatingButton extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final userData = Provider.of<Auth>(context, listen: false).user;
|
||||||
return Row(
|
return Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
InkWell(
|
if (userData['roles'].contains('Supervisor') ||
|
||||||
customBorder: CircleBorder(),
|
userData['roles'].contains('Admin'))
|
||||||
onTap: () async {
|
InkWell(
|
||||||
var status = await Permission.storage.request();
|
customBorder: CircleBorder(),
|
||||||
if (status.isGranted) {
|
onTap: () async {
|
||||||
Provider.of<ItemProvider>(context, listen: false).exportItems();
|
var status = await Permission.storage.request();
|
||||||
}
|
if (status.isGranted) {
|
||||||
},
|
Provider.of<ItemProvider>(context, listen: false).exportItems();
|
||||||
child: Container(
|
}
|
||||||
padding: EdgeInsets.all(_deviceBlockSize),
|
},
|
||||||
decoration: BoxDecoration(
|
child: Container(
|
||||||
shape: BoxShape.circle,
|
padding: EdgeInsets.all(_deviceBlockSize),
|
||||||
color: Colors.black,
|
decoration: BoxDecoration(
|
||||||
),
|
shape: BoxShape.circle,
|
||||||
child: Icon(
|
color: Colors.black,
|
||||||
Icons.import_export,
|
),
|
||||||
size: 10 * _deviceBlockSize,
|
child: Icon(
|
||||||
color: Colors.white,
|
Icons.import_export,
|
||||||
|
size: 10 * _deviceBlockSize,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 2 * _deviceBlockSize,
|
width: 2 * _deviceBlockSize,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import 'package:flutter_downloader/flutter_downloader.dart';
|
|||||||
import 'package:permission_handler/permission_handler.dart';
|
import 'package:permission_handler/permission_handler.dart';
|
||||||
|
|
||||||
import '../../config/routes.dart';
|
import '../../config/routes.dart';
|
||||||
|
import '../../providers/auth.dart';
|
||||||
import '../../providers/connectivity.dart';
|
import '../../providers/connectivity.dart';
|
||||||
import '../../widgets/CycleScreens/Result/banner.dart';
|
import '../../widgets/CycleScreens/Result/banner.dart';
|
||||||
import '../../widgets/CycleScreens/Result/search_box.dart';
|
import '../../widgets/CycleScreens/Result/search_box.dart';
|
||||||
@@ -254,9 +255,12 @@ class PackageResultFloatingButton extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final userData = Provider.of<Auth>(context, listen: false).user;
|
||||||
return Row(
|
return Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
|
if (userData['roles'].contains('Supervisor') ||
|
||||||
|
userData['roles'].contains('Admin'))
|
||||||
InkWell(
|
InkWell(
|
||||||
customBorder: CircleBorder(),
|
customBorder: CircleBorder(),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
|||||||
@@ -379,8 +379,14 @@ class ItemProvider extends ChangeNotifier {
|
|||||||
final taskId = await FlutterDownloader.enqueue(
|
final taskId = await FlutterDownloader.enqueue(
|
||||||
url: Url.exportItems,
|
url: Url.exportItems,
|
||||||
savedDir: baseStorage!.path,
|
savedDir: baseStorage!.path,
|
||||||
|
headers: {
|
||||||
|
'Authorization': User.token,
|
||||||
|
"Accept": "*"
|
||||||
|
},
|
||||||
showNotification: true,
|
showNotification: true,
|
||||||
openFileFromNotification: true,
|
openFileFromNotification: true,
|
||||||
|
saveInPublicStorage: true,
|
||||||
|
fileName: "Items " + DateTime.now().toString() + ".xlsx",
|
||||||
);
|
);
|
||||||
print(taskId);
|
print(taskId);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -342,9 +342,15 @@ class PackageProvider extends ChangeNotifier {
|
|||||||
final baseStorage = await getExternalStorageDirectory();
|
final baseStorage = await getExternalStorageDirectory();
|
||||||
final taskId = await FlutterDownloader.enqueue(
|
final taskId = await FlutterDownloader.enqueue(
|
||||||
url: Url.exportPackages,
|
url: Url.exportPackages,
|
||||||
|
headers: {
|
||||||
|
'Authorization': User.token,
|
||||||
|
"Accept": "*"
|
||||||
|
},
|
||||||
savedDir: baseStorage!.path,
|
savedDir: baseStorage!.path,
|
||||||
showNotification: true,
|
showNotification: true,
|
||||||
openFileFromNotification: true,
|
openFileFromNotification: true,
|
||||||
|
saveInPublicStorage: true,
|
||||||
|
fileName: "Packages " + DateTime.now().toString() + ".xlsx",
|
||||||
);
|
);
|
||||||
print(taskId);
|
print(taskId);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user