Correct upgrade banner
This commit is contained in:
parent
bff3cc054a
commit
4a3487abcb
|
|
@ -395,6 +395,20 @@ const String kSettingsTaskStatuses = 'task_status';
|
||||||
const String kSettingsTaskStatusView = 'task_status_view';
|
const String kSettingsTaskStatusView = 'task_status_view';
|
||||||
const String kSettingsTaskStatusEdit = 'task_status_edit';
|
const String kSettingsTaskStatusEdit = 'task_status_edit';
|
||||||
|
|
||||||
|
const List<String> kAdvancedSettings = [
|
||||||
|
kSettingsCustomDesignsEdit,
|
||||||
|
kSettingsGroupSettingsEdit,
|
||||||
|
kSettingsClientPortal,
|
||||||
|
kSettingsCustomFields,
|
||||||
|
kSettingsEmailSettings,
|
||||||
|
kSettingsGeneratedNumbers,
|
||||||
|
kSettingsInvoiceDesign,
|
||||||
|
kSettingsTemplatesAndReminders,
|
||||||
|
kSettingsWorkflowSettings,
|
||||||
|
kSettingsSubscriptionsEdit,
|
||||||
|
kSettingsUserManagementEdit,
|
||||||
|
];
|
||||||
|
|
||||||
const String kReportClient = 'client';
|
const String kReportClient = 'client';
|
||||||
const String kReportCredit = 'credit';
|
const String kReportCredit = 'credit';
|
||||||
const String kReportDocument = 'document';
|
const String kReportDocument = 'document';
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,6 @@ class EditScaffold extends StatelessWidget {
|
||||||
this.appBarBottom,
|
this.appBarBottom,
|
||||||
this.saveLabel,
|
this.saveLabel,
|
||||||
this.isFullscreen = false,
|
this.isFullscreen = false,
|
||||||
this.isAdvancedSettings = false,
|
|
||||||
this.onActionPressed,
|
this.onActionPressed,
|
||||||
this.actions,
|
this.actions,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
@ -45,7 +44,6 @@ class EditScaffold extends StatelessWidget {
|
||||||
final Widget bottomNavigationBar;
|
final Widget bottomNavigationBar;
|
||||||
final String saveLabel;
|
final String saveLabel;
|
||||||
final bool isFullscreen;
|
final bool isFullscreen;
|
||||||
final bool isAdvancedSettings;
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|
@ -65,9 +63,9 @@ class EditScaffold extends StatelessWidget {
|
||||||
: localization.ownerUpgradeToPaidPlan;
|
: localization.ownerUpgradeToPaidPlan;
|
||||||
if (state.account.isTrial) {
|
if (state.account.isTrial) {
|
||||||
final trialStarted = convertSqlDateToDateTime(state.account.trialStarted);
|
final trialStarted = convertSqlDateToDateTime(state.account.trialStarted);
|
||||||
final trialEnds = DateTime.now().add(Duration(days: 14));
|
final trialEnds = trialStarted.add(Duration(days: 14));
|
||||||
final countDays = trialEnds.difference(trialStarted).inDays;
|
final countDays = trialEnds.difference(trialStarted).inDays;
|
||||||
if (countDays == 1) {
|
if (countDays <= 1) {
|
||||||
upgradeMessage = localization.freeTrialEndsToday;
|
upgradeMessage = localization.freeTrialEndsToday;
|
||||||
} else {
|
} else {
|
||||||
upgradeMessage = localization.freeTrialEndsInDays
|
upgradeMessage = localization.freeTrialEndsInDays
|
||||||
|
|
@ -76,7 +74,7 @@ class EditScaffold extends StatelessWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!state.isProPlan || state.account.isTrial) {
|
if (!state.isProPlan || state.account.isTrial) {
|
||||||
if (isAdvancedSettings) {
|
if (kAdvancedSettings.contains(state.uiState.subRoute)) {
|
||||||
showUpgradeBanner = true;
|
showUpgradeBanner = true;
|
||||||
if (!state.isProPlan && isEnabled) {
|
if (!state.isProPlan && isEnabled) {
|
||||||
isCancelEnabled = true;
|
isCancelEnabled = true;
|
||||||
|
|
|
||||||
|
|
@ -725,7 +725,9 @@ class SidebarFooter extends StatelessWidget {
|
||||||
),
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: Icon(Icons.help_outline),
|
icon: Icon(Icons.help_outline),
|
||||||
onPressed: () => launch(kDocsUrl),
|
onPressed: () {
|
||||||
|
launch(kDocsUrl);
|
||||||
|
},
|
||||||
tooltip: localization.help,
|
tooltip: localization.help,
|
||||||
),
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
|
|
|
||||||
|
|
@ -220,7 +220,6 @@ class _DesignEditState extends State<DesignEdit>
|
||||||
|
|
||||||
return EditScaffold(
|
return EditScaffold(
|
||||||
isFullscreen: true,
|
isFullscreen: true,
|
||||||
isAdvancedSettings: true,
|
|
||||||
title: design.isNew ? localization.newDesign : localization.editDesign,
|
title: design.isNew ? localization.newDesign : localization.editDesign,
|
||||||
onCancelPressed: (context) => viewModel.onCancelPressed(context),
|
onCancelPressed: (context) => viewModel.onCancelPressed(context),
|
||||||
appBarBottom: isMobile(context)
|
appBarBottom: isMobile(context)
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,6 @@ class _GroupEditState extends State<GroupEdit> {
|
||||||
return EditScaffold(
|
return EditScaffold(
|
||||||
onCancelPressed: (context) => viewModel.onCancelPressed(context),
|
onCancelPressed: (context) => viewModel.onCancelPressed(context),
|
||||||
title: group.isNew ? localization.newGroup : localization.editGroup,
|
title: group.isNew ? localization.newGroup : localization.editGroup,
|
||||||
isAdvancedSettings: true,
|
|
||||||
onSavePressed: (context) {
|
onSavePressed: (context) {
|
||||||
final bool isValid = _formKey.currentState.validate();
|
final bool isValid = _formKey.currentState.validate();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -234,7 +234,6 @@ class _ClientPortalState extends State<ClientPortal>
|
||||||
|
|
||||||
return EditScaffold(
|
return EditScaffold(
|
||||||
title: localization.clientPortal,
|
title: localization.clientPortal,
|
||||||
isAdvancedSettings: true,
|
|
||||||
onSavePressed: (context) => _onSavePressed(context),
|
onSavePressed: (context) => _onSavePressed(context),
|
||||||
appBarBottom: TabBar(
|
appBarBottom: TabBar(
|
||||||
key: ValueKey(state.settingsUIState.updatedAt),
|
key: ValueKey(state.settingsUIState.updatedAt),
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,6 @@ class _CustomFieldsState extends State<CustomFields>
|
||||||
|
|
||||||
return EditScaffold(
|
return EditScaffold(
|
||||||
title: localization.customFields,
|
title: localization.customFields,
|
||||||
isAdvancedSettings: true,
|
|
||||||
onSavePressed: viewModel.onSavePressed,
|
onSavePressed: viewModel.onSavePressed,
|
||||||
appBarBottom: TabBar(
|
appBarBottom: TabBar(
|
||||||
key: ValueKey(state.settingsUIState.updatedAt),
|
key: ValueKey(state.settingsUIState.updatedAt),
|
||||||
|
|
|
||||||
|
|
@ -134,7 +134,6 @@ class _EmailSettingsState extends State<EmailSettings> {
|
||||||
|
|
||||||
return EditScaffold(
|
return EditScaffold(
|
||||||
title: localization.emailSettings,
|
title: localization.emailSettings,
|
||||||
isAdvancedSettings: true,
|
|
||||||
onSavePressed: disableSave ? null : _onSavePressed,
|
onSavePressed: disableSave ? null : _onSavePressed,
|
||||||
body: AppForm(
|
body: AppForm(
|
||||||
formKey: _formKey,
|
formKey: _formKey,
|
||||||
|
|
|
||||||
|
|
@ -179,7 +179,6 @@ class _GeneratedNumbersState extends State<GeneratedNumbers>
|
||||||
|
|
||||||
return EditScaffold(
|
return EditScaffold(
|
||||||
title: localization.generatedNumbers,
|
title: localization.generatedNumbers,
|
||||||
isAdvancedSettings: true,
|
|
||||||
onSavePressed: _onSavePressed,
|
onSavePressed: _onSavePressed,
|
||||||
appBarBottom: TabBar(
|
appBarBottom: TabBar(
|
||||||
key: ValueKey(state.settingsUIState.updatedAt),
|
key: ValueKey(state.settingsUIState.updatedAt),
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,6 @@ class _InvoiceDesignState extends State<InvoiceDesign>
|
||||||
|
|
||||||
return EditScaffold(
|
return EditScaffold(
|
||||||
title: localization.invoiceDesign,
|
title: localization.invoiceDesign,
|
||||||
isAdvancedSettings: true,
|
|
||||||
onSavePressed: viewModel.onSavePressed,
|
onSavePressed: viewModel.onSavePressed,
|
||||||
appBarBottom: TabBar(
|
appBarBottom: TabBar(
|
||||||
key: ValueKey(state.settingsUIState.updatedAt),
|
key: ValueKey(state.settingsUIState.updatedAt),
|
||||||
|
|
|
||||||
|
|
@ -229,7 +229,6 @@ class _TemplatesAndRemindersState extends State<TemplatesAndReminders>
|
||||||
|
|
||||||
return EditScaffold(
|
return EditScaffold(
|
||||||
title: localization.templatesAndReminders,
|
title: localization.templatesAndReminders,
|
||||||
isAdvancedSettings: true,
|
|
||||||
onSavePressed: viewModel.onSavePressed,
|
onSavePressed: viewModel.onSavePressed,
|
||||||
appBarBottom: TabBar(
|
appBarBottom: TabBar(
|
||||||
key: ValueKey(state.settingsUIState.updatedAt),
|
key: ValueKey(state.settingsUIState.updatedAt),
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,6 @@ class _WorkflowSettingsState extends State<WorkflowSettings>
|
||||||
|
|
||||||
return EditScaffold(
|
return EditScaffold(
|
||||||
title: localization.workflowSettings,
|
title: localization.workflowSettings,
|
||||||
isAdvancedSettings: true,
|
|
||||||
onSavePressed: viewModel.onSavePressed,
|
onSavePressed: viewModel.onSavePressed,
|
||||||
appBarBottom: TabBar(
|
appBarBottom: TabBar(
|
||||||
key: ValueKey(state.settingsUIState.updatedAt),
|
key: ValueKey(state.settingsUIState.updatedAt),
|
||||||
|
|
|
||||||
|
|
@ -182,7 +182,6 @@ class _SubscriptionEditState extends State<SubscriptionEdit>
|
||||||
title: subscription.isNew
|
title: subscription.isNew
|
||||||
? localization.newSubscription
|
? localization.newSubscription
|
||||||
: localization.editSubscription,
|
: localization.editSubscription,
|
||||||
isAdvancedSettings: true,
|
|
||||||
onCancelPressed: (context) => viewModel.onCancelPressed(context),
|
onCancelPressed: (context) => viewModel.onCancelPressed(context),
|
||||||
onSavePressed: (context) {
|
onSavePressed: (context) {
|
||||||
final bool isValid = _formKey.currentState.validate();
|
final bool isValid = _formKey.currentState.validate();
|
||||||
|
|
|
||||||
|
|
@ -147,7 +147,6 @@ class _UserEditState extends State<UserEdit>
|
||||||
entity: user,
|
entity: user,
|
||||||
title:
|
title:
|
||||||
viewModel.user.isNew ? localization.newUser : localization.editUser,
|
viewModel.user.isNew ? localization.newUser : localization.editUser,
|
||||||
isAdvancedSettings: true,
|
|
||||||
appBarBottom: TabBar(
|
appBarBottom: TabBar(
|
||||||
controller: _controller,
|
controller: _controller,
|
||||||
isScrollable: isMobile(context),
|
isScrollable: isMobile(context),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue