mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-05-04 20:30:35 +00:00
Added clients allowed and blocked lists
This commit is contained in:
parent
d4a792e5c8
commit
f678401fa8
7 changed files with 96 additions and 26 deletions
|
@ -59,6 +59,10 @@ class _ClientsWidgetState extends State<ClientsWidget> {
|
|||
super.initState();
|
||||
}
|
||||
|
||||
List<AutoClient> generateClientsList(List<AutoClient> clients, List<String> ips) {
|
||||
return clients.where((client) => ips.contains(client.ip)).toList();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final serversProvider = Provider.of<ServersProvider>(context);
|
||||
|
@ -121,8 +125,18 @@ class _ClientsWidgetState extends State<ClientsWidget> {
|
|||
ClientsList(
|
||||
data: serversProvider.clients.data!.autoClientsData,
|
||||
),
|
||||
Container(),
|
||||
Container()
|
||||
ClientsList(
|
||||
data: generateClientsList(
|
||||
serversProvider.clients.data!.autoClientsData,
|
||||
serversProvider.clients.data!.clientsAllowedBlocked!.allowedClients,
|
||||
)
|
||||
),
|
||||
ClientsList(
|
||||
data: generateClientsList(
|
||||
serversProvider.clients.data!.autoClientsData,
|
||||
serversProvider.clients.data!.clientsAllowedBlocked!.disallowedClients,
|
||||
)
|
||||
),
|
||||
],
|
||||
)
|
||||
)
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
|
||||
import 'package:adguard_home_manager/models/clients.dart';
|
||||
|
||||
|
@ -12,22 +13,39 @@ class ClientsList extends StatelessWidget {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ListView.builder(
|
||||
padding: const EdgeInsets.only(top: 0),
|
||||
itemCount: data.length,
|
||||
itemBuilder: (context, index) => ListTile(
|
||||
title: Text(
|
||||
data[index].name != ''
|
||||
? data[index].name!
|
||||
: data[index].ip
|
||||
if (data.isNotEmpty) {
|
||||
return ListView.builder(
|
||||
padding: const EdgeInsets.only(top: 0),
|
||||
itemCount: data.length,
|
||||
itemBuilder: (context, index) => ListTile(
|
||||
title: Text(
|
||||
data[index].name != ''
|
||||
? data[index].name!
|
||||
: data[index].ip
|
||||
),
|
||||
subtitle: data[index].name != ''
|
||||
? Text(
|
||||
data[index].ip
|
||||
)
|
||||
: null,
|
||||
trailing: Text(data[index].source),
|
||||
)
|
||||
);
|
||||
}
|
||||
else {
|
||||
return SizedBox(
|
||||
width: double.maxFinite,
|
||||
child: Center(
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.noClientsList,
|
||||
textAlign: TextAlign.center,
|
||||
style: const TextStyle(
|
||||
fontSize: 24,
|
||||
color: Colors.grey
|
||||
),
|
||||
),
|
||||
),
|
||||
subtitle: data[index].name != ''
|
||||
? Text(
|
||||
data[index].ip
|
||||
)
|
||||
: null,
|
||||
trailing: Text(data[index].source),
|
||||
)
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue