From 632b8b99befa85836d18d910a83c49ef0c529326 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Thu, 28 Nov 2019 20:39:16 +0200 Subject: [PATCH] Settings --- lib/data/models/company_model.dart | 3 + lib/data/models/company_model.g.dart | 30 +- lib/data/models/entities.dart | 42 +-- lib/data/models/entities.g.dart | 279 ------------------ lib/data/models/serializers.dart | 1 - lib/data/models/serializers.g.dart | 9 +- .../repositories/dashboard_repository.dart | 33 --- lib/redux/app/app_reducer.dart | 4 - lib/redux/app/app_state.dart | 8 +- lib/redux/company/company_reducer.dart | 5 - lib/redux/company/company_state.dart | 15 - lib/redux/company/company_state.g.dart | 34 +-- lib/redux/dashboard/dashboard_actions.dart | 33 --- lib/redux/dashboard/dashboard_middleware.dart | 48 +-- lib/redux/dashboard/dashboard_reducer.dart | 11 - lib/redux/dashboard/dashboard_state.dart | 33 --- lib/redux/dashboard/dashboard_state.g.dart | 157 ---------- lib/redux/document/document_middleware.dart | 6 +- lib/redux/expense/expense_middleware.dart | 12 +- lib/redux/project/project_middleware.dart | 6 +- lib/redux/quote/quote_middleware.dart | 6 +- lib/redux/vendor/vendor_middleware.dart | 10 +- lib/ui/app/invoice/invoice_email_view.dart | 3 - lib/ui/app/main_screen.dart | 4 +- lib/ui/app/menu_drawer_vm.dart | 4 +- lib/ui/dashboard/dashboard_activity.dart | 8 +- lib/ui/dashboard/dashboard_overview.dart | 5 - lib/ui/dashboard/dashboard_screen_vm.dart | 6 +- lib/ui/settings/device_settings_list_vm.dart | 3 +- 29 files changed, 78 insertions(+), 740 deletions(-) delete mode 100644 lib/data/repositories/dashboard_repository.dart diff --git a/lib/data/models/company_model.dart b/lib/data/models/company_model.dart index a604f538e..00290e7ef 100644 --- a/lib/data/models/company_model.dart +++ b/lib/data/models/company_model.dart @@ -50,6 +50,7 @@ abstract class CompanyEntity extends Object users: BuiltList(), userMap: BuiltMap(), customFields: BuiltMap(), + activities: BuiltList(), ); } @@ -136,6 +137,8 @@ abstract class CompanyEntity extends Object BuiltList get groups; + BuiltList get activities; + // TODO remove this @nullable @BuiltValueField(wireName: 'tax_rates') diff --git a/lib/data/models/company_model.g.dart b/lib/data/models/company_model.g.dart index 80bd06ec7..bdce6aab9 100644 --- a/lib/data/models/company_model.g.dart +++ b/lib/data/models/company_model.g.dart @@ -58,6 +58,10 @@ class _$CompanyEntitySerializer implements StructuredSerializer { serializers.serialize(object.groups, specifiedType: const FullType(BuiltList, const [const FullType(GroupEntity)])), + 'activities', + serializers.serialize(object.activities, + specifiedType: const FullType( + BuiltList, const [const FullType(ActivityEntity)])), 'taskStatusMap', serializers.serialize(object.taskStatusMap, specifiedType: const FullType(BuiltMap, const [ @@ -360,6 +364,12 @@ class _$CompanyEntitySerializer implements StructuredSerializer { BuiltList, const [const FullType(GroupEntity)])) as BuiltList); break; + case 'activities': + result.activities.replace(serializers.deserialize(value, + specifiedType: const FullType( + BuiltList, const [const FullType(ActivityEntity)])) + as BuiltList); + break; case 'tax_rates': result.taxRates.replace(serializers.deserialize(value, specifiedType: const FullType( @@ -2367,6 +2377,8 @@ class _$CompanyEntity extends CompanyEntity { @override final BuiltList groups; @override + final BuiltList activities; + @override final BuiltList taxRates; @override final BuiltList taskStatuses; @@ -2431,6 +2443,7 @@ class _$CompanyEntity extends CompanyEntity { this.firstDayOfWeek, this.firstMonthOfYear, this.groups, + this.activities, this.taxRates, this.taskStatuses, this.taskStatusMap, @@ -2483,6 +2496,9 @@ class _$CompanyEntity extends CompanyEntity { if (groups == null) { throw new BuiltValueNullFieldError('CompanyEntity', 'groups'); } + if (activities == null) { + throw new BuiltValueNullFieldError('CompanyEntity', 'activities'); + } if (taskStatusMap == null) { throw new BuiltValueNullFieldError('CompanyEntity', 'taskStatusMap'); } @@ -2527,6 +2543,7 @@ class _$CompanyEntity extends CompanyEntity { firstDayOfWeek == other.firstDayOfWeek && firstMonthOfYear == other.firstMonthOfYear && groups == other.groups && + activities == other.activities && taxRates == other.taxRates && taskStatuses == other.taskStatuses && taskStatusMap == other.taskStatusMap && @@ -2568,7 +2585,7 @@ class _$CompanyEntity extends CompanyEntity { $jc( $jc( $jc( - $jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc(0, enableCustomSurchargeTaxes1.hashCode), enableCustomSurchargeTaxes2.hashCode), enableCustomSurchargeTaxes3.hashCode), enableCustomSurchargeTaxes4.hashCode), sizeId.hashCode), industryId.hashCode), subdomain.hashCode), portalMode.hashCode), portalDomain.hashCode), updateProducts.hashCode), convertProductExchangeRate.hashCode), fillProducts.hashCode), enableProductCost.hashCode), enableProductQuantity.hashCode), enableInvoiceQuantity.hashCode), defaultQuantity.hashCode), plan.hashCode), companyKey.hashCode), appUrl.hashCode), firstDayOfWeek.hashCode), firstMonthOfYear.hashCode), groups.hashCode), + $jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc(0, enableCustomSurchargeTaxes1.hashCode), enableCustomSurchargeTaxes2.hashCode), enableCustomSurchargeTaxes3.hashCode), enableCustomSurchargeTaxes4.hashCode), sizeId.hashCode), industryId.hashCode), subdomain.hashCode), portalMode.hashCode), portalDomain.hashCode), updateProducts.hashCode), convertProductExchangeRate.hashCode), fillProducts.hashCode), enableProductCost.hashCode), enableProductQuantity.hashCode), enableInvoiceQuantity.hashCode), defaultQuantity.hashCode), plan.hashCode), companyKey.hashCode), appUrl.hashCode), firstDayOfWeek.hashCode), firstMonthOfYear.hashCode), groups.hashCode), activities.hashCode), taxRates.hashCode), taskStatuses.hashCode), taskStatusMap.hashCode), @@ -2615,6 +2632,7 @@ class _$CompanyEntity extends CompanyEntity { ..add('firstDayOfWeek', firstDayOfWeek) ..add('firstMonthOfYear', firstMonthOfYear) ..add('groups', groups) + ..add('activities', activities) ..add('taxRates', taxRates) ..add('taskStatuses', taskStatuses) ..add('taskStatusMap', taskStatusMap) @@ -2743,6 +2761,12 @@ class CompanyEntityBuilder _$this._groups ??= new ListBuilder(); set groups(ListBuilder groups) => _$this._groups = groups; + ListBuilder _activities; + ListBuilder get activities => + _$this._activities ??= new ListBuilder(); + set activities(ListBuilder activities) => + _$this._activities = activities; + ListBuilder _taxRates; ListBuilder get taxRates => _$this._taxRates ??= new ListBuilder(); @@ -2868,6 +2892,7 @@ class CompanyEntityBuilder _firstDayOfWeek = _$v.firstDayOfWeek; _firstMonthOfYear = _$v.firstMonthOfYear; _groups = _$v.groups?.toBuilder(); + _activities = _$v.activities?.toBuilder(); _taxRates = _$v.taxRates?.toBuilder(); _taskStatuses = _$v.taskStatuses?.toBuilder(); _taskStatusMap = _$v.taskStatusMap?.toBuilder(); @@ -2933,6 +2958,7 @@ class CompanyEntityBuilder firstDayOfWeek: firstDayOfWeek, firstMonthOfYear: firstMonthOfYear, groups: groups.build(), + activities: activities.build(), taxRates: _taxRates?.build(), taskStatuses: _taskStatuses?.build(), taskStatusMap: taskStatusMap.build(), @@ -2957,6 +2983,8 @@ class CompanyEntityBuilder try { _$failedField = 'groups'; groups.build(); + _$failedField = 'activities'; + activities.build(); _$failedField = 'taxRates'; _taxRates?.build(); _$failedField = 'taskStatuses'; diff --git a/lib/data/models/entities.dart b/lib/data/models/entities.dart index 259b97eec..a621197bd 100644 --- a/lib/data/models/entities.dart +++ b/lib/data/models/entities.dart @@ -274,19 +274,6 @@ abstract class LoginResponse static Serializer get serializer => _$loginResponseSerializer; } -abstract class DashboardResponse - implements Built { - factory DashboardResponse([void updates(DashboardResponseBuilder b)]) = - _$DashboardResponse; - - DashboardResponse._(); - - DashboardEntity get data; - - static Serializer get serializer => - _$dashboardResponseSerializer; -} - class CustomFieldType { static const String company = 'company'; static const String company1 = 'company1'; @@ -361,19 +348,6 @@ class CustomFieldType { static const String group4 = 'group4'; } -abstract class DashboardEntity - implements Built { - factory DashboardEntity([void updates(DashboardEntityBuilder b)]) = - _$DashboardEntity; - - DashboardEntity._(); - - BuiltList get activities; - - static Serializer get serializer => - _$dashboardEntitySerializer; -} - abstract class ActivityEntity implements Built { factory ActivityEntity([void updates(ActivityEntityBuilder b)]) = @@ -428,21 +402,21 @@ abstract class ActivityEntity String get taskId; EntityType get entityType { - if ([1, 2, 3, 26].contains(activityTypeId)) { + if (['1', '2', '3', '26'].contains(activityTypeId)) { return EntityType.client; - } else if ([4, 5, 6, 7, 8, 9, 25].contains(activityTypeId)) { + } else if (['4', '5', '6', '7', '8', '9', '25'].contains(activityTypeId)) { return EntityType.invoice; - } else if ([10, 11, 12, 13, 27].contains(activityTypeId)) { + } else if (['10', '11', '12', '13', '27'].contains(activityTypeId)) { return EntityType.payment; - } else if ([14, 15, 16, 17, 28, 39, 40, 41].contains(activityTypeId)) { + } else if (['14', '15', '16', '17', '28', '39', '40', '41'].contains(activityTypeId)) { return EntityType.credit; - } else if ([18, 19, 20, 21, 22, 23, 24, 29].contains(activityTypeId)) { + } else if (['18', '19', '20', '21', '22', '23', '24', '29'].contains(activityTypeId)) { return EntityType.quote; - } else if ([30, 31, 32, 33].contains(activityTypeId)) { + } else if (['30', '31', '32', '33'].contains(activityTypeId)) { return EntityType.vendor; - } else if ([34, 35, 36, 37, 47].contains(activityTypeId)) { + } else if (['34', '35', '36', '37', '47'].contains(activityTypeId)) { return EntityType.expense; - } else if ([42, 43, 44, 45, 46].contains(activityTypeId)) { + } else if (['42', '43', '44', '45', '46'].contains(activityTypeId)) { return EntityType.task; } else { return null; diff --git a/lib/data/models/entities.g.dart b/lib/data/models/entities.g.dart index 0f67435d9..c9a38954e 100644 --- a/lib/data/models/entities.g.dart +++ b/lib/data/models/entities.g.dart @@ -240,10 +240,6 @@ Serializer _$errorMessageSerializer = new _$ErrorMessageSerializer(); Serializer _$loginResponseSerializer = new _$LoginResponseSerializer(); -Serializer _$dashboardResponseSerializer = - new _$DashboardResponseSerializer(); -Serializer _$dashboardEntitySerializer = - new _$DashboardEntitySerializer(); Serializer _$activityEntitySerializer = new _$ActivityEntitySerializer(); @@ -408,94 +404,6 @@ class _$LoginResponseSerializer implements StructuredSerializer { } } -class _$DashboardResponseSerializer - implements StructuredSerializer { - @override - final Iterable types = const [DashboardResponse, _$DashboardResponse]; - @override - final String wireName = 'DashboardResponse'; - - @override - Iterable serialize(Serializers serializers, DashboardResponse object, - {FullType specifiedType = FullType.unspecified}) { - final result = [ - 'data', - serializers.serialize(object.data, - specifiedType: const FullType(DashboardEntity)), - ]; - - return result; - } - - @override - DashboardResponse deserialize( - Serializers serializers, Iterable serialized, - {FullType specifiedType = FullType.unspecified}) { - final result = new DashboardResponseBuilder(); - - final iterator = serialized.iterator; - while (iterator.moveNext()) { - final key = iterator.current as String; - iterator.moveNext(); - final dynamic value = iterator.current; - switch (key) { - case 'data': - result.data.replace(serializers.deserialize(value, - specifiedType: const FullType(DashboardEntity)) - as DashboardEntity); - break; - } - } - - return result.build(); - } -} - -class _$DashboardEntitySerializer - implements StructuredSerializer { - @override - final Iterable types = const [DashboardEntity, _$DashboardEntity]; - @override - final String wireName = 'DashboardEntity'; - - @override - Iterable serialize(Serializers serializers, DashboardEntity object, - {FullType specifiedType = FullType.unspecified}) { - final result = [ - 'activities', - serializers.serialize(object.activities, - specifiedType: const FullType( - BuiltList, const [const FullType(ActivityEntity)])), - ]; - - return result; - } - - @override - DashboardEntity deserialize( - Serializers serializers, Iterable serialized, - {FullType specifiedType = FullType.unspecified}) { - final result = new DashboardEntityBuilder(); - - final iterator = serialized.iterator; - while (iterator.moveNext()) { - final key = iterator.current as String; - iterator.moveNext(); - final dynamic value = iterator.current; - switch (key) { - case 'activities': - result.activities.replace(serializers.deserialize(value, - specifiedType: const FullType( - BuiltList, const [const FullType(ActivityEntity)])) - as BuiltList); - break; - } - } - - return result.build(); - } -} - class _$ActivityEntitySerializer implements StructuredSerializer { @override @@ -833,193 +741,6 @@ class LoginResponseBuilder } } -class _$DashboardResponse extends DashboardResponse { - @override - final DashboardEntity data; - - factory _$DashboardResponse( - [void Function(DashboardResponseBuilder) updates]) => - (new DashboardResponseBuilder()..update(updates)).build(); - - _$DashboardResponse._({this.data}) : super._() { - if (data == null) { - throw new BuiltValueNullFieldError('DashboardResponse', 'data'); - } - } - - @override - DashboardResponse rebuild(void Function(DashboardResponseBuilder) updates) => - (toBuilder()..update(updates)).build(); - - @override - DashboardResponseBuilder toBuilder() => - new DashboardResponseBuilder()..replace(this); - - @override - bool operator ==(Object other) { - if (identical(other, this)) return true; - return other is DashboardResponse && data == other.data; - } - - @override - int get hashCode { - return $jf($jc(0, data.hashCode)); - } - - @override - String toString() { - return (newBuiltValueToStringHelper('DashboardResponse')..add('data', data)) - .toString(); - } -} - -class DashboardResponseBuilder - implements Builder { - _$DashboardResponse _$v; - - DashboardEntityBuilder _data; - DashboardEntityBuilder get data => - _$this._data ??= new DashboardEntityBuilder(); - set data(DashboardEntityBuilder data) => _$this._data = data; - - DashboardResponseBuilder(); - - DashboardResponseBuilder get _$this { - if (_$v != null) { - _data = _$v.data?.toBuilder(); - _$v = null; - } - return this; - } - - @override - void replace(DashboardResponse other) { - if (other == null) { - throw new ArgumentError.notNull('other'); - } - _$v = other as _$DashboardResponse; - } - - @override - void update(void Function(DashboardResponseBuilder) updates) { - if (updates != null) updates(this); - } - - @override - _$DashboardResponse build() { - _$DashboardResponse _$result; - try { - _$result = _$v ?? new _$DashboardResponse._(data: data.build()); - } catch (_) { - String _$failedField; - try { - _$failedField = 'data'; - data.build(); - } catch (e) { - throw new BuiltValueNestedFieldError( - 'DashboardResponse', _$failedField, e.toString()); - } - rethrow; - } - replace(_$result); - return _$result; - } -} - -class _$DashboardEntity extends DashboardEntity { - @override - final BuiltList activities; - - factory _$DashboardEntity([void Function(DashboardEntityBuilder) updates]) => - (new DashboardEntityBuilder()..update(updates)).build(); - - _$DashboardEntity._({this.activities}) : super._() { - if (activities == null) { - throw new BuiltValueNullFieldError('DashboardEntity', 'activities'); - } - } - - @override - DashboardEntity rebuild(void Function(DashboardEntityBuilder) updates) => - (toBuilder()..update(updates)).build(); - - @override - DashboardEntityBuilder toBuilder() => - new DashboardEntityBuilder()..replace(this); - - @override - bool operator ==(Object other) { - if (identical(other, this)) return true; - return other is DashboardEntity && activities == other.activities; - } - - @override - int get hashCode { - return $jf($jc(0, activities.hashCode)); - } - - @override - String toString() { - return (newBuiltValueToStringHelper('DashboardEntity') - ..add('activities', activities)) - .toString(); - } -} - -class DashboardEntityBuilder - implements Builder { - _$DashboardEntity _$v; - - ListBuilder _activities; - ListBuilder get activities => - _$this._activities ??= new ListBuilder(); - set activities(ListBuilder activities) => - _$this._activities = activities; - - DashboardEntityBuilder(); - - DashboardEntityBuilder get _$this { - if (_$v != null) { - _activities = _$v.activities?.toBuilder(); - _$v = null; - } - return this; - } - - @override - void replace(DashboardEntity other) { - if (other == null) { - throw new ArgumentError.notNull('other'); - } - _$v = other as _$DashboardEntity; - } - - @override - void update(void Function(DashboardEntityBuilder) updates) { - if (updates != null) updates(this); - } - - @override - _$DashboardEntity build() { - _$DashboardEntity _$result; - try { - _$result = _$v ?? new _$DashboardEntity._(activities: activities.build()); - } catch (_) { - String _$failedField; - try { - _$failedField = 'activities'; - activities.build(); - } catch (e) { - throw new BuiltValueNestedFieldError( - 'DashboardEntity', _$failedField, e.toString()); - } - rethrow; - } - replace(_$result); - return _$result; - } -} - class _$ActivityEntity extends ActivityEntity { @override final String notes; diff --git a/lib/data/models/serializers.dart b/lib/data/models/serializers.dart index 1db69c9ce..dda6641f1 100644 --- a/lib/data/models/serializers.dart +++ b/lib/data/models/serializers.dart @@ -50,7 +50,6 @@ part 'serializers.g.dart'; LoginResponse, UserItemResponse, CompanyItemResponse, - DashboardResponse, ProductListResponse, ProductItemResponse, ClientListResponse, diff --git a/lib/data/models/serializers.g.dart b/lib/data/models/serializers.g.dart index 0929671b4..47953e96d 100644 --- a/lib/data/models/serializers.g.dart +++ b/lib/data/models/serializers.g.dart @@ -35,9 +35,6 @@ Serializers _$serializers = (new Serializers().toBuilder() ..add(CurrencyEntity.serializer) ..add(CurrencyItemResponse.serializer) ..add(CurrencyListResponse.serializer) - ..add(DashboardEntity.serializer) - ..add(DashboardResponse.serializer) - ..add(DashboardState.serializer) ..add(DashboardUIState.serializer) ..add(DateFormatEntity.serializer) ..add(DateFormatItemResponse.serializer) @@ -152,9 +149,6 @@ Serializers _$serializers = (new Serializers().toBuilder() ..add(VendorListResponse.serializer) ..add(VendorState.serializer) ..add(VendorUIState.serializer) - ..addBuilderFactory( - const FullType(BuiltList, const [const FullType(ActivityEntity)]), - () => new ListBuilder()) ..addBuilderFactory( const FullType(BuiltList, const [const FullType(ClientEntity)]), () => new ListBuilder()) @@ -259,6 +253,9 @@ Serializers _$serializers = (new Serializers().toBuilder() ..addBuilderFactory( const FullType(BuiltList, const [const FullType(GroupEntity)]), () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, const [const FullType(ActivityEntity)]), + () => new ListBuilder()) ..addBuilderFactory( const FullType(BuiltList, const [const FullType(TaxRateEntity)]), () => new ListBuilder()) diff --git a/lib/data/repositories/dashboard_repository.dart b/lib/data/repositories/dashboard_repository.dart deleted file mode 100644 index 25ca6a5c7..000000000 --- a/lib/data/repositories/dashboard_repository.dart +++ /dev/null @@ -1,33 +0,0 @@ -import 'dart:async'; -import 'dart:convert'; -import 'dart:core'; -import 'package:invoiceninja_flutter/.env.dart'; -import 'package:invoiceninja_flutter/data/mock/mock_dashboard.dart'; -import 'package:invoiceninja_flutter/data/models/serializers.dart'; -import 'package:invoiceninja_flutter/redux/app/app_state.dart'; -import 'package:invoiceninja_flutter/data/models/entities.dart'; -import 'package:invoiceninja_flutter/data/web_client.dart'; - -class DashboardRepository { - const DashboardRepository({ - this.webClient = const WebClient(), - }); - - final WebClient webClient; - - Future loadItem(Credentials connectionInfo) async { - dynamic response; - if (Config.DEMO_MODE) { - response = json.decode(kMockDashboard); - } else { - response = await webClient.get( - connectionInfo.url + '/dashboard?only_activity=true', - connectionInfo.token); - } - - final DashboardResponse dashboardResponse = - serializers.deserializeWith(DashboardResponse.serializer, response); - - return dashboardResponse.data; - } -} diff --git a/lib/redux/app/app_reducer.dart b/lib/redux/app/app_reducer.dart index 0f999c545..12c5438bb 100644 --- a/lib/redux/app/app_reducer.dart +++ b/lib/redux/app/app_reducer.dart @@ -1,6 +1,5 @@ import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/client/client_actions.dart'; -import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart'; import 'package:invoiceninja_flutter/redux/expense/expense_actions.dart'; import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart'; import 'package:invoiceninja_flutter/redux/payment/payment_actions.dart'; @@ -55,9 +54,6 @@ final lastErrorReducer = combineReducers([ TypedReducer((state, action) { return ''; }), - TypedReducer((state, action) { - return '${action.error}'; - }), TypedReducer((state, action) { return '${action.error}'; }), diff --git a/lib/redux/app/app_state.dart b/lib/redux/app/app_state.dart index 9b822e6cb..0b514b322 100644 --- a/lib/redux/app/app_state.dart +++ b/lib/redux/app/app_state.dart @@ -98,15 +98,12 @@ abstract class AppState implements Built { userCompanyStates[uiState.selectedCompanyIndex]; bool get isLoaded { - return dashboardState.isLoaded && - productState.isLoaded && + return productState.isLoaded && clientState.isLoaded; } CompanyEntity get company => userCompanyState.company; - DashboardState get dashboardState => userCompanyState.dashboardState; - DashboardUIState get dashboardUIState => uiState.dashboardUIState; UserEntity get user => userCompanyState.user; @@ -386,7 +383,8 @@ abstract class AppState implements Built { //return 'resetCounterFrequencyId: ${settingsUIState.settings.resetCounterFrequencyId}'; //return 'Fields: ${uiState.settingsUIState.company.customFields} - ${company.customFields}'; //return 'Custom: ${uiState.settingsUIState.company.settings.customValue1} - ${company.settings.customValue1}'; - return 'Platform: ${userCompany.token.token}'; + //return 'Platform: ${userCompany.token.token}'; + return 'Activites: ${company.activities}'; return 'Route: ${uiState.currentRoute} Prev: ${uiState.previousRoute}'; } } diff --git a/lib/redux/company/company_reducer.dart b/lib/redux/company/company_reducer.dart index ae853d917..c1a8735e0 100644 --- a/lib/redux/company/company_reducer.dart +++ b/lib/redux/company/company_reducer.dart @@ -7,7 +7,6 @@ import 'package:invoiceninja_flutter/redux/company/company_state.dart'; import 'package:invoiceninja_flutter/redux/product/product_reducer.dart'; import 'package:invoiceninja_flutter/redux/client/client_reducer.dart'; import 'package:invoiceninja_flutter/redux/invoice/invoice_reducer.dart'; -import 'package:invoiceninja_flutter/redux/dashboard/dashboard_reducer.dart'; import 'package:invoiceninja_flutter/redux/company/company_actions.dart'; import 'package:invoiceninja_flutter/redux/document/document_reducer.dart'; import 'package:invoiceninja_flutter/redux/expense/expense_reducer.dart'; @@ -18,11 +17,8 @@ import 'package:invoiceninja_flutter/redux/payment/payment_reducer.dart'; import 'package:invoiceninja_flutter/redux/quote/quote_reducer.dart'; // STARTER: import - do not remove comment import 'package:invoiceninja_flutter/redux/user/user_reducer.dart'; - import 'package:invoiceninja_flutter/redux/tax_rate/tax_rate_reducer.dart'; - import 'package:invoiceninja_flutter/redux/company_gateway/company_gateway_reducer.dart'; - import 'package:invoiceninja_flutter/redux/group/group_reducer.dart'; UserCompanyState companyReducer(UserCompanyState state, dynamic action) { @@ -34,7 +30,6 @@ UserCompanyState companyReducer(UserCompanyState state, dynamic action) { ..userCompany.replace(userCompanyEntityReducer(state.userCompany, action)) ..documentState.replace(documentsReducer(state.documentState, action)) ..clientState.replace(clientsReducer(state.clientState, action)) - ..dashboardState.replace(dashboardReducer(state.dashboardState, action)) ..productState.replace(productsReducer(state.productState, action)) ..invoiceState.replace(invoicesReducer(state.invoiceState, action)) ..expenseState.replace(expensesReducer(state.expenseState, action)) diff --git a/lib/redux/company/company_state.dart b/lib/redux/company/company_state.dart index 54c280ae0..3e48281e4 100644 --- a/lib/redux/company/company_state.dart +++ b/lib/redux/company/company_state.dart @@ -3,32 +3,20 @@ import 'package:invoiceninja_flutter/data/models/group_model.dart'; import 'package:invoiceninja_flutter/redux/client/client_state.dart'; import 'package:invoiceninja_flutter/redux/invoice/invoice_state.dart'; import 'package:invoiceninja_flutter/redux/product/product_state.dart'; -import 'package:invoiceninja_flutter/redux/dashboard/dashboard_state.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:built_value/built_value.dart'; import 'package:built_value/serializer.dart'; - // STARTER: import - do not remove comment import 'package:invoiceninja_flutter/redux/user/user_state.dart'; - import 'package:invoiceninja_flutter/redux/tax_rate/tax_rate_state.dart'; - import 'package:invoiceninja_flutter/redux/company_gateway/company_gateway_state.dart'; - import 'package:invoiceninja_flutter/redux/group/group_state.dart'; - import 'package:invoiceninja_flutter/redux/document/document_state.dart'; - import 'package:invoiceninja_flutter/redux/expense/expense_state.dart'; - import 'package:invoiceninja_flutter/redux/vendor/vendor_state.dart'; - import 'package:invoiceninja_flutter/redux/task/task_state.dart'; - import 'package:invoiceninja_flutter/redux/project/project_state.dart'; - import 'package:invoiceninja_flutter/redux/payment/payment_state.dart'; - import 'package:invoiceninja_flutter/redux/quote/quote_state.dart'; part 'company_state.g.dart'; @@ -39,7 +27,6 @@ abstract class UserCompanyState return _$UserCompanyState._( userCompany: UserCompanyEntity(), documentState: DocumentState(), - dashboardState: DashboardState(), productState: ProductState(), clientState: ClientState(), invoiceState: InvoiceState(), @@ -64,8 +51,6 @@ abstract class UserCompanyState DocumentState get documentState; - DashboardState get dashboardState; - ProductState get productState; ClientState get clientState; diff --git a/lib/redux/company/company_state.g.dart b/lib/redux/company/company_state.g.dart index db1bbd3fc..385f2a1a4 100644 --- a/lib/redux/company/company_state.g.dart +++ b/lib/redux/company/company_state.g.dart @@ -25,9 +25,6 @@ class _$UserCompanyStateSerializer 'documentState', serializers.serialize(object.documentState, specifiedType: const FullType(DocumentState)), - 'dashboardState', - serializers.serialize(object.dashboardState, - specifiedType: const FullType(DashboardState)), 'productState', serializers.serialize(object.productState, specifiedType: const FullType(ProductState)), @@ -98,10 +95,6 @@ class _$UserCompanyStateSerializer result.documentState.replace(serializers.deserialize(value, specifiedType: const FullType(DocumentState)) as DocumentState); break; - case 'dashboardState': - result.dashboardState.replace(serializers.deserialize(value, - specifiedType: const FullType(DashboardState)) as DashboardState); - break; case 'productState': result.productState.replace(serializers.deserialize(value, specifiedType: const FullType(ProductState)) as ProductState); @@ -303,8 +296,6 @@ class _$UserCompanyState extends UserCompanyState { @override final DocumentState documentState; @override - final DashboardState dashboardState; - @override final ProductState productState; @override final ClientState clientState; @@ -338,7 +329,6 @@ class _$UserCompanyState extends UserCompanyState { _$UserCompanyState._( {this.userCompany, this.documentState, - this.dashboardState, this.productState, this.clientState, this.invoiceState, @@ -356,9 +346,6 @@ class _$UserCompanyState extends UserCompanyState { if (documentState == null) { throw new BuiltValueNullFieldError('UserCompanyState', 'documentState'); } - if (dashboardState == null) { - throw new BuiltValueNullFieldError('UserCompanyState', 'dashboardState'); - } if (productState == null) { throw new BuiltValueNullFieldError('UserCompanyState', 'productState'); } @@ -415,7 +402,6 @@ class _$UserCompanyState extends UserCompanyState { return other is UserCompanyState && userCompany == other.userCompany && documentState == other.documentState && - dashboardState == other.dashboardState && productState == other.productState && clientState == other.clientState && invoiceState == other.invoiceState && @@ -448,13 +434,10 @@ class _$UserCompanyState extends UserCompanyState { $jc( $jc( $jc( - $jc( - 0, - userCompany - .hashCode), - documentState + 0, + userCompany .hashCode), - dashboardState + documentState .hashCode), productState.hashCode), clientState.hashCode), @@ -476,7 +459,6 @@ class _$UserCompanyState extends UserCompanyState { return (newBuiltValueToStringHelper('UserCompanyState') ..add('userCompany', userCompany) ..add('documentState', documentState) - ..add('dashboardState', dashboardState) ..add('productState', productState) ..add('clientState', clientState) ..add('invoiceState', invoiceState) @@ -510,12 +492,6 @@ class UserCompanyStateBuilder set documentState(DocumentStateBuilder documentState) => _$this._documentState = documentState; - DashboardStateBuilder _dashboardState; - DashboardStateBuilder get dashboardState => - _$this._dashboardState ??= new DashboardStateBuilder(); - set dashboardState(DashboardStateBuilder dashboardState) => - _$this._dashboardState = dashboardState; - ProductStateBuilder _productState; ProductStateBuilder get productState => _$this._productState ??= new ProductStateBuilder(); @@ -598,7 +574,6 @@ class UserCompanyStateBuilder if (_$v != null) { _userCompany = _$v.userCompany?.toBuilder(); _documentState = _$v.documentState?.toBuilder(); - _dashboardState = _$v.dashboardState?.toBuilder(); _productState = _$v.productState?.toBuilder(); _clientState = _$v.clientState?.toBuilder(); _invoiceState = _$v.invoiceState?.toBuilder(); @@ -638,7 +613,6 @@ class UserCompanyStateBuilder new _$UserCompanyState._( userCompany: _userCompany?.build(), documentState: documentState.build(), - dashboardState: dashboardState.build(), productState: productState.build(), clientState: clientState.build(), invoiceState: invoiceState.build(), @@ -659,8 +633,6 @@ class UserCompanyStateBuilder _userCompany?.build(); _$failedField = 'documentState'; documentState.build(); - _$failedField = 'dashboardState'; - dashboardState.build(); _$failedField = 'productState'; productState.build(); _$failedField = 'clientState'; diff --git a/lib/redux/dashboard/dashboard_actions.dart b/lib/redux/dashboard/dashboard_actions.dart index 19115e4c3..f02e649d6 100644 --- a/lib/redux/dashboard/dashboard_actions.dart +++ b/lib/redux/dashboard/dashboard_actions.dart @@ -1,8 +1,5 @@ -import 'dart:async'; - import 'package:flutter/widgets.dart'; import 'package:invoiceninja_flutter/data/models/dashboard_model.dart'; -import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; class ViewDashboard extends AbstractNavigatorAction implements PersistUI { @@ -22,33 +19,3 @@ class UpdateDashboardSettings implements PersistUI { String currencyId; } -class LoadDashboard { - LoadDashboard([this.completer, this.force = false]); - - final Completer completer; - final bool force; -} - -class LoadDashboardRequest implements StartLoading {} - -class LoadDashboardFailure implements StopLoading { - LoadDashboardFailure(this.error); - - final dynamic error; - - @override - String toString() { - return 'LoadDashboardFailure{error: $error}'; - } -} - -class LoadDashboardSuccess implements StopLoading, PersistData { - LoadDashboardSuccess(this.data); - - final DashboardEntity data; - - @override - String toString() { - return 'DashboardEntity{data: $data}'; - } -} diff --git a/lib/redux/dashboard/dashboard_middleware.dart b/lib/redux/dashboard/dashboard_middleware.dart index e41ca0c0f..d9a6b537c 100644 --- a/lib/redux/dashboard/dashboard_middleware.dart +++ b/lib/redux/dashboard/dashboard_middleware.dart @@ -1,23 +1,17 @@ import 'package:flutter/widgets.dart'; import 'package:invoiceninja_flutter/redux/app/app_middleware.dart'; -import 'package:invoiceninja_flutter/redux/client/client_actions.dart'; import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; import 'package:invoiceninja_flutter/ui/dashboard/dashboard_screen_vm.dart'; import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:redux/redux.dart'; import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; -import 'package:invoiceninja_flutter/data/repositories/dashboard_repository.dart'; -List> createStoreDashboardMiddleware([ - DashboardRepository repository = const DashboardRepository(), -]) { +List> createStoreDashboardMiddleware() { final viewDashboard = _createViewDashboard(); - final loadDashboard = _createLoadDashboard(repository); return [ TypedMiddleware(viewDashboard), - TypedMiddleware(loadDashboard), ]; } @@ -30,9 +24,11 @@ Middleware _createViewDashboard() { return; } + /* if (store.state.dashboardState.isStale) { - store.dispatch(LoadDashboard()); + store.dispatch(LoadActivities()); } + */ store.dispatch(UpdateCurrentRoute(DashboardScreenBuilder.route)); @@ -44,39 +40,3 @@ Middleware _createViewDashboard() { next(action); }; } - -Middleware _createLoadDashboard(DashboardRepository repository) { - return (Store store, dynamic dynamicAction, NextDispatcher next) { - final action = dynamicAction as LoadDashboard; - final state = store.state; - - if (!state.dashboardState.isStale && !action.force) { - next(action); - return; - } - - if (state.isLoading) { - next(action); - return; - } - - store.dispatch(LoadDashboardRequest()); - repository.loadItem(state.credentials).then((data) { - store.dispatch(LoadDashboardSuccess(data)); - if (action.completer != null) { - action.completer.complete(null); - } - if (state.clientState.isStale) { - store.dispatch(LoadClients()); - } - }).catchError((Object error) { - print(error); - if (action.completer != null) { - action.completer.completeError(error); - } - store.dispatch(LoadDashboardFailure(error)); - }); - - next(action); - }; -} diff --git a/lib/redux/dashboard/dashboard_reducer.dart b/lib/redux/dashboard/dashboard_reducer.dart index db45db58c..22d6e38e2 100644 --- a/lib/redux/dashboard/dashboard_reducer.dart +++ b/lib/redux/dashboard/dashboard_reducer.dart @@ -1,18 +1,7 @@ import 'package:invoiceninja_flutter/redux/company/company_actions.dart'; -import 'package:redux/redux.dart'; import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart'; import 'package:invoiceninja_flutter/redux/dashboard/dashboard_state.dart'; -final dashboardReducer = combineReducers([ - TypedReducer(_setLoadedDashboards), -]); - -DashboardState _setLoadedDashboards( - DashboardState dashboardState, LoadDashboardSuccess action) { - return dashboardState.rebuild((b) => b - ..lastUpdated = DateTime.now().millisecondsSinceEpoch - ..data.replace(action.data)); -} DashboardUIState dashboardUIReducer(DashboardUIState state, dynamic action) { if (action is UpdateDashboardSettings) { diff --git a/lib/redux/dashboard/dashboard_state.dart b/lib/redux/dashboard/dashboard_state.dart index 5c777c4a9..b49e31aa5 100644 --- a/lib/redux/dashboard/dashboard_state.dart +++ b/lib/redux/dashboard/dashboard_state.dart @@ -8,39 +8,6 @@ import 'package:invoiceninja_flutter/utils/formatting.dart'; part 'dashboard_state.g.dart'; -abstract class DashboardState - implements Built { - factory DashboardState() { - return _$DashboardState._( - data: null, - ); - } - - DashboardState._(); - - @nullable - int get lastUpdated; - - @nullable - DashboardEntity get data; - - bool get isStale { - if (!isLoaded) { - return true; - } - - return DateTime.now().millisecondsSinceEpoch - lastUpdated > - kMillisecondsToRefreshData; - } - - bool get isLoaded { - return lastUpdated != null && lastUpdated > 0; - } - - static Serializer get serializer => - _$dashboardStateSerializer; -} - abstract class DashboardUIState implements Built { factory DashboardUIState() { diff --git a/lib/redux/dashboard/dashboard_state.g.dart b/lib/redux/dashboard/dashboard_state.g.dart index 80d83b00d..470ac3592 100644 --- a/lib/redux/dashboard/dashboard_state.g.dart +++ b/lib/redux/dashboard/dashboard_state.g.dart @@ -6,65 +6,9 @@ part of 'dashboard_state.dart'; // BuiltValueGenerator // ************************************************************************** -Serializer _$dashboardStateSerializer = - new _$DashboardStateSerializer(); Serializer _$dashboardUIStateSerializer = new _$DashboardUIStateSerializer(); -class _$DashboardStateSerializer - implements StructuredSerializer { - @override - final Iterable types = const [DashboardState, _$DashboardState]; - @override - final String wireName = 'DashboardState'; - - @override - Iterable serialize(Serializers serializers, DashboardState object, - {FullType specifiedType = FullType.unspecified}) { - final result = []; - if (object.lastUpdated != null) { - result - ..add('lastUpdated') - ..add(serializers.serialize(object.lastUpdated, - specifiedType: const FullType(int))); - } - if (object.data != null) { - result - ..add('data') - ..add(serializers.serialize(object.data, - specifiedType: const FullType(DashboardEntity))); - } - return result; - } - - @override - DashboardState deserialize( - Serializers serializers, Iterable serialized, - {FullType specifiedType = FullType.unspecified}) { - final result = new DashboardStateBuilder(); - - final iterator = serialized.iterator; - while (iterator.moveNext()) { - final key = iterator.current as String; - iterator.moveNext(); - final dynamic value = iterator.current; - switch (key) { - case 'lastUpdated': - result.lastUpdated = serializers.deserialize(value, - specifiedType: const FullType(int)) as int; - break; - case 'data': - result.data.replace(serializers.deserialize(value, - specifiedType: const FullType(DashboardEntity)) - as DashboardEntity); - break; - } - } - - return result.build(); - } -} - class _$DashboardUIStateSerializer implements StructuredSerializer { @override @@ -163,107 +107,6 @@ class _$DashboardUIStateSerializer } } -class _$DashboardState extends DashboardState { - @override - final int lastUpdated; - @override - final DashboardEntity data; - - factory _$DashboardState([void Function(DashboardStateBuilder) updates]) => - (new DashboardStateBuilder()..update(updates)).build(); - - _$DashboardState._({this.lastUpdated, this.data}) : super._(); - - @override - DashboardState rebuild(void Function(DashboardStateBuilder) updates) => - (toBuilder()..update(updates)).build(); - - @override - DashboardStateBuilder toBuilder() => - new DashboardStateBuilder()..replace(this); - - @override - bool operator ==(Object other) { - if (identical(other, this)) return true; - return other is DashboardState && - lastUpdated == other.lastUpdated && - data == other.data; - } - - @override - int get hashCode { - return $jf($jc($jc(0, lastUpdated.hashCode), data.hashCode)); - } - - @override - String toString() { - return (newBuiltValueToStringHelper('DashboardState') - ..add('lastUpdated', lastUpdated) - ..add('data', data)) - .toString(); - } -} - -class DashboardStateBuilder - implements Builder { - _$DashboardState _$v; - - int _lastUpdated; - int get lastUpdated => _$this._lastUpdated; - set lastUpdated(int lastUpdated) => _$this._lastUpdated = lastUpdated; - - DashboardEntityBuilder _data; - DashboardEntityBuilder get data => - _$this._data ??= new DashboardEntityBuilder(); - set data(DashboardEntityBuilder data) => _$this._data = data; - - DashboardStateBuilder(); - - DashboardStateBuilder get _$this { - if (_$v != null) { - _lastUpdated = _$v.lastUpdated; - _data = _$v.data?.toBuilder(); - _$v = null; - } - return this; - } - - @override - void replace(DashboardState other) { - if (other == null) { - throw new ArgumentError.notNull('other'); - } - _$v = other as _$DashboardState; - } - - @override - void update(void Function(DashboardStateBuilder) updates) { - if (updates != null) updates(this); - } - - @override - _$DashboardState build() { - _$DashboardState _$result; - try { - _$result = _$v ?? - new _$DashboardState._( - lastUpdated: lastUpdated, data: _data?.build()); - } catch (_) { - String _$failedField; - try { - _$failedField = 'data'; - _data?.build(); - } catch (e) { - throw new BuiltValueNestedFieldError( - 'DashboardState', _$failedField, e.toString()); - } - rethrow; - } - replace(_$result); - return _$result; - } -} - class _$DashboardUIState extends DashboardUIState { @override final DateRange dateRange; diff --git a/lib/redux/document/document_middleware.dart b/lib/redux/document/document_middleware.dart index fc7fa48b1..401c10d35 100644 --- a/lib/redux/document/document_middleware.dart +++ b/lib/redux/document/document_middleware.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; -import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart'; +import 'package:invoiceninja_flutter/redux/client/client_actions.dart'; import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:redux/redux.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; @@ -245,8 +245,8 @@ Middleware _loadDocuments(DocumentRepository repository) { if (action.completer != null) { action.completer.complete(null); } - if (state.dashboardState.isStale) { - store.dispatch(LoadDashboard()); + if (state.clientState.isStale) { + store.dispatch(LoadClients()); } }).catchError((Object error) { print(error); diff --git a/lib/redux/expense/expense_middleware.dart b/lib/redux/expense/expense_middleware.dart index 95e31249f..249f27e5a 100644 --- a/lib/redux/expense/expense_middleware.dart +++ b/lib/redux/expense/expense_middleware.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:invoiceninja_flutter/redux/app/app_middleware.dart'; -import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart'; +import 'package:invoiceninja_flutter/redux/client/client_actions.dart'; import 'package:invoiceninja_flutter/redux/document/document_actions.dart'; import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:redux/redux.dart'; @@ -266,8 +266,8 @@ Middleware _loadExpenses(ExpenseRepository repository) { store.dispatch(LoadDocuments()); } } else { - if (state.dashboardState.isStale) { - store.dispatch(LoadDashboard()); + if (state.clientState.isStale) { + store.dispatch(LoadClients()); } } }).catchError((Object error) { @@ -276,12 +276,6 @@ Middleware _loadExpenses(ExpenseRepository repository) { if (action.completer != null) { action.completer.completeError(error); } - - // Support selfhost users with older versions - // TODO remove this in v2 - if (state.dashboardState.isStale) { - store.dispatch(LoadDashboard()); - } }); next(action); diff --git a/lib/redux/project/project_middleware.dart b/lib/redux/project/project_middleware.dart index 4a18a329a..7d023afa2 100644 --- a/lib/redux/project/project_middleware.dart +++ b/lib/redux/project/project_middleware.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:invoiceninja_flutter/redux/app/app_middleware.dart'; -import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart'; +import 'package:invoiceninja_flutter/redux/client/client_actions.dart'; import 'package:invoiceninja_flutter/redux/task/task_actions.dart'; import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:redux/redux.dart'; @@ -231,8 +231,8 @@ Middleware _loadProject(ProjectRepository repository) { if (action.completer != null) { action.completer.complete(null); } - if (state.dashboardState.isStale) { - store.dispatch(LoadDashboard()); + if (state.clientState.isStale) { + store.dispatch(LoadClients()); } }).catchError((Object error) { print(error); diff --git a/lib/redux/quote/quote_middleware.dart b/lib/redux/quote/quote_middleware.dart index 85561567b..c3e2b0eda 100644 --- a/lib/redux/quote/quote_middleware.dart +++ b/lib/redux/quote/quote_middleware.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/redux/app/app_middleware.dart'; -import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart'; +import 'package:invoiceninja_flutter/redux/client/client_actions.dart'; import 'package:invoiceninja_flutter/redux/project/project_actions.dart'; import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart'; import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; @@ -358,8 +358,8 @@ Middleware _loadQuotes(QuoteRepository repository) { store.dispatch(LoadProjects()); } } else { - if (state.dashboardState.isStale) { - store.dispatch(LoadDashboard()); + if (state.clientState.isStale) { + store.dispatch(LoadClients()); } } }).catchError((Object error) { diff --git a/lib/redux/vendor/vendor_middleware.dart b/lib/redux/vendor/vendor_middleware.dart index 7af3baf4c..ecc8902a3 100644 --- a/lib/redux/vendor/vendor_middleware.dart +++ b/lib/redux/vendor/vendor_middleware.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:invoiceninja_flutter/redux/app/app_middleware.dart'; -import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart'; import 'package:invoiceninja_flutter/redux/expense/expense_actions.dart'; import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:redux/redux.dart'; @@ -228,18 +227,15 @@ Middleware _loadVendor(VendorRepository repository) { if (action.completer != null) { action.completer.complete(null); } + if (state.expenseState.isStale) { + store.dispatch(LoadExpenses()); + } }).catchError((Object error) { print(error); store.dispatch(LoadVendorFailure(error)); if (action.completer != null) { action.completer.completeError(error); } - - // Support selfhost users with older versions - // TODO remove this in v2 - if (state.dashboardState.isStale) { - store.dispatch(LoadDashboard()); - } }); next(action); diff --git a/lib/ui/app/invoice/invoice_email_view.dart b/lib/ui/app/invoice/invoice_email_view.dart index a61de0cf1..1ddefbe55 100644 --- a/lib/ui/app/invoice/invoice_email_view.dart +++ b/lib/ui/app/invoice/invoice_email_view.dart @@ -144,9 +144,6 @@ class _InvoiceEmailViewState extends State return; } - final str = - '${_subjectController.text.trim()}

