Some search fixes.

This commit is contained in:
James Cole 2021-06-30 20:02:19 +02:00
parent 1350da9666
commit 3d81315769
No known key found for this signature in database
GPG Key ID: B5669F9493CDE38D
29 changed files with 98 additions and 48 deletions

View File

@ -46,7 +46,7 @@ class SearchController extends Controller
$this->middleware( $this->middleware(
static function ($request, $next) { static function ($request, $next) {
app('view')->share('mainTitleIcon', 'fa-search'); app('view')->share('mainTitleIcon', 'fa-search');
app('view')->share('title', (string) trans('firefly.search')); app('view')->share('title', (string)trans('firefly.search'));
return $next($request); return $next($request);
} }
@ -65,14 +65,13 @@ class SearchController extends Controller
{ {
// search params: // search params:
$fullQuery = $request->get('search'); $fullQuery = $request->get('search');
if(is_array($request->get('search'))) { if (is_array($request->get('search'))) {
$fullQuery = ''; $fullQuery = '';
} }
$fullQuery = (string) $fullQuery; $fullQuery = (string)$fullQuery;
$page = 0 === (int) $request->get('page') ? 1 : (int) $request->get('page'); $page = 0 === (int)$request->get('page') ? 1 : (int)$request->get('page');
$ruleId = (int) $request->get('rule'); $ruleId = (int)$request->get('rule');
$rule = null; $ruleChanged = false;
$ruleChanged = false;
// find rule, check if query is different, offer to update. // find rule, check if query is different, offer to update.
$ruleRepository = app(RuleRepositoryInterface::class); $ruleRepository = app(RuleRepositoryInterface::class);
@ -87,12 +86,12 @@ class SearchController extends Controller
$searcher->parseQuery($fullQuery); $searcher->parseQuery($fullQuery);
// words from query and operators: // words from query and operators:
$query = $searcher->getWordsAsString(); $query = $searcher->getWordsAsString();
$operators = $searcher->getOperators(); $operators = $searcher->getOperators();
$invalidOperators = $searcher->getInvalidOperators();
$subTitle = (string)trans('breadcrumbs.search_result', ['query' => $fullQuery]);
$subTitle = (string) trans('breadcrumbs.search_result', ['query' => $fullQuery]); return prefixView('search.index', compact('query', 'operators', 'page', 'rule', 'fullQuery', 'subTitle', 'ruleId', 'ruleChanged', 'invalidOperators'));
return prefixView('search.index', compact('query', 'operators', 'page', 'rule', 'fullQuery', 'subTitle', 'ruleId', 'ruleChanged'));
} }
/** /**
@ -105,8 +104,8 @@ class SearchController extends Controller
*/ */
public function search(Request $request, SearchInterface $searcher): JsonResponse public function search(Request $request, SearchInterface $searcher): JsonResponse
{ {
$fullQuery = (string) $request->get('query'); $fullQuery = (string)$request->get('query');
$page = 0 === (int) $request->get('page') ? 1 : (int) $request->get('page'); $page = 0 === (int)$request->get('page') ? 1 : (int)$request->get('page');
$searcher->parseQuery($fullQuery); $searcher->parseQuery($fullQuery);
@ -125,6 +124,7 @@ class SearchController extends Controller
Log::error(sprintf('Cannot render search.search: %s', $e->getMessage())); Log::error(sprintf('Cannot render search.search: %s', $e->getMessage()));
$html = 'Could not render view.'; $html = 'Could not render view.';
} }
return response()->json(['count' => $groups->count(), 'html' => $html]); return response()->json(['count' => $groups->count(), 'html' => $html]);
} }
} }

View File

