Email templates
This commit is contained in:
parent
a1ee7e91ab
commit
e262ceb1e8
|
|
@ -1,4 +1,4 @@
|
||||||
import 'package:invoiceninja_flutter/ui/app/invoice/invoice_email_dialog_vm.dart';
|
import 'package:invoiceninja_flutter/ui/app/invoice/invoice_email_vm.dart';
|
||||||
import 'package:redux/redux.dart';
|
import 'package:redux/redux.dart';
|
||||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
@ -126,7 +126,7 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
|
||||||
},
|
},
|
||||||
InvoiceViewScreen.route: (context) => InvoiceViewScreen(),
|
InvoiceViewScreen.route: (context) => InvoiceViewScreen(),
|
||||||
InvoiceEditScreen.route: (context) => InvoiceEditScreen(),
|
InvoiceEditScreen.route: (context) => InvoiceEditScreen(),
|
||||||
InvoiceEmailDialog.route: (context) => InvoiceEmailDialog(),
|
InvoiceEmailScreen.route: (context) => InvoiceEmailScreen(),
|
||||||
SettingsScreen.route: (context) => SettingsScreen(),
|
SettingsScreen.route: (context) => SettingsScreen(),
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart';
|
import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/invoice/invoice_email_dialog_vm.dart';
|
import 'package:invoiceninja_flutter/ui/app/invoice/invoice_email_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_vm.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/invoice_screen.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/invoice_screen.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view_vm.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view_vm.dart';
|
||||||
|
|
@ -80,7 +80,7 @@ Middleware<AppState> _showEmailInvoice() {
|
||||||
return (Store<AppState> store, dynamic action, NextDispatcher next) async {
|
return (Store<AppState> store, dynamic action, NextDispatcher next) async {
|
||||||
next(action);
|
next(action);
|
||||||
|
|
||||||
Navigator.of(action.context).pushNamed(InvoiceEmailDialog.route);
|
Navigator.of(action.context).pushNamed(InvoiceEmailScreen.route);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
final invoice = await Navigator.of(action.context).pushNamed(InvoiceEmailDialog.route);
|
final invoice = await Navigator.of(action.context).pushNamed(InvoiceEmailDialog.route);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:invoiceninja_flutter/constants.dart';
|
import 'package:invoiceninja_flutter/constants.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/invoice/invoice_email_dialog_vm.dart';
|
import 'package:invoiceninja_flutter/ui/app/invoice/invoice_email_vm.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/lists/activity_list_tile.dart';
|
import 'package:invoiceninja_flutter/ui/app/lists/activity_list_tile.dart';
|
||||||
|
|
@ -11,7 +11,7 @@ import 'package:flutter_html_view/flutter_html_view.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/templates.dart';
|
import 'package:invoiceninja_flutter/utils/templates.dart';
|
||||||
|
|
||||||
class InvoiceEmailView extends StatefulWidget {
|
class InvoiceEmailView extends StatefulWidget {
|
||||||
final EmailInvoiceDialogVM viewModel;
|
final EmailInvoiceVM viewModel;
|
||||||
|
|
||||||
const InvoiceEmailView({
|
const InvoiceEmailView({
|
||||||
Key key,
|
Key key,
|
||||||
|
|
@ -3,19 +3,19 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/client/client_actions.dart';
|
import 'package:invoiceninja_flutter/redux/client/client_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart';
|
import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/invoice/invoice_email_dialog.dart';
|
import 'package:invoiceninja_flutter/ui/app/invoice/invoice_email_screen.dart';
|
||||||
import 'package:redux/redux.dart';
|
import 'package:redux/redux.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
||||||
|
|
||||||
class InvoiceEmailDialog extends StatelessWidget {
|
class InvoiceEmailScreen extends StatelessWidget {
|
||||||
static const String route = '/invoice/email';
|
static const String route = '/invoice/email';
|
||||||
|
|
||||||
const InvoiceEmailDialog({Key key}) : super(key: key);
|
const InvoiceEmailScreen({Key key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return StoreConnector<AppState, EmailInvoiceDialogVM>(
|
return StoreConnector<AppState, EmailInvoiceVM>(
|
||||||
onInit: (Store<AppState> store) {
|
onInit: (Store<AppState> store) {
|
||||||
final invoiceId = store.state.uiState.invoiceUIState.selectedId;
|
final invoiceId = store.state.uiState.invoiceUIState.selectedId;
|
||||||
final invoice = store.state.invoiceState.map[invoiceId];
|
final invoice = store.state.invoiceState.map[invoiceId];
|
||||||
|
|
@ -27,7 +27,7 @@ class InvoiceEmailDialog extends StatelessWidget {
|
||||||
converter: (Store<AppState> store) {
|
converter: (Store<AppState> store) {
|
||||||
final invoiceId = store.state.uiState.invoiceUIState.selectedId;
|
final invoiceId = store.state.uiState.invoiceUIState.selectedId;
|
||||||
final invoice = store.state.invoiceState.map[invoiceId];
|
final invoice = store.state.invoiceState.map[invoiceId];
|
||||||
return EmailInvoiceDialogVM.fromStore(store, invoice);
|
return EmailInvoiceVM.fromStore(store, invoice);
|
||||||
},
|
},
|
||||||
builder: (context, vm) {
|
builder: (context, vm) {
|
||||||
return InvoiceEmailView(
|
return InvoiceEmailView(
|
||||||
|
|
@ -38,7 +38,7 @@ class InvoiceEmailDialog extends StatelessWidget {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class EmailInvoiceDialogVM {
|
class EmailInvoiceVM {
|
||||||
final CompanyEntity company;
|
final CompanyEntity company;
|
||||||
final InvoiceEntity invoice;
|
final InvoiceEntity invoice;
|
||||||
final ClientEntity client;
|
final ClientEntity client;
|
||||||
|
|
@ -46,7 +46,7 @@ class EmailInvoiceDialogVM {
|
||||||
|
|
||||||
//final List<ContactEntity> recipients;
|
//final List<ContactEntity> recipients;
|
||||||
|
|
||||||
EmailInvoiceDialogVM({
|
EmailInvoiceVM({
|
||||||
@required this.company,
|
@required this.company,
|
||||||
@required this.invoice,
|
@required this.invoice,
|
||||||
@required this.client,
|
@required this.client,
|
||||||
|
|
@ -54,11 +54,11 @@ class EmailInvoiceDialogVM {
|
||||||
//@required this.recipients,
|
//@required this.recipients,
|
||||||
});
|
});
|
||||||
|
|
||||||
factory EmailInvoiceDialogVM.fromStore(
|
factory EmailInvoiceVM.fromStore(
|
||||||
Store<AppState> store, InvoiceEntity invoice) {
|
Store<AppState> store, InvoiceEntity invoice) {
|
||||||
final state = store.state;
|
final state = store.state;
|
||||||
|
|
||||||
return EmailInvoiceDialogVM(
|
return EmailInvoiceVM(
|
||||||
company: state.selectedCompany,
|
company: state.selectedCompany,
|
||||||
invoice: invoice,
|
invoice: invoice,
|
||||||
client: state.clientState.map[invoice.clientId],
|
client: state.clientState.map[invoice.clientId],
|
||||||
Loading…
Reference in New Issue