mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-05-22 01:34:25 +00:00
Search filters allow search everything
This commit is contained in:
parent
511f86e336
commit
86b35a1f2e
5 changed files with 21 additions and 46 deletions
|
@ -156,5 +156,6 @@
|
|||
"all": "All",
|
||||
"filtered": "Filtered",
|
||||
"checkAppLogs": "Check app logs",
|
||||
"refresh": "Refresh"
|
||||
"refresh": "Refresh",
|
||||
"search": "Search"
|
||||
}
|
|
@ -156,5 +156,6 @@
|
|||
"all": "Todas",
|
||||
"filtered": "Filtrada",
|
||||
"checkAppLogs": "Comprueba los logs de la app",
|
||||
"refresh": "Actualizar"
|
||||
"refresh": "Actualizar",
|
||||
"search": "Buscar"
|
||||
}
|
|
@ -7,7 +7,7 @@ class LogsProvider with ChangeNotifier {
|
|||
|
||||
DateTime? _logsOlderThan;
|
||||
String _selectedResultStatus = 'all';
|
||||
String? _searchIpDomain;
|
||||
String? _searchText;
|
||||
|
||||
int _logsQuantity = 100;
|
||||
int _offset = 0;
|
||||
|
@ -28,8 +28,8 @@ class LogsProvider with ChangeNotifier {
|
|||
return _selectedResultStatus;
|
||||
}
|
||||
|
||||
String? get searchIpDomain {
|
||||
return _searchIpDomain;
|
||||
String? get searchText {
|
||||
return _searchText;
|
||||
}
|
||||
|
||||
int get logsQuantity {
|
||||
|
@ -60,7 +60,7 @@ class LogsProvider with ChangeNotifier {
|
|||
_logsOlderThan = null;
|
||||
_offset = 0;
|
||||
_selectedResultStatus = 'all';
|
||||
_searchIpDomain = null;
|
||||
_searchText = null;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
|
@ -77,8 +77,8 @@ class LogsProvider with ChangeNotifier {
|
|||
_selectedResultStatus = value;
|
||||
notifyListeners();
|
||||
}
|
||||
void setSearchIpDomain(String? value) {
|
||||
_searchIpDomain = value;
|
||||
void setSearchText(String? value) {
|
||||
_searchText = value;
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
|
@ -27,7 +27,7 @@ class LogsAppBar extends StatelessWidget with PreferredSizeWidget {
|
|||
if (logsProvider.logsOlderThan != null) {
|
||||
number++;
|
||||
}
|
||||
if (logsProvider.searchIpDomain != null) {
|
||||
if (logsProvider.searchText != null) {
|
||||
number++;
|
||||
}
|
||||
if (logsProvider.selectedResultStatus != 'all') {
|
||||
|
|
|
@ -37,12 +37,11 @@ class LogsFiltersModalWidget extends StatefulWidget {
|
|||
}
|
||||
|
||||
class _LogsFiltersModalWidgetState extends State<LogsFiltersModalWidget> {
|
||||
TextEditingController addressController = TextEditingController();
|
||||
String? addressFieldError;
|
||||
TextEditingController searchController = TextEditingController();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
addressController.text = widget.logsProvider.searchIpDomain ?? '';
|
||||
searchController.text = widget.logsProvider.searchText ?? '';
|
||||
super.initState();
|
||||
}
|
||||
|
||||
|
@ -94,8 +93,7 @@ class _LogsFiltersModalWidgetState extends State<LogsFiltersModalWidget> {
|
|||
|
||||
void resetFilters() async {
|
||||
setState(() {
|
||||
addressController.text = '';
|
||||
addressFieldError = null;
|
||||
searchController.text = '';
|
||||
});
|
||||
|
||||
logsProvider.setLoadStatus(0);
|
||||
|
@ -128,29 +126,6 @@ class _LogsFiltersModalWidgetState extends State<LogsFiltersModalWidget> {
|
|||
);
|
||||
}
|
||||
|
||||
void validateAddress(String? value) {
|
||||
if (value != null && value != '') {
|
||||
RegExp ipAddress = RegExp(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$');
|
||||
RegExp domain = RegExp(r'^((?!-))(xn--)?[a-z0-9][a-z0-9-_]{0,61}[a-z0-9]{0,1}\.(xn--)?([a-z0-9\-]{1,61}|[a-z0-9-]{1,30}\.[a-z]{2,})$');
|
||||
if (ipAddress.hasMatch(value) == true || domain.hasMatch(value) == true) {
|
||||
setState(() {
|
||||
addressFieldError = null;
|
||||
});
|
||||
logsProvider.setSearchIpDomain(addressController.text);
|
||||
}
|
||||
else {
|
||||
setState(() {
|
||||
addressFieldError = AppLocalizations.of(context)!.invalidIpDomain;
|
||||
});
|
||||
}
|
||||
}
|
||||
else {
|
||||
setState(() {
|
||||
addressFieldError = AppLocalizations.of(context)!.ipDomainNotEmpty;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void filterLogs() async {
|
||||
Navigator.pop(context);
|
||||
|
||||
|
@ -163,7 +138,7 @@ class _LogsFiltersModalWidgetState extends State<LogsFiltersModalWidget> {
|
|||
count: logsProvider.logsQuantity,
|
||||
olderThan: logsProvider.logsOlderThan,
|
||||
responseStatus: logsProvider.selectedResultStatus,
|
||||
search: logsProvider.searchIpDomain,
|
||||
search: logsProvider.searchText,
|
||||
);
|
||||
if (result['result'] == 'success') {
|
||||
logsProvider.setLogsData(result['data']);
|
||||
|
@ -216,17 +191,16 @@ class _LogsFiltersModalWidgetState extends State<LogsFiltersModalWidget> {
|
|||
SizedBox(
|
||||
width: MediaQuery.of(context).size.width - 108,
|
||||
child: TextFormField(
|
||||
controller: addressController,
|
||||
onChanged: validateAddress,
|
||||
controller: searchController,
|
||||
onChanged: (value) => logsProvider.setSearchText(value),
|
||||
decoration: InputDecoration(
|
||||
prefixIcon: const Icon(Icons.link_rounded),
|
||||
errorText: addressFieldError,
|
||||
prefixIcon: const Icon(Icons.search_rounded),
|
||||
border: const OutlineInputBorder(
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(10)
|
||||
)
|
||||
),
|
||||
labelText: AppLocalizations.of(context)!.ipDomain,
|
||||
labelText: AppLocalizations.of(context)!.search,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -234,10 +208,9 @@ class _LogsFiltersModalWidgetState extends State<LogsFiltersModalWidget> {
|
|||
IconButton(
|
||||
onPressed: () {
|
||||
setState(() {
|
||||
addressController.text = '';
|
||||
addressFieldError = null;
|
||||
searchController.text = '';
|
||||
});
|
||||
logsProvider.setSearchIpDomain(null);
|
||||
logsProvider.setSearchText(null);
|
||||
},
|
||||
icon: const Icon(Icons.clear)
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue