mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-04-21 06:19:10 +00:00
Fix logs filtering by client
This commit is contained in:
parent
aed2500fa4
commit
16f1d4664c
4 changed files with 16 additions and 18 deletions
|
@ -1,7 +1,7 @@
|
|||
class AppliedFiters {
|
||||
String selectedResultStatus = 'all';
|
||||
String? searchText;
|
||||
List<String>? clients;
|
||||
List<String> clients;
|
||||
|
||||
AppliedFiters({
|
||||
required this.selectedResultStatus,
|
||||
|
|
|
@ -30,7 +30,7 @@ class LogsProvider with ChangeNotifier {
|
|||
AppliedFiters _appliedFilters = AppliedFiters(
|
||||
selectedResultStatus: 'all',
|
||||
searchText: null,
|
||||
clients: null
|
||||
clients: []
|
||||
);
|
||||
|
||||
LoadStatus get loadStatus {
|
||||
|
@ -177,18 +177,18 @@ class LogsProvider with ChangeNotifier {
|
|||
if (loadingMore != null && loadingMore == true && logsData != null) {
|
||||
LogsData newLogsData = result.content;
|
||||
newLogsData.data = [...logsData!.data, ...(result.content as LogsData).data];
|
||||
if (appliedFilters.clients != null) {
|
||||
if (appliedFilters.clients.isNotEmpty) {
|
||||
newLogsData.data = newLogsData.data.where(
|
||||
(item) => appliedFilters.clients!.contains(item.client)
|
||||
(item) => appliedFilters.clients.contains(item.client)
|
||||
).toList();
|
||||
}
|
||||
_logsData = newLogsData;
|
||||
}
|
||||
else {
|
||||
LogsData newLogsData = result.content;
|
||||
if (appliedFilters.clients != null) {
|
||||
if (appliedFilters.clients.isNotEmpty) {
|
||||
newLogsData.data = newLogsData.data.where(
|
||||
(item) => appliedFilters.clients!.contains(item.client)
|
||||
(item) => appliedFilters.clients.contains(item.client)
|
||||
).toList();
|
||||
}
|
||||
_logsData = newLogsData;
|
||||
|
@ -217,7 +217,7 @@ class LogsProvider with ChangeNotifier {
|
|||
_appliedFilters = AppliedFiters(
|
||||
selectedResultStatus: 'all',
|
||||
searchText: null,
|
||||
clients: null
|
||||
clients: []
|
||||
);
|
||||
|
||||
if (result.successful == true) {
|
||||
|
@ -254,9 +254,9 @@ class LogsProvider with ChangeNotifier {
|
|||
|
||||
if (result.successful == true) {
|
||||
LogsData newLogsData = result.content as LogsData;
|
||||
if (appliedFilters.clients != null) {
|
||||
if (appliedFilters.clients.isNotEmpty) {
|
||||
newLogsData.data = newLogsData.data.where(
|
||||
(item) => appliedFilters.clients!.contains(item.client)
|
||||
(item) => appliedFilters.clients.contains(item.client)
|
||||
).toList();
|
||||
}
|
||||
_logsData = newLogsData;
|
||||
|
|
|
@ -51,7 +51,7 @@ class TopItemsLists extends StatelessWidget {
|
|||
AppliedFiters(
|
||||
selectedResultStatus: 'all',
|
||||
searchText: value,
|
||||
clients: null
|
||||
clients: []
|
||||
)
|
||||
);
|
||||
appConfigProvider.setSelectedScreen(2);
|
||||
|
|
|
@ -70,8 +70,6 @@ class LogsListAppBar extends StatelessWidget {
|
|||
forceElevated: innerBoxIsScrolled,
|
||||
surfaceTintColor: isDesktop(width) ? Colors.transparent : null,
|
||||
title: Text(AppLocalizations.of(context)!.logs),
|
||||
expandedHeight: logsProvider.appliedFilters.searchText != null || logsProvider.appliedFilters.selectedResultStatus != 'all' || logsProvider.appliedFilters.clients != null
|
||||
? 170 : null,
|
||||
actions: [
|
||||
if (!(Platform.isAndroid || Platform.isIOS)) IconButton(
|
||||
onPressed: () => logsProvider.fetchLogs(inOffset: 0),
|
||||
|
@ -87,7 +85,7 @@ class LogsListAppBar extends StatelessWidget {
|
|||
: const SizedBox(),
|
||||
const SizedBox(width: 5),
|
||||
],
|
||||
bottom: logsProvider.appliedFilters.searchText != null || logsProvider.appliedFilters.selectedResultStatus != 'all' || logsProvider.appliedFilters.clients != null
|
||||
bottom: logsProvider.appliedFilters.searchText != null || logsProvider.appliedFilters.selectedResultStatus != 'all' || logsProvider.appliedFilters.clients.isNotEmpty
|
||||
? PreferredSize(
|
||||
preferredSize: const Size(double.maxFinite, 70),
|
||||
child: Container(
|
||||
|
@ -172,7 +170,7 @@ class LogsListAppBar extends StatelessWidget {
|
|||
},
|
||||
),
|
||||
],
|
||||
if (logsProvider.appliedFilters.clients != null) ...[
|
||||
if (logsProvider.appliedFilters.clients.isNotEmpty) ...[
|
||||
const SizedBox(width: 15),
|
||||
Chip(
|
||||
avatar: const Icon(
|
||||
|
@ -181,9 +179,9 @@ class LogsListAppBar extends StatelessWidget {
|
|||
label: Row(
|
||||
children: [
|
||||
Text(
|
||||
logsProvider.appliedFilters.clients!.length == 1
|
||||
? logsProvider.appliedFilters.clients![0]
|
||||
: "${logsProvider.appliedFilters.clients!.length} ${AppLocalizations.of(context)!.clients}",
|
||||
logsProvider.appliedFilters.clients.length == 1
|
||||
? logsProvider.appliedFilters.clients[0]
|
||||
: "${logsProvider.appliedFilters.clients.length} ${AppLocalizations.of(context)!.clients}",
|
||||
),
|
||||
],
|
||||
),
|
||||
|
@ -196,7 +194,7 @@ class LogsListAppBar extends StatelessWidget {
|
|||
AppliedFiters(
|
||||
selectedResultStatus: logsProvider.appliedFilters.selectedResultStatus,
|
||||
searchText: logsProvider.appliedFilters.searchText,
|
||||
clients: null
|
||||
clients: []
|
||||
)
|
||||
);
|
||||
logsProvider.setSelectedClients(null);
|
||||
|
|
Loading…
Add table
Reference in a new issue