Show custom header names

This commit is contained in:
Hillel Coren 2021-04-09 17:37:53 +03:00
parent 9104469871
commit a2c1b6126c
3 changed files with 38 additions and 75 deletions

View File

@ -465,7 +465,8 @@ abstract class CompanyEntity extends Object
}
// TODO make sure to clear everything
CompanyEntity get coreCompany => rebuild((b) => b
CompanyEntity get coreCompany => rebuild(
(b) => b
..clients.clear()
..products.clear()
..invoices.clear()
@ -476,8 +477,9 @@ abstract class CompanyEntity extends Object
..projects.clear()
..vendors.clear()
..expenses.clear()
//..designs.clear()
//..companyGateways.clear()
..webhooks.clear()
..designs.clear()
..companyGateways.clear(),
);
bool isModuleEnabled(EntityType entityType) {

View File

@ -10,7 +10,6 @@ import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
import 'package:invoiceninja_flutter/ui/app/tables/app_data_table.dart';
import 'package:invoiceninja_flutter/ui/app/tables/app_data_table_source.dart';
import 'package:invoiceninja_flutter/utils/colors.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:invoiceninja_flutter/utils/platforms.dart';
class EntityDataTableSource extends AppDataTableSource {
@ -117,50 +116,3 @@ class EntityDataTableSource extends AppDataTableSource {
);
}
}
class DatatableHeader extends StatelessWidget {
const DatatableHeader({
@required this.entityType,
@required this.onClearPressed,
@required this.onRefreshPressed,
});
final EntityType entityType;
final Function onClearPressed;
final Function onRefreshPressed;
@override
Widget build(BuildContext context) {
final localization = AppLocalization.of(context);
/*
final state = StoreProvider.of<AppState>(context).state;
final listUIState = state.getListState(entityType);
Widget message = SizedBox();
if (onClearPressed != null && listUIState.filterEntityId != null) {
final entity = state.getEntityMap(
listUIState.filterEntityType)[listUIState.filterEntityId];
message = FilterListTile(
onPressed: (context) => viewEntityById(
context: context,
entityId: listUIState.filterEntityId,
entityType: listUIState.filterEntityType,
),
onClearPressed: onClearPressed,
entityType: listUIState.filterEntityType,
entity: entity,
);
}
*/
return Row(
children: <Widget>[
TextButton(
child: Text(localization.refresh),
onPressed: onRefreshPressed,
),
SizedBox(width: 20),
Expanded(child: SizedBox()),
],
);
}
}

View File

@ -247,21 +247,30 @@ class _EntityListState extends State<EntityList> {
},
columns: [
if (!isInMultiselect) DataColumn(label: SizedBox()),
...widget.tableColumns.map((field) => DataColumn(
...widget.tableColumns.map((field) {
String label =
AppLocalization.of(context).lookup(field);
if (field.startsWith('custom')) {
final key = field.replaceFirst(
'custom', entityType.snakeCase);
label = state.company.getCustomFieldLabel(key);
}
return DataColumn(
label: Container(
constraints: BoxConstraints(
minWidth: kTableColumnWidthMin,
maxWidth: kTableColumnWidthMax,
),
child: Text(
AppLocalization.of(context).lookup(field),
label,
overflow: TextOverflow.ellipsis,
),
),
numeric: EntityPresenter.isFieldNumeric(field),
onSort: (int columnIndex, bool ascending) {
widget.onSortColumn(field);
})),
});
}),
],
source: dataTableSource,
sortColumnIndex: