Update icons
This commit is contained in:
parent
b4212d5cbc
commit
3c38bb855d
|
|
@ -3,7 +3,6 @@ import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/gestures.dart';
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/rendering.dart';
|
import 'package:flutter/rendering.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|
||||||
import 'package:invoiceninja_flutter/data/web_client.dart';
|
import 'package:invoiceninja_flutter/data/web_client.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/ui/pref_state.dart';
|
import 'package:invoiceninja_flutter/redux/ui/pref_state.dart';
|
||||||
|
|
@ -15,6 +14,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/app_dropdown_button.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/resources/cached_image.dart';
|
import 'package:invoiceninja_flutter/ui/app/resources/cached_image.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/system/update_dialog.dart';
|
import 'package:invoiceninja_flutter/ui/system/update_dialog.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/dialogs.dart';
|
import 'package:invoiceninja_flutter/utils/dialogs.dart';
|
||||||
|
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
||||||
import 'package:redux/redux.dart';
|
import 'package:redux/redux.dart';
|
||||||
import 'package:invoiceninja_flutter/.env.dart';
|
import 'package:invoiceninja_flutter/.env.dart';
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
|
|
@ -775,7 +775,7 @@ void _showAbout(BuildContext context) async {
|
||||||
padding: const EdgeInsets.only(top: 30),
|
padding: const EdgeInsets.only(top: 30),
|
||||||
child: AppButton(
|
child: AppButton(
|
||||||
label: localization.healthCheck.toUpperCase(),
|
label: localization.healthCheck.toUpperCase(),
|
||||||
iconData: FontAwesomeIcons.shieldAlt,
|
iconData: MdiIcons.shield,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
showDialog<HealthCheckDialog>(
|
showDialog<HealthCheckDialog>(
|
||||||
context: context,
|
context: context,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
||||||
|
|
||||||
class LockScreen extends StatelessWidget {
|
class LockScreen extends StatelessWidget {
|
||||||
const LockScreen({@required this.onAuthenticatePressed});
|
const LockScreen({@required this.onAuthenticatePressed});
|
||||||
|
|
@ -21,7 +22,7 @@ class LockScreen extends StatelessWidget {
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Icon(
|
Icon(
|
||||||
FontAwesomeIcons.lock,
|
MdiIcons.lock,
|
||||||
size: 24.0,
|
size: 24.0,
|
||||||
color: Colors.grey[400],
|
color: Colors.grey[400],
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import 'dart:async';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|
||||||
import 'package:invoiceninja_flutter/constants.dart';
|
import 'package:invoiceninja_flutter/constants.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/ui/pref_state.dart';
|
import 'package:invoiceninja_flutter/redux/ui/pref_state.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/buttons/elevated_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/buttons/elevated_button.dart';
|
||||||
|
|
@ -16,6 +16,7 @@ import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
import 'package:invoiceninja_flutter/.env.dart';
|
import 'package:invoiceninja_flutter/.env.dart';
|
||||||
|
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
||||||
import 'package:rounded_loading_button/rounded_loading_button.dart';
|
import 'package:rounded_loading_button/rounded_loading_button.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
|
|
@ -630,7 +631,7 @@ class _LoginState extends State<LoginView> {
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
if (!_recoverPassword)
|
if (!_recoverPassword)
|
||||||
Icon(FontAwesomeIcons.lock, size: 16),
|
Icon(MdiIcons.lock, size: 16),
|
||||||
FlatButton(
|
FlatButton(
|
||||||
child: Text(_recoverPassword
|
child: Text(_recoverPassword
|
||||||
? localization.cancel
|
? localization.cancel
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|
||||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/project_model.dart';
|
import 'package:invoiceninja_flutter/data/models/project_model.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||||
|
|
@ -99,7 +99,7 @@ class _ProjectViewState extends State<ProjectView> {
|
||||||
color: Theme.of(context).canvasColor,
|
color: Theme.of(context).canvasColor,
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
title: EntityStateTitle(entity: client),
|
title: EntityStateTitle(entity: client),
|
||||||
leading: Icon(FontAwesomeIcons.users, size: 18.0),
|
//leading: Icon(MdiIcons.users, size: 18.0),
|
||||||
trailing: Icon(Icons.navigate_next),
|
trailing: Icon(Icons.navigate_next),
|
||||||
onTap: () => inspectEntity(context: context, entity: client),
|
onTap: () => inspectEntity(context: context, entity: client),
|
||||||
onLongPress: () => inspectEntity(
|
onLongPress: () => inspectEntity(
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
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/app/form_card.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/app_form.dart';
|
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/app/forms/bool_dropdown_button.dart';
|
||||||
|
|
@ -10,7 +11,9 @@ import 'package:invoiceninja_flutter/ui/app/lists/list_divider.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/client_portal_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/client_portal_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/completers.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/localization.dart';
|
||||||
|
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
||||||
|
|
||||||
class ClientPortal extends StatefulWidget {
|
class ClientPortal extends StatefulWidget {
|
||||||
const ClientPortal({
|
const ClientPortal({
|
||||||
|
|
@ -224,14 +227,14 @@ class _ClientPortalState extends State<ClientPortal>
|
||||||
BoolDropdownButton(
|
BoolDropdownButton(
|
||||||
label: localization.clientPortal,
|
label: localization.clientPortal,
|
||||||
value: settings.enablePortal,
|
value: settings.enablePortal,
|
||||||
iconData: FontAwesomeIcons.cloud,
|
iconData: MdiIcons.cloud,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
settings.rebuild((b) => b..enablePortal = value)),
|
settings.rebuild((b) => b..enablePortal = value)),
|
||||||
),
|
),
|
||||||
BoolDropdownButton(
|
BoolDropdownButton(
|
||||||
label: localization.dashboard,
|
label: localization.dashboard,
|
||||||
value: settings.enablePortalDashboard,
|
value: settings.enablePortalDashboard,
|
||||||
iconData: FontAwesomeIcons.tachometerAlt,
|
iconData: getEntityIcon(EntityType.dashboard),
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(settings
|
onChanged: (value) => viewModel.onSettingsChanged(settings
|
||||||
.rebuild((b) => b..enablePortalDashboard = value)),
|
.rebuild((b) => b..enablePortalDashboard = value)),
|
||||||
),
|
),
|
||||||
|
|
@ -253,7 +256,7 @@ class _ClientPortalState extends State<ClientPortal>
|
||||||
label: localization.clientRegistration,
|
label: localization.clientRegistration,
|
||||||
helpLabel: localization.clientRegistrationHelp,
|
helpLabel: localization.clientRegistrationHelp,
|
||||||
value: company.clientCanRegister,
|
value: company.clientCanRegister,
|
||||||
iconData: FontAwesomeIcons.userPlus,
|
iconData: MdiIcons.login,
|
||||||
onChanged: (value) => viewModel.onCompanyChanged(
|
onChanged: (value) => viewModel.onCompanyChanged(
|
||||||
company.rebuild((b) => b..clientCanRegister = value)),
|
company.rebuild((b) => b..clientCanRegister = value)),
|
||||||
),
|
),
|
||||||
|
|
@ -261,7 +264,7 @@ class _ClientPortalState extends State<ClientPortal>
|
||||||
label: localization.storefront,
|
label: localization.storefront,
|
||||||
helpLabel: localization.storefrontHelp,
|
helpLabel: localization.storefrontHelp,
|
||||||
value: company.enableShopApi,
|
value: company.enableShopApi,
|
||||||
iconData: FontAwesomeIcons.shoppingCart,
|
iconData: MdiIcons.shopping,
|
||||||
onChanged: (value) => viewModel.onCompanyChanged(
|
onChanged: (value) => viewModel.onCompanyChanged(
|
||||||
company.rebuild((b) => b..enableShopApi = value)),
|
company.rebuild((b) => b..enableShopApi = value)),
|
||||||
),
|
),
|
||||||
|
|
@ -314,7 +317,7 @@ class _ClientPortalState extends State<ClientPortal>
|
||||||
label: localization.enablePortalPassword,
|
label: localization.enablePortalPassword,
|
||||||
helpLabel: localization.enablePortalPasswordHelp,
|
helpLabel: localization.enablePortalPasswordHelp,
|
||||||
value: settings.enablePortalPassword,
|
value: settings.enablePortalPassword,
|
||||||
iconData: FontAwesomeIcons.shieldAlt,
|
iconData: MdiIcons.shield,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(settings
|
onChanged: (value) => viewModel.onSettingsChanged(settings
|
||||||
.rebuild((b) => b..enablePortalPassword = value)),
|
.rebuild((b) => b..enablePortalPassword = value)),
|
||||||
),
|
),
|
||||||
|
|
@ -326,7 +329,7 @@ class _ClientPortalState extends State<ClientPortal>
|
||||||
label: localization.showAcceptInvoiceTerms,
|
label: localization.showAcceptInvoiceTerms,
|
||||||
helpLabel: localization.showAcceptInvoiceTermsHelp,
|
helpLabel: localization.showAcceptInvoiceTermsHelp,
|
||||||
value: settings.showAcceptInvoiceTerms,
|
value: settings.showAcceptInvoiceTerms,
|
||||||
iconData: FontAwesomeIcons.checkSquare,
|
iconData: MdiIcons.checkBoxOutline,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(settings
|
onChanged: (value) => viewModel.onSettingsChanged(settings
|
||||||
.rebuild((b) => b..showAcceptInvoiceTerms = value)),
|
.rebuild((b) => b..showAcceptInvoiceTerms = value)),
|
||||||
),
|
),
|
||||||
|
|
@ -334,7 +337,7 @@ class _ClientPortalState extends State<ClientPortal>
|
||||||
label: localization.showAcceptQuoteTerms,
|
label: localization.showAcceptQuoteTerms,
|
||||||
helpLabel: localization.showAcceptQuoteTermsHelp,
|
helpLabel: localization.showAcceptQuoteTermsHelp,
|
||||||
value: settings.showAcceptQuoteTerms,
|
value: settings.showAcceptQuoteTerms,
|
||||||
iconData: FontAwesomeIcons.checkSquare,
|
iconData: MdiIcons.checkBoxOutline,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(settings
|
onChanged: (value) => viewModel.onSettingsChanged(settings
|
||||||
.rebuild((b) => b..showAcceptQuoteTerms = value)),
|
.rebuild((b) => b..showAcceptQuoteTerms = value)),
|
||||||
),
|
),
|
||||||
|
|
@ -346,7 +349,7 @@ class _ClientPortalState extends State<ClientPortal>
|
||||||
label: localization.requireInvoiceSignature,
|
label: localization.requireInvoiceSignature,
|
||||||
helpLabel: localization.requireInvoiceSignatureHelp,
|
helpLabel: localization.requireInvoiceSignatureHelp,
|
||||||
value: settings.requireInvoiceSignature,
|
value: settings.requireInvoiceSignature,
|
||||||
iconData: FontAwesomeIcons.fileSignature,
|
iconData: MdiIcons.signature,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(settings
|
onChanged: (value) => viewModel.onSettingsChanged(settings
|
||||||
.rebuild((b) => b..requireInvoiceSignature = value)),
|
.rebuild((b) => b..requireInvoiceSignature = value)),
|
||||||
),
|
),
|
||||||
|
|
@ -354,7 +357,7 @@ class _ClientPortalState extends State<ClientPortal>
|
||||||
label: localization.requireQuoteSignature,
|
label: localization.requireQuoteSignature,
|
||||||
helpLabel: localization.requireInvoiceSignatureHelp,
|
helpLabel: localization.requireInvoiceSignatureHelp,
|
||||||
value: settings.requireQuoteSignature,
|
value: settings.requireQuoteSignature,
|
||||||
iconData: FontAwesomeIcons.fileSignature,
|
iconData: MdiIcons.signature,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(settings
|
onChanged: (value) => viewModel.onSettingsChanged(settings
|
||||||
.rebuild((b) => b..requireQuoteSignature = value)),
|
.rebuild((b) => b..requireQuoteSignature = value)),
|
||||||
),
|
),
|
||||||
|
|
@ -363,7 +366,7 @@ class _ClientPortalState extends State<ClientPortal>
|
||||||
label: localization.signatureOnPdf,
|
label: localization.signatureOnPdf,
|
||||||
helpLabel: localization.signatureOnPdfHelp,
|
helpLabel: localization.signatureOnPdfHelp,
|
||||||
value: settings.signatureOnPdf,
|
value: settings.signatureOnPdf,
|
||||||
iconData: FontAwesomeIcons.fileContract,
|
iconData: MdiIcons.fileContract,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
settings.rebuild((b) => b..signatureOnPdf = value)),
|
settings.rebuild((b) => b..signatureOnPdf = value)),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:invoiceninja_flutter/.env.dart';
|
import 'package:invoiceninja_flutter/.env.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|
||||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/ui/pref_state.dart';
|
import 'package:invoiceninja_flutter/redux/ui/pref_state.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||||
|
|
@ -9,6 +9,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/app_dropdown_button.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/device_settings_list_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/device_settings_list_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
||||||
|
|
||||||
class DeviceSettings extends StatefulWidget {
|
class DeviceSettings extends StatefulWidget {
|
||||||
const DeviceSettings({
|
const DeviceSettings({
|
||||||
|
|
@ -134,7 +135,7 @@ class _DeviceSettingsState extends State<DeviceSettings> {
|
||||||
viewModel.onDarkModeChanged(context, value),
|
viewModel.onDarkModeChanged(context, value),
|
||||||
secondary: Icon(kIsWeb
|
secondary: Icon(kIsWeb
|
||||||
? Icons.lightbulb_outline
|
? Icons.lightbulb_outline
|
||||||
: FontAwesomeIcons.moon),
|
: MdiIcons.themeLightDark),
|
||||||
activeColor: Theme.of(context).accentColor,
|
activeColor: Theme.of(context).accentColor,
|
||||||
),
|
),
|
||||||
SwitchListTile(
|
SwitchListTile(
|
||||||
|
|
@ -142,9 +143,8 @@ class _DeviceSettingsState extends State<DeviceSettings> {
|
||||||
value: prefState.longPressSelectionIsDefault,
|
value: prefState.longPressSelectionIsDefault,
|
||||||
onChanged: (value) =>
|
onChanged: (value) =>
|
||||||
viewModel.onLongPressSelectionIsDefault(context, value),
|
viewModel.onLongPressSelectionIsDefault(context, value),
|
||||||
secondary: Icon(kIsWeb
|
secondary: Icon(
|
||||||
? Icons.check_box
|
kIsWeb ? Icons.check_box : MdiIcons.checkBoxOutline),
|
||||||
: FontAwesomeIcons.solidCheckSquare),
|
|
||||||
activeColor: Theme.of(context).accentColor,
|
activeColor: Theme.of(context).accentColor,
|
||||||
),
|
),
|
||||||
/*
|
/*
|
||||||
|
|
@ -168,8 +168,8 @@ class _DeviceSettingsState extends State<DeviceSettings> {
|
||||||
onChanged: (value) => viewModel
|
onChanged: (value) => viewModel
|
||||||
.onRequireAuthenticationChanged(context, value),
|
.onRequireAuthenticationChanged(context, value),
|
||||||
secondary: Icon(prefState.requireAuthentication
|
secondary: Icon(prefState.requireAuthentication
|
||||||
? FontAwesomeIcons.lock
|
? MdiIcons.lock
|
||||||
: FontAwesomeIcons.unlockAlt),
|
: MdiIcons.lockOpen),
|
||||||
activeColor: Theme.of(context).accentColor,
|
activeColor: Theme.of(context).accentColor,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -194,8 +194,8 @@ class _DeviceSettingsState extends State<DeviceSettings> {
|
||||||
value: prefState.autoStartTasks,
|
value: prefState.autoStartTasks,
|
||||||
onChanged: (value) =>
|
onChanged: (value) =>
|
||||||
viewModel.onAutoStartTasksChanged(context, value),
|
viewModel.onAutoStartTasksChanged(context, value),
|
||||||
secondary: Icon(
|
secondary:
|
||||||
kIsWeb ? Icons.timer : FontAwesomeIcons.clock),
|
Icon(kIsWeb ? Icons.timer : MdiIcons.clock),
|
||||||
activeColor: Theme.of(context).accentColor,
|
activeColor: Theme.of(context).accentColor,
|
||||||
)
|
)
|
||||||
: SizedBox(),
|
: SizedBox(),
|
||||||
|
|
@ -206,8 +206,7 @@ class _DeviceSettingsState extends State<DeviceSettings> {
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Builder(builder: (BuildContext context) {
|
Builder(builder: (BuildContext context) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
leading: Icon(
|
leading: Icon(Icons.refresh),
|
||||||
kIsWeb ? Icons.refresh : FontAwesomeIcons.syncAlt),
|
|
||||||
title: Text(AppLocalization.of(context).refreshData),
|
title: Text(AppLocalization.of(context).refreshData),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
viewModel.onRefreshTap(context);
|
viewModel.onRefreshTap(context);
|
||||||
|
|
@ -217,7 +216,7 @@ class _DeviceSettingsState extends State<DeviceSettings> {
|
||||||
ListTile(
|
ListTile(
|
||||||
leading: Icon(kIsWeb
|
leading: Icon(kIsWeb
|
||||||
? Icons.power_settings_new
|
? Icons.power_settings_new
|
||||||
: FontAwesomeIcons.powerOff),
|
: MdiIcons.powerOff),
|
||||||
title: Text(AppLocalization.of(context).logout),
|
title: Text(AppLocalization.of(context).logout),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
viewModel.onLogoutTap(context);
|
viewModel.onLogoutTap(context);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|
||||||
import 'package:invoiceninja_flutter/constants.dart';
|
import 'package:invoiceninja_flutter/constants.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/company_model.dart';
|
import 'package:invoiceninja_flutter/data/models/company_model.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
|
|
@ -15,6 +15,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/dynamic_selector.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/email_settings_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/email_settings_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
||||||
|
|
||||||
class EmailSettings extends StatefulWidget {
|
class EmailSettings extends StatefulWidget {
|
||||||
const EmailSettings({
|
const EmailSettings({
|
||||||
|
|
@ -114,7 +115,7 @@ class _EmailSettingsState extends State<EmailSettings> {
|
||||||
label: localization.sendFromGmail,
|
label: localization.sendFromGmail,
|
||||||
value: settings.emailSendingMethod ==
|
value: settings.emailSendingMethod ==
|
||||||
SettingsEntity.EMAIL_SENDING_METHOD_GMAIL,
|
SettingsEntity.EMAIL_SENDING_METHOD_GMAIL,
|
||||||
iconData: FontAwesomeIcons.solidEnvelope,
|
iconData: MdiIcons.gmail,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
settings.rebuild((b) => b
|
settings.rebuild((b) => b
|
||||||
..emailSendingMethod = (value == true
|
..emailSendingMethod = (value == true
|
||||||
|
|
@ -157,7 +158,7 @@ class _EmailSettingsState extends State<EmailSettings> {
|
||||||
label: localization.enableMarkup,
|
label: localization.enableMarkup,
|
||||||
helpLabel: localization.enableMarkupHelp,
|
helpLabel: localization.enableMarkupHelp,
|
||||||
value: settings.enableEmailMarkup,
|
value: settings.enableEmailMarkup,
|
||||||
iconData: kIsWeb ? Icons.email : FontAwesomeIcons.solidEnvelope,
|
iconData: kIsWeb ? Icons.email : MdiIcons.solidEnvelope,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
settings.rebuild((b) => b..enableEmailMarkup = value)),
|
settings.rebuild((b) => b..enableEmailMarkup = value)),
|
||||||
),
|
),
|
||||||
|
|
@ -213,21 +214,21 @@ class _EmailSettingsState extends State<EmailSettings> {
|
||||||
BoolDropdownButton(
|
BoolDropdownButton(
|
||||||
label: localization.attachPdf,
|
label: localization.attachPdf,
|
||||||
value: settings.pdfEmailAttachment,
|
value: settings.pdfEmailAttachment,
|
||||||
iconData: FontAwesomeIcons.fileInvoice,
|
iconData: MdiIcons.filePdf,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
settings.rebuild((b) => b..pdfEmailAttachment = value)),
|
settings.rebuild((b) => b..pdfEmailAttachment = value)),
|
||||||
),
|
),
|
||||||
BoolDropdownButton(
|
BoolDropdownButton(
|
||||||
label: localization.attachDocuments,
|
label: localization.attachDocuments,
|
||||||
value: settings.documentEmailAttachment,
|
value: settings.documentEmailAttachment,
|
||||||
iconData: FontAwesomeIcons.fileImage,
|
iconData: MdiIcons.fileImage,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(settings
|
onChanged: (value) => viewModel.onSettingsChanged(settings
|
||||||
.rebuild((b) => b..documentEmailAttachment = value)),
|
.rebuild((b) => b..documentEmailAttachment = value)),
|
||||||
),
|
),
|
||||||
BoolDropdownButton(
|
BoolDropdownButton(
|
||||||
label: localization.attachUbl,
|
label: localization.attachUbl,
|
||||||
value: settings.ublEmailAttachment,
|
value: settings.ublEmailAttachment,
|
||||||
iconData: FontAwesomeIcons.fileArchive,
|
iconData: MdiIcons.xml,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
settings.rebuild((b) => b..ublEmailAttachment = value)),
|
settings.rebuild((b) => b..ublEmailAttachment = value)),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|
||||||
import 'package:invoiceninja_flutter/constants.dart';
|
import 'package:invoiceninja_flutter/constants.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/client_model.dart';
|
import 'package:invoiceninja_flutter/data/models/client_model.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/company_model.dart';
|
import 'package:invoiceninja_flutter/data/models/company_model.dart';
|
||||||
|
|
@ -26,6 +26,7 @@ import 'package:invoiceninja_flutter/ui/settings/invoice_design_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/fonts.dart';
|
import 'package:invoiceninja_flutter/utils/fonts.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
||||||
|
|
||||||
class InvoiceDesign extends StatefulWidget {
|
class InvoiceDesign extends StatefulWidget {
|
||||||
const InvoiceDesign({
|
const InvoiceDesign({
|
||||||
|
|
@ -244,7 +245,7 @@ class _InvoiceDesignState extends State<InvoiceDesign>
|
||||||
BoolDropdownButton(
|
BoolDropdownButton(
|
||||||
label: localization.allPagesHeader,
|
label: localization.allPagesHeader,
|
||||||
value: settings.allPagesHeader,
|
value: settings.allPagesHeader,
|
||||||
iconData: FontAwesomeIcons.fileInvoice,
|
iconData: MdiIcons.pageLayoutHeader,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
settings.rebuild((b) => b..allPagesHeader = value)),
|
settings.rebuild((b) => b..allPagesHeader = value)),
|
||||||
enabledLabel: localization.allPages,
|
enabledLabel: localization.allPages,
|
||||||
|
|
@ -253,7 +254,7 @@ class _InvoiceDesignState extends State<InvoiceDesign>
|
||||||
BoolDropdownButton(
|
BoolDropdownButton(
|
||||||
label: localization.allPagesFooter,
|
label: localization.allPagesFooter,
|
||||||
value: settings.allPagesFooter,
|
value: settings.allPagesFooter,
|
||||||
iconData: FontAwesomeIcons.fileInvoice,
|
iconData: MdiIcons.pageLayoutFooter,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
settings.rebuild((b) => b..allPagesFooter = value)),
|
settings.rebuild((b) => b..allPagesFooter = value)),
|
||||||
enabledLabel: localization.allPages,
|
enabledLabel: localization.allPages,
|
||||||
|
|
@ -268,7 +269,7 @@ class _InvoiceDesignState extends State<InvoiceDesign>
|
||||||
label: localization.hidePaidToDate,
|
label: localization.hidePaidToDate,
|
||||||
helpLabel: localization.hidePaidToDateHelp,
|
helpLabel: localization.hidePaidToDateHelp,
|
||||||
value: settings.hidePaidToDate,
|
value: settings.hidePaidToDate,
|
||||||
iconData: FontAwesomeIcons.fileInvoiceDollar,
|
iconData: MdiIcons.fileInvoiceDollar,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
settings.rebuild((b) => b..hidePaidToDate = value)),
|
settings.rebuild((b) => b..hidePaidToDate = value)),
|
||||||
),
|
),
|
||||||
|
|
@ -276,7 +277,7 @@ class _InvoiceDesignState extends State<InvoiceDesign>
|
||||||
label: localization.invoiceEmbedDocuments,
|
label: localization.invoiceEmbedDocuments,
|
||||||
helpLabel: localization.invoiceEmbedDocumentsHelp,
|
helpLabel: localization.invoiceEmbedDocumentsHelp,
|
||||||
value: settings.embedDocuments,
|
value: settings.embedDocuments,
|
||||||
iconData: FontAwesomeIcons.image,
|
iconData: MdiIcons.image,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
settings.rebuild((b) => b..embedDocuments = value)),
|
settings.rebuild((b) => b..embedDocuments = value)),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:built_collection/built_collection.dart';
|
import 'package:built_collection/built_collection.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|
||||||
import 'package:invoiceninja_flutter/constants.dart';
|
import 'package:invoiceninja_flutter/constants.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/static/static_selectors.dart';
|
import 'package:invoiceninja_flutter/redux/static/static_selectors.dart';
|
||||||
|
|
@ -14,6 +14,7 @@ import 'package:invoiceninja_flutter/ui/settings/localization_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
||||||
|
|
||||||
class LocalizationSettings extends StatefulWidget {
|
class LocalizationSettings extends StatefulWidget {
|
||||||
const LocalizationSettings({
|
const LocalizationSettings({
|
||||||
|
|
@ -179,7 +180,7 @@ class _LocalizationSettingsState extends State<LocalizationSettings>
|
||||||
.rebuild((b) => b..dateFormatId = dateFormat?.id)),
|
.rebuild((b) => b..dateFormatId = dateFormat?.id)),
|
||||||
),
|
),
|
||||||
BoolDropdownButton(
|
BoolDropdownButton(
|
||||||
iconData: kIsWeb ? Icons.timer : FontAwesomeIcons.clock,
|
iconData: MdiIcons.clock,
|
||||||
label: localization.militaryTime,
|
label: localization.militaryTime,
|
||||||
helpLabel: localization.militaryTimeHelp,
|
helpLabel: localization.militaryTimeHelp,
|
||||||
value: settings.enableMilitaryTime,
|
value: settings.enableMilitaryTime,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|
||||||
import 'package:invoiceninja_flutter/ui/app/buttons/elevated_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/buttons/elevated_button.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/app_dropdown_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/forms/app_dropdown_button.dart';
|
||||||
|
|
@ -10,6 +10,7 @@ import 'package:invoiceninja_flutter/ui/app/invoice/tax_rate_dropdown.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/tax_settings_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/tax_settings_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
||||||
|
|
||||||
class TaxSettings extends StatefulWidget {
|
class TaxSettings extends StatefulWidget {
|
||||||
const TaxSettings({
|
const TaxSettings({
|
||||||
|
|
@ -71,7 +72,7 @@ class _TaxSettingsState extends State<TaxSettings> {
|
||||||
),
|
),
|
||||||
SizedBox(height: 16),
|
SizedBox(height: 16),
|
||||||
BoolDropdownButton(
|
BoolDropdownButton(
|
||||||
iconData: FontAwesomeIcons.percent,
|
iconData: MdiIcons.percent,
|
||||||
label: localization.inclusiveTaxes,
|
label: localization.inclusiveTaxes,
|
||||||
value: settings.enableInclusiveTaxes,
|
value: settings.enableInclusiveTaxes,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|
||||||
import 'package:invoiceninja_flutter/constants.dart';
|
import 'package:invoiceninja_flutter/constants.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/company_model.dart';
|
import 'package:invoiceninja_flutter/data/models/company_model.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
|
|
@ -330,7 +330,7 @@ class _TemplatesAndRemindersState extends State<TemplatesAndReminders>
|
||||||
value: settings.enableReminder4,
|
value: settings.enableReminder4,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
settings.rebuild((b) => b..enableReminder4 = value)),
|
settings.rebuild((b) => b..enableReminder4 = value)),
|
||||||
iconData: FontAwesomeIcons.solidEnvelope,
|
iconData: Icons.email,
|
||||||
),
|
),
|
||||||
AppDropdownButton(
|
AppDropdownButton(
|
||||||
showUseDefault: true,
|
showUseDefault: true,
|
||||||
|
|
@ -498,7 +498,7 @@ class _ReminderSettingsState extends State<ReminderSettings> {
|
||||||
_enabled = value;
|
_enabled = value;
|
||||||
_onChanged();
|
_onChanged();
|
||||||
},
|
},
|
||||||
iconData: FontAwesomeIcons.solidEnvelope,
|
iconData: Icons.email,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
DecoratedFormField(
|
DecoratedFormField(
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,15 @@
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|
||||||
import 'package:invoiceninja_flutter/data/models/company_model.dart';
|
import 'package:invoiceninja_flutter/data/models/company_model.dart';
|
||||||
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/app_dropdown_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/forms/app_dropdown_button.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/app_form.dart';
|
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/app/forms/bool_dropdown_button.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/workflow_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/workflow_vm.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/icons.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class WorkflowSettings extends StatefulWidget {
|
class WorkflowSettings extends StatefulWidget {
|
||||||
|
|
@ -80,8 +82,7 @@ class _WorkflowSettingsState extends State<WorkflowSettings>
|
||||||
value: settings.autoEmailInvoice,
|
value: settings.autoEmailInvoice,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
settings.rebuild((b) => b..autoEmailInvoice = value)),
|
settings.rebuild((b) => b..autoEmailInvoice = value)),
|
||||||
iconData:
|
iconData: Icons.email,
|
||||||
kIsWeb ? Icons.email : FontAwesomeIcons.solidEnvelope,
|
|
||||||
),
|
),
|
||||||
BoolDropdownButton(
|
BoolDropdownButton(
|
||||||
label: localization.autoArchiveInvoice,
|
label: localization.autoArchiveInvoice,
|
||||||
|
|
@ -89,7 +90,7 @@ class _WorkflowSettingsState extends State<WorkflowSettings>
|
||||||
value: settings.autoArchiveInvoice,
|
value: settings.autoArchiveInvoice,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
settings.rebuild((b) => b..autoArchiveInvoice = value)),
|
settings.rebuild((b) => b..autoArchiveInvoice = value)),
|
||||||
iconData: kIsWeb ? Icons.archive : FontAwesomeIcons.archive,
|
iconData: Icons.archive,
|
||||||
),
|
),
|
||||||
]),
|
]),
|
||||||
FormCard(
|
FormCard(
|
||||||
|
|
@ -126,8 +127,7 @@ class _WorkflowSettingsState extends State<WorkflowSettings>
|
||||||
value: settings.autoConvertQuote,
|
value: settings.autoConvertQuote,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
settings.rebuild((b) => b..autoConvertQuote = value)),
|
settings.rebuild((b) => b..autoConvertQuote = value)),
|
||||||
iconData:
|
iconData: getEntityIcon(EntityType.quote),
|
||||||
kIsWeb ? Icons.book : FontAwesomeIcons.fileInvoice,
|
|
||||||
),
|
),
|
||||||
BoolDropdownButton(
|
BoolDropdownButton(
|
||||||
label: localization.autoArchiveQuote,
|
label: localization.autoArchiveQuote,
|
||||||
|
|
@ -135,8 +135,7 @@ class _WorkflowSettingsState extends State<WorkflowSettings>
|
||||||
value: settings.autoArchiveQuote,
|
value: settings.autoArchiveQuote,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
settings.rebuild((b) => b..autoArchiveQuote = value)),
|
settings.rebuild((b) => b..autoArchiveQuote = value)),
|
||||||
iconData:
|
iconData: Icons.archive,
|
||||||
kIsWeb ? Icons.archive : FontAwesomeIcons.archive,
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|
||||||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/app_form.dart';
|
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/app/forms/decorated_form_field.dart';
|
||||||
|
|
@ -9,6 +9,7 @@ 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/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
||||||
|
|
||||||
class TaxRateEdit extends StatefulWidget {
|
class TaxRateEdit extends StatefulWidget {
|
||||||
const TaxRateEdit({
|
const TaxRateEdit({
|
||||||
|
|
@ -105,7 +106,7 @@ class _TaxRateEditState extends State<TaxRateEdit> {
|
||||||
controller: _rateController,
|
controller: _rateController,
|
||||||
keyboardType: TextInputType.numberWithOptions(decimal: true),
|
keyboardType: TextInputType.numberWithOptions(decimal: true),
|
||||||
suffixIcon: Icon(
|
suffixIcon: Icon(
|
||||||
FontAwesomeIcons.percent,
|
MdiIcons.percent,
|
||||||
size: 16,
|
size: 16,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
33
pubspec.lock
33
pubspec.lock
|
|
@ -112,7 +112,7 @@ packages:
|
||||||
name: cached_network_image
|
name: cached_network_image
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.2.0+1"
|
version: "2.3.0"
|
||||||
characters:
|
characters:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -328,6 +328,13 @@ packages:
|
||||||
description: flutter
|
description: flutter
|
||||||
source: sdk
|
source: sdk
|
||||||
version: "0.0.0"
|
version: "0.0.0"
|
||||||
|
flutter_blurhash:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: flutter_blurhash
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.5.0"
|
||||||
flutter_cache_manager:
|
flutter_cache_manager:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -413,13 +420,6 @@ packages:
|
||||||
description: flutter
|
description: flutter
|
||||||
source: sdk
|
source: sdk
|
||||||
version: "0.0.0"
|
version: "0.0.0"
|
||||||
font_awesome_flutter:
|
|
||||||
dependency: "direct main"
|
|
||||||
description:
|
|
||||||
name: font_awesome_flutter
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "8.8.1"
|
|
||||||
fuchsia_remote_debug_protocol:
|
fuchsia_remote_debug_protocol:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description: flutter
|
description: flutter
|
||||||
|
|
@ -508,7 +508,7 @@ packages:
|
||||||
name: image_picker
|
name: image_picker
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.7+6"
|
version: "0.6.7+7"
|
||||||
image_picker_platform_interface:
|
image_picker_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -642,6 +642,13 @@ packages:
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.4.12"
|
version: "1.4.12"
|
||||||
|
octo_image:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: octo_image
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.2.1"
|
||||||
package_config:
|
package_config:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -905,7 +912,7 @@ packages:
|
||||||
name: sqflite
|
name: sqflite
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.3.1"
|
version: "1.3.1+1"
|
||||||
sqflite_common:
|
sqflite_common:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -968,7 +975,7 @@ packages:
|
||||||
name: test
|
name: test
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.16.0-nullsafety.1"
|
version: "1.16.0-nullsafety.2"
|
||||||
test_api:
|
test_api:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -982,7 +989,7 @@ packages:
|
||||||
name: test_core
|
name: test_core
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.3.12-nullsafety.1"
|
version: "0.3.12-nullsafety.2"
|
||||||
timeago:
|
timeago:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -1139,4 +1146,4 @@ packages:
|
||||||
version: "2.2.1"
|
version: "2.2.1"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=2.10.0-0.0.dev <2.10.0"
|
dart: ">=2.10.0-0.0.dev <2.10.0"
|
||||||
flutter: ">=1.17.0 <2.0.0"
|
flutter: ">=1.20.0 <2.0.0"
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ dependencies:
|
||||||
path_provider: ^1.6.1
|
path_provider: ^1.6.1
|
||||||
shared_preferences: ^0.5.6+2
|
shared_preferences: ^0.5.6+2
|
||||||
#shared_preferences: '>=0.5.8 <2.0.0'
|
#shared_preferences: '>=0.5.8 <2.0.0'
|
||||||
font_awesome_flutter: ^8.7.0
|
|
||||||
material_design_icons_flutter: ^4.0.5345
|
material_design_icons_flutter: ^4.0.5345
|
||||||
built_value: ^7.0.9
|
built_value: ^7.0.9
|
||||||
built_collection: ^4.3.2
|
built_collection: ^4.3.2
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue