Settings
This commit is contained in:
parent
71c896ab08
commit
91803453f6
|
|
@ -68,10 +68,7 @@ abstract class ExpenseEntity extends Object
|
|||
with BaseEntity, SelectableEntity, BelongsToClient
|
||||
implements Built<ExpenseEntity, ExpenseEntityBuilder> {
|
||||
factory ExpenseEntity(
|
||||
{String id,
|
||||
AppState state,
|
||||
VendorEntity vendor,
|
||||
ClientEntity client}) {
|
||||
{String id, AppState state, VendorEntity vendor, ClientEntity client}) {
|
||||
return _$ExpenseEntity._(
|
||||
id: id ?? BaseEntity.nextId,
|
||||
isChanged: false,
|
||||
|
|
|
|||
|
|
@ -69,10 +69,7 @@ abstract class InvoiceEntity extends Object
|
|||
with BaseEntity, SelectableEntity, CalculateInvoiceTotal
|
||||
implements Built<InvoiceEntity, InvoiceEntityBuilder> {
|
||||
factory InvoiceEntity(
|
||||
{String id,
|
||||
bool isQuote = false,
|
||||
AppState state,
|
||||
ClientEntity client}) {
|
||||
{String id, bool isQuote = false, AppState state, ClientEntity client}) {
|
||||
final company = state?.company;
|
||||
return _$InvoiceEntity._(
|
||||
id: id ?? BaseEntity.nextId,
|
||||
|
|
|
|||
|
|
@ -54,7 +54,8 @@ class PersistenceRepository {
|
|||
Future<AuthState> loadAuthState() async {
|
||||
if (await fileStorage.exists()) {
|
||||
final String data = await fileStorage.load();
|
||||
return serializers.deserializeWith(AuthState.serializer, json.decode(data));
|
||||
return serializers.deserializeWith(
|
||||
AuthState.serializer, json.decode(data));
|
||||
} else {
|
||||
throw 'State does not exist on file';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,8 @@ class UserRepository {
|
|||
|
||||
Future<UserEntity> loadItem(Credentials credentials, String entityId) async {
|
||||
final dynamic response = await webClient.get(
|
||||
'${credentials.url}/users/$entityId?include=company_user', credentials.token);
|
||||
'${credentials.url}/users/$entityId?include=company_user',
|
||||
credentials.token);
|
||||
|
||||
final UserItemResponse userResponse =
|
||||
serializers.deserializeWith(UserItemResponse.serializer, response);
|
||||
|
|
|
|||
|
|
@ -37,4 +37,3 @@ abstract class AuthState implements Built<AuthState, AuthStateBuilder> {
|
|||
|
||||
static Serializer<AuthState> get serializer => _$authStateSerializer;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -377,11 +377,9 @@ void handleClientAction(
|
|||
|
||||
for (final client in clients) {
|
||||
if (!state.clientListState.isSelected(client.id)) {
|
||||
store.dispatch(
|
||||
AddToClientMultiselect(entity: client));
|
||||
store.dispatch(AddToClientMultiselect(entity: client));
|
||||
} else {
|
||||
store.dispatch(
|
||||
RemoveFromClientMultiselect(entity: client));
|
||||
store.dispatch(RemoveFromClientMultiselect(entity: client));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -40,8 +40,7 @@ List<Middleware<AppState>> createStoreClientsMiddleware([
|
|||
}
|
||||
|
||||
Middleware<AppState> _editClient() {
|
||||
return (Store<AppState> store, dynamic dynamicAction,
|
||||
NextDispatcher next) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as EditClient;
|
||||
|
||||
if (!action.force &&
|
||||
|
|
|
|||
|
|
@ -42,4 +42,3 @@ class SaveCompanyFailure implements StopSaving {
|
|||
|
||||
final Object error;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -56,8 +56,9 @@ Reducer<UserCompanyEntity> userCompanyEntityReducer = combineReducers([
|
|||
loadCompanySuccessReducer),
|
||||
TypedReducer<UserCompanyEntity, SaveCompanySuccess>(
|
||||
saveCompanySuccessReducer),
|
||||
TypedReducer<UserCompanyEntity, SaveUserSettingsSuccess>((userCompany, action) =>
|
||||
userCompany.rebuild((b) => b..user.replace(action.user))),
|
||||
TypedReducer<UserCompanyEntity, SaveUserSettingsSuccess>(
|
||||
(userCompany, action) =>
|
||||
userCompany.rebuild((b) => b..user.replace(action.user))),
|
||||
]);
|
||||
|
||||
UserCompanyEntity loadCompanySuccessReducer(
|
||||
|
|
|
|||
|
|
@ -43,8 +43,7 @@ List<Middleware<AppState>> createStoreCompanyGatewaysMiddleware([
|
|||
}
|
||||
|
||||
Middleware<AppState> _editCompanyGateway() {
|
||||
return (Store<AppState> store, dynamic dynamicAction,
|
||||
NextDispatcher next) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as EditCompanyGateway;
|
||||
|
||||
if (!action.force &&
|
||||
|
|
|
|||
|
|
@ -39,8 +39,7 @@ List<Middleware<AppState>> createStoreDocumentsMiddleware([
|
|||
}
|
||||
|
||||
Middleware<AppState> _editDocument() {
|
||||
return (Store<AppState> store, dynamic dynamicAction,
|
||||
NextDispatcher next) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as EditDocument;
|
||||
|
||||
next(action);
|
||||
|
|
|
|||
|
|
@ -41,8 +41,7 @@ List<Middleware<AppState>> createStoreExpensesMiddleware([
|
|||
}
|
||||
|
||||
Middleware<AppState> _editExpense() {
|
||||
return (Store<AppState> store, dynamic dynamicAction,
|
||||
NextDispatcher next) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as EditExpense;
|
||||
|
||||
if (!action.force &&
|
||||
|
|
|
|||
|
|
@ -40,8 +40,7 @@ List<Middleware<AppState>> createStoreGroupsMiddleware([
|
|||
}
|
||||
|
||||
Middleware<AppState> _editGroup() {
|
||||
return (Store<AppState> store, dynamic dynamicAction,
|
||||
NextDispatcher next) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as EditGroup;
|
||||
|
||||
if (!action.force &&
|
||||
|
|
|
|||
|
|
@ -94,8 +94,7 @@ Middleware<AppState> _viewInvoice() {
|
|||
}
|
||||
|
||||
Middleware<AppState> _editInvoice() {
|
||||
return (Store<AppState> store, dynamic dynamicAction,
|
||||
NextDispatcher next) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as EditInvoice;
|
||||
|
||||
if (!action.force &&
|
||||
|
|
|
|||
|
|
@ -308,11 +308,9 @@ void handlePaymentAction(
|
|||
|
||||
for (final payment in payments) {
|
||||
if (!store.state.paymentListState.isSelected(payment.id)) {
|
||||
store.dispatch(
|
||||
AddToPaymentMultiselect(entity: payment));
|
||||
store.dispatch(AddToPaymentMultiselect(entity: payment));
|
||||
} else {
|
||||
store.dispatch(
|
||||
RemoveFromPaymentMultiselect(entity: payment));
|
||||
store.dispatch(RemoveFromPaymentMultiselect(entity: payment));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -43,8 +43,7 @@ List<Middleware<AppState>> createStorePaymentsMiddleware([
|
|||
}
|
||||
|
||||
Middleware<AppState> _editPayment() {
|
||||
return (Store<AppState> store, dynamic dynamicAction,
|
||||
NextDispatcher next) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as EditPayment;
|
||||
|
||||
if (!action.force &&
|
||||
|
|
|
|||
|
|
@ -37,8 +37,7 @@ List<Middleware<AppState>> createStoreProductsMiddleware([
|
|||
}
|
||||
|
||||
Middleware<AppState> _editProduct() {
|
||||
return (Store<AppState> store, dynamic dynamicAction,
|
||||
NextDispatcher next) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as EditProduct;
|
||||
|
||||
if (!action.force &&
|
||||
|
|
|
|||
|
|
@ -41,8 +41,7 @@ List<Middleware<AppState>> createStoreProjectsMiddleware([
|
|||
}
|
||||
|
||||
Middleware<AppState> _editProject() {
|
||||
return (Store<AppState> store, dynamic dynamicAction,
|
||||
NextDispatcher next) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as EditProject;
|
||||
|
||||
if (!action.force &&
|
||||
|
|
|
|||
|
|
@ -94,8 +94,7 @@ Middleware<AppState> _viewQuoteList() {
|
|||
}
|
||||
|
||||
Middleware<AppState> _editQuote() {
|
||||
return (Store<AppState> store, dynamic dynamicAction,
|
||||
NextDispatcher next) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as EditQuote;
|
||||
|
||||
if (!action.force &&
|
||||
|
|
|
|||
|
|
@ -40,8 +40,7 @@ List<Middleware<AppState>> createStoreTasksMiddleware([
|
|||
}
|
||||
|
||||
Middleware<AppState> _editTask() {
|
||||
return (Store<AppState> store, dynamic dynamicAction,
|
||||
NextDispatcher next) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as EditTask;
|
||||
|
||||
if (!action.force &&
|
||||
|
|
|
|||
|
|
@ -39,8 +39,7 @@ List<Middleware<AppState>> createStoreTaxRatesMiddleware([
|
|||
}
|
||||
|
||||
Middleware<AppState> _editTaxRate() {
|
||||
return (Store<AppState> store, dynamic dynamicAction,
|
||||
NextDispatcher next) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as EditTaxRate;
|
||||
|
||||
if (!action.force &&
|
||||
|
|
|
|||
|
|
@ -15,7 +15,8 @@ import 'package:invoiceninja_flutter/redux/product/product_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/settings/settings_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart' as prefix0;
|
||||
import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart'
|
||||
as prefix0;
|
||||
import 'package:invoiceninja_flutter/redux/task/task_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/pref_state.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
|
|
@ -242,7 +243,8 @@ Reducer<SettingsUIState> settingsUIReducer = combineReducers([
|
|||
..origClient.replace(action.client)
|
||||
..isChanged = false);
|
||||
}),
|
||||
TypedReducer<SettingsUIState, prefix0.SaveUserSettingsSuccess>((state, action) {
|
||||
TypedReducer<SettingsUIState, prefix0.SaveUserSettingsSuccess>(
|
||||
(state, action) {
|
||||
return state.rebuild((b) => b
|
||||
..user.replace(action.user)
|
||||
..origUser.replace(action.user)
|
||||
|
|
|
|||
|
|
@ -65,7 +65,8 @@ abstract class PrefState implements Built<PrefState, PrefStateBuilder> {
|
|||
appLayout == AppLayout.mobile || menuSidebarMode == AppSidebarMode.float;
|
||||
|
||||
bool get isHistoryFloated =>
|
||||
appLayout == AppLayout.mobile || historySidebarMode == AppSidebarMode.float;
|
||||
appLayout == AppLayout.mobile ||
|
||||
historySidebarMode == AppSidebarMode.float;
|
||||
|
||||
bool get showMenu =>
|
||||
(isMenuVisible && menuSidebarMode == AppSidebarMode.visible) ||
|
||||
|
|
|
|||
|
|
@ -39,8 +39,7 @@ List<Middleware<AppState>> createStoreUsersMiddleware([
|
|||
}
|
||||
|
||||
Middleware<AppState> _editUser() {
|
||||
return (Store<AppState> store, dynamic dynamicAction,
|
||||
NextDispatcher next) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as EditUser;
|
||||
|
||||
if (!action.force &&
|
||||
|
|
|
|||
|
|
@ -41,8 +41,7 @@ List<Middleware<AppState>> createStoreVendorsMiddleware([
|
|||
}
|
||||
|
||||
Middleware<AppState> _editVendor() {
|
||||
return (Store<AppState> store, dynamic dynamicAction,
|
||||
NextDispatcher next) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as EditVendor;
|
||||
|
||||
if (!action.force &&
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ class EntityActionListTile extends StatelessWidget {
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final localization = AppLocalization.of(context);
|
||||
|
||||
|
||||
return ListTile(
|
||||
leading: Icon(getEntityActionIcon(action)),
|
||||
title: Text(localization.lookup(action.toString())),
|
||||
|
|
|
|||
|
|
@ -151,9 +151,7 @@ class EntityDropdownDialog extends StatefulWidget {
|
|||
|
||||
final BuiltMap<String, SelectableEntity> entityMap;
|
||||
final List<String> entityList;
|
||||
final Function(SelectableEntity, [bool]) onSelected
|
||||
|
||||
;
|
||||
final Function(SelectableEntity, [bool]) onSelected;
|
||||
final Function(BuildContext context, Completer completer) onAddPressed;
|
||||
|
||||
@override
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
|
|
|||
|
|
@ -38,8 +38,7 @@ class ClientScreen extends StatelessWidget {
|
|||
isChecked: isInMultiselect &&
|
||||
listUIState.selectedIds.length == viewModel.clientList.length,
|
||||
showCheckbox: isInMultiselect,
|
||||
onHamburgerLongPress: () =>
|
||||
store.dispatch(StartClientMultiselect()),
|
||||
onHamburgerLongPress: () => store.dispatch(StartClientMultiselect()),
|
||||
onCheckboxChanged: (value) {
|
||||
final clients = viewModel.clientList
|
||||
.map<ClientEntity>((clientId) => viewModel.clientMap[clientId])
|
||||
|
|
@ -71,8 +70,7 @@ class ClientScreen extends StatelessWidget {
|
|||
localization.cancel,
|
||||
style: TextStyle(color: Colors.white),
|
||||
),
|
||||
onPressed: () =>
|
||||
store.dispatch(ClearClientMultiselect()),
|
||||
onPressed: () => store.dispatch(ClearClientMultiselect()),
|
||||
),
|
||||
if (viewModel.isInMultiselect)
|
||||
FlatButton(
|
||||
|
|
|
|||
|
|
@ -64,7 +64,8 @@ class ClientOverview extends StatelessWidget {
|
|||
label: localization.paidToDate,
|
||||
value: formatNumber(client.paidToDate, context, clientId: client.id),
|
||||
secondLabel: localization.balanceDue,
|
||||
secondValue: formatNumber(client.balance, context, clientId: client.id),
|
||||
secondValue:
|
||||
formatNumber(client.balance, context, clientId: client.id),
|
||||
),
|
||||
client.privateNotes != null && client.privateNotes.isNotEmpty
|
||||
? IconMessage(client.privateNotes)
|
||||
|
|
|
|||
|
|
@ -69,11 +69,10 @@ class CompanyGatewayScreen extends StatelessWidget {
|
|||
context: context,
|
||||
multiselect: true);
|
||||
|
||||
store.dispatch(
|
||||
ClearCompanyGatewayMultiselect());
|
||||
store.dispatch(ClearCompanyGatewayMultiselect());
|
||||
},
|
||||
onCancelPressed: (context) => store
|
||||
.dispatch(ClearCompanyGatewayMultiselect()),
|
||||
onCancelPressed: (context) =>
|
||||
store.dispatch(ClearCompanyGatewayMultiselect()),
|
||||
)
|
||||
else
|
||||
SaveCancelButtons(
|
||||
|
|
|
|||
|
|
@ -69,8 +69,7 @@ class CompanyGatewayScreenVM {
|
|||
final completer = snackBarCompleter<Null>(
|
||||
context, AppLocalization.of(context).savedSettings);
|
||||
store.dispatch(SaveCompanyRequest(
|
||||
completer: completer,
|
||||
company: settingsUIState.company));
|
||||
completer: completer, company: settingsUIState.company));
|
||||
break;
|
||||
case EntityType.group:
|
||||
final completer = snackBarCompleter<GroupEntity>(
|
||||
|
|
|
|||
|
|
@ -52,7 +52,8 @@ class ExpenseOverview extends StatelessWidget {
|
|||
value: formatNumber(expense.amountWithTax, context,
|
||||
currencyId: expense.expenseCurrencyId),
|
||||
secondLabel: localization.converted,
|
||||
secondValue: formatNumber(expense.convertedAmountWithTax, context,
|
||||
secondValue: formatNumber(
|
||||
expense.convertedAmountWithTax, context,
|
||||
currencyId: expense.invoiceCurrencyId),
|
||||
)
|
||||
: EntityHeader(
|
||||
|
|
|
|||
|
|
@ -39,8 +39,7 @@ class InvoiceScreen extends StatelessWidget {
|
|||
isChecked: isInMultiselect &&
|
||||
listUIState.selectedIds.length == viewModel.invoiceList.length,
|
||||
showCheckbox: isInMultiselect,
|
||||
onHamburgerLongPress: () =>
|
||||
store.dispatch(StartInvoiceMultiselect()),
|
||||
onHamburgerLongPress: () => store.dispatch(StartInvoiceMultiselect()),
|
||||
onCheckboxChanged: (value) {
|
||||
final invoices = viewModel.invoiceList
|
||||
.map<InvoiceEntity>((invoiceId) => viewModel.invoiceMap[invoiceId])
|
||||
|
|
|
|||
|
|
@ -34,8 +34,7 @@ class PaymentScreen extends StatelessWidget {
|
|||
isChecked: isInMultiselect &&
|
||||
listUIState.selectedIds.length == viewModel.paymentList.length,
|
||||
showCheckbox: isInMultiselect,
|
||||
onHamburgerLongPress: () =>
|
||||
store.dispatch(StartPaymentMultiselect()),
|
||||
onHamburgerLongPress: () => store.dispatch(StartPaymentMultiselect()),
|
||||
onCheckboxChanged: (value) {
|
||||
final payments = viewModel.paymentList
|
||||
.map<PaymentEntity>((paymentId) => viewModel.paymentMap[paymentId])
|
||||
|
|
|
|||
|
|
@ -37,8 +37,7 @@ class ProductScreen extends StatelessWidget {
|
|||
isChecked: isInMultiselect &&
|
||||
listUIState.selectedIds.length == viewModel.productList.length,
|
||||
showCheckbox: isInMultiselect,
|
||||
onHamburgerLongPress: () =>
|
||||
store.dispatch(StartProductMultiselect()),
|
||||
onHamburgerLongPress: () => store.dispatch(StartProductMultiselect()),
|
||||
onCheckboxChanged: (value) {
|
||||
final products = viewModel.productList
|
||||
.map<ProductEntity>((productId) => viewModel.productMap[productId])
|
||||
|
|
|
|||
|
|
@ -37,8 +37,7 @@ class ProjectScreen extends StatelessWidget {
|
|||
isChecked: isInMultiselect &&
|
||||
listUIState.selectedIds.length == viewModel.projectList.length,
|
||||
showCheckbox: isInMultiselect,
|
||||
onHamburgerLongPress: () =>
|
||||
store.dispatch(StartProjectMultiselect()),
|
||||
onHamburgerLongPress: () => store.dispatch(StartProjectMultiselect()),
|
||||
onCheckboxChanged: (value) {
|
||||
final projects = viewModel.projectList
|
||||
.map<ProjectEntity>((projectId) => viewModel.projectMap[projectId])
|
||||
|
|
|
|||
|
|
@ -95,10 +95,9 @@ class ProjectViewVM {
|
|||
if (longPress && project.isActive && client.isActive) {
|
||||
createEntity(
|
||||
context: context,
|
||||
entity: TaskEntity(state: state)
|
||||
.rebuild((b) => b
|
||||
..projectId = project.id
|
||||
..clientId = project.clientId));
|
||||
entity: TaskEntity(state: state).rebuild((b) => b
|
||||
..projectId = project.id
|
||||
..clientId = project.clientId));
|
||||
} else {
|
||||
viewEntitiesByType(
|
||||
context: context,
|
||||
|
|
@ -109,10 +108,9 @@ class ProjectViewVM {
|
|||
onAddTaskPressed: (context) {
|
||||
createEntity(
|
||||
context: context,
|
||||
entity: TaskEntity(state: state)
|
||||
.rebuild((b) => b
|
||||
..projectId = project.id
|
||||
..clientId = project.clientId),
|
||||
entity: TaskEntity(state: state).rebuild((b) => b
|
||||
..projectId = project.id
|
||||
..clientId = project.clientId),
|
||||
force: true);
|
||||
},
|
||||
onBackPressed: () {
|
||||
|
|
|
|||
|
|
@ -39,8 +39,7 @@ class QuoteScreen extends StatelessWidget {
|
|||
isChecked: isInMultiselect &&
|
||||
listUIState.selectedIds.length == viewModel.quoteList.length,
|
||||
showCheckbox: isInMultiselect,
|
||||
onHamburgerLongPress: () =>
|
||||
store.dispatch(StartQuoteMultiselect()),
|
||||
onHamburgerLongPress: () => store.dispatch(StartQuoteMultiselect()),
|
||||
onCheckboxChanged: (value) {
|
||||
final quotes = viewModel.quoteList
|
||||
.map<InvoiceEntity>((quoteId) => viewModel.quoteMap[quoteId])
|
||||
|
|
|
|||
|
|
@ -62,8 +62,7 @@ class ClientPortalVM {
|
|||
final completer = snackBarCompleter<Null>(
|
||||
context, AppLocalization.of(context).savedSettings);
|
||||
store.dispatch(SaveCompanyRequest(
|
||||
completer: completer,
|
||||
company: settingsUIState.company));
|
||||
completer: completer, company: settingsUIState.company));
|
||||
break;
|
||||
case EntityType.group:
|
||||
final completer = snackBarCompleter<GroupEntity>(
|
||||
|
|
|
|||
|
|
@ -62,8 +62,7 @@ class CompanyDetailsVM {
|
|||
final completer = snackBarCompleter<Null>(
|
||||
context, AppLocalization.of(context).savedSettings);
|
||||
store.dispatch(SaveCompanyRequest(
|
||||
completer: completer,
|
||||
company: settingsUIState.company));
|
||||
completer: completer, company: settingsUIState.company));
|
||||
break;
|
||||
case EntityType.group:
|
||||
final completer = snackBarCompleter<GroupEntity>(
|
||||
|
|
|
|||
|
|
@ -56,8 +56,7 @@ class CustomFieldsVM {
|
|||
final completer = snackBarCompleter<Null>(
|
||||
context, AppLocalization.of(context).savedSettings);
|
||||
store.dispatch(SaveCompanyRequest(
|
||||
completer: completer,
|
||||
company: settingsUIState.company));
|
||||
completer: completer, company: settingsUIState.company));
|
||||
break;
|
||||
case EntityType.group:
|
||||
final completer = snackBarCompleter<GroupEntity>(
|
||||
|
|
|
|||
|
|
@ -123,7 +123,8 @@ class DeviceSettingsVM {
|
|||
if (value == AppLayout.mobile) {
|
||||
store.dispatch(ViewDashboard(navigator: Navigator.of(context)));
|
||||
} else {
|
||||
store.dispatch(ViewMainScreen(navigator: Navigator.of(context), addDelay: true));
|
||||
store.dispatch(
|
||||
ViewMainScreen(navigator: Navigator.of(context), addDelay: true));
|
||||
}
|
||||
},
|
||||
onRequireAuthenticationChanged: (BuildContext context, bool value) async {
|
||||
|
|
|
|||
|
|
@ -58,8 +58,7 @@ class EmailSettingsVM {
|
|||
final completer = snackBarCompleter<Null>(
|
||||
context, AppLocalization.of(context).savedSettings);
|
||||
store.dispatch(SaveCompanyRequest(
|
||||
completer: completer,
|
||||
company: settingsUIState.company));
|
||||
completer: completer, company: settingsUIState.company));
|
||||
break;
|
||||
case EntityType.group:
|
||||
final completer = snackBarCompleter<GroupEntity>(
|
||||
|
|
|
|||
|
|
@ -63,8 +63,7 @@ class GeneratedNumbersVM {
|
|||
final completer = snackBarCompleter<Null>(
|
||||
context, AppLocalization.of(context).savedSettings);
|
||||
store.dispatch(SaveCompanyRequest(
|
||||
completer: completer,
|
||||
company: settingsUIState.company));
|
||||
completer: completer, company: settingsUIState.company));
|
||||
break;
|
||||
case EntityType.group:
|
||||
final completer = snackBarCompleter<GroupEntity>(
|
||||
|
|
|
|||
|
|
@ -60,8 +60,7 @@ class InvoiceDesignVM {
|
|||
final completer = snackBarCompleter<Null>(
|
||||
context, AppLocalization.of(context).savedSettings);
|
||||
store.dispatch(SaveCompanyRequest(
|
||||
completer: completer,
|
||||
company: settingsUIState.company));
|
||||
completer: completer, company: settingsUIState.company));
|
||||
break;
|
||||
case EntityType.group:
|
||||
final completer = snackBarCompleter<GroupEntity>(
|
||||
|
|
|
|||
|
|
@ -63,8 +63,7 @@ class LocalizationSettingsVM {
|
|||
final completer = snackBarCompleter<Null>(
|
||||
context, AppLocalization.of(context).savedSettings);
|
||||
store.dispatch(SaveCompanyRequest(
|
||||
completer: completer,
|
||||
company: settingsUIState.company));
|
||||
completer: completer, company: settingsUIState.company));
|
||||
break;
|
||||
case EntityType.group:
|
||||
final completer = snackBarCompleter<GroupEntity>(
|
||||
|
|
|
|||
|
|
@ -49,8 +49,7 @@ class ProductSettingsVM {
|
|||
final completer = snackBarCompleter<Null>(
|
||||
context, AppLocalization.of(context).savedSettings);
|
||||
store.dispatch(SaveCompanyRequest(
|
||||
completer: completer,
|
||||
company: settingsUIState.company));
|
||||
completer: completer, company: settingsUIState.company));
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,8 +57,7 @@ class TaxSettingsVM {
|
|||
final completer = snackBarCompleter<Null>(
|
||||
context, AppLocalization.of(context).savedSettings);
|
||||
store.dispatch(SaveCompanyRequest(
|
||||
completer: completer,
|
||||
company: settingsUIState.company));
|
||||
completer: completer, company: settingsUIState.company));
|
||||
},
|
||||
onConfigureRatesPressed: (context) {
|
||||
if (state.taxRateState.list.isEmpty) {
|
||||
|
|
|
|||
|
|
@ -59,8 +59,7 @@ class TemplatesAndRemindersVM {
|
|||
final completer = snackBarCompleter<Null>(
|
||||
context, AppLocalization.of(context).savedSettings);
|
||||
store.dispatch(SaveCompanyRequest(
|
||||
completer: completer,
|
||||
company: settingsUIState.company));
|
||||
completer: completer, company: settingsUIState.company));
|
||||
break;
|
||||
case EntityType.group:
|
||||
final completer = snackBarCompleter<GroupEntity>(
|
||||
|
|
|
|||
|
|
@ -46,8 +46,7 @@ class UserDetailsVM {
|
|||
final completer = snackBarCompleter<Null>(
|
||||
context, AppLocalization.of(context).savedSettings);
|
||||
store.dispatch(SaveUserSettingsRequest(
|
||||
completer: completer,
|
||||
user: state.uiState.settingsUIState.user));
|
||||
completer: completer, user: state.uiState.settingsUIState.user));
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -58,8 +58,7 @@ class WorkflowSettingsVM {
|
|||
final completer = snackBarCompleter<Null>(
|
||||
context, AppLocalization.of(context).savedSettings);
|
||||
store.dispatch(SaveCompanyRequest(
|
||||
completer: completer,
|
||||
company: settingsUIState.company));
|
||||
completer: completer, company: settingsUIState.company));
|
||||
break;
|
||||
case EntityType.group:
|
||||
final completer = snackBarCompleter<GroupEntity>(
|
||||
|
|
|
|||
|
|
@ -38,8 +38,7 @@ class TaskScreen extends StatelessWidget {
|
|||
isChecked: isInMultiselect &&
|
||||
listUIState.selectedIds.length == viewModel.taskList.length,
|
||||
showCheckbox: isInMultiselect,
|
||||
onHamburgerLongPress: () =>
|
||||
store.dispatch(StartTaskMultiselect()),
|
||||
onHamburgerLongPress: () => store.dispatch(StartTaskMultiselect()),
|
||||
onCheckboxChanged: (value) {
|
||||
final tasks = viewModel.taskList
|
||||
.map<TaskEntity>((taskId) => viewModel.taskMap[taskId])
|
||||
|
|
|
|||
|
|
@ -38,8 +38,7 @@ class TaxRateSettingsScreen extends StatelessWidget {
|
|||
isChecked: isInMultiselect &&
|
||||
listUIState.selectedIds.length == viewModel.taxRateList.length,
|
||||
showCheckbox: isInMultiselect,
|
||||
onHamburgerLongPress: () =>
|
||||
store.dispatch(StartTaxRateMultiselect()),
|
||||
onHamburgerLongPress: () => store.dispatch(StartTaxRateMultiselect()),
|
||||
onBackPressed: () => store.dispatch(ViewSettings(
|
||||
navigator: Navigator.of(context), section: kSettingsTaxSettings)),
|
||||
onCheckboxChanged: (value) {
|
||||
|
|
|
|||
|
|
@ -39,8 +39,7 @@ class UserScreen extends StatelessWidget {
|
|||
isChecked: isInMultiselect &&
|
||||
listUIState.selectedIds.length == viewModel.userList.length,
|
||||
showCheckbox: isInMultiselect,
|
||||
onHamburgerLongPress: () =>
|
||||
store.dispatch(StartUserMultiselect()),
|
||||
onHamburgerLongPress: () => store.dispatch(StartUserMultiselect()),
|
||||
onCheckboxChanged: (value) {
|
||||
/*
|
||||
final users = viewModel.userList
|
||||
|
|
|
|||
|
|
@ -87,8 +87,7 @@ class UserViewVM {
|
|||
case EntityType.invoice:
|
||||
if (longPress && user.isActive) {
|
||||
createEntity(
|
||||
context: context,
|
||||
entity: InvoiceEntity(state: state));
|
||||
context: context, entity: InvoiceEntity(state: state));
|
||||
} else {
|
||||
viewEntitiesByType(
|
||||
context: context,
|
||||
|
|
@ -111,8 +110,7 @@ class UserViewVM {
|
|||
case EntityType.payment:
|
||||
if (longPress && user.isActive) {
|
||||
createEntity(
|
||||
context: context,
|
||||
entity: PaymentEntity(state: state));
|
||||
context: context, entity: PaymentEntity(state: state));
|
||||
} else {
|
||||
viewEntitiesByType(
|
||||
context: context,
|
||||
|
|
@ -132,10 +130,7 @@ class UserViewVM {
|
|||
break;
|
||||
case EntityType.task:
|
||||
if (longPress && user.isActive) {
|
||||
createEntity(
|
||||
context: context,
|
||||
entity:
|
||||
TaskEntity(state: state));
|
||||
createEntity(context: context, entity: TaskEntity(state: state));
|
||||
} else {
|
||||
viewEntitiesByType(
|
||||
context: context,
|
||||
|
|
|
|||
|
|
@ -89,11 +89,12 @@ class VendorViewVM {
|
|||
if (longPress && vendor.isActive) {
|
||||
createEntity(
|
||||
context: context,
|
||||
entity:
|
||||
ExpenseEntity(state: state, vendor: vendor));
|
||||
entity: ExpenseEntity(state: state, vendor: vendor));
|
||||
} else {
|
||||
viewEntitiesByType(
|
||||
context: context, entityType: EntityType.expense, filterEntity: vendor);
|
||||
context: context,
|
||||
entityType: EntityType.expense,
|
||||
filterEntity: vendor);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15767,7 +15767,8 @@ mixin LocalizationsProvider on LocaleCodeAware {
|
|||
|
||||
String get newPayment => _localizedValues[localeCode]['new_payment'];
|
||||
|
||||
String get switchListTable => _localizedValues[localeCode]['switch_list_table'];
|
||||
String get switchListTable =>
|
||||
_localizedValues[localeCode]['switch_list_table'];
|
||||
|
||||
String lookup(String key) {
|
||||
final lookupKey = toSnakeCase(key);
|
||||
|
|
|
|||
Loading…
Reference in New Issue