Task statuses

This commit is contained in:
Hillel Coren 2020-10-28 23:35:58 +02:00
parent 856ecac17f
commit 4f73e10874
5 changed files with 14 additions and 0 deletions

View File

@ -99,6 +99,9 @@ abstract class TaskStatusEntity extends Object
case TaskStatusFields.name: case TaskStatusFields.name:
response = taskStatusA.name.compareTo(taskStatusB.name); response = taskStatusA.name.compareTo(taskStatusB.name);
break; break;
case TaskStatusFields.sortOrder:
response = taskStatusA.sortOrder.compareTo(taskStatusB.sortOrder);
break;
default: default:
print('## ERROR: sort by taskStatus.$sortField is not implemented'); print('## ERROR: sort by taskStatus.$sortField is not implemented');
break; break;

View File

@ -64,6 +64,7 @@ class TaskStatusEditVM {
}, },
onCancelPressed: (BuildContext context) { onCancelPressed: (BuildContext context) {
createEntity(context: context, entity: TaskStatusEntity(), force: true); createEntity(context: context, entity: TaskStatusEntity(), force: true);
store.dispatch(UpdateCurrentRoute(state.uiState.previousRoute));
}, },
onSavePressed: (BuildContext context) { onSavePressed: (BuildContext context) {
final Completer<TaskStatusEntity> completer = final Completer<TaskStatusEntity> completer =

View File

@ -26,6 +26,7 @@ class _TaskStatusViewState extends State<TaskStatusView> {
return ViewScaffold( return ViewScaffold(
isFilter: widget.isFilter, isFilter: widget.isFilter,
entity: taskStatus, entity: taskStatus,
onBackPressed: () => viewModel.onBackPressed(),
body: ListView( body: ListView(
children: <Widget>[], children: <Widget>[],
), ),

View File

@ -3,6 +3,8 @@ import 'package:invoiceninja_flutter/constants.dart';
import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
import 'package:invoiceninja_flutter/ui/task_status/task_status_screen.dart';
import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart'; import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:redux/redux.dart'; import 'package:redux/redux.dart';
@ -47,6 +49,7 @@ class TaskStatusViewVM {
@required this.isSaving, @required this.isSaving,
@required this.isLoading, @required this.isLoading,
@required this.isDirty, @required this.isDirty,
@required this.onBackPressed,
}); });
factory TaskStatusViewVM.fromStore(Store<AppState> store) { factory TaskStatusViewVM.fromStore(Store<AppState> store) {
@ -73,6 +76,8 @@ class TaskStatusViewVM {
onRefreshed: (context) => _handleRefresh(context), onRefreshed: (context) => _handleRefresh(context),
onEntityAction: (BuildContext context, EntityAction action) => onEntityAction: (BuildContext context, EntityAction action) =>
handleEntitiesActions(context, [taskStatus], action, autoPop: true), handleEntitiesActions(context, [taskStatus], action, autoPop: true),
onBackPressed: () =>
store.dispatch(UpdateCurrentRoute(TaskStatusScreen.route)),
); );
} }
@ -81,6 +86,7 @@ class TaskStatusViewVM {
final CompanyEntity company; final CompanyEntity company;
final Function(BuildContext, EntityAction) onEntityAction; final Function(BuildContext, EntityAction) onEntityAction;
final Function(BuildContext) onRefreshed; final Function(BuildContext) onRefreshed;
final Function onBackPressed;
final bool isSaving; final bool isSaving;
final bool isLoading; final bool isLoading;
final bool isDirty; final bool isDirty;

View File

@ -15,6 +15,7 @@ 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
'sort_order': 'Sort Order',
'task_status': 'Status', 'task_status': 'Status',
'task_statuses': 'Task Statuses', 'task_statuses': 'Task Statuses',
'new_task_status': 'New Task Status', 'new_task_status': 'New Task Status',
@ -4832,6 +4833,8 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get showTasksTableHelp => String get showTasksTableHelp =>
_localizedValues[localeCode]['show_tasks_table_help'] ?? ''; _localizedValues[localeCode]['show_tasks_table_help'] ?? '';
String get sortOrder => _localizedValues[localeCode]['sort_order'] ?? '';
String lookup(String key) { String lookup(String key) {
final lookupKey = toSnakeCase(key); final lookupKey = toSnakeCase(key);