Starter...

This commit is contained in:
Hillel Coren 2020-03-02 20:06:10 +02:00
parent 3d0f99c06e
commit c4418a3f6f
35 changed files with 109 additions and 39 deletions

View File

@ -36,11 +36,30 @@ abstract class CreditItemResponse
class CreditFields {
static const String amount = 'amount';
static const String balance = 'balance';
static const String creditDate = 'creditDate';
static const String creditNumber = 'creditNumber';
static const String privateNotes = 'privateNotes';
static const String publicNotes = 'publicNotes';
static const String clientId = 'clientId';
static const String client = 'client';
static const String statusId = 'statusId';
static const String number = 'number';
static const String discount = 'discount';
static const String poNumber = 'poNumber';
static const String date = 'date';
static const String dueDate = 'dueDate';
static const String terms = 'terms';
static const String footer = 'invoiceFooter';
static const String partial = 'partial';
static const String partialDueDate = 'partialDueDate';
static const String publicNotes = 'publicNotes';
static const String privateNotes = 'privateNotes';
static const String invoiceTypeId = 'invoiceTypeId';
static const String isRecurring = 'isRecurring';
static const String frequencyId = 'frequencyId';
static const String startDate = 'startDate';
static const String endDate = 'endDate';
static const String customValue1 = 'customValue1';
static const String customValue2 = 'customValue2';
static const String customValue3 = 'customValue3';
static const String customValue4 = 'customValue4';
static const String updatedAt = 'updatedAt';
static const String archivedAt = 'archivedAt';

View File

@ -39,25 +39,30 @@ abstract class QuoteItemResponse
class QuoteFields {
static const String amount = 'amount';
static const String balance = 'balance';
static const String client = 'client';
static const String clientId = 'clientId';
static const String client = 'client';
static const String statusId = 'statusId';
static const String number = 'number';
static const String discount = 'discount';
static const String poNumber = 'poNumber';
static const String date = 'date';
static const String dueDate = 'dueDate';
static const String validUntil = 'validUntil';
static const String terms = 'terms';
static const String footer = 'invoiceFooter';
static const String partial = 'partial';
static const String partialDueDate = 'partialDueDate';
static const String publicNotes = 'publicNotes';
static const String privateNotes = 'privateNotes';
static const String quoteTypeId = 'quoteTypeId';
static const String invoiceTypeId = 'invoiceTypeId';
static const String isRecurring = 'isRecurring';
static const String frequencyId = 'frequencyId';
static const String startDate = 'startDate';
static const String endDate = 'endDate';
static const String validUntil = 'validUntil';
static const String customValue1 = 'customValue1';
static const String customValue2 = 'customValue2';
static const String customValue3 = 'customValue3';
static const String customValue4 = 'customValue4';
static const String updatedAt = 'updatedAt';
static const String archivedAt = 'archivedAt';

View File

@ -58,7 +58,7 @@ abstract class CreditUIState extends Object
implements Built<CreditUIState, CreditUIStateBuilder> {
factory CreditUIState() {
return _$CreditUIState._(
listUIState: ListUIState(CreditFields.name),
listUIState: ListUIState(CreditFields.number),
editing: InvoiceEntity(),
selectedId: '',
);

View File

@ -259,12 +259,6 @@ class MenuDrawer extends StatelessWidget {
entityType: EntityType.credit,
icon: getEntityIcon(EntityType.credit),
title: localization.credits,
onTap: () => store.dispatch(ViewcreditList(context)),
onCreateTap: () {
navigator.pop();
store.dispatch(EditCredit(
credit: InvoiceEntity(), context: context));
},
),
DrawerTile(

View File

@ -11,7 +11,7 @@ import 'package:invoiceninja_flutter/ui/app/help_text.dart';
import 'package:invoiceninja_flutter/ui/app/lists/list_divider.dart';
import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/client_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/client/client_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/tables/entity_datatable.dart';
import 'package:invoiceninja_flutter/ui/client/client_list_item.dart';
import 'package:invoiceninja_flutter/ui/client/client_list_vm.dart';

View File

@ -10,7 +10,7 @@ import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/client/client_actions.dart';
import 'package:invoiceninja_flutter/redux/client/client_selectors.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/client_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/client/client_presenter.dart';
import 'package:invoiceninja_flutter/ui/client/client_list.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';

View File

@ -35,6 +35,7 @@ class CreditListBuilder extends StatelessWidget {
class CreditListVM {
CreditListVM({
@required this.state,
@required this.userCompany,
@required this.creditList,
@required this.creditMap,
@ -64,6 +65,7 @@ class CreditListVM {
final state = store.state;
return CreditListVM(
state: state,
userCompany: state.userCompany,
listState: state.creditListState,
creditList: memoizedFilteredCreditList(
@ -91,6 +93,7 @@ class CreditListVM {
);
}
final AppState state;
final UserCompanyEntity userCompany;
final List<String> creditList;
final BuiltMap<String, InvoiceEntity> creditMap;

View File

@ -0,0 +1,25 @@
import 'package:flutter/material.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:invoiceninja_flutter/data/models/models.dart';
import 'package:invoiceninja_flutter/data/models/credit_model.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
import 'package:invoiceninja_flutter/utils/formatting.dart';
class CreditPresenter extends EntityPresenter {
static List<String> getTableFields(UserCompanyEntity userCompany) {
return [
];
}
@override
Widget getField({String field, BuildContext context}) {
final state = StoreProvider.of<AppState>(context).state;
final credit = entity as InvoiceEntity;
switch (field) {
}
return super.getField(field: field, context: context);
}
}

View File

@ -13,7 +13,7 @@ import 'package:invoiceninja_flutter/ui/app/lists/list_divider.dart';
import 'package:invoiceninja_flutter/ui/app/lists/list_filter.dart';
import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/expense_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/expense/expense_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/tables/entity_datatable.dart';
import 'package:invoiceninja_flutter/ui/expense/expense_list_item.dart';
import 'package:invoiceninja_flutter/ui/expense/expense_list_vm.dart';

View File

@ -10,7 +10,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/expense/expense_actions.dart';
import 'package:invoiceninja_flutter/redux/expense/expense_selectors.dart';
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/expense_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/expense/expense_presenter.dart';
import 'package:invoiceninja_flutter/ui/expense/expense_list.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';

View File

@ -13,7 +13,7 @@ import 'package:invoiceninja_flutter/ui/app/lists/list_divider.dart';
import 'package:invoiceninja_flutter/ui/app/lists/list_filter.dart';
import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/invoice_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/invoice/invoice_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/tables/entity_datatable.dart';
import 'package:invoiceninja_flutter/ui/invoice/invoice_list_item.dart';
import 'package:invoiceninja_flutter/ui/invoice/invoice_list_vm.dart';

View File

@ -10,7 +10,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart';
import 'package:invoiceninja_flutter/redux/invoice/invoice_selectors.dart';
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/invoice_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/invoice/invoice_presenter.dart';
import 'package:invoiceninja_flutter/ui/invoice/invoice_list.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';

View File

@ -12,7 +12,7 @@ import 'package:invoiceninja_flutter/ui/app/lists/list_divider.dart';
import 'package:invoiceninja_flutter/ui/app/lists/list_filter.dart';
import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/payment_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/payment/payment_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/tables/entity_datatable.dart';
import 'package:invoiceninja_flutter/ui/payment/payment_list_item.dart';
import 'package:invoiceninja_flutter/ui/payment/payment_list_vm.dart';

View File

@ -11,7 +11,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/payment/payment_actions.dart';
import 'package:invoiceninja_flutter/redux/payment/payment_selectors.dart';
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/payment_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/payment/payment_presenter.dart';
import 'package:invoiceninja_flutter/ui/payment/payment_list.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';

View File

@ -11,7 +11,7 @@ import 'package:invoiceninja_flutter/ui/app/help_text.dart';
import 'package:invoiceninja_flutter/ui/app/lists/list_divider.dart';
import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/product_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/product/product_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/tables/entity_datatable.dart';
import 'package:invoiceninja_flutter/ui/product/product_list_item.dart';
import 'package:invoiceninja_flutter/ui/product/product_list_vm.dart';

View File

@ -10,7 +10,7 @@ import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/product/product_actions.dart';
import 'package:invoiceninja_flutter/redux/product/product_selectors.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/product_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/product/product_presenter.dart';
import 'package:invoiceninja_flutter/ui/product/product_list.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';

View File

@ -12,7 +12,7 @@ import 'package:invoiceninja_flutter/ui/app/lists/list_divider.dart';
import 'package:invoiceninja_flutter/ui/app/lists/list_filter.dart';
import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/project_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/project/project_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/tables/entity_datatable.dart';
import 'package:invoiceninja_flutter/ui/project/project_list_item.dart';
import 'package:invoiceninja_flutter/ui/project/project_list_vm.dart';

View File

@ -11,7 +11,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/project/project_actions.dart';
import 'package:invoiceninja_flutter/redux/project/project_selectors.dart';
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/project_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/project/project_presenter.dart';
import 'package:invoiceninja_flutter/ui/project/project_list.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';

View File

@ -8,7 +8,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/quote_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/quote/quote_presenter.dart';
import 'package:invoiceninja_flutter/ui/invoice/invoice_list.dart';
import 'package:invoiceninja_flutter/ui/invoice/invoice_list_vm.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';

View File

@ -14,7 +14,7 @@ class QuotePresenter extends EntityPresenter {
QuoteFields.date,
QuoteFields.amount,
QuoteFields.balance,
QuoteFields.dueDate,
QuoteFields.validUntil,
EntityFields.state,
];
}
@ -37,7 +37,7 @@ class QuotePresenter extends EntityPresenter {
return Text(formatNumber(quote.amount, context));
case QuoteFields.balance:
return Text(formatNumber(quote.balance, context));
case QuoteFields.dueDate:
case QuoteFields.validUntil:
return Text(formatDate(quote.dueDate, context));
}

View File

@ -12,7 +12,7 @@ import 'package:invoiceninja_flutter/ui/app/lists/list_divider.dart';
import 'package:invoiceninja_flutter/ui/app/lists/list_filter.dart';
import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/task_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/task/task_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/tables/entity_datatable.dart';
import 'package:invoiceninja_flutter/ui/task/task_list_item.dart';
import 'package:invoiceninja_flutter/ui/task/task_list_vm.dart';

View File

@ -11,7 +11,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/task/task_actions.dart';
import 'package:invoiceninja_flutter/redux/task/task_selectors.dart';
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/task_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/task/task_presenter.dart';
import 'package:invoiceninja_flutter/ui/task/task_list.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';

View File

@ -11,7 +11,7 @@ import 'package:invoiceninja_flutter/ui/app/help_text.dart';
import 'package:invoiceninja_flutter/ui/app/lists/list_divider.dart';
import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/vendor_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/vendor/vendor_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/tables/entity_datatable.dart';
import 'package:invoiceninja_flutter/ui/vendor/vendor_list_item.dart';
import 'package:invoiceninja_flutter/ui/vendor/vendor_list_vm.dart';

View File

@ -10,7 +10,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
import 'package:invoiceninja_flutter/redux/vendor/vendor_actions.dart';
import 'package:invoiceninja_flutter/redux/vendor/vendor_selectors.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/vendor_presenter.dart';
import 'file:///C:/Users/hillel/Documents/flutter-mobile/lib/ui/vendor/vendor_presenter.dart';
import 'package:invoiceninja_flutter/ui/vendor/vendor_list.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';

View File

@ -168,6 +168,7 @@ else
'./stubs/ui/stub/stub_list_item'
'./stubs/ui/stub/stub_list_vm'
'./stubs/ui/stub/stub_list'
'./stubs/ui/stub/stub_presenter'
'./stubs/ui/stub/stub_screen')
for i in "${files[@]}"
@ -352,11 +353,6 @@ else
code="${code}entityType: EntityType.${module_camel},${lineBreak}"
code="${code}icon: getEntityIcon(EntityType.${module_camel}),${lineBreak}"
code="${code}title: localization.${module_camel}s,${lineBreak}"
code="${code}onTap: () => store.dispatch(View${module_camel}List(context)),${lineBreak}"
code="${code}onCreateTap: () {${lineBreak}"
code="${code}navigator.pop();${lineBreak}"
code="${code}store.dispatch(Edit${Module}(${lineBreak}"
code="${code}${module_camel}: ${Module}Entity(), context: context));${lineBreak}"
code="${code}},${lineBreak}"
code="${code}),${lineBreak}"
sed -i -e "s/$comment/$comment${lineBreak}$code/g" ./lib/ui/app/menu_drawer.dart

View File

@ -35,6 +35,7 @@ class StubListBuilder extends StatelessWidget {
class StubListVM {
StubListVM({
@required this.state,
@required this.userCompany,
@required this.stubList,
@required this.stubMap,
@ -64,6 +65,7 @@ class StubListVM {
final state = store.state;
return StubListVM(
state: state,
userCompany: state.userCompany,
listState: state.stubListState,
stubList: memoizedFilteredStubList(state.stubState.map,
@ -93,6 +95,7 @@ class StubListVM {
);
}
final AppState state;
final UserCompanyEntity userCompany;
final List<String> stubList;
final BuiltMap<String, StubEntity> stubMap;

View File

@ -0,0 +1,25 @@
import 'package:flutter/material.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:invoiceninja_flutter/data/models/models.dart';
import 'package:invoiceninja_flutter/data/models/stub_model.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
import 'package:invoiceninja_flutter/utils/formatting.dart';
class StubPresenter extends EntityPresenter {
static List<String> getTableFields(UserCompanyEntity userCompany) {
return [
];
}
@override
Widget getField({String field, BuildContext context}) {
final state = StoreProvider.of<AppState>(context).state;
final stub = entity as InvoiceEntity;
switch (field) {
}
return super.getField(field: field, context: context);
}
}