Second tap to edit
This commit is contained in:
parent
272478ba3b
commit
3931a39966
|
|
@ -91,8 +91,7 @@ class ClientListItem extends StatelessWidget {
|
||||||
)
|
)
|
||||||
: ActionMenuButton(
|
: ActionMenuButton(
|
||||||
entityActions: client.getActions(
|
entityActions: client.getActions(
|
||||||
userCompany: state.userCompany,
|
userCompany: state.userCompany),
|
||||||
includeEdit: true),
|
|
||||||
isSaving: false,
|
isSaving: false,
|
||||||
entity: client,
|
entity: client,
|
||||||
onSelected: (context, action) =>
|
onSelected: (context, action) =>
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,6 @@ class CreditListItem extends StatelessWidget {
|
||||||
: ActionMenuButton(
|
: ActionMenuButton(
|
||||||
entityActions: credit.getActions(
|
entityActions: credit.getActions(
|
||||||
userCompany: state.userCompany,
|
userCompany: state.userCompany,
|
||||||
includeEdit: true,
|
|
||||||
client: client),
|
client: client),
|
||||||
isSaving: false,
|
isSaving: false,
|
||||||
entity: credit,
|
entity: credit,
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import 'package:invoiceninja_flutter/ui/credit/credit_presenter.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/invoice_list_vm.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/invoice_list_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';
|
||||||
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';
|
||||||
|
|
@ -152,7 +153,18 @@ class CreditListVM extends EntityListVM {
|
||||||
isLoaded: state.creditState.isLoaded && state.clientState.isLoaded,
|
isLoaded: state.creditState.isLoaded && state.clientState.isLoaded,
|
||||||
filter: state.creditListState.filter,
|
filter: state.creditListState.filter,
|
||||||
onInvoiceTap: (context, credit) {
|
onInvoiceTap: (context, credit) {
|
||||||
|
if (store.state.invoiceListState.isInMultiselect()) {
|
||||||
|
handleInvoiceAction(
|
||||||
|
context, [credit], EntityAction.toggleMultiselect);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.creditUIState.editing.id == credit.id) {
|
||||||
viewEntity(context: context, entity: credit);
|
viewEntity(context: context, entity: credit);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.creditUIState.selectedId == credit.id) {
|
||||||
|
editEntity(context: context, entity: credit);
|
||||||
|
} else {
|
||||||
|
viewEntity(context: context, entity: credit);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onRefreshed: (context) => _handleRefresh(context),
|
onRefreshed: (context) => _handleRefresh(context),
|
||||||
onClearEntityFilterPressed: () => store.dispatch(ClearEntityFilter()),
|
onClearEntityFilterPressed: () => store.dispatch(ClearEntityFilter()),
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import 'package:invoiceninja_flutter/ui/expense/expense_list_item.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/expense/expense_presenter.dart';
|
import 'package:invoiceninja_flutter/ui/expense/expense_presenter.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 ExpenseListBuilder extends StatelessWidget {
|
class ExpenseListBuilder extends StatelessWidget {
|
||||||
|
|
@ -140,6 +141,12 @@ class ExpenseListVM {
|
||||||
if (store.state.expenseListState.isInMultiselect()) {
|
if (store.state.expenseListState.isInMultiselect()) {
|
||||||
handleExpenseAction(
|
handleExpenseAction(
|
||||||
context, [expense], EntityAction.toggleMultiselect);
|
context, [expense], EntityAction.toggleMultiselect);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.expenseUIState.editing.id == expense.id) {
|
||||||
|
viewEntity(context: context, entity: expense);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.expenseUIState.selectedId == expense.id) {
|
||||||
|
editEntity(context: context, entity: expense);
|
||||||
} else {
|
} else {
|
||||||
viewEntity(context: context, entity: expense);
|
viewEntity(context: context, entity: expense);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -110,7 +110,6 @@ class InvoiceListItem extends StatelessWidget {
|
||||||
: ActionMenuButton(
|
: ActionMenuButton(
|
||||||
entityActions: invoice.getActions(
|
entityActions: invoice.getActions(
|
||||||
userCompany: state.userCompany,
|
userCompany: state.userCompany,
|
||||||
includeEdit: true,
|
|
||||||
client: client),
|
client: client),
|
||||||
isSaving: false,
|
isSaving: false,
|
||||||
entity: invoice,
|
entity: invoice,
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import 'package:invoiceninja_flutter/ui/invoice/invoice_list_item.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/invoice_presenter.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/invoice_presenter.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 InvoiceListBuilder extends StatelessWidget {
|
class InvoiceListBuilder extends StatelessWidget {
|
||||||
|
|
@ -196,6 +197,12 @@ class InvoiceListVM extends EntityListVM {
|
||||||
if (store.state.invoiceListState.isInMultiselect()) {
|
if (store.state.invoiceListState.isInMultiselect()) {
|
||||||
handleInvoiceAction(
|
handleInvoiceAction(
|
||||||
context, [invoice], EntityAction.toggleMultiselect);
|
context, [invoice], EntityAction.toggleMultiselect);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.invoiceUIState.editing.id == invoice.id) {
|
||||||
|
viewEntity(context: context, entity: invoice);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.invoiceUIState.selectedId == invoice.id) {
|
||||||
|
editEntity(context: context, entity: invoice);
|
||||||
} else {
|
} else {
|
||||||
viewEntity(context: context, entity: invoice);
|
viewEntity(context: context, entity: invoice);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,6 @@ class PaymentListItem extends StatelessWidget {
|
||||||
: ActionMenuButton(
|
: ActionMenuButton(
|
||||||
entityActions: payment.getActions(
|
entityActions: payment.getActions(
|
||||||
userCompany: state.userCompany,
|
userCompany: state.userCompany,
|
||||||
includeEdit: true,
|
|
||||||
client: client),
|
client: client),
|
||||||
isSaving: false,
|
isSaving: false,
|
||||||
entity: payment,
|
entity: payment,
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ import 'package:invoiceninja_flutter/ui/payment/payment_list_item.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/payment/payment_presenter.dart';
|
import 'package:invoiceninja_flutter/ui/payment/payment_presenter.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 PaymentListBuilder extends StatelessWidget {
|
class PaymentListBuilder extends StatelessWidget {
|
||||||
|
|
@ -135,6 +136,12 @@ class PaymentListVM {
|
||||||
if (store.state.paymentListState.isInMultiselect()) {
|
if (store.state.paymentListState.isInMultiselect()) {
|
||||||
handlePaymentAction(
|
handlePaymentAction(
|
||||||
context, [payment], EntityAction.toggleMultiselect);
|
context, [payment], EntityAction.toggleMultiselect);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.paymentUIState.editing.id == payment.id) {
|
||||||
|
viewEntity(context: context, entity: payment);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.paymentUIState.selectedId == payment.id) {
|
||||||
|
editEntity(context: context, entity: payment);
|
||||||
} else {
|
} else {
|
||||||
viewEntity(context: context, entity: payment);
|
viewEntity(context: context, entity: payment);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -91,8 +91,7 @@ class ProductListItem extends StatelessWidget {
|
||||||
)
|
)
|
||||||
: ActionMenuButton(
|
: ActionMenuButton(
|
||||||
entityActions: product.getActions(
|
entityActions: product.getActions(
|
||||||
userCompany: state.userCompany,
|
userCompany: state.userCompany),
|
||||||
includeEdit: true),
|
|
||||||
isSaving: false,
|
isSaving: false,
|
||||||
entity: product,
|
entity: product,
|
||||||
onSelected: (context, action) =>
|
onSelected: (context, action) =>
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import 'package:invoiceninja_flutter/ui/product/product_list_item.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/product/product_presenter.dart';
|
import 'package:invoiceninja_flutter/ui/product/product_presenter.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 ProductListBuilder extends StatelessWidget {
|
class ProductListBuilder extends StatelessWidget {
|
||||||
|
|
@ -118,6 +119,12 @@ class ProductListVM {
|
||||||
if (store.state.productListState.isInMultiselect()) {
|
if (store.state.productListState.isInMultiselect()) {
|
||||||
handleProductAction(
|
handleProductAction(
|
||||||
context, [product], EntityAction.toggleMultiselect);
|
context, [product], EntityAction.toggleMultiselect);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.productUIState.editing.id == product.id) {
|
||||||
|
viewEntity(context: context, entity: product);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.productUIState.selectedId == product.id) {
|
||||||
|
editEntity(context: context, entity: product);
|
||||||
} else {
|
} else {
|
||||||
viewEntity(context: context, entity: product);
|
viewEntity(context: context, entity: product);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ import 'package:invoiceninja_flutter/ui/project/project_list_item.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/project/project_presenter.dart';
|
import 'package:invoiceninja_flutter/ui/project/project_presenter.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 ProjectListBuilder extends StatelessWidget {
|
class ProjectListBuilder extends StatelessWidget {
|
||||||
|
|
@ -138,6 +139,12 @@ class ProjectListVM {
|
||||||
if (store.state.projectListState.isInMultiselect()) {
|
if (store.state.projectListState.isInMultiselect()) {
|
||||||
handleProjectAction(
|
handleProjectAction(
|
||||||
context, [project], EntityAction.toggleMultiselect);
|
context, [project], EntityAction.toggleMultiselect);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.projectUIState.editing.id == project.id) {
|
||||||
|
viewEntity(context: context, entity: project);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.projectUIState.selectedId == project.id) {
|
||||||
|
editEntity(context: context, entity: project);
|
||||||
} else {
|
} else {
|
||||||
viewEntity(context: context, entity: project);
|
viewEntity(context: context, entity: project);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,6 @@ class QuoteListItem extends StatelessWidget {
|
||||||
: ActionMenuButton(
|
: ActionMenuButton(
|
||||||
entityActions: quote.getActions(
|
entityActions: quote.getActions(
|
||||||
userCompany: state.userCompany,
|
userCompany: state.userCompany,
|
||||||
includeEdit: true,
|
|
||||||
client: client),
|
client: client),
|
||||||
isSaving: false,
|
isSaving: false,
|
||||||
entity: quote,
|
entity: quote,
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import 'package:invoiceninja_flutter/ui/quote/quote_presenter.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/invoice_list_vm.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/invoice_list_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';
|
||||||
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';
|
||||||
|
|
@ -151,7 +152,18 @@ class QuoteListVM extends EntityListVM {
|
||||||
isLoaded: state.quoteState.isLoaded && state.clientState.isLoaded,
|
isLoaded: state.quoteState.isLoaded && state.clientState.isLoaded,
|
||||||
filter: state.quoteListState.filter,
|
filter: state.quoteListState.filter,
|
||||||
onInvoiceTap: (context, quote) {
|
onInvoiceTap: (context, quote) {
|
||||||
|
if (store.state.invoiceListState.isInMultiselect()) {
|
||||||
|
handleInvoiceAction(
|
||||||
|
context, [quote], EntityAction.toggleMultiselect);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.quoteUIState.editing.id == quote.id) {
|
||||||
viewEntity(context: context, entity: quote);
|
viewEntity(context: context, entity: quote);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.quoteUIState.selectedId == quote.id) {
|
||||||
|
editEntity(context: context, entity: quote);
|
||||||
|
} else {
|
||||||
|
viewEntity(context: context, entity: quote);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onRefreshed: (context) => _handleRefresh(context),
|
onRefreshed: (context) => _handleRefresh(context),
|
||||||
onClearEntityFilterPressed: () => store.dispatch(ClearEntityFilter()),
|
onClearEntityFilterPressed: () => store.dispatch(ClearEntityFilter()),
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ import 'package:invoiceninja_flutter/ui/task/task_list_item.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/task/task_presenter.dart';
|
import 'package:invoiceninja_flutter/ui/task/task_presenter.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 TaskListBuilder extends StatelessWidget {
|
class TaskListBuilder extends StatelessWidget {
|
||||||
|
|
@ -143,6 +144,12 @@ class TaskListVM {
|
||||||
onTaskTap: (context, task) {
|
onTaskTap: (context, task) {
|
||||||
if (store.state.taskListState.isInMultiselect()) {
|
if (store.state.taskListState.isInMultiselect()) {
|
||||||
handleTaskAction(context, [task], EntityAction.toggleMultiselect);
|
handleTaskAction(context, [task], EntityAction.toggleMultiselect);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.taskUIState.editing.id == task.id) {
|
||||||
|
viewEntity(context: context, entity: task);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.taskUIState.selectedId == task.id) {
|
||||||
|
editEntity(context: context, entity: task);
|
||||||
} else {
|
} else {
|
||||||
viewEntity(context: context, entity: task);
|
viewEntity(context: context, entity: task);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import 'package:invoiceninja_flutter/ui/vendor/vendor_list_item.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/vendor/vendor_presenter.dart';
|
import 'package:invoiceninja_flutter/ui/vendor/vendor_presenter.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 VendorListBuilder extends StatelessWidget {
|
class VendorListBuilder extends StatelessWidget {
|
||||||
|
|
@ -128,6 +129,12 @@ class VendorListVM {
|
||||||
onVendorTap: (context, vendor) {
|
onVendorTap: (context, vendor) {
|
||||||
if (store.state.vendorListState.isInMultiselect()) {
|
if (store.state.vendorListState.isInMultiselect()) {
|
||||||
handleVendorAction(context, [vendor], EntityAction.toggleMultiselect);
|
handleVendorAction(context, [vendor], EntityAction.toggleMultiselect);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.vendorUIState.editing.id == vendor.id) {
|
||||||
|
viewEntity(context: context, entity: vendor);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.vendorUIState.selectedId == vendor.id) {
|
||||||
|
editEntity(context: context, entity: vendor);
|
||||||
} else {
|
} else {
|
||||||
viewEntity(context: context, entity: vendor);
|
viewEntity(context: context, entity: vendor);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import 'package:invoiceninja_flutter/redux/stub/stub_selectors.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';
|
||||||
import 'package:invoiceninja_flutter/redux/stub/stub_actions.dart';
|
import 'package:invoiceninja_flutter/redux/stub/stub_actions.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
|
||||||
class StubListBuilder extends StatelessWidget {
|
class StubListBuilder extends StatelessWidget {
|
||||||
const StubListBuilder({Key key}) : super(key: key);
|
const StubListBuilder({Key key}) : super(key: key);
|
||||||
|
|
@ -131,6 +132,12 @@ class StubListVM {
|
||||||
if (store.state.stubListState.isInMultiselect()) {
|
if (store.state.stubListState.isInMultiselect()) {
|
||||||
handleStubAction(
|
handleStubAction(
|
||||||
context, [stub], EntityAction.toggleMultiselect);
|
context, [stub], EntityAction.toggleMultiselect);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.stubUIState.editing.id == stub.id) {
|
||||||
|
viewEntity(context: context, entity: stub);
|
||||||
|
} else if (isDesktop(context) &&
|
||||||
|
state.stubUIState.selectedId == stub.id) {
|
||||||
|
editEntity(context: context, entity: stub);
|
||||||
} else {
|
} else {
|
||||||
viewEntity(context: context, entity: stub);
|
viewEntity(context: context, entity: stub);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue