Datatables
This commit is contained in:
parent
ce5a5d1aea
commit
044268c603
|
|
@ -92,7 +92,7 @@ class EntityDataTableSource extends DataTableSource {
|
||||||
}
|
}
|
||||||
|
|
||||||
class DatatableHeader extends StatelessWidget {
|
class DatatableHeader extends StatelessWidget {
|
||||||
const DatatableHeader({this.entityType, this.onClearPressed});
|
const DatatableHeader({@required this.entityType, this.onClearPressed});
|
||||||
|
|
||||||
final EntityType entityType;
|
final EntityType entityType;
|
||||||
final Function() onClearPressed;
|
final Function() onClearPressed;
|
||||||
|
|
@ -103,7 +103,7 @@ class DatatableHeader extends StatelessWidget {
|
||||||
final listUIState = state.getListState(entityType);
|
final listUIState = state.getListState(entityType);
|
||||||
|
|
||||||
String message = '';
|
String message = '';
|
||||||
if (listUIState.filterEntityId != null) {
|
if (onClearPressed != null && listUIState.filterEntityId != null) {
|
||||||
final entity = state.getEntityMap(
|
final entity = state.getEntityMap(
|
||||||
listUIState.filterEntityType)[listUIState.filterEntityId];
|
listUIState.filterEntityType)[listUIState.filterEntityId];
|
||||||
message = ListFilterMessage.getMessage(
|
message = ListFilterMessage.getMessage(
|
||||||
|
|
|
||||||
|
|
@ -152,7 +152,10 @@ class _ClientListState extends State<ClientList> {
|
||||||
store.dispatch(SortClients(field)))),
|
store.dispatch(SortClients(field)))),
|
||||||
],
|
],
|
||||||
source: dataTableSource,
|
source: dataTableSource,
|
||||||
header: SizedBox(),
|
header: DatatableHeader(
|
||||||
|
entityType: EntityType.client,
|
||||||
|
onClearPressed: viewModel.onClearEntityFilterPressed,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -190,7 +190,12 @@ class _ExpenseListState extends State<ExpenseList> {
|
||||||
store.dispatch(SortExpenses(field)))),
|
store.dispatch(SortExpenses(field)))),
|
||||||
],
|
],
|
||||||
source: dataTableSource,
|
source: dataTableSource,
|
||||||
header: SizedBox(),
|
header: DatatableHeader(
|
||||||
|
entityType: EntityType.expense,
|
||||||
|
onClearPressed: widget
|
||||||
|
.viewModel.onClearEntityFilterPressed,
|
||||||
|
),
|
||||||
|
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -172,30 +172,30 @@ class _EntityListState extends State<InvoiceList> {
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.all(12),
|
padding: const EdgeInsets.all(12),
|
||||||
child: PaginatedDataTable(
|
child: PaginatedDataTable(
|
||||||
onSelectAll: (value) {
|
onSelectAll: (value) {
|
||||||
final invoices = viewModel.invoiceList
|
final invoices = viewModel.invoiceList
|
||||||
.map<InvoiceEntity>(
|
.map<InvoiceEntity>(
|
||||||
(invoiceId) => viewModel.invoiceMap[invoiceId])
|
(invoiceId) => viewModel.invoiceMap[invoiceId])
|
||||||
.where((invoice) =>
|
.where(
|
||||||
value != listUIState.isSelected(invoice.id))
|
(invoice) => value != listUIState.isSelected(invoice.id))
|
||||||
.toList();
|
.toList();
|
||||||
handleInvoiceAction(
|
handleInvoiceAction(
|
||||||
context, invoices, EntityAction.toggleMultiselect);
|
context, invoices, EntityAction.toggleMultiselect);
|
||||||
},
|
},
|
||||||
columns: [
|
columns: [
|
||||||
if (!listUIState.isInMultiselect())
|
if (!listUIState.isInMultiselect()) DataColumn(label: SizedBox()),
|
||||||
DataColumn(label: SizedBox()),
|
...viewModel.tableColumns.map((field) => DataColumn(
|
||||||
...viewModel.tableColumns.map((field) => DataColumn(
|
label: Text(AppLocalization.of(context).lookup(field)),
|
||||||
label: Text(AppLocalization.of(context).lookup(field)),
|
numeric: EntityPresenter.isFieldNumeric(field),
|
||||||
numeric: EntityPresenter.isFieldNumeric(field),
|
onSort: (int columnIndex, bool ascending) =>
|
||||||
onSort: (int columnIndex, bool ascending) =>
|
store.dispatch(SortInvoices(field)))),
|
||||||
store.dispatch(SortInvoices(field)))),
|
],
|
||||||
],
|
source: dataTableSource,
|
||||||
source: dataTableSource,
|
header: DatatableHeader(
|
||||||
header: DatatableHeader(
|
entityType: EntityType.invoice,
|
||||||
entityType: EntityType.invoice,
|
onClearPressed: viewModel.onClearEntityFilterPressed,
|
||||||
onClearPressed: viewModel.onClearEntityFilterPressed,
|
),
|
||||||
)),
|
),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -186,7 +186,12 @@ class _PaymentListState extends State<PaymentList> {
|
||||||
store.dispatch(SortPayments(field)))),
|
store.dispatch(SortPayments(field)))),
|
||||||
],
|
],
|
||||||
source: dataTableSource,
|
source: dataTableSource,
|
||||||
header: SizedBox(),
|
header: DatatableHeader(
|
||||||
|
entityType: EntityType.payment,
|
||||||
|
onClearPressed: widget
|
||||||
|
.viewModel.onClearEntityFilterPressed,
|
||||||
|
),
|
||||||
|
|
||||||
),
|
),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,10 @@ class _ProductListState extends State<ProductList> {
|
||||||
store.dispatch(SortProducts(field)))),
|
store.dispatch(SortProducts(field)))),
|
||||||
],
|
],
|
||||||
source: dataTableSource,
|
source: dataTableSource,
|
||||||
header: SizedBox(),
|
header: DatatableHeader(
|
||||||
|
entityType: EntityType.product,
|
||||||
|
),
|
||||||
|
|
||||||
),
|
),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -189,7 +189,11 @@ class _ProjectListState extends State<ProjectList> {
|
||||||
SortProjects(field)))),
|
SortProjects(field)))),
|
||||||
],
|
],
|
||||||
source: dataTableSource,
|
source: dataTableSource,
|
||||||
header: SizedBox(),
|
header: DatatableHeader(
|
||||||
|
entityType: EntityType.project,
|
||||||
|
onClearPressed: widget
|
||||||
|
.viewModel.onClearEntityFilterPressed,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -185,7 +185,11 @@ class _TaskListState extends State<TaskList> {
|
||||||
.dispatch(SortTasks(field)))),
|
.dispatch(SortTasks(field)))),
|
||||||
],
|
],
|
||||||
source: dataTableSource,
|
source: dataTableSource,
|
||||||
header: SizedBox(),
|
header: DatatableHeader(
|
||||||
|
entityType: EntityType.task,
|
||||||
|
onClearPressed: widget
|
||||||
|
.viewModel.onClearEntityFilterPressed,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -173,7 +173,11 @@ class _VendorListState extends State<VendorList> {
|
||||||
SortVendors(field)))),
|
SortVendors(field)))),
|
||||||
],
|
],
|
||||||
source: dataTableSource,
|
source: dataTableSource,
|
||||||
header: SizedBox(),
|
header: DatatableHeader(
|
||||||
|
entityType: EntityType.vendor,
|
||||||
|
onClearPressed: widget
|
||||||
|
.viewModel.onClearEntityFilterPressed,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue