This commit is contained in:
Hillel Coren 2020-03-03 17:31:24 +02:00
parent 90590921eb
commit 96c9065263
6 changed files with 23 additions and 50 deletions

View File

@ -2,6 +2,8 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:invoiceninja_flutter/ui/app/buttons/edit_icon_button.dart'; import 'package:invoiceninja_flutter/ui/app/buttons/edit_icon_button.dart';
import 'package:invoiceninja_flutter/ui/app/actions_menu_button.dart'; import 'package:invoiceninja_flutter/ui/app/actions_menu_button.dart';
import 'package:invoiceninja_flutter/ui/app/entity_header.dart';
import 'package:invoiceninja_flutter/ui/app/view_scaffold.dart';
import 'package:invoiceninja_flutter/ui/design/view/design_view_vm.dart'; import 'package:invoiceninja_flutter/ui/design/view/design_view_vm.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/entities/entity_state_title.dart'; import 'package:invoiceninja_flutter/ui/app/entities/entity_state_title.dart';
@ -22,30 +24,14 @@ class _DesignViewState extends State<DesignView> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final viewModel = widget.viewModel; final viewModel = widget.viewModel;
final userCompany = viewModel.state.userCompany;
final design = viewModel.design; final design = viewModel.design;
return Scaffold( return ViewScaffold(
appBar: AppBar( entity: design,
title: EntityStateTitle(entity: design), body: ListView(
actions: [ children: <Widget>[
userCompany.canEditEntity(design)
? EditIconButton(
isVisible: !design.isDeleted,
onPressed: () => viewModel.onEditPressed(context),
)
: Container(),
ActionMenuButton(
entityActions: design.getActions(userCompany: userCompany),
isSaving: viewModel.isSaving,
entity: design,
onSelected: viewModel.onEntityAction,
)
], ],
), ),
body: FormCard(children: [
// STARTER: widgets - do not remove comment
]),
); );
} }
} }

View File

@ -59,14 +59,14 @@ class DesignViewVM {
return DesignViewVM( return DesignViewVM(
state: state, state: state,
company: state.selectedCompany, company: state.company,
isSaving: state.isSaving, isSaving: state.isSaving,
isLoading: state.isLoading, isLoading: state.isLoading,
isDirty: design.isNew, isDirty: design.isNew,
design: design, design: design,
onRefreshed: (context) => _handleRefresh(context), onRefreshed: (context) => _handleRefresh(context),
onEntityAction: (BuildContext context, EntityAction action) => onEntityAction: (BuildContext context, EntityAction action) =>
handleDesignAction(context, design, action), handleDesignAction(context, [design], action),
); );
} }

View File

