Navigation changes

This commit is contained in:
Hillel Coren 2020-05-19 23:00:12 +03:00
parent b742135589
commit 3fd7790462
6 changed files with 37 additions and 7 deletions

View File

@ -466,6 +466,12 @@ class EntityScreens extends StatelessWidget {
case EntityType.client: case EntityType.client:
filterChild = editingFIlterEntity ? ClientEditScreen() : ClientViewScreen(); filterChild = editingFIlterEntity ? ClientEditScreen() : ClientViewScreen();
break; break;
case EntityType.invoice:
filterChild = editingFIlterEntity ? InvoiceViewScreen() : InvoiceViewScreen();
break;
case EntityType.payment:
filterChild = editingFIlterEntity ? PaymentEditScreen() : PaymentViewScreen();
break;
case EntityType.user: case EntityType.user:
filterChild = editingFIlterEntity ? UserEditScreen() : UserViewScreen(); filterChild = editingFIlterEntity ? UserEditScreen() : UserViewScreen();
break; break;

View File

@ -14,6 +14,7 @@ import 'package:invoiceninja_flutter/ui/app/tables/app_data_table.dart';
import 'package:invoiceninja_flutter/ui/app/tables/app_paginated_data_table.dart'; import 'package:invoiceninja_flutter/ui/app/tables/app_paginated_data_table.dart';
import 'package:invoiceninja_flutter/ui/app/tables/entity_datatable.dart'; import 'package:invoiceninja_flutter/ui/app/tables/entity_datatable.dart';
import 'package:invoiceninja_flutter/utils/localization.dart'; import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:invoiceninja_flutter/utils/platforms.dart';
class EntityList extends StatefulWidget { class EntityList extends StatefulWidget {
const EntityList({ const EntityList({
@ -117,7 +118,7 @@ class _EntityListState extends State<EntityList> {
final listOrTable = () { final listOrTable = () {
if (isList) { if (isList) {
return Column(children: <Widget>[ return Column(children: <Widget>[
if (listState.filterEntityId != null) if (listState.filterEntityId != null && isMobile(context))
ListFilterMessage( ListFilterMessage(
filterEntityId: listState.filterEntityId, filterEntityId: listState.filterEntityId,
filterEntityType: listState.filterEntityType, filterEntityType: listState.filterEntityType,

View File

@ -15,6 +15,7 @@ import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view.dart';
import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view_vm.dart'; import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view_vm.dart';
import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart'; import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:invoiceninja_flutter/utils/platforms.dart';
import 'package:redux/redux.dart'; import 'package:redux/redux.dart';
class CreditViewScreen extends StatelessWidget { class CreditViewScreen extends StatelessWidget {
@ -109,8 +110,11 @@ class CreditViewVM extends EntityViewVM {
context: context, context: context,
entities: [client], entities: [client],
); );
} else { } else if (isMobile(context)) {
viewEntity(context: context, entity: client); viewEntity(context: context, entity: client);
} else {
store.dispatch(FilterCreditsByEntity(
entityType: EntityType.client, entityId: client.id));
} }
}, },
onEntityAction: (BuildContext context, EntityAction action) => onEntityAction: (BuildContext context, EntityAction action) =>

View File

@ -14,6 +14,7 @@ import 'package:invoiceninja_flutter/ui/app/snackbar_row.dart';
import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view.dart'; import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view.dart';
import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart'; import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:invoiceninja_flutter/utils/platforms.dart';
import 'package:redux/redux.dart'; import 'package:redux/redux.dart';
class InvoiceViewScreen extends StatelessWidget { class InvoiceViewScreen extends StatelessWidget {
@ -140,8 +141,11 @@ class InvoiceViewVM extends EntityViewVM {
context: context, context: context,
entities: [client], entities: [client],
); );
} else { } else if (isMobile(context)) {
viewEntity(context: context, entity: client); viewEntity(context: context, entity: client);
} else {
store.dispatch(FilterInvoicesByEntity(
entityType: EntityType.client, entityId: client.id));
} }
}, },
onPaymentPressed: (BuildContext context, payment, onPaymentPressed: (BuildContext context, payment,
@ -152,8 +156,11 @@ class InvoiceViewVM extends EntityViewVM {
client: client, client: client,
entities: [payment], entities: [payment],
); );
} else { } else if (isMobile(context)) {
viewEntity(context: context, entity: payment); viewEntity(context: context, entity: payment);
} else {
store.dispatch(FilterInvoicesByEntity(
entityType: EntityType.payment, entityId: payment.id));
} }
}, },
onPaymentsPressed: (BuildContext context) { onPaymentsPressed: (BuildContext context) {

View File

@ -8,6 +8,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_actions.dart';
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'; import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
import 'package:invoiceninja_flutter/ui/payment/view/payment_view.dart'; import 'package:invoiceninja_flutter/ui/payment/view/payment_view.dart';
import 'package:invoiceninja_flutter/utils/platforms.dart';
import 'package:redux/redux.dart'; import 'package:redux/redux.dart';
class PaymentViewScreen extends StatelessWidget { class PaymentViewScreen extends StatelessWidget {
@ -60,8 +61,11 @@ class PaymentViewVM {
onClientPressed: (context, [bool longPress = false]) { onClientPressed: (context, [bool longPress = false]) {
if (longPress) { if (longPress) {
showEntityActionsDialog(context: context, entities: [client]); showEntityActionsDialog(context: context, entities: [client]);
} else { } else if (isMobile(context)) {
viewEntity(context: context, entity: client); viewEntity(context: context, entity: client);
} else {
store.dispatch(FilterPaymentsByEntity(
entityType: EntityType.client, entityId: client.id));
} }
}, },
onInvoicePressed: (context, invoiceId, [bool longPress = false]) { onInvoicePressed: (context, invoiceId, [bool longPress = false]) {
@ -72,8 +76,11 @@ class PaymentViewVM {
entities: [invoice], entities: [invoice],
client: client, client: client,
); );
} else { } else if (isMobile(context)) {
viewEntity(context: context, entity: invoice); viewEntity(context: context, entity: invoice);
} else {
store.dispatch(FilterPaymentsByEntity(
entityType: EntityType.invoice, entityId: invoice.id));
} }
}, },
onEntityAction: (BuildContext context, EntityAction action) => onEntityAction: (BuildContext context, EntityAction action) =>

View File

@ -15,6 +15,7 @@ import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view.dart';
import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view_vm.dart'; import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view_vm.dart';
import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart'; import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:invoiceninja_flutter/utils/platforms.dart';
import 'package:redux/redux.dart'; import 'package:redux/redux.dart';
class QuoteViewScreen extends StatelessWidget { class QuoteViewScreen extends StatelessWidget {
@ -109,9 +110,13 @@ class QuoteViewVM extends EntityViewVM {
context: context, context: context,
entities: [client], entities: [client],
); );
} else { } else if (isMobile(context)) {
viewEntity(context: context, entity: client); viewEntity(context: context, entity: client);
} else {
store.dispatch(FilterQuotesByEntity(
entityType: EntityType.client, entityId: client.id));
} }
}, },
onEntityAction: (BuildContext context, EntityAction action) => onEntityAction: (BuildContext context, EntityAction action) =>
handleQuoteAction(context, [quote], action), handleQuoteAction(context, [quote], action),