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