mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-05-25 11:22:23 +00:00
Fixed filtering issues
This commit is contained in:
parent
cffdd6244e
commit
7e1dbc2388
1 changed files with 47 additions and 40 deletions
|
@ -97,18 +97,18 @@ class _LogsWidgetState extends State<LogsWidget> {
|
|||
if (loadingMore != null && loadingMore == true && widget.logsProvider.logsData != null) {
|
||||
LogsData newLogsData = result['data'];
|
||||
newLogsData.data = [...widget.logsProvider.logsData!.data, ...result['data'].data];
|
||||
if (widget.logsProvider.selectedClients != null) {
|
||||
if (widget.logsProvider.appliedFilters.clients != null) {
|
||||
newLogsData.data = newLogsData.data.where(
|
||||
(item) => widget.logsProvider.selectedClients!.contains(item.clientInfo!.name)
|
||||
(item) => widget.logsProvider.appliedFilters.clients!.contains(item.client)
|
||||
).toList();
|
||||
}
|
||||
widget.logsProvider.setLogsData(newLogsData);
|
||||
}
|
||||
else {
|
||||
LogsData newLogsData = result['data'];
|
||||
if (widget.logsProvider.selectedClients != null) {
|
||||
if (widget.logsProvider.appliedFilters.clients != null) {
|
||||
newLogsData.data = newLogsData.data.where(
|
||||
(item) => widget.logsProvider.selectedClients!.contains(item.clientInfo!.name)
|
||||
(item) => widget.logsProvider.appliedFilters.clients!.contains(item.client)
|
||||
).toList();
|
||||
}
|
||||
widget.logsProvider.setLogsData(newLogsData);
|
||||
|
@ -402,7 +402,7 @@ class _LogsWidgetState extends State<LogsWidget> {
|
|||
),
|
||||
const SizedBox(width: 5),
|
||||
],
|
||||
bottom: logsProvider.appliedFilters.searchText != null || logsProvider.appliedFilters.selectedResultStatus != 'all'
|
||||
bottom: logsProvider.appliedFilters.searchText != null || logsProvider.appliedFilters.selectedResultStatus != 'all' || logsProvider.appliedFilters.clients != null
|
||||
? PreferredSize(
|
||||
preferredSize: const Size(double.maxFinite, 50),
|
||||
child: Container(
|
||||
|
@ -424,33 +424,26 @@ class _LogsWidgetState extends State<LogsWidget> {
|
|||
if (logsProvider.appliedFilters.searchText != null) ...[
|
||||
const SizedBox(width: 15),
|
||||
Chip(
|
||||
avatar: Icon(
|
||||
avatar: const Icon(
|
||||
Icons.search,
|
||||
size: 24,
|
||||
color: Theme.of(context).colorScheme.primary,
|
||||
),
|
||||
label: Row(
|
||||
children: [
|
||||
Text(
|
||||
logsProvider.appliedFilters.searchText!,
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.w500
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
deleteIcon: Icon(
|
||||
Icons.cancel_rounded,
|
||||
deleteIcon: const Icon(
|
||||
Icons.clear,
|
||||
size: 18,
|
||||
color: Theme.of(context).colorScheme.onSurfaceVariant
|
||||
),
|
||||
onDeleted: () {
|
||||
logsProvider.setAppliedFilters(
|
||||
AppliedFiters(
|
||||
selectedResultStatus: logsProvider.appliedFilters.selectedResultStatus,
|
||||
searchText: null,
|
||||
clients: null
|
||||
clients: logsProvider.appliedFilters.clients
|
||||
)
|
||||
);
|
||||
logsProvider.setSearchText(null);
|
||||
|
@ -459,45 +452,31 @@ class _LogsWidgetState extends State<LogsWidget> {
|
|||
searchText: ''
|
||||
);
|
||||
},
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
side: BorderSide(
|
||||
color: Theme.of(context).colorScheme.onSurfaceVariant
|
||||
)
|
||||
),
|
||||
backgroundColor: Theme.of(context).dialogBackgroundColor,
|
||||
),
|
||||
],
|
||||
if (logsProvider.appliedFilters.selectedResultStatus != 'all') ...[
|
||||
const SizedBox(width: 15),
|
||||
Chip(
|
||||
avatar: Icon(
|
||||
avatar: const Icon(
|
||||
Icons.shield_rounded,
|
||||
size: 24,
|
||||
color: Theme.of(context).colorScheme.primary,
|
||||
),
|
||||
label: Row(
|
||||
children: [
|
||||
Text(
|
||||
translatedString[logsProvider.appliedFilters.selectedResultStatus]!,
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.w500
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
deleteIcon: Icon(
|
||||
Icons.cancel_rounded,
|
||||
deleteIcon: const Icon(
|
||||
Icons.clear,
|
||||
size: 18,
|
||||
color: Theme.of(context).colorScheme.onSurfaceVariant
|
||||
),
|
||||
onDeleted: () {
|
||||
logsProvider.setAppliedFilters(
|
||||
AppliedFiters(
|
||||
selectedResultStatus: 'all',
|
||||
searchText: logsProvider.appliedFilters.searchText,
|
||||
clients: null
|
||||
clients: logsProvider.appliedFilters.clients
|
||||
)
|
||||
);
|
||||
logsProvider.setSelectedResultStatus('all');
|
||||
|
@ -506,13 +485,41 @@ class _LogsWidgetState extends State<LogsWidget> {
|
|||
responseStatus: 'all'
|
||||
);
|
||||
},
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
side: BorderSide(
|
||||
color: Theme.of(context).colorScheme.onSurfaceVariant
|
||||
)
|
||||
),
|
||||
backgroundColor: Theme.of(context).dialogBackgroundColor,
|
||||
],
|
||||
if (logsProvider.appliedFilters.clients != null) ...[
|
||||
const SizedBox(width: 15),
|
||||
Chip(
|
||||
avatar: const Icon(
|
||||
Icons.smartphone_rounded,
|
||||
),
|
||||
label: Row(
|
||||
children: [
|
||||
Text(
|
||||
logsProvider.appliedFilters.clients!.length == 1
|
||||
? logsProvider.appliedFilters.clients![0]
|
||||
: "${logsProvider.appliedFilters.clients!.length} ${AppLocalizations.of(context)!.clients}",
|
||||
),
|
||||
],
|
||||
),
|
||||
deleteIcon: const Icon(
|
||||
Icons.clear,
|
||||
size: 18,
|
||||
),
|
||||
onDeleted: () {
|
||||
logsProvider.setAppliedFilters(
|
||||
AppliedFiters(
|
||||
selectedResultStatus: logsProvider.appliedFilters.selectedResultStatus,
|
||||
searchText: logsProvider.appliedFilters.searchText,
|
||||
clients: null
|
||||
)
|
||||
);
|
||||
logsProvider.setSelectedClients(null);
|
||||
fetchLogs(
|
||||
inOffset: 0,
|
||||
responseStatus: logsProvider.appliedFilters.selectedResultStatus
|
||||
);
|
||||
},
|
||||
),
|
||||
],
|
||||
const SizedBox(width: 15),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue