From 2e68dcae1e06fb5764324cfea7ab6ac9248d11d3 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Tue, 10 Mar 2020 17:06:40 +0200 Subject: [PATCH] Refresh tables --- lib/ui/app/tables/entity_list.dart | 73 +++++++++++++++++------------- 1 file changed, 41 insertions(+), 32 deletions(-) diff --git a/lib/ui/app/tables/entity_list.dart b/lib/ui/app/tables/entity_list.dart index 3a73790f3..f9c172259 100644 --- a/lib/ui/app/tables/entity_list.dart +++ b/lib/ui/app/tables/entity_list.dart @@ -132,38 +132,47 @@ class _EntityListState extends State { )), ]); } else { - return SingleChildScrollView( - child: Padding( - padding: const EdgeInsets.all(12), - child: PaginatedDataTable( - onSelectAll: (value) { - final invoices = entityList - .map((String entityId) => entityMap[entityId]) - .where( - (invoice) => value != listUIState.isSelected(invoice.id)) - .toList(); - handleEntitiesActions( - context, invoices, EntityAction.toggleMultiselect); - }, - columns: [ - if (!listUIState.isInMultiselect()) DataColumn(label: SizedBox()), - ...widget.tableColumns.map((field) => DataColumn( - label: Text(AppLocalization.of(context).lookup(field)), - numeric: EntityPresenter.isFieldNumeric(field), - onSort: (int columnIndex, bool ascending) => - widget.onSortColumn(field))), - ], - source: dataTableSource, - header: DatatableHeader( - entityType: widget.entityType, - onClearPressed: widget.onClearEntityFilterPressed, - onRefreshPressed: () => widget.onRefreshed(context), - ), - sortColumnIndex: - widget.tableColumns.indexOf(listUIState.sortField) + 1, - sortAscending: listUIState.sortAscending, - ), - )); + return Stack( + alignment: Alignment.topCenter, + children: [ + if (state.isLoading) + LinearProgressIndicator(), + SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.all(12), + child: PaginatedDataTable( + onSelectAll: (value) { + final invoices = entityList + .map((String entityId) => entityMap[entityId]) + .where((invoice) => + value != listUIState.isSelected(invoice.id)) + .toList(); + handleEntitiesActions( + context, invoices, EntityAction.toggleMultiselect); + }, + columns: [ + if (!listUIState.isInMultiselect()) + DataColumn(label: SizedBox()), + ...widget.tableColumns.map((field) => DataColumn( + label: Text(AppLocalization.of(context).lookup(field)), + numeric: EntityPresenter.isFieldNumeric(field), + onSort: (int columnIndex, bool ascending) => + widget.onSortColumn(field))), + ], + source: dataTableSource, + header: DatatableHeader( + entityType: widget.entityType, + onClearPressed: widget.onClearEntityFilterPressed, + onRefreshPressed: () => widget.onRefreshed(context), + ), + sortColumnIndex: + widget.tableColumns.indexOf(listUIState.sortField) + 1, + sortAscending: listUIState.sortAscending, + ), + ), + ) + ], + ); } };