diff --git a/lib/constants.dart b/lib/constants.dart index 07251bd0f..1eb3e5736 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -515,7 +515,7 @@ const Map kModules = { kModuleTasks: 'tasks', kModuleVendors: 'vendors', kModuleExpenses: 'expenses', - //kModuleRecurringExpenses: 'recurring_expenses', + kModuleRecurringExpenses: 'recurring_expenses', //kModuleTickets: 'tickets', //kModuleRecurringTasks: 'recurring_tasks', //kModuleRecurringQuotes: 'recurring_quotes', diff --git a/lib/ui/app/menu_drawer.dart b/lib/ui/app/menu_drawer.dart index ef9ad912e..5dbdc563f 100644 --- a/lib/ui/app/menu_drawer.dart +++ b/lib/ui/app/menu_drawer.dart @@ -419,14 +419,12 @@ class MenuDrawer extends StatelessWidget { iconTooltip: localization.newExpense, ), // STARTER: menu - do not remove comment - /* DrawerTile( company: company, entityType: EntityType.recurringExpense, icon: getEntityIcon(EntityType.recurringExpense), title: localization.recurringExpenses, ), - */ DrawerTile( company: company, icon: getEntityIcon(EntityType.reports), diff --git a/lib/utils/files.dart b/lib/utils/files.dart index 7d6e2dee2..717622fc0 100644 --- a/lib/utils/files.dart +++ b/lib/utils/files.dart @@ -1,11 +1,13 @@ import 'dart:io'; import 'package:file_picker/file_picker.dart'; -//import 'package:filepicker_windows/filepicker_windows.dart'; import 'package:flutter/foundation.dart'; import 'package:http/http.dart'; import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:permission_handler/permission_handler.dart'; +// ignore: unused_import +import 'package:invoiceninja_flutter/utils/web_stub.dart' + if (dart.library.html) 'package:invoiceninja_flutter/utils/web.dart'; Future pickFile( {String fileIndex, @@ -18,19 +20,10 @@ Future pickFile( allowedExtensions: allowedExtensions, ); } else if (isWindows()) { - /* - final filePicker = OpenFilePicker(); - final file = filePicker.getFile(); - - if (file == null) { - return null; - } - - return MultipartFile.fromBytes( - fileIndex ?? 'file', await file.readAsBytes(), - filename: file.path.split('\\').last.split('/').last); - */ - return null; + return WebUtils.pickFile( + fileIndex: fileIndex, + allowedExtensions: allowedExtensions, + fileType: fileType); } else { final permission = await (fileType == FileType.image && Platform.isIOS ? Permission.photos.status diff --git a/lib/utils/web.dart b/lib/utils/web.dart index df5631234..54039caab 100644 --- a/lib/utils/web.dart +++ b/lib/utils/web.dart @@ -2,6 +2,8 @@ import 'dart:convert'; import 'dart:html'; import 'dart:typed_data'; import 'dart:ui' as ui; +import 'package:file_picker/file_picker.dart'; +import 'package:http/http.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; import 'package:redux/redux.dart'; @@ -62,6 +64,13 @@ class WebUtils { }); } + static Future pickFile( + {String fileIndex, + FileType fileType, + List allowedExtensions}) async { + return null; + } + /* String loadToken() { final cookies = document.cookie; diff --git a/lib/utils/web_stub.dart b/lib/utils/web_stub.dart index eff22927b..bf603f8f4 100644 --- a/lib/utils/web_stub.dart +++ b/lib/utils/web_stub.dart @@ -1,5 +1,8 @@ import 'dart:typed_data'; +import 'package:file_picker/file_picker.dart'; +import 'package:filepicker_windows/filepicker_windows.dart'; +import 'package:http/http.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:redux/redux.dart'; @@ -20,6 +23,22 @@ class WebUtils { static void warnChanges(Store store) {} + static Future pickFile( + {String fileIndex, + FileType fileType, + List allowedExtensions}) async { + final filePicker = OpenFilePicker(); + final file = filePicker.getFile(); + + if (file == null) { + return null; + } + + return MultipartFile.fromBytes( + fileIndex ?? 'file', await file.readAsBytes(), + filename: file.path.split('\\').last.split('/').last); + } + /* static String loadToken() => null;