${_bodyController.text.trim()}'; - final subject =_subjectController.text.trim(); final body = _bodyController.text.trim(); diff --git a/lib/ui/app/main_screen.dart b/lib/ui/app/main_screen.dart index 1ab09b317..3b7273a61 100644 --- a/lib/ui/app/main_screen.dart +++ b/lib/ui/app/main_screen.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; -import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart'; +import 'package:invoiceninja_flutter/redux/client/client_actions.dart'; import 'package:invoiceninja_flutter/ui/app/history_drawer_vm.dart'; import 'package:invoiceninja_flutter/ui/app/menu_drawer_vm.dart'; import 'package:invoiceninja_flutter/ui/app/help_text.dart'; @@ -19,7 +19,7 @@ class MainScreen extends StatelessWidget { @override Widget build(BuildContext context) { return StoreBuilder( - onInit: (Store store) => store.dispatch(LoadDashboard()), + onInit: (Store store) => store.dispatch(LoadClients()), builder: (BuildContext context, Store store) { final uiState = store.state.uiState; final prefState = store.state.prefState; diff --git a/lib/ui/app/menu_drawer_vm.dart b/lib/ui/app/menu_drawer_vm.dart index 3e490ce93..24e96d81a 100644 --- a/lib/ui/app/menu_drawer_vm.dart +++ b/lib/ui/app/menu_drawer_vm.dart @@ -1,7 +1,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_redux/flutter_redux.dart'; -import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart'; +import 'package:invoiceninja_flutter/redux/client/client_actions.dart'; import 'package:invoiceninja_flutter/ui/app/app_builder.dart'; import 'package:redux/redux.dart'; import 'package:invoiceninja_flutter/ui/app/menu_drawer.dart'; @@ -54,7 +54,7 @@ class MenuDrawerVM { // TODO re-enable //store.dispatch(SelectCompany(int.parse(companyIndex), company)); - store.dispatch(LoadDashboard()); + store.dispatch(LoadClients()); AppBuilder.of(context).rebuild(); }, ); diff --git a/lib/ui/dashboard/dashboard_activity.dart b/lib/ui/dashboard/dashboard_activity.dart index 2706ff2ac..af0e3e225 100644 --- a/lib/ui/dashboard/dashboard_activity.dart +++ b/lib/ui/dashboard/dashboard_activity.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:invoiceninja_flutter/ui/app/lists/activity_list_tile.dart'; -import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart'; import 'package:invoiceninja_flutter/ui/dashboard/dashboard_screen_vm.dart'; class DashboardActivity extends StatelessWidget { @@ -13,11 +12,8 @@ class DashboardActivity extends StatelessWidget { @override Widget build(BuildContext context) { - if (!viewModel.dashboardState.isLoaded) { - return LoadingIndicator(); - } - - final activities = viewModel.dashboardState.data.activities; + final company = viewModel.state.company; + final activities = company.activities; return ListView.builder( itemCount: activities.length, diff --git a/lib/ui/dashboard/dashboard_overview.dart b/lib/ui/dashboard/dashboard_overview.dart index e60a2dca3..d4957bf9c 100644 --- a/lib/ui/dashboard/dashboard_overview.dart +++ b/lib/ui/dashboard/dashboard_overview.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart'; import 'package:invoiceninja_flutter/ui/dashboard/dashboard_screen_vm.dart'; class DashboardOverview extends StatelessWidget { @@ -12,10 +11,6 @@ class DashboardOverview extends StatelessWidget { @override Widget build(BuildContext context) { - if (!viewModel.dashboardState.isLoaded) { - return LoadingIndicator(); - } - return new Container(); } } diff --git a/lib/ui/dashboard/dashboard_screen_vm.dart b/lib/ui/dashboard/dashboard_screen_vm.dart index b18a8ca4a..639bbca4f 100644 --- a/lib/ui/dashboard/dashboard_screen_vm.dart +++ b/lib/ui/dashboard/dashboard_screen_vm.dart @@ -37,7 +37,6 @@ class DashboardVM { DashboardVM({ @required this.state, @required this.dashboardUIState, - @required this.dashboardState, @required this.currencyMap, @required this.isLoading, @required this.isNextEnabled, @@ -56,7 +55,8 @@ class DashboardVM { } final completer = snackBarCompleter( context, AppLocalization.of(context).refreshComplete); - store.dispatch(LoadDashboard(completer, true)); + // TODO implement + //store.dispatch(LoadCompany(completer, true)); return completer.future; } @@ -66,7 +66,6 @@ class DashboardVM { return DashboardVM( state: state, dashboardUIState: state.dashboardUIState, - dashboardState: state.dashboardState, currencyMap: state.staticState.currencyMap, isLoading: state.isLoading, isNextEnabled: @@ -85,7 +84,6 @@ class DashboardVM { } final AppState state; - final DashboardState dashboardState; final DashboardUIState dashboardUIState; final BuiltMap currencyMap; final String filter; diff --git a/lib/ui/settings/device_settings_list_vm.dart b/lib/ui/settings/device_settings_list_vm.dart index 849452f4c..1fe09f3eb 100644 --- a/lib/ui/settings/device_settings_list_vm.dart +++ b/lib/ui/settings/device_settings_list_vm.dart @@ -6,6 +6,7 @@ import 'package:invoiceninja_flutter/constants.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/auth/auth_actions.dart'; +import 'package:invoiceninja_flutter/redux/client/client_actions.dart'; import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart'; import 'package:invoiceninja_flutter/redux/ui/pref_state.dart'; import 'package:invoiceninja_flutter/ui/app/app_builder.dart'; @@ -68,7 +69,7 @@ class DeviceSettingsVM { )); AppBuilder.of(context).rebuild(); - store.dispatch(LoadDashboard()); + store.dispatch(LoadClients()); } return DeviceSettingsVM(