@ -15,7 +15,6 @@ mixin LocalizationsProvider on LocaleCodeAware {
static final Map<String, Map<String, String>> _localizedValues = { static final Map<String, Map<String, String>> _localizedValues = {
'en': { 'en': {
// STARTER: lang key - do not remove comment // STARTER: lang key - do not remove comment
'design': 'Design',
'designs': 'Designs', 'designs': 'Designs',
'new_design': 'New Design', 'new_design': 'New Design',
'edit_design': 'Edit Design', 'edit_design': 'Edit Design',
@ -25,7 +24,6 @@ mixin LocalizationsProvider on LocaleCodeAware {
'deleted_design': 'Successfully deleted design', 'deleted_design': 'Successfully deleted design',
'removed_design': 'Successfully removed design', 'removed_design': 'Successfully removed design',
'restored_design': 'Successfully restored design', 'restored_design': 'Successfully restored design',
'proposals': 'Proposals', 'proposals': 'Proposals',
'tickets': 'Tickets', 'tickets': 'Tickets',
'recurring_invoices': 'Recurring Invoices', 'recurring_invoices': 'Recurring Invoices',
@ -32791,14 +32789,20 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get appUpdated => _localizedValues[localeCode]['app_updated']; String get appUpdated => _localizedValues[localeCode]['app_updated'];
// STARTER: lang field - do not remove comment // STARTER: lang field - do not remove comment
String get design => _localizedValues[localeCode][' design'];
String get designs => _localizedValues[localeCode]['designs']; String get designs => _localizedValues[localeCode]['designs'];
String get newDesign => _localizedValues[localeCode]['new_design']; String get newDesign => _localizedValues[localeCode]['new_design'];
String get createdDesign => _localizedValues[localeCode]['created_design']; String get createdDesign => _localizedValues[localeCode]['created_design'];
String get updatedDesign => _localizedValues[localeCode]['updated_design']; String get updatedDesign => _localizedValues[localeCode]['updated_design'];
String get archivedDesign => _localizedValues[localeCode]['archived_design']; String get archivedDesign => _localizedValues[localeCode]['archived_design'];
String get deletedDesign => _localizedValues[localeCode]['deleted_design']; String get deletedDesign => _localizedValues[localeCode]['deleted_design'];
String get restoredDesign => _localizedValues[localeCode]['restored_design']; String get restoredDesign => _localizedValues[localeCode]['restored_design'];
String get editDesign => _localizedValues[localeCode]['edit_design']; String get editDesign => _localizedValues[localeCode]['edit_design'];
String get newCredit => _localizedValues[localeCode]['new_credit']; String get newCredit => _localizedValues[localeCode]['new_credit'];

View File

@ -435,7 +435,7 @@ else
sed -i -e "s/$comment/$comment${lineBreak}$code/g" ./lib/utils/i18n.dart sed -i -e "s/$comment/$comment${lineBreak}$code/g" ./lib/utils/i18n.dart
comment="STARTER: lang field - do not remove comment" comment="STARTER: lang field - do not remove comment"
code="String get ${module_camel} => _localizedValues[localeCode][' ${module_snake}']; String get ${module_camel}s => _localizedValues[localeCode]['${module_snake}s']; String get new${Module} => _localizedValues[localeCode]['new_${module_snake}']; String get created${Module} => _localizedValues[localeCode]['created_${module_snake}']; String get updated${Module} => _localizedValues[localeCode]['updated_${module_snake}']; String get archived${Module} => _localizedValues[localeCode]['archived_${module_snake}']; String get deleted${Module} => _localizedValues[localeCode]['deleted_${module_snake}']; String get restored${Module} => _localizedValues[localeCode]['restored_${module_snake}']; String get edit${Module} => _localizedValues[localeCode]['edit_${module_snake}'];${lineBreak}" code="String get ${module_camel} => _localizedValues[localeCode]['${module_snake}']; String get ${module_camel}s => _localizedValues[localeCode]['${module_snake}s']; String get new${Module} => _localizedValues[localeCode]['new_${module_snake}']; String get created${Module} => _localizedValues[localeCode]['created_${module_snake}']; String get updated${Module} => _localizedValues[localeCode]['updated_${module_snake}']; String get archived${Module} => _localizedValues[localeCode]['archived_${module_snake}']; String get deleted${Module} => _localizedValues[localeCode]['deleted_${module_snake}']; String get restored${Module} => _localizedValues[localeCode]['restored_${module_snake}']; String get edit${Module} => _localizedValues[localeCode]['edit_${module_snake}'];${lineBreak}"
sed -i -e "s/$comment/$comment${lineBreak}$code/g" ./lib/utils/i18n.dart sed -i -e "s/$comment/$comment${lineBreak}$code/g" ./lib/utils/i18n.dart
comment="STARTER: entity type - do not remove comment" comment="STARTER: entity type - do not remove comment"

View File

@ -26,28 +26,11 @@ class _StubViewState extends State<StubView> {
final userCompany = viewModel.state.userCompany; final userCompany = viewModel.state.userCompany;
final stub = viewModel.stub; final stub = viewModel.stub;
return Scaffold( return ViewScaffold(
appBar: AppBar( entity: stub,
title: EntityStateTitle(entity: stub), body: ListView(
actions: [ children: <Widget>[
userCompany.canEditEntity(stub) ],
? EditIconButton(
isVisible: !stub.isDeleted,
onPressed: () => viewModel.onEditPressed(context),
)
: Container(),
ActionMenuButton(
entityActions: stub.getActions(userCompany: userCompany),
isSaving: viewModel.isSaving,
entity: stub,
onSelected: viewModel.onEntityAction,
)
],
),
body: FormCard(
children: [
// STARTER: widgets - do not remove comment
]
), ),
); );
} }

View File

@ -60,14 +60,14 @@ class StubViewVM {
return StubViewVM( return StubViewVM(
state: state, state: state,
company: state.selectedCompany, company: state.company,
isSaving: state.isSaving, isSaving: state.isSaving,
isLoading: state.isLoading, isLoading: state.isLoading,
isDirty: stub.isNew, isDirty: stub.isNew,
stub: stub, stub: stub,
onRefreshed: (context) => _handleRefresh(context), onRefreshed: (context) => _handleRefresh(context),
onEntityAction: (BuildContext context, EntityAction action) => onEntityAction: (BuildContext context, EntityAction action) =>
handleStubAction(context, stub, action), handleStubAction(context, [stub], action),
); );
} }