Commit graph

95 commits

Author SHA1 Message Date
dfb3f897e7
!!!|FEATURE: Extract relation resolver to data processor
Instead of hardcoding and tight coupling of relation resolving, we now
provide a dataprocessor instead.

Therefore you need to configure resolving for each indexed type.

This resolves #149 and #147.
2018-04-24 11:00:29 +02:00
0d57374f25
Merge remote-tracking branch 'origin/develop' into feature/147-handle-rendertype-inputDateTime
Conflicts:
    Tests/Unit/Domain/Index/TcaIndexer/RelationResolverTest.php
2018-04-19 17:08:13 +02:00
82d397c428
FEATURE: Keep sys_language_uid while indexing
Before this change, sys_language_uid was indexed as an empty string, due
to internal used TYPO3 API.
We now skip the configure field which defines language uid. This way you
can build filter based on current language.

Resolves #148
2018-04-12 12:03:02 +02:00
c1d1e6ed68
BUGFIX: Do not resolve inputDateTime as relation
Add test which checks this behaviour.
Exclude inputDateTime from relation resolving.

Resolves #147
2018-04-12 12:01:07 +02:00
4234575c36
TASK: Fix broken tests caused by missing caches
For some reason, which is unknown yet, caches are needed to make tests
pass. We therefore configure the caches to be null.
2018-04-12 09:29:01 +02:00
eb1c988f6d
Merge pull request #145 from Codappix/feature/add-type-to-resultitem
FEATURE: Provide type of result item
2018-03-22 13:40:27 +01:00
c8dc95c4d3
FEATURE: Provide type of result item
In order to make further usage easier, we provide the type for each
result item.

This makes it possible to call {f:render(section: resultItem.type)}.
2018-03-20 16:07:28 +01:00
372cd48471
FEATURE: Allow to copy a single field with CopyToProcessor 2018-03-20 15:43:09 +01:00
5c493aad21
TASK: Fix typo in test method name 2018-03-20 14:18:47 +01:00
203b5d7adf
TASK: Prevent issue When hook is called with non uid
If some issues occur outside of our extension, we might not get a valid
uid inside of our hooks. We will therefore add additional checks and
prevent any further execution.

Resolves: #112
2018-03-20 11:25:51 +01:00
22e097ca85
TASK: Do not comment out code for non working tests
Mark tests as non working for now.
2018-03-15 14:01:49 +01:00
835924a8d8
Merge remote-tracking branch 'origin/develop' into feature/support-typo3-7-to-8
Conflicts:
    Tests/Functional/Hooks/DataHandler/ProcessesAllowedTablesTest.php
    Tests/Unit/Domain/Index/TcaIndexer/TcaTableServiceTest.php
2018-03-14 20:13:03 +01:00
b5b0acdc62
TASK: Provide sys_language_uid
Fetch sys_language_uid from database.
Until now we did not fetch system related fields from database. As there
is now a RemoveProcessor, integrators are able to remove fields.
Also providing this field enables basic multi language support.

Relates: #25
2018-03-14 19:56:03 +01:00
20513400de
FEATURE: Index page if cache was cleared
We use the cache clear hook to index pages whenever the cache was
cleared.
This makes it possible to cover some cases like changing content on a
page. But also if an integrator configures to clear additional pages.

This is limited as we can not handle cache tags at the moment.

Resolves: #131
2018-03-13 21:52:50 +01:00
b2a63e9cb0
TASK: Make extension compatible with CMS 7.6 2018-03-13 20:34:56 +01:00
6d7199ccf2
TASK: Provide already used logger
As we use the logger, we should inject it.
2018-03-13 12:19:30 +01:00
16bc22aa44
TASK: Support tests for TYPO3 CMS 7.6
Check which version to run and switch TYPO3 bootstrapping.
Also allow tests to run with TYPO3 CMS 7.6 again.
2018-03-13 11:58:01 +01:00
7b336f3fa5
Merge branch 'develop' into feature/119-allow-range-queries-for-elasticsearch 2018-03-08 09:27:58 +01:00
88f301f228
FEATURE: Allow range queries for elasticsearch
Allow "raw" configuration and support "range" type.

Also prevent adding boosts if no search term was submitted which can be
boosted.

Resolves: #119
2018-03-06 16:42:22 +01:00
6544ec07d3
FEATURE: Support display name for facet option
As some search services, like elasticsearch, allow generation of a
string that should be displayed in frontend, we provide a new getter for
that.
The old existing name can be a fallback in custom implementations.
2018-03-06 16:41:54 +01:00
3731bcf474
TASK: Fix CGL 2018-03-06 16:39:07 +01:00
6ac2680211
Merge pull request #101 from Codappix/feature/phpcs-travis
Feature: Run phpcs on travis
2018-03-06 15:11:46 +01:00
951edf3871
Merge pull request #122 from Codappix/feature/116-execute-dataprocessor-on-result
FEATURE: 116 execute dataprocessor on result
2018-03-06 13:47:35 +01:00
6456f31503
TASK: Make test more readable
Make sure everyone knows what we compare, do not add hardcoded
information.
2018-03-06 13:23:08 +01:00
ae51de9041
Merge remote-tracking branch 'origin/develop' into feature/phpcs-travis
Conflicts:
    Classes/Hook/DataHandler.php