@ -36,7 +36,6 @@ use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface; use FireflyIII\Repositories\Category\CategoryRepositoryInterface;
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use FireflyIII\Repositories\Tag\TagRepositoryInterface; use FireflyIII\Repositories\Tag\TagRepositoryInterface;
use FireflyIII\Repositories\TransactionType\TransactionTypeRepositoryInterface;
use FireflyIII\Support\ParseDateString; use FireflyIII\Support\ParseDateString;
use FireflyIII\User; use FireflyIII\User;
use Gdbots\QueryParser\Node\Date; use Gdbots\QueryParser\Node\Date;
@ -62,25 +61,23 @@ use Log;
*/ */
class OperatorQuerySearch implements SearchInterface class OperatorQuerySearch implements SearchInterface
{ {
private AccountRepositoryInterface $accountRepository; private AccountRepositoryInterface $accountRepository;
private BillRepositoryInterface $billRepository; private BillRepositoryInterface $billRepository;
private BudgetRepositoryInterface $budgetRepository; private BudgetRepositoryInterface $budgetRepository;
private CategoryRepositoryInterface $categoryRepository; private CategoryRepositoryInterface $categoryRepository;
private GroupCollectorInterface $collector; private GroupCollectorInterface $collector;
private CurrencyRepositoryInterface $currencyRepository; private CurrencyRepositoryInterface $currencyRepository;
private Carbon $date; private Carbon $date;
private int $limit; private int $limit;
private Collection $modifiers; private Collection $operators;
private Collection $operators; private int $page;
private string $originalQuery; private ParsedQuery $query;
private int $page; private float $startTime;
private ParsedQuery $query; private TagRepositoryInterface $tagRepository;
private float $startTime; private User $user;
private TagRepositoryInterface $tagRepository; private array $validOperators;
private TransactionTypeRepositoryInterface $typeRepository; // obsolete private array $words;
private User $user; private array $invalidOperators;
private array $validOperators;
private array $words;
/** /**
* OperatorQuerySearch constructor. * OperatorQuerySearch constructor.
@ -90,12 +87,11 @@ class OperatorQuerySearch implements SearchInterface
public function __construct() public function __construct()
{ {
Log::debug('Constructed OperatorQuerySearch'); Log::debug('Constructed OperatorQuerySearch');
$this->modifiers = new Collection; // obsolete
$this->operators = new Collection; $this->operators = new Collection;
$this->page = 1; $this->page = 1;
$this->words = []; $this->words = [];
$this->invalidOperators = [];
$this->limit = 25; $this->limit = 25;
$this->originalQuery = '';
$this->date = today(config('app.timezone')); $this->date = today(config('app.timezone'));
$this->validOperators = array_keys(config('firefly.search.operators')); $this->validOperators = array_keys(config('firefly.search.operators'));
$this->startTime = microtime(true); $this->startTime = microtime(true);
@ -105,7 +101,6 @@ class OperatorQuerySearch implements SearchInterface
$this->billRepository = app(BillRepositoryInterface::class); $this->billRepository = app(BillRepositoryInterface::class);
$this->tagRepository = app(TagRepositoryInterface::class); $this->tagRepository = app(TagRepositoryInterface::class);
$this->currencyRepository = app(CurrencyRepositoryInterface::class); $this->currencyRepository = app(CurrencyRepositoryInterface::class);
$this->typeRepository = app(TransactionTypeRepositoryInterface::class);
} }
/** /**
@ -151,9 +146,8 @@ class OperatorQuerySearch implements SearchInterface
public function parseQuery(string $query) public function parseQuery(string $query)
{ {
Log::debug(sprintf('Now in parseQuery(%s)', $query)); Log::debug(sprintf('Now in parseQuery(%s)', $query));
$parser = new QueryParser(); $parser = new QueryParser();
$this->query = $parser->parse($query); $this->query = $parser->parse($query);
$this->originalQuery = $query;
Log::debug(sprintf('Found %d node(s)', count($this->query->getNodes()))); Log::debug(sprintf('Found %d node(s)', count($this->query->getNodes())));
foreach ($this->query->getNodes() as $searchNode) { foreach ($this->query->getNodes() as $searchNode) {
@ -202,6 +196,14 @@ class OperatorQuerySearch implements SearchInterface
$this->collector->setLimit($this->limit); $this->collector->setLimit($this->limit);
} }
/**
* @return array
*/
public function getInvalidOperators(): array
{
return $this->invalidOperators;
}
/** /**
* @inheritDoc * @inheritDoc
* @codeCoverageIgnore * @codeCoverageIgnore
@ -277,6 +279,11 @@ class OperatorQuerySearch implements SearchInterface
'value' => (string)$value, 'value' => (string)$value,
] ]
); );
} else {
$this->invalidOperators[] = [
'type' => $operator,
'value' => (string)$value,
];
} }
break; break;
} }

View File

@ -42,6 +42,11 @@ interface SearchInterface
*/ */
public function getOperators(): Collection; public function getOperators(): Collection;
/**
* @return array
*/
public function getInvalidOperators(): array;
/** /**
* @return string * @return string
*/ */

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III намери :count транзакция за :time секунди.|Firefly III намери :count транзакции за :time секунди.', 'search_found_transactions' => 'Firefly III намери :count транзакция за :time секунди.|Firefly III намери :count транзакции за :time секунди.',
'search_found_more_transactions' => 'Firefly III намери повече от :count транзакции за :time секунди.', 'search_found_more_transactions' => 'Firefly III намери повече от :count транзакции за :time секунди.',
'search_for_query' => 'Firefly III търси за транзакции с всички от следните думи в тях:<span class="text-info">:query</span>', 'search_for_query' => 'Firefly III търси за транзакции с всички от следните думи в тях:<span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Датата на транзакцията е ":value"', 'search_modifier_date_is' => 'Датата на транзакцията е ":value"',
'search_modifier_id' => 'Transaction ID is ":value"', 'search_modifier_id' => 'Transaction ID is ":value"',
'search_modifier_date_before' => 'Датата на транзакцията е преди или на ":value"', 'search_modifier_date_before' => 'Датата на транзакцията е преди или на ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.', 'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.',
'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.', 'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.',
'search_for_query' => 'Firefly III is searching for transactions with all of these words in them: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III is searching for transactions with all of these words in them: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Datum transakce je „:value“', 'search_modifier_date_is' => 'Datum transakce je „:value“',
'search_modifier_id' => 'Číslo transakce je „:value“', 'search_modifier_id' => 'Číslo transakce je „:value“',
'search_modifier_date_before' => 'Transaction date is before or on ":value"', 'search_modifier_date_before' => 'Transaction date is before or on ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III hat :count Transaktion in :time Sekunden gefunden.|Firefly III hat :count Transaktionen in :time Sekunden gefunden.', 'search_found_transactions' => 'Firefly III hat :count Transaktion in :time Sekunden gefunden.|Firefly III hat :count Transaktionen in :time Sekunden gefunden.',
'search_found_more_transactions' => 'Firefly III hat mehr als :count Transaktionen in :time Sekunden gefunden.', 'search_found_more_transactions' => 'Firefly III hat mehr als :count Transaktionen in :time Sekunden gefunden.',
'search_for_query' => 'Firefly III sucht nach Buchungen mit folgenden Wörtern im Namen: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III sucht nach Buchungen mit folgenden Wörtern im Namen: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Buchungsdatum ist „:value”', 'search_modifier_date_is' => 'Buchungsdatum ist „:value”',
'search_modifier_id' => 'Buchungsnummer ist ":value"', 'search_modifier_id' => 'Buchungsnummer ist ":value"',
'search_modifier_date_before' => 'Buchungsdatum ist vor oder am ":value"', 'search_modifier_date_before' => 'Buchungsdatum ist vor oder am ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Το Firefly III βρήκε :count συναλλαγή σε :time δευτερόλεπτα.|Το Firefly III βρήκε :count συναλλαγές σε :time δευτερόλεπτα.', 'search_found_transactions' => 'Το Firefly III βρήκε :count συναλλαγή σε :time δευτερόλεπτα.|Το Firefly III βρήκε :count συναλλαγές σε :time δευτερόλεπτα.',
'search_found_more_transactions' => 'Το Firefly III βρήκε περισσότερες από :count συναλλαγές σε :time δευτερόλεπτα.', 'search_found_more_transactions' => 'Το Firefly III βρήκε περισσότερες από :count συναλλαγές σε :time δευτερόλεπτα.',
'search_for_query' => 'Το Firefly III αναζητεί για συναλλαγές που περιέχουν όλες αυτές τις λέξεις: <span class="text-info">:query</span>', 'search_for_query' => 'Το Firefly III αναζητεί για συναλλαγές που περιέχουν όλες αυτές τις λέξεις: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Η ημερομηνία συναλλαγής είναι ":value"', 'search_modifier_date_is' => 'Η ημερομηνία συναλλαγής είναι ":value"',
'search_modifier_id' => 'Το ID συναλλαγής είναι ":value"', 'search_modifier_id' => 'Το ID συναλλαγής είναι ":value"',
'search_modifier_date_before' => 'Η ημερομηνία συναλλαγής είναι πριν ή στις ":value"', 'search_modifier_date_before' => 'Η ημερομηνία συναλλαγής είναι πριν ή στις ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.', 'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.',
'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.', 'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.',
'search_for_query' => 'Firefly III is searching for transactions with all of these words in them: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III is searching for transactions with all of these words in them: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Transaction date is ":value"', 'search_modifier_date_is' => 'Transaction date is ":value"',
'search_modifier_id' => 'Transaction ID is ":value"', 'search_modifier_id' => 'Transaction ID is ":value"',
'search_modifier_date_before' => 'Transaction date is before or on ":value"', 'search_modifier_date_before' => 'Transaction date is before or on ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.', 'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.',
'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.', 'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.',
'search_for_query' => 'Firefly III is searching for transactions with all of these words in them: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III is searching for transactions with all of these words in them: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Transaction date is ":value"', 'search_modifier_date_is' => 'Transaction date is ":value"',
'search_modifier_id' => 'Transaction ID is ":value"', 'search_modifier_id' => 'Transaction ID is ":value"',
'search_modifier_date_before' => 'Transaction date is before or on ":value"', 'search_modifier_date_before' => 'Transaction date is before or on ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III encontrada :count transacción en :time segundos.|Firefly III encontradas :count transacciones en :time segundos.', 'search_found_transactions' => 'Firefly III encontrada :count transacción en :time segundos.|Firefly III encontradas :count transacciones en :time segundos.',
'search_found_more_transactions' => 'Firefly III encontró más de :count transacciones en :time segundos.', 'search_found_more_transactions' => 'Firefly III encontró más de :count transacciones en :time segundos.',
'search_for_query' => 'Firefly III está buscando transacciones que contengan todas estas palabras: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III está buscando transacciones que contengan todas estas palabras: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'La fecha de la transacción es ":value"', 'search_modifier_date_is' => 'La fecha de la transacción es ":value"',
'search_modifier_id' => 'El ID de la transacción es ":value"', 'search_modifier_id' => 'El ID de la transacción es ":value"',
'search_modifier_date_before' => 'La fecha de la transacción es anterior al ":value"', 'search_modifier_date_before' => 'La fecha de la transacción es anterior al ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.', 'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.',
'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.', 'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.',
'search_for_query' => 'Firefly III hakee tapahtumia kaikilla näillä hakusanoilla: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III hakee tapahtumia kaikilla näillä hakusanoilla: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Transaction date is ":value"', 'search_modifier_date_is' => 'Transaction date is ":value"',
'search_modifier_id' => 'Transaction ID is ":value"', 'search_modifier_id' => 'Transaction ID is ":value"',
'search_modifier_date_before' => 'Transaction date is before or on ":value"', 'search_modifier_date_before' => 'Transaction date is before or on ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III a trouvé :count opération en :time secondes.|Firefly III a trouvé :count opérations en :time secondes.', 'search_found_transactions' => 'Firefly III a trouvé :count opération en :time secondes.|Firefly III a trouvé :count opérations en :time secondes.',
'search_found_more_transactions' => 'Firefly III a trouvé plus de :count transactions en :time secondes.', 'search_found_more_transactions' => 'Firefly III a trouvé plus de :count transactions en :time secondes.',
'search_for_query' => 'Firefly III recherche des opérations contenant tous ces mots : <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III recherche des opérations contenant tous ces mots : <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'La date de l\'opération est ":value"', 'search_modifier_date_is' => 'La date de l\'opération est ":value"',
'search_modifier_id' => 'L\'ID de l\'opération est ":value"', 'search_modifier_id' => 'L\'ID de l\'opération est ":value"',
'search_modifier_date_before' => 'La date de l\'opération est avant ou le ":value"', 'search_modifier_date_before' => 'La date de l\'opération est avant ou le ":value"',
@ -998,7 +999,7 @@ return [
'not_expected_period' => 'Pas attendu cette période', 'not_expected_period' => 'Pas attendu cette période',
'not_or_not_yet' => 'Non (pas encore)', 'not_or_not_yet' => 'Non (pas encore)',
'match_between_amounts' => 'La facture correspond à des opérations entre :low et :high.', 'match_between_amounts' => 'La facture correspond à des opérations entre :low et :high.',
'running_again_loss' => 'Les opérations précédemment liées à cette facture peuvent perdre leur connexion, s\'ils ne correspondent plus à la ou les règles.', 'running_again_loss' => 'Les opérations précédemment liées à cette facture peuvent perdre leur connexion, si elles ne correspondent plus à la ou les règles.',
'bill_related_rules' => 'Règles reliées à cette facture', 'bill_related_rules' => 'Règles reliées à cette facture',
'repeats' => 'Répétitions', 'repeats' => 'Répétitions',
'connected_journals' => 'Opérations liées', 'connected_journals' => 'Opérations liées',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III :count tranzakciót talált :time másodperc alatt.|Firefly III :count tranzakciót talált :time másodperc alatt.', 'search_found_transactions' => 'Firefly III :count tranzakciót talált :time másodperc alatt.|Firefly III :count tranzakciót talált :time másodperc alatt.',
'search_found_more_transactions' => 'A Firefly III :count tranzakciót talált :time másodperc alatt.', 'search_found_more_transactions' => 'A Firefly III :count tranzakciót talált :time másodperc alatt.',
'search_for_query' => 'A Firefly III tranzakciókat keres amelyben ez a kifejezés található: <span class="text-info">:query</span>', 'search_for_query' => 'A Firefly III tranzakciókat keres amelyben ez a kifejezés található: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Tranzakció dátuma: :value', 'search_modifier_date_is' => 'Tranzakció dátuma: :value',
'search_modifier_id' => 'Transaction ID is ":value"', 'search_modifier_id' => 'Transaction ID is ":value"',
'search_modifier_date_before' => 'Tranzakció dátuma :value előtt van', 'search_modifier_date_before' => 'Tranzakció dátuma :value előtt van',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.', 'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.',
'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.', 'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.',
'search_for_query' => 'Firefly III is searching for transactions with all of these words in them: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III is searching for transactions with all of these words in them: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Transaction date is ":value"', 'search_modifier_date_is' => 'Transaction date is ":value"',
'search_modifier_id' => 'Transaction ID is ":value"', 'search_modifier_id' => 'Transaction ID is ":value"',
'search_modifier_date_before' => 'Transaction date is before or on ":value"', 'search_modifier_date_before' => 'Transaction date is before or on ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III ha trovato :count transazione in :time secondi.|Firefly III ha trovato :count transazioni in :time secondi.', 'search_found_transactions' => 'Firefly III ha trovato :count transazione in :time secondi.|Firefly III ha trovato :count transazioni in :time secondi.',
'search_found_more_transactions' => 'Firefly III ha trovato più di :count transazioni in :time secondi.', 'search_found_more_transactions' => 'Firefly III ha trovato più di :count transazioni in :time secondi.',
'search_for_query' => 'Firefly III sta cercando le transazioni contenenti tutte queste parole: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III sta cercando le transazioni contenenti tutte queste parole: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'La data della transazione è ":value"', 'search_modifier_date_is' => 'La data della transazione è ":value"',
'search_modifier_id' => 'L\'ID della transazione è ":value"', 'search_modifier_id' => 'L\'ID della transazione è ":value"',
'search_modifier_date_before' => 'La data della transazione è antecedente o uguale a ":value"', 'search_modifier_date_before' => 'La data della transazione è antecedente o uguale a ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.', 'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.',
'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.', 'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.',
'search_for_query' => 'Firefly III leter etter transaksjoner med disse ordene: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III leter etter transaksjoner med disse ordene: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Transaction date is ":value"', 'search_modifier_date_is' => 'Transaction date is ":value"',
'search_modifier_id' => 'Transaction ID is ":value"', 'search_modifier_id' => 'Transaction ID is ":value"',
'search_modifier_date_before' => 'Transaction date is before or on ":value"', 'search_modifier_date_before' => 'Transaction date is before or on ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III vond :count transactie in :time seconden.|Firefly III vond :count transacties in :time seconden.', 'search_found_transactions' => 'Firefly III vond :count transactie in :time seconden.|Firefly III vond :count transacties in :time seconden.',
'search_found_more_transactions' => 'Firefly III vond meer dan :count transacties in :time seconden.', 'search_found_more_transactions' => 'Firefly III vond meer dan :count transacties in :time seconden.',
'search_for_query' => 'Firefly III zoekt transacties met al deze woorden: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III zoekt transacties met al deze woorden: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Transactiedatum is ":value"', 'search_modifier_date_is' => 'Transactiedatum is ":value"',
'search_modifier_id' => 'Transactie ID is ":value"', 'search_modifier_id' => 'Transactie ID is ":value"',
'search_modifier_date_before' => 'Transactiedatum is vóór of op ":value"', 'search_modifier_date_before' => 'Transactiedatum is vóór of op ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III znalazł :count transakcję w :time sekund.|Firefly III znalazł :count transakcji w :time sekund.', 'search_found_transactions' => 'Firefly III znalazł :count transakcję w :time sekund.|Firefly III znalazł :count transakcji w :time sekund.',
'search_found_more_transactions' => 'Firefly III znalazł więcej niż :count transakcji w :time sekund.', 'search_found_more_transactions' => 'Firefly III znalazł więcej niż :count transakcji w :time sekund.',
'search_for_query' => 'Firefly III szuka transakcji zawierających wszystkie słowa: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III szuka transakcji zawierających wszystkie słowa: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Data transakcji to ":value"', 'search_modifier_date_is' => 'Data transakcji to ":value"',
'search_modifier_id' => 'ID transakcji to ":value"', 'search_modifier_id' => 'ID transakcji to ":value"',
'search_modifier_date_before' => 'Data transakcji jest przed lub w ":value"', 'search_modifier_date_before' => 'Data transakcji jest przed lub w ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III encontrou :count transação em :time segundos.|Firefly III encontrou :count transações em :time segundos.', 'search_found_transactions' => 'Firefly III encontrou :count transação em :time segundos.|Firefly III encontrou :count transações em :time segundos.',
'search_found_more_transactions' => 'Firefly III encontrou mais de :count transações em :time segundos.', 'search_found_more_transactions' => 'Firefly III encontrou mais de :count transações em :time segundos.',
'search_for_query' => 'Firefly III está procurando transações com todas estas palavras neles: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III está procurando transações com todas estas palavras neles: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'A data da transação é ":value"', 'search_modifier_date_is' => 'A data da transação é ":value"',
'search_modifier_id' => 'O ID da transação é ":value"', 'search_modifier_id' => 'O ID da transação é ":value"',
'search_modifier_date_before' => 'Data da transação é anterior ou em ":value"', 'search_modifier_date_before' => 'Data da transação é anterior ou em ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III encontrou :count transacção em :time segundos.|Firefly III encontrou :count transacções em :time segundos.', 'search_found_transactions' => 'Firefly III encontrou :count transacção em :time segundos.|Firefly III encontrou :count transacções em :time segundos.',
'search_found_more_transactions' => 'Firefly III encontrou mais de :count transacções em :time segundos.', 'search_found_more_transactions' => 'Firefly III encontrou mais de :count transacções em :time segundos.',
'search_for_query' => 'O Firefly III está à procura de transacções com as palavras: <span class="text-info">:query</span>', 'search_for_query' => 'O Firefly III está à procura de transacções com as palavras: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'A data da transacção é ":value"', 'search_modifier_date_is' => 'A data da transacção é ":value"',
'search_modifier_id' => 'O ID da transação é ":value"', 'search_modifier_id' => 'O ID da transação é ":value"',
'search_modifier_date_before' => 'A data da transacção é anterior ou a ":value"', 'search_modifier_date_before' => 'A data da transacção é anterior ou a ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III a găsit :count tranzacție în :time secunde.| Firefly III a găsit :count tranzacții în :time secunde.', 'search_found_transactions' => 'Firefly III a găsit :count tranzacție în :time secunde.| Firefly III a găsit :count tranzacții în :time secunde.',
'search_found_more_transactions' => 'Firefly III a găsit mai mult de :count tranzacții în :time secunde.', 'search_found_more_transactions' => 'Firefly III a găsit mai mult de :count tranzacții în :time secunde.',
'search_for_query' => 'Firefly III este în căutarea pentru tranzacţii cu toate aceste cuvinte în ele: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III este în căutarea pentru tranzacţii cu toate aceste cuvinte în ele: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Data tranzacţiei este ":value"', 'search_modifier_date_is' => 'Data tranzacţiei este ":value"',
'search_modifier_id' => 'ID-ul tranzacţiei este ":value"', 'search_modifier_id' => 'ID-ul tranzacţiei este ":value"',
'search_modifier_date_before' => 'Data tranzacției este înainte sau pe ":value"', 'search_modifier_date_before' => 'Data tranzacției este înainte sau pe ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III нашёл :count транзакции за :time секунд.|Firefly III нашёл :count транзакций за :time секунд.', 'search_found_transactions' => 'Firefly III нашёл :count транзакции за :time секунд.|Firefly III нашёл :count транзакций за :time секунд.',
'search_found_more_transactions' => 'Firefly III нашёл более :count транзакций за :time секунд.', 'search_found_more_transactions' => 'Firefly III нашёл более :count транзакций за :time секунд.',
'search_for_query' => 'Firefly III ищет транзакции со всеми этими словами: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III ищет транзакции со всеми этими словами: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Дата транзакции — ":value"', 'search_modifier_date_is' => 'Дата транзакции — ":value"',
'search_modifier_id' => 'ID транзакции - ":value"', 'search_modifier_id' => 'ID транзакции - ":value"',
'search_modifier_date_before' => 'Дата транзакции до или равна ":value"', 'search_modifier_date_before' => 'Дата транзакции до или равна ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III našiel :count transakciu za :time sekúnd.|Firefly III našiel :count transakcií za :time sekúnd.', 'search_found_transactions' => 'Firefly III našiel :count transakciu za :time sekúnd.|Firefly III našiel :count transakcií za :time sekúnd.',
'search_found_more_transactions' => 'Firefly III našiel viac než :count transakcií za :time sekúnd.', 'search_found_more_transactions' => 'Firefly III našiel viac než :count transakcií za :time sekúnd.',
'search_for_query' => 'Firefly III vyhľadáva transakcie obsahujúce tieto výrazy: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III vyhľadáva transakcie obsahujúce tieto výrazy: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Dátum transakcie je ":value"', 'search_modifier_date_is' => 'Dátum transakcie je ":value"',
'search_modifier_id' => 'ID transakcie je ":value"', 'search_modifier_id' => 'ID transakcie je ":value"',
'search_modifier_date_before' => 'Dátum transakcie je pred alebo v deň ":value"', 'search_modifier_date_before' => 'Dátum transakcie je pred alebo v deň ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III hittade :count transaktion i :time sekunder.|Firefly III hittade :count transaktioner i :time sekunder.', 'search_found_transactions' => 'Firefly III hittade :count transaktion i :time sekunder.|Firefly III hittade :count transaktioner i :time sekunder.',
'search_found_more_transactions' => 'Firefly III hittade mer än :count transaktioner i :time sekunder.', 'search_found_more_transactions' => 'Firefly III hittade mer än :count transaktioner i :time sekunder.',
'search_for_query' => 'Firefly III söker efter transaktioner med dessa ord i dem: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III söker efter transaktioner med dessa ord i dem: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Transaktions datum är ":value"', 'search_modifier_date_is' => 'Transaktions datum är ":value"',
'search_modifier_id' => 'Transaktions ID är: ":value"', 'search_modifier_id' => 'Transaktions ID är: ":value"',
'search_modifier_date_before' => 'Transaktions datum är före eller på ":value"', 'search_modifier_date_before' => 'Transaktions datum är före eller på ":value"',

View File

@ -281,6 +281,7 @@ return [
'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.', 'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.',
'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.', 'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.',
'search_for_query' => 'Firefly III şu kelimelerin hepsini içeren hareketleri arıyor: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III şu kelimelerin hepsini içeren hareketleri arıyor: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Transfer tarihi ":value"', 'search_modifier_date_is' => 'Transfer tarihi ":value"',
'search_modifier_id' => 'Transfer Kimliği ":value"', 'search_modifier_id' => 'Transfer Kimliği ":value"',
'search_modifier_date_before' => 'Transaction date is before or on ":value"', 'search_modifier_date_before' => 'Transaction date is before or on ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Tìm thấy Firefly III :count giao dịch trong :time giây. | Firefly III được tìm thấy :count giao dịch trong :time giây.', 'search_found_transactions' => 'Tìm thấy Firefly III :count giao dịch trong :time giây. | Firefly III được tìm thấy :count giao dịch trong :time giây.',
'search_found_more_transactions' => 'Firefly III đã tìm thấy hơn :count giao dịch trong :time giây.', 'search_found_more_transactions' => 'Firefly III đã tìm thấy hơn :count giao dịch trong :time giây.',
'search_for_query' => 'Firefly III đang tìm kiếm các giao dịch với tất cả những từ này trong đó: <span class="text-info">:query</span>', 'search_for_query' => 'Firefly III đang tìm kiếm các giao dịch với tất cả những từ này trong đó: <span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Ngày giao dịch là ":value"', 'search_modifier_date_is' => 'Ngày giao dịch là ":value"',
'search_modifier_id' => 'ID giao dịch là ":value"', 'search_modifier_id' => 'ID giao dịch là ":value"',
'search_modifier_date_before' => 'Ngày giao dịch phải trước hoặc ngay ":value"', 'search_modifier_date_before' => 'Ngày giao dịch phải trước hoặc ngay ":value"',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III 找到 :count 条交易,用时 :time 秒。|Firefly III 找到 :count 条交易,用时 :time 秒。', 'search_found_transactions' => 'Firefly III 找到 :count 条交易,用时 :time 秒。|Firefly III 找到 :count 条交易,用时 :time 秒。',
'search_found_more_transactions' => 'Firefly III 找到超过 :count 条交易,用时 :time 秒。', 'search_found_more_transactions' => 'Firefly III 找到超过 :count 条交易,用时 :time 秒。',
'search_for_query' => 'Firefly III 正在搜索包含 <span class="text-info">:query</span> 的交易', 'search_for_query' => 'Firefly III 正在搜索包含 <span class="text-info">:query</span> 的交易',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => '交易日期为“:value”', 'search_modifier_date_is' => '交易日期为“:value”',
'search_modifier_id' => '交易 ID 为 “:value”', 'search_modifier_id' => '交易 ID 为 “:value”',
'search_modifier_date_before' => '交易日期为“:value”或之前', 'search_modifier_date_before' => '交易日期为“:value”或之前',

View File

@ -280,6 +280,7 @@ return [
'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.', 'search_found_transactions' => 'Firefly III found :count transaction in :time seconds.|Firefly III found :count transactions in :time seconds.',
'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.', 'search_found_more_transactions' => 'Firefly III found more than :count transactions in :time seconds.',
'search_for_query' => 'Firefly III 正搜尋包含所有這些字詞的交易:<span class="text-info">:query</span>', 'search_for_query' => 'Firefly III 正搜尋包含所有這些字詞的交易:<span class="text-info">:query</span>',
'invalid_operators_list' => 'These search parameters are not valid and have been ignored.',
'search_modifier_date_is' => 'Transaction date is ":value"', 'search_modifier_date_is' => 'Transaction date is ":value"',
'search_modifier_id' => 'Transaction ID is ":value"', 'search_modifier_id' => 'Transaction ID is ":value"',
'search_modifier_date_before' => 'Transaction date is before or on ":value"', 'search_modifier_date_before' => 'Transaction date is before or on ":value"',

View File

@ -28,20 +28,31 @@
<div class="col-sm-offset-1 col-sm-10"> <div class="col-sm-offset-1 col-sm-10">
<button type="submit" class="btn btn-info"><span class="fa fa-search"></span> {{ 'search'|_ }}</button> <button type="submit" class="btn btn-info"><span class="fa fa-search"></span> {{ 'search'|_ }}</button>
{% if ruleId > 0 and ruleChanged %} {% if ruleId > 0 and ruleChanged %}
<a href="{{ route('rules.edit', [ruleId]) }}?from_query={{ fullQuery }}" class="btn btn-default">{{ trans('firefly.update_rule_from_query', {rule: rule.title}) }}</a> <a href="{{ route('rules.edit', [ruleId]) }}?from_query={{ fullQuery }}"
class="btn btn-default">{{ trans('firefly.update_rule_from_query', {rule: rule.title}) }}</a>
{% endif %} {% endif %}
<a href="{{ route('rules.create') }}?from_query={{ fullQuery }}" class="btn btn-default">{{ 'create_rule_from_query'|_ }}</a> <a href="{{ route('rules.create') }}?from_query={{ fullQuery }}" class="btn btn-default">{{ 'create_rule_from_query'|_ }}</a>
</div> </div>
</div> </div>
{% if 0 != ruleId %} {% if 0 != ruleId %}
<input type="hidden" name="rule" value="{{ ruleId }}" /> <input type="hidden" name="rule" value="{{ ruleId }}"/>
{% endif %} {% endif %}
</form> </form>
{% if '' != query %} {% if '' != query %}
<p> <p>
{{ trans('firefly.search_for_query', {query: query|escape})|raw}} {{ trans('firefly.search_for_query', {query: query|escape})|raw }}
</p> </p>
{% endif %} {% endif %}
{% if invalidOperators|length > 0 %}
<p>{{ trans('firefly.invalid_operators_list') }}</p>
<ul>
{% for operator in invalidOperators %}
<li class="text-danger">{{ operator.type }}:{{ operator.value }}</li>
{% endfor %}
</ul>
{% endif %}
{% if operators|length > 0 %} {% if operators|length > 0 %}
<p>{{ trans('firefly.modifiers_applies_are') }}</p> <p>{{ trans('firefly.modifiers_applies_are') }}</p>
<ul> <ul>
@ -76,13 +87,15 @@
<div class="mass_button_options btn-group btn-group" style="display:none;"> <div class="mass_button_options btn-group btn-group" style="display:none;">
<a href="#" class="btn btn-default mass_edit"><span class="fa fa-fw fa-pencil"></span> <span>{{ 'edit_selected'|_ }}</span></a> <a href="#" class="btn btn-default mass_edit"><span class="fa fa-fw fa-pencil"></span> <span>{{ 'edit_selected'|_ }}</span></a>
<a href="#" class="btn btn-default bulk_edit"><span>{{ 'bulk_edit'|_ }}</span></a> <a href="#" class="btn btn-default bulk_edit"><span>{{ 'bulk_edit'|_ }}</span></a>
<a href="#" class="btn btn-danger mass_delete"><span class="fa fa-fw fa-trash"></span> <span>{{ 'delete_selected'|_ }}</span></a> <a href="#" class="btn btn-danger mass_delete"><span class="fa fa-fw fa-trash"></span>
<span>{{ 'delete_selected'|_ }}</span></a>
</div> </div>
</div> </div>
<div class="col-lg-6 col-md-12 col-sm-12 col-xs-12 hidden-xs"> <div class="col-lg-6 col-md-12 col-sm-12 col-xs-12 hidden-xs">
<div class="mass_buttons btn-group btn-group pull-right"> <div class="mass_buttons btn-group btn-group pull-right">
<a href="#" class="btn btn-default mass_select"><span class="fa fa-fw fa-check-square-o"></span> {{ 'select_transactions'|_ }}</a> <a href="#" class="btn btn-default mass_select"><span
class="fa fa-fw fa-check-square-o"></span> {{ 'select_transactions'|_ }}</a>
<a href="#" class="btn btn-default mass_stop_select" style="display:none;"><span class="fa faw-fw fa-square-o" <a href="#" class="btn btn-default mass_stop_select" style="display:none;"><span class="fa faw-fw fa-square-o"
></span> {{ 'stop_selection'|_ }}</a> ></span> {{ 'stop_selection'|_ }}</a>
</div> </div>