New features for rules in search.

This commit is contained in:
James Cole
2020-08-27 07:12:44 +02:00
parent 7df084dd3c
commit 4c81a46af6
9 changed files with 132 additions and 64 deletions

View File

@@ -22,6 +22,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers;
use FireflyIII\Repositories\Rule\RuleRepositoryInterface;
use FireflyIII\Support\Search\SearchInterface;
use Illuminate\Contracts\View\Factory;
use Illuminate\Http\JsonResponse;
@@ -62,15 +63,33 @@ class SearchController extends Controller
*/
public function index(Request $request, SearchInterface $searcher)
{
$fullQuery = (string) $request->get('search');
$page = 0 === (int) $request->get('page') ? 1 : (int) $request->get('page');
// search params:
$fullQuery = (string) $request->get('search');
$page = 0 === (int) $request->get('page') ? 1 : (int) $request->get('page');
$ruleId = (int) $request->get('rule');
$rule = null;
$ruleChanged = false;
// find rule, check if query is different, offer to update.
$ruleRepository = app(RuleRepositoryInterface::class);
$rule = $ruleRepository->find($ruleId);
if (null !== $rule) {
$originalQuery = $ruleRepository->getSearchQuery($rule);
if ($originalQuery !== $fullQuery) {
$ruleChanged = true;
}
}
// parse search terms:
$searcher->parseQuery($fullQuery);
$query = $searcher->getWordsAsString();
$modifiers = $searcher->getModifiers();
$subTitle = (string) trans('breadcrumbs.search_result', ['query' => $query]);
return view('search.index', compact('query', 'modifiers', 'page', 'fullQuery', 'subTitle'));
// words from query and operators:
$query = $searcher->getWordsAsString();
$operators = $searcher->getOperators();
$subTitle = (string) trans('breadcrumbs.search_result', ['query' => $fullQuery]);
return view('search.index', compact('query', 'operators', 'page', 'rule', 'fullQuery', 'subTitle', 'ruleId', 'ruleChanged'));
}
/**