2018-03-06 13:17:29 +01:00
a893303939
TASK: Improve ResultItemTest
Do not repeat content, use variable which is also better to read.
And do not add unnecessary, unused, variables.
2018-03-06 13:04:42 +01:00
5d1e7c41bc
!!!|FEATURE: Pass facet configuration to search service
Do not limit integrator in possibilities to configure.

Therefore previously configure facets for a field need to be adjusted to
contain full configuration for elasticsearch. See changelog.

Resolves: #120
2018-03-06 12:05:32 +01:00
0210110ccf
TASK: Add test for applied data processing on search result 2018-03-06 10:26:39 +01:00
45bb12cf51
TASK: Add tests for search result model 2018-03-06 09:44:26 +01:00
cf91251be3
TASK :Add tests for SearchRequest
Make sure exceptions with helpful messages are thrown if one object is
missing when execute is called.

Also make sure the expected methods are called.
2018-03-06 09:36:39 +01:00
79aba3c544
TASK: Add test cases for ResultItem Model
Check whether all methods work as expected.

E.g. we can retrieve data in all ways, but not change anything.
2018-03-06 09:19:09 +01:00
769fb8237b
TASK: Add data processing to search result
Search results are now processed through data processing by search
service. The result will be a SearchResult model from our domain. Also
SearchResult will execute new queries, e.g. from paginate widget,
through SearchService to apply data processing again.

Remove duplicate stub code to trait, to keep own logic and code clean.
2018-03-06 09:04:47 +01:00
2998c43ba8
TASK: Refactor data processing
Use own service to handle data processing. Classes like indexer should
not know anything about the structure and how to process the data.

Also rename record to data, as we can process just any data in form of
an array.

Relates: #116
2018-03-01 08:03:51 +01:00
350f8a52b6
FEATURE: Use extbase for processor instantiation
This way injects will be resolved inside of processors, enabling
developers to inject dependencies.

We use inject instead of constructor as indexers mostly will change the
constructor and should not need to add the objectmanager.

Resolves: #117
2018-02-27 14:47:22 +01:00
47b3282034
BUGFIX: Allow indexing of new records with their relations
Relations were inserted by TYPO3's DataHandler after indexing and were
therefore not indexed.

We now use a later hook after DataHandler has finished everything, so we
know that we can index. As it's not relevant, we do not differentiate
between add and update anymore, as both trigger "indexDocument" internal.

Resolves: #112
2018-02-22 22:14:44 +01:00
5ba860b8de
TASK: Add new test covering new feature 2017-11-29 20:00:10 +01:00
e3151e802c
TASK: Fix broken unit tests
Adjust tests to match new queries built with multiple fields.
2017-11-29 19:52:10 +01:00
b7b783a7fe
TASK: Use Code Sniffer at travis
This way we need no external service.
Each developer can fully run all tests and cgl on local environment.
Also this integrated better into IDEs and editors.
2017-11-11 16:52:02 +01:00
689d8f0c53
Merge pull request #96 from Codappix/feature/refactor-dataprocessing
!!!|FEATURE: Make data processing available to all indexer
2017-11-10 22:05:49 +01:00
7472cab660
Merge pull request #98 from Codappix/feature/provide-form-finisher
FEATURE: Provide form finisher for integration into form extension
2017-11-10 22:05:34 +01:00
a3a46f5cb5
FEATURE: Provide command to delete whole index
This is necessary, e.g. for complete re-indexing.
2017-11-10 13:22:15 +01:00
31202f8882
FEATURE: Provide form finisher for integration into form extension
Provide a finisher, working as a proxy, to internal data handler, which
is already used for Hooks in TYPO3 backend.
2017-11-10 12:31:06 +01:00
e1a14b2f04
!!!|FEATURE: Make data processing available to all indexer
Before data processing was applied for TCA only, through tca table
service.
Now it's applied much later in process and in abstract indexer.
Therefore all indexer will run data processing if configured.
2017-11-08 21:05:53 +01:00
379dddf8ac
BUGFIX: Also remove fields containing "null" 2017-11-08 20:36:04 +01:00
0159315183
FEATURE: Add data processor to remove fields for indexing
Add a new processor, with docs and tests, to allow removal of fields
before sending them to search service like elasticsearch.

E.g. remove sensitive information that should not be available.
2017-11-08 20:20:37 +01:00
43ec410eb5
Merge pull request #93 from Codappix/hotfix/allow-empty-filter
BUGFIX: Do not remove submitted filter if configured one is empty
2017-11-02 22:41:20 +01:00
8206a1ec59
BUGFIX: Do not remove submitted filter if configured one is empty
This will be the case if you add a flexform to the plugin with no value.
Then an empty filter is configured and you will not be able to submit a
value for this filter.
2017-10-29 17:08:33 +01:00
b5225b943c
TASK: Add tests for new query factory code 2017-10-29 14:16:16 +01:00
c38f7b9d6a
TASK: Move configuration logic into own class
Also add tests for new code.
2017-10-29 13:44:17 +01:00
85bfb86f5f
TASK: Fix broken tests for query factory 2017-10-29 13:03:58 +01:00