Settings
This commit is contained in:
parent
6f50130e17
commit
d12787d7a3
|
|
@ -1026,7 +1026,6 @@ abstract class SettingsEntity
|
|||
@BuiltValueField(wireName: 'email_template_reminder4')
|
||||
String get emailBodyReminder4;
|
||||
|
||||
|
||||
// TODO remove this field
|
||||
@nullable
|
||||
@BuiltValueField(wireName: 'custom_payment_terms')
|
||||
|
|
|
|||
|
|
@ -314,7 +314,8 @@ abstract class InvoiceEntity extends Object
|
|||
}
|
||||
|
||||
if (response == 0) {
|
||||
return (invoiceA.invoiceNumber ?? '').compareTo(invoiceB.invoiceNumber ?? '');
|
||||
return (invoiceA.invoiceNumber ?? '')
|
||||
.compareTo(invoiceB.invoiceNumber ?? '');
|
||||
} else {
|
||||
return response;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,12 +60,12 @@ class InvoiceRepository {
|
|||
data: json.encode([ids]));
|
||||
break;
|
||||
default:
|
||||
// Might have other actions in the future
|
||||
// Might have other actions in the future
|
||||
break;
|
||||
}
|
||||
|
||||
final InvoiceListResponse invoiceResponse =
|
||||
serializers.deserializeWith(InvoiceListResponse.serializer, response);
|
||||
serializers.deserializeWith(InvoiceListResponse.serializer, response);
|
||||
|
||||
return invoiceResponse.data.toList();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,12 +47,12 @@ class PaymentRepository {
|
|||
data: json.encode([ids]));
|
||||
break;
|
||||
default:
|
||||
// Might have other actions in the future
|
||||
// Might have other actions in the future
|
||||
break;
|
||||
}
|
||||
|
||||
final PaymentListResponse paymentResponse =
|
||||
serializers.deserializeWith(PaymentListResponse.serializer, response);
|
||||
serializers.deserializeWith(PaymentListResponse.serializer, response);
|
||||
|
||||
return paymentResponse.data.toList();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,12 +47,12 @@ class ProductRepository {
|
|||
data: json.encode([ids]));
|
||||
break;
|
||||
default:
|
||||
// Might have other actions in the future
|
||||
// Might have other actions in the future
|
||||
break;
|
||||
}
|
||||
|
||||
final ProductListResponse productResponse =
|
||||
serializers.deserializeWith(ProductListResponse.serializer, response);
|
||||
serializers.deserializeWith(ProductListResponse.serializer, response);
|
||||
|
||||
return productResponse.data.toList();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,12 +60,12 @@ class QuoteRepository {
|
|||
data: json.encode([ids]));
|
||||
break;
|
||||
default:
|
||||
// Might have other actions in the future
|
||||
// Might have other actions in the future
|
||||
break;
|
||||
}
|
||||
|
||||
final InvoiceListResponse invoiceResponse =
|
||||
serializers.deserializeWith(InvoiceListResponse.serializer, response);
|
||||
serializers.deserializeWith(InvoiceListResponse.serializer, response);
|
||||
|
||||
return invoiceResponse.data.toList();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@ String paymentStatsForUser(
|
|||
int countArchived = 0;
|
||||
paymentMap.forEach((paymentId, payment) {
|
||||
if (invoiceMap.containsKey(payment.invoiceId))
|
||||
// TODO enable this code
|
||||
// TODO enable this code
|
||||
//&& invoiceMap[payment.invoiceId].userId == userId)
|
||||
{
|
||||
if (payment.isActive) {
|
||||
|
|
|
|||
|
|
@ -99,9 +99,9 @@ String quoteStatsForClient(
|
|||
}
|
||||
|
||||
var memoizedQuoteStatsForUser = memo4((String userId,
|
||||
BuiltMap<String, InvoiceEntity> quoteMap,
|
||||
String activeLabel,
|
||||
String archivedLabel) =>
|
||||
BuiltMap<String, InvoiceEntity> quoteMap,
|
||||
String activeLabel,
|
||||
String archivedLabel) =>
|
||||
quoteStatsForUser(userId, quoteMap, activeLabel, archivedLabel));
|
||||
|
||||
String quoteStatsForUser(
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/link_text.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart';
|
||||
import 'package:invoiceninja_flutter/ui/auth/login_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||
|
|
@ -30,6 +31,7 @@ class LoginView extends StatefulWidget {
|
|||
|
||||
class _LoginState extends State<LoginView> {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
final _firstNameController = TextEditingController();
|
||||
final _lastNameController = TextEditingController();
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import 'package:invoiceninja_flutter/ui/client/edit/client_edit_notes.dart';
|
|||
import 'package:invoiceninja_flutter/ui/client/edit/client_edit_settings.dart';
|
||||
import 'package:invoiceninja_flutter/ui/client/edit/client_edit_shipping_address.dart';
|
||||
import 'package:invoiceninja_flutter/ui/client/edit/client_edit_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
|
|
@ -27,6 +28,7 @@ class _ClientEditState extends State<ClientEdit>
|
|||
with SingleTickerProviderStateMixin {
|
||||
TabController _controller;
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
|
|
|
|||
|
|
@ -170,4 +170,3 @@ class _ClientViewDetailsState extends State<ClientViewDetails> {
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/invoice/tax_rate_dropdown.dart';
|
||||
import 'package:invoiceninja_flutter/ui/company_gateway/edit/company_gateway_edit_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/strings.dart';
|
||||
|
|
@ -31,6 +32,7 @@ class CompanyGatewayEdit extends StatefulWidget {
|
|||
class _CompanyGatewayEditState extends State<CompanyGatewayEdit>
|
||||
with SingleTickerProviderStateMixin {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
final FocusScopeNode _focusNode = FocusScopeNode();
|
||||
TabController _controller;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||
import 'package:invoiceninja_flutter/ui/document/edit/document_edit_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
|
||||
|
|
@ -20,6 +21,7 @@ class DocumentEdit extends StatefulWidget {
|
|||
|
||||
class _DocumentEditState extends State<DocumentEdit> {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
// STARTER: controllers - do not remove comment
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import 'package:invoiceninja_flutter/ui/expense/edit/expense_edit_details.dart';
|
|||
import 'package:invoiceninja_flutter/ui/expense/edit/expense_edit_notes.dart';
|
||||
import 'package:invoiceninja_flutter/ui/expense/edit/expense_edit_settings.dart';
|
||||
import 'package:invoiceninja_flutter/ui/expense/edit/expense_edit_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
|
|
@ -24,6 +25,7 @@ class _ExpenseEditState extends State<ExpenseEdit>
|
|||
with SingleTickerProviderStateMixin {
|
||||
TabController _controller;
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/custom_field.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
||||
import 'package:invoiceninja_flutter/ui/group/edit/group_edit_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
|
||||
|
|
@ -23,6 +24,7 @@ class GroupEdit extends StatefulWidget {
|
|||
|
||||
class _GroupEditState extends State<GroupEdit> {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
final _nameController = TextEditingController();
|
||||
final _custom1Controller = TextEditingController();
|
||||
|
|
|
|||
|
|
@ -51,8 +51,7 @@ class InvoiceList extends StatelessWidget {
|
|||
children: <Widget>[
|
||||
if (filteredEntity != null)
|
||||
ListFilterMessage(
|
||||
title:
|
||||
'$filteredMessage: ${filteredEntity.listDisplayName}',
|
||||
title: '$filteredMessage: ${filteredEntity.listDisplayName}',
|
||||
onPressed: viewModel.onViewEntityFilterPressed,
|
||||
onClearPressed: viewModel.onClearEntityFilterPressed,
|
||||
),
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/forms/date_picker.dart';
|
||||
import 'package:invoiceninja_flutter/ui/payment/edit/payment_edit_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/entity_dropdown.dart';
|
||||
|
|
@ -29,6 +30,7 @@ class PaymentEdit extends StatefulWidget {
|
|||
|
||||
class _PaymentEditState extends State<PaymentEdit> {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
final _amountController = TextEditingController();
|
||||
final _transactionReferenceController = TextEditingController();
|
||||
|
|
|
|||
|
|
@ -52,8 +52,7 @@ class PaymentList extends StatelessWidget {
|
|||
children: <Widget>[
|
||||
if (filteredEntity != null)
|
||||
ListFilterMessage(
|
||||
title:
|
||||
'$filteredMessage: ${filteredEntity.listDisplayName}',
|
||||
title: '$filteredMessage: ${filteredEntity.listDisplayName}',
|
||||
onPressed: viewModel.onViewEntityFilterPressed,
|
||||
onClearPressed: viewModel.onClearEntityFilterPressed,
|
||||
),
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import 'package:invoiceninja_flutter/data/models/models.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/forms/custom_field.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/invoice/tax_rate_dropdown.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
|
@ -26,6 +27,7 @@ class ProductEdit extends StatefulWidget {
|
|||
|
||||
class _ProductEditState extends State<ProductEdit> {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
bool autoValidate = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/custom_field.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/forms/date_picker.dart';
|
||||
import 'package:invoiceninja_flutter/ui/project/edit/project_edit_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
|
|
@ -27,6 +28,7 @@ class ProjectEdit extends StatefulWidget {
|
|||
|
||||
class _ProjectEditState extends State<ProjectEdit> {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
bool autoValidate = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/buy_now_buttons_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
|
||||
|
|
@ -20,6 +21,7 @@ class BuyNowButtons extends StatefulWidget {
|
|||
|
||||
class _BuyNowButtonsState extends State<BuyNowButtons> {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
bool autoValidate = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/bool_dropdown_button.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/client_portal_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/icons.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
|
|
@ -28,6 +29,7 @@ class ClientPortal extends StatefulWidget {
|
|||
class _ClientPortalState extends State<ClientPortal>
|
||||
with SingleTickerProviderStateMixin {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
final FocusScopeNode _focusNode = FocusScopeNode();
|
||||
TabController _controller;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/resources/cached_image.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/company_details_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
||||
|
|
@ -30,6 +31,7 @@ class CompanyDetails extends StatefulWidget {
|
|||
class _CompanyDetailsState extends State<CompanyDetails>
|
||||
with SingleTickerProviderStateMixin {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
final FocusScopeNode _focusNode = FocusScopeNode();
|
||||
TabController _controller;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/credit_cards_and_banks_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
||||
class CreditCardsAndBanks extends StatefulWidget {
|
||||
|
|
@ -19,6 +20,7 @@ class CreditCardsAndBanks extends StatefulWidget {
|
|||
class _CreditCardsAndBanksState extends State<CreditCardsAndBanks>
|
||||
with SingleTickerProviderStateMixin {
|
||||
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
TabController _controller;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/app_form.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/custom_fields_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
||||
class CustomFields extends StatefulWidget {
|
||||
|
|
@ -23,6 +24,7 @@ class CustomFields extends StatefulWidget {
|
|||
class _CustomFieldsState extends State<CustomFields>
|
||||
with SingleTickerProviderStateMixin {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
FocusScopeNode _focusNode;
|
||||
TabController _controller;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/data_visualizations_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
||||
class DataVisualizations extends StatefulWidget {
|
||||
|
|
@ -18,6 +19,7 @@ class DataVisualizations extends StatefulWidget {
|
|||
|
||||
class _DataVisualizationsState extends State<DataVisualizations> {
|
||||
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
bool autoValidate = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/device_settings_list_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
|
||||
|
|
@ -21,6 +22,7 @@ class DeviceSettings extends StatefulWidget {
|
|||
|
||||
class _DeviceSettingsState extends State<DeviceSettings> {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/bool_dropdown_button.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/email_settings_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
||||
class EmailSettings extends StatefulWidget {
|
||||
|
|
@ -25,6 +26,7 @@ class EmailSettings extends StatefulWidget {
|
|||
class _EmailSettingsState extends State<EmailSettings>
|
||||
with SingleTickerProviderStateMixin {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
TabController _tabController;
|
||||
FocusScopeNode _focusNode;
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/date_picker.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/generated_numbers_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
|
|
@ -26,6 +27,7 @@ class GeneratedNumbers extends StatefulWidget {
|
|||
class _GeneratedNumbersState extends State<GeneratedNumbers>
|
||||
with SingleTickerProviderStateMixin {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
FocusScopeNode _focusNode;
|
||||
TabController _controller;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/import_export_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
||||
class ImportExport extends StatefulWidget {
|
||||
|
|
@ -18,6 +19,7 @@ class ImportExport extends StatefulWidget {
|
|||
|
||||
class _ImportExportState extends State<ImportExport> {
|
||||
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
bool autoValidate = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/bool_dropdown_button.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/forms/color_picker.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/invoice_design_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/fonts.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
||||
|
|
@ -30,6 +31,7 @@ class InvoiceDesign extends StatefulWidget {
|
|||
class _InvoiceDesignState extends State<InvoiceDesign>
|
||||
with SingleTickerProviderStateMixin {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
TabController _controller;
|
||||
FocusScopeNode _focusNode;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/app_form.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/forms/bool_dropdown_button.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/localization_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
||||
|
|
@ -27,6 +28,7 @@ class LocalizationSettings extends StatefulWidget {
|
|||
|
||||
class _LocalizationSettingsState extends State<LocalizationSettings> {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
bool autoValidate = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/notifications_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
||||
class NotificationSettings extends StatefulWidget {
|
||||
|
|
@ -18,6 +19,7 @@ class NotificationSettings extends StatefulWidget {
|
|||
|
||||
class _NotificationSettingsState extends State<NotificationSettings> {
|
||||
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
bool autoValidate = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/online_payments_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
||||
class OnlinePayments extends StatefulWidget {
|
||||
|
|
@ -18,8 +19,6 @@ class OnlinePayments extends StatefulWidget {
|
|||
|
||||
class _OnlinePaymentsState extends State<OnlinePayments>
|
||||
with SingleTickerProviderStateMixin {
|
||||
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
|
||||
TabController _controller;
|
||||
|
||||
bool autoValidate = false;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/tax_rates_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
||||
class TaxRates extends StatefulWidget {
|
||||
|
|
@ -19,6 +20,7 @@ class TaxRates extends StatefulWidget {
|
|||
class _TaxRatesState extends State<TaxRates>
|
||||
with SingleTickerProviderStateMixin {
|
||||
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
TabController _controller;
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ class _TemplatesAndRemindersState extends State<TemplatesAndReminders>
|
|||
FocusScopeNode _focusNode;
|
||||
TabController _controller;
|
||||
|
||||
|
||||
final _subjectController = TextEditingController();
|
||||
final _bodyController = TextEditingController();
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/app_form.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/user_details_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
||||
class UserDetails extends StatefulWidget {
|
||||
|
|
@ -21,6 +22,7 @@ class UserDetails extends StatefulWidget {
|
|||
|
||||
class _UserDetailsState extends State<UserDetails> {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
bool autoValidate = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/app_form.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/forms/bool_dropdown_button.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/workflow_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
||||
class WorkflowSettings extends StatefulWidget {
|
||||
|
|
@ -23,6 +24,7 @@ class WorkflowSettings extends StatefulWidget {
|
|||
class _WorkflowSettingsState extends State<WorkflowSettings>
|
||||
with SingleTickerProviderStateMixin {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
FocusScopeNode _focusNode;
|
||||
TabController _controller;
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:invoiceninja_flutter/ui/task/edit/task_edit_details_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/task/edit/task_edit_times_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/task/edit/task_edit_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
||||
|
|
@ -27,6 +28,7 @@ class _TaskEditState extends State<TaskEdit>
|
|||
TabController _controller;
|
||||
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
static const kDetailsScreen = 0;
|
||||
static const kTimesScreen = 1;
|
||||
|
|
|
|||
|
|
@ -47,8 +47,7 @@ class TaskList extends StatelessWidget {
|
|||
children: <Widget>[
|
||||
if (filteredEntity != null)
|
||||
ListFilterMessage(
|
||||
title:
|
||||
'$filteredMessage: ${filteredEntity.listDisplayName}',
|
||||
title: '$filteredMessage: ${filteredEntity.listDisplayName}',
|
||||
onPressed: viewModel.onViewEntityFilterPressed,
|
||||
onClearPressed: viewModel.onClearEntityFilterPressed,
|
||||
),
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/app_form.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/ui/tax_rate/edit/tax_rate_edit_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
||||
|
|
@ -22,6 +23,7 @@ class TaxRateEdit extends StatefulWidget {
|
|||
|
||||
class _TaxRateEditState extends State<TaxRateEdit> {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
bool autoValidate = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/app_form.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
||||
import 'package:invoiceninja_flutter/ui/user/edit/user_edit_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
|
||||
|
|
@ -22,6 +23,7 @@ class UserEdit extends StatefulWidget {
|
|||
|
||||
class _UserEditState extends State<UserEdit> {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
bool autoValidate = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -103,36 +103,36 @@ class UserView extends StatelessWidget {
|
|||
localization.active,
|
||||
localization.archived),
|
||||
),
|
||||
EntityListTile(
|
||||
bottomPadding: 1,
|
||||
icon: getEntityIcon(EntityType.payment),
|
||||
title: localization.payments,
|
||||
onTap: () => viewModel.onEntityPressed(context, EntityType.payment),
|
||||
onLongPress: () =>
|
||||
viewModel.onEntityPressed(context, EntityType.payment, true),
|
||||
subtitle: memoizedPaymentStatsForUser(
|
||||
user.id,
|
||||
state.paymentState.map,
|
||||
state.invoiceState.map,
|
||||
localization.active,
|
||||
localization.archived),
|
||||
),
|
||||
company.isModuleEnabled(EntityType.quote)
|
||||
? EntityListTile(
|
||||
bottomPadding: 1,
|
||||
icon: getEntityIcon(EntityType.quote),
|
||||
title: localization.quotes,
|
||||
onTap: () =>
|
||||
viewModel.onEntityPressed(context, EntityType.quote),
|
||||
onLongPress: () =>
|
||||
viewModel.onEntityPressed(context, EntityType.quote, true),
|
||||
subtitle: memoizedQuoteStatsForUser(
|
||||
user.id,
|
||||
state.quoteState.map,
|
||||
localization.active,
|
||||
localization.archived),
|
||||
)
|
||||
: Container(),
|
||||
EntityListTile(
|
||||
bottomPadding: 1,
|
||||
icon: getEntityIcon(EntityType.payment),
|
||||
title: localization.payments,
|
||||
onTap: () => viewModel.onEntityPressed(context, EntityType.payment),
|
||||
onLongPress: () =>
|
||||
viewModel.onEntityPressed(context, EntityType.payment, true),
|
||||
subtitle: memoizedPaymentStatsForUser(
|
||||
user.id,
|
||||
state.paymentState.map,
|
||||
state.invoiceState.map,
|
||||
localization.active,
|
||||
localization.archived),
|
||||
),
|
||||
company.isModuleEnabled(EntityType.quote)
|
||||
? EntityListTile(
|
||||
bottomPadding: 1,
|
||||
icon: getEntityIcon(EntityType.quote),
|
||||
title: localization.quotes,
|
||||
onTap: () =>
|
||||
viewModel.onEntityPressed(context, EntityType.quote),
|
||||
onLongPress: () => viewModel.onEntityPressed(
|
||||
context, EntityType.quote, true),
|
||||
subtitle: memoizedQuoteStatsForUser(
|
||||
user.id,
|
||||
state.quoteState.map,
|
||||
localization.active,
|
||||
localization.archived),
|
||||
)
|
||||
: Container(),
|
||||
/*
|
||||
company.isModuleEnabled(EntityType.project)
|
||||
? EntityListTile(
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import 'package:invoiceninja_flutter/ui/vendor/edit/vendor_edit_contacts_vm.dart
|
|||
import 'package:invoiceninja_flutter/ui/vendor/edit/vendor_edit_details.dart';
|
||||
import 'package:invoiceninja_flutter/ui/vendor/edit/vendor_edit_notes.dart';
|
||||
import 'package:invoiceninja_flutter/ui/vendor/edit/vendor_edit_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
|
|
@ -25,6 +26,7 @@ class _VendorEditState extends State<VendorEdit>
|
|||
with SingleTickerProviderStateMixin {
|
||||
TabController _controller;
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
|
|
|
|||
|
|
@ -15432,15 +15432,14 @@ mixin LocalizationsProvider on LocaleCodeAware {
|
|||
|
||||
String get afterDueDate => _localizedValues[localeCode]['after_due_date'];
|
||||
|
||||
String get afterInvoiceDate => _localizedValues[localeCode]['after_invoice_date'];
|
||||
String get afterInvoiceDate =>
|
||||
_localizedValues[localeCode]['after_invoice_date'];
|
||||
|
||||
String get schedule => _localizedValues[localeCode]['schedule'];
|
||||
|
||||
|
||||
String get lateFeeAmount => _localizedValues[localeCode]['late_fee_amount'];
|
||||
String get lateFeePercent => _localizedValues[localeCode]['late_fee_percent'];
|
||||
|
||||
|
||||
String lookup(String key) {
|
||||
final lookupKey = toSnakeCase(key);
|
||||
return _localizedValues[localeCode][lookupKey] ??
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ class MyApp extends StatefulWidget {
|
|||
|
||||
class _MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
|
||||
static final GlobalKey<ClientPageState> _clientKey =
|
||||
GlobalKey<ClientPageState>();
|
||||
static final GlobalKey<ContactsPageState> _contactsKey =
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ class StubEdit extends StatefulWidget {
|
|||
|
||||
class _StubEditState extends State<StubEdit> {
|
||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
// STARTER: controllers - do not remove comment
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue