diff --git a/lib/models/applied_filters.dart b/lib/models/applied_filters.dart index b281b42..2b60e71 100644 --- a/lib/models/applied_filters.dart +++ b/lib/models/applied_filters.dart @@ -1,11 +1,11 @@ class AppliedFiters { String selectedResultStatus = 'all'; - String? domainText; + String? searchText; List? clients; AppliedFiters({ required this.selectedResultStatus, - required this.domainText, + required this.searchText, required this.clients }); } \ No newline at end of file diff --git a/lib/providers/logs_provider.dart b/lib/providers/logs_provider.dart index 7c2411b..db2619c 100644 --- a/lib/providers/logs_provider.dart +++ b/lib/providers/logs_provider.dart @@ -12,7 +12,7 @@ class LogsProvider with ChangeNotifier { DateTime? _logsOlderThan; String _selectedResultStatus = 'all'; - String? _domainText; + String? _searchText; List? _selectedClients; int _logsQuantity = 100; @@ -20,7 +20,7 @@ class LogsProvider with ChangeNotifier { AppliedFiters _appliedFilters = AppliedFiters( selectedResultStatus: 'all', - domainText: null, + searchText: null, clients: null ); @@ -44,8 +44,8 @@ class LogsProvider with ChangeNotifier { return _selectedResultStatus; } - String? get domainText { - return _domainText; + String? get searchText { + return _searchText; } int get logsQuantity { @@ -98,7 +98,7 @@ class LogsProvider with ChangeNotifier { _logsOlderThan = null; _offset = 0; _selectedResultStatus = 'all'; - _domainText = null; + _searchText = null; notifyListeners(); } @@ -116,8 +116,8 @@ class LogsProvider with ChangeNotifier { notifyListeners(); } - void setDomainText(String? value) { - _domainText = value; + void setSearchText(String? value) { + _searchText = value; notifyListeners(); } diff --git a/lib/screens/home/top_items.dart b/lib/screens/home/top_items.dart index 52ffeaf..5883523 100644 --- a/lib/screens/home/top_items.dart +++ b/lib/screens/home/top_items.dart @@ -140,24 +140,24 @@ class TopItems extends StatelessWidget { child: InkWell( onTap: () { if (type == 'topQueriedDomains' || type == 'topBlockedDomains') { - logsProvider.setDomainText(item.keys.toList()[0]); + logsProvider.setSearchText(item.keys.toList()[0]); logsProvider.setSelectedClients(null); logsProvider.setAppliedFilters( AppliedFiters( selectedResultStatus: 'all', - domainText: item.keys.toList()[0], + searchText: item.keys.toList()[0], clients: null ) ); appConfigProvider.setSelectedScreen(2); } else if (type == 'topClients') { - logsProvider.setDomainText(null); + logsProvider.setSearchText(null); logsProvider.setSelectedClients([item.keys.toList()[0]]); logsProvider.setAppliedFilters( AppliedFiters( selectedResultStatus: 'all', - domainText: null, + searchText: null, clients: [item.keys.toList()[0]] ) ); diff --git a/lib/screens/logs/logs.dart b/lib/screens/logs/logs.dart index 3165010..f57460e 100644 --- a/lib/screens/logs/logs.dart +++ b/lib/screens/logs/logs.dart @@ -31,7 +31,7 @@ class Logs extends StatelessWidget { appConfigProvider: appConfigProvider, logsProvider: logsProvider, selectedResultStatus: logsProvider.appliedFilters.selectedResultStatus, - domainText: logsProvider.appliedFilters.domainText, + searchText: logsProvider.appliedFilters.searchText, ); } } @@ -41,7 +41,7 @@ class LogsWidget extends StatefulWidget { final AppConfigProvider appConfigProvider; final LogsProvider logsProvider; final String selectedResultStatus; - final String? domainText; + final String? searchText; const LogsWidget({ Key? key, @@ -49,7 +49,7 @@ class LogsWidget extends StatefulWidget { required this.appConfigProvider, required this.logsProvider, required this.selectedResultStatus, - required this.domainText, + required this.searchText, }) : super(key: key); @override @@ -67,12 +67,12 @@ class _LogsWidgetState extends State { int? inOffset, bool? loadingMore, String? responseStatus, - String? domainText, + String? searchText, }) async { int offst = inOffset ?? widget.logsProvider.offset; String resStatus = responseStatus ?? widget.selectedResultStatus; - String? search = domainText ?? widget.domainText; + String? search = searchText ?? widget.searchText; if (loadingMore != null && loadingMore == true) { setState(() => isLoadingMore = true); @@ -402,7 +402,7 @@ class _LogsWidgetState extends State { ), const SizedBox(width: 5), ], - bottom: logsProvider.appliedFilters.domainText != null || logsProvider.appliedFilters.selectedResultStatus != 'all' || logsProvider.appliedFilters.clients != null + bottom: logsProvider.appliedFilters.searchText != null || logsProvider.appliedFilters.selectedResultStatus != 'all' || logsProvider.appliedFilters.clients != null ? PreferredSize( preferredSize: const Size(double.maxFinite, 50), child: Container( @@ -421,7 +421,7 @@ class _LogsWidgetState extends State { child: ListView( scrollDirection: Axis.horizontal, children: [ - if (logsProvider.appliedFilters.domainText != null) ...[ + if (logsProvider.appliedFilters.searchText != null) ...[ const SizedBox(width: 15), Chip( avatar: const Icon( @@ -430,7 +430,7 @@ class _LogsWidgetState extends State { label: Row( children: [ Text( - logsProvider.appliedFilters.domainText!, + logsProvider.appliedFilters.searchText!, ), ], ), @@ -442,14 +442,14 @@ class _LogsWidgetState extends State { logsProvider.setAppliedFilters( AppliedFiters( selectedResultStatus: logsProvider.appliedFilters.selectedResultStatus, - domainText: null, + searchText: null, clients: logsProvider.appliedFilters.clients ) ); - logsProvider.setDomainText(null); + logsProvider.setSearchText(null); fetchLogs( inOffset: 0, - domainText: '' + searchText: '' ); }, ), @@ -475,7 +475,7 @@ class _LogsWidgetState extends State { logsProvider.setAppliedFilters( AppliedFiters( selectedResultStatus: 'all', - domainText: logsProvider.appliedFilters.domainText, + searchText: logsProvider.appliedFilters.searchText, clients: logsProvider.appliedFilters.clients ) ); @@ -510,7 +510,7 @@ class _LogsWidgetState extends State { logsProvider.setAppliedFilters( AppliedFiters( selectedResultStatus: logsProvider.appliedFilters.selectedResultStatus, - domainText: logsProvider.appliedFilters.domainText, + searchText: logsProvider.appliedFilters.searchText, clients: null ) ); diff --git a/lib/screens/logs/logs_filters_modal.dart b/lib/screens/logs/logs_filters_modal.dart index 9f6dc7f..073cdea 100644 --- a/lib/screens/logs/logs_filters_modal.dart +++ b/lib/screens/logs/logs_filters_modal.dart @@ -41,13 +41,11 @@ class LogsFiltersModalWidget extends StatefulWidget { } class _LogsFiltersModalWidgetState extends State { - TextEditingController domainController = TextEditingController(); - String? domainError; + TextEditingController searchController = TextEditingController(); @override void initState() { - domainController.text = widget.logsProvider.domainText ?? ''; - domainError = null; + searchController.text = widget.logsProvider.searchText ?? ''; super.initState(); } @@ -70,7 +68,7 @@ class _LogsFiltersModalWidgetState extends State { void resetFilters() async { setState(() { - domainController.text = ''; + searchController.text = ''; }); logsProvider.setLoadStatus(0); @@ -85,7 +83,7 @@ class _LogsFiltersModalWidgetState extends State { logsProvider.setAppliedFilters( AppliedFiters( selectedResultStatus: 'all', - domainText: null, + searchText: null, clients: null ) ); @@ -134,13 +132,13 @@ class _LogsFiltersModalWidgetState extends State { count: logsProvider.logsQuantity, olderThan: logsProvider.logsOlderThan, responseStatus: logsProvider.selectedResultStatus, - search: logsProvider.domainText, + search: logsProvider.searchText, ); logsProvider.setAppliedFilters( AppliedFiters( selectedResultStatus: logsProvider.selectedResultStatus, - domainText: logsProvider.domainText, + searchText: logsProvider.searchText, clients: logsProvider.selectedClients ) ); @@ -208,39 +206,25 @@ class _LogsFiltersModalWidgetState extends State { children: [ Expanded( child: TextFormField( - controller: domainController, - onChanged: (value) { - logsProvider.setDomainText(value); - RegExp domain = RegExp(r'^([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+$'); - if (value == '' || domain.hasMatch(value) == true) { - setState(() { - domainError = null; - }); - } - else { - setState(() { - domainError = AppLocalizations.of(context)!.invalidDomain; - }); - } - }, + controller: searchController, + onChanged: logsProvider.setSearchText, decoration: InputDecoration( - prefixIcon: const Icon(Icons.link_rounded), + prefixIcon: const Icon(Icons.search_rounded), border: const OutlineInputBorder( borderRadius: BorderRadius.all( Radius.circular(10) ) ), - labelText: AppLocalizations.of(context)!.domain, + labelText: AppLocalizations.of(context)!.search, suffixIcon: IconButton( onPressed: () { setState(() { - domainController.text = ''; + searchController.text = ''; }); - logsProvider.setDomainText(null); + logsProvider.setSearchText(null); }, icon: const Icon(Icons.clear) ), - errorText: domainError ), ), ) @@ -294,9 +278,7 @@ class _LogsFiltersModalWidgetState extends State { child: Text(AppLocalizations.of(context)!.resetFilters) ), TextButton( - onPressed: domainError == null - ? () => filterLogs() - : null, + onPressed: () => filterLogs(), child: Text(AppLocalizations.of(context)!.apply) ), ], diff --git a/lib/screens/top_items/top_items.dart b/lib/screens/top_items/top_items.dart index 1ddf272..efee2af 100644 --- a/lib/screens/top_items/top_items.dart +++ b/lib/screens/top_items/top_items.dart @@ -200,12 +200,12 @@ class _TopItemsScreenState extends State { return CustomListTile( onTap: () { if (widget.type == 'topQueriedDomains' || widget.type == 'topBlockedDomains') { - logsProvider.setDomainText(screenData[index].keys.toList()[0]); + logsProvider.setSearchText(screenData[index].keys.toList()[0]); logsProvider.setSelectedClients(null); logsProvider.setAppliedFilters( AppliedFiters( selectedResultStatus: 'all', - domainText: screenData[index].keys.toList()[0], + searchText: screenData[index].keys.toList()[0], clients: null ) ); @@ -213,12 +213,12 @@ class _TopItemsScreenState extends State { Navigator.pop(context); } else if (widget.type == 'topClients') { - logsProvider.setDomainText(null); + logsProvider.setSearchText(null); logsProvider.setSelectedClients([screenData[index].keys.toList()[0]]); logsProvider.setAppliedFilters( AppliedFiters( selectedResultStatus: 'all', - domainText: null, + searchText: null, clients: [screenData[index].keys.toList()[0]] ) );