Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Content fragment list does allow to select items with multiple tags where all are mandatory #2381

Open
royteeuwen opened this issue Nov 23, 2022 · 0 comments · May be fixed by #2382
Open

Content fragment list does allow to select items with multiple tags where all are mandatory #2381

royteeuwen opened this issue Nov 23, 2022 · 0 comments · May be fixed by #2382

Comments

@royteeuwen
Copy link
Contributor

Currently the content fragment list only allows to select content fragments that have one of the selected tags from the dialog fields, this is always an OR statement. We would like to use it that it is contains all tags, not only one of them.

I have found the following comment in the code, so I would expect it to be refactored to use the xpath or another way of querying, because the query builder does not support it:

https://github.com/adobe/aem-core-wcm-components/blob/main/bundles/core/src/main/java/com/adobe/cq/wcm/core/components/internal/models/v1/contentfragment/ContentFragmentListImpl.java#L162

ky940819 added a commit to ky940819/aem-core-wcm-components that referenced this issue Nov 23, 2022
Updates the tag predicate testing to ensure that there are no
additional predicates in the actual predicate group that were
not present in the expected predicate group.

----
refs adobe#2381
ky940819 added a commit to ky940819/aem-core-wcm-components that referenced this issue Nov 23, 2022
Updates the Content Fragment List component model so to add the
ability to require all tags to match instead of any tag (i.e. us
`AND` instead of the default `OR`).

This is similar to the List component and makes use of the same
property name (`./tagsMatch`).

Additionally, injected properties are removed when they can easily
be derived from other injected objects and aren't used outside of
the initializer method - and so there is no reason to hold on to them
for the entire lifespan of the object.

Furthermore, resources resolved from the leaky query builder resource
resolver are re-resolved with the non-leaky resource resolver before
being used. This is done to ensure that no reference to the leaky
resource resolver persists after it is closed.

----
refs adobe#2381
ky940819 added a commit to ky940819/aem-core-wcm-components that referenced this issue Nov 23, 2022
Adds an option in the Content Fragment List dialog to select if the
tag matching should be `Any` or `All`. The model will use an `or` or
an `and` condition in the tag predicate based on this choice.

This dialog option is copied directly from the List component dialog.

----
refs adobe#2381
ky940819 added a commit to ky940819/aem-core-wcm-components that referenced this issue Nov 23, 2022
Adds text to the Content Fragment List component example content that
indicates that "all tags" matching is possible. This text is copied
from the List component example content.

----
refs adobe#2381
@ky940819 ky940819 linked a pull request Nov 23, 2022 that will close this issue
ky940819 added a commit to ky940819/aem-core-wcm-components that referenced this issue Nov 23, 2022
Updates the tag predicate testing to ensure that there are no
additional predicates in the actual predicate group that were
not present in the expected predicate group.

----
refs adobe#2381
ky940819 added a commit to ky940819/aem-core-wcm-components that referenced this issue Nov 23, 2022
Updates the Content Fragment List component model so to add the
ability to require all tags to match instead of any tag (i.e. us
`AND` instead of the default `OR`).

This is similar to the List component and makes use of the same
property name (`./tagsMatch`).

Additionally, injected properties are removed when they can easily
be derived from other injected objects and aren't used outside of
the initializer method - and so there is no reason to hold on to them
for the entire lifespan of the object.

Furthermore, resources resolved from the leaky query builder resource
resolver are re-resolved with the non-leaky resource resolver before
being used. This is done to ensure that no reference to the leaky
resource resolver persists after it is closed.

----
refs adobe#2381
ky940819 added a commit to ky940819/aem-core-wcm-components that referenced this issue Nov 23, 2022
Adds an option in the Content Fragment List dialog to select if the
tag matching should be `Any` or `All`. The model will use an `or` or
an `and` condition in the tag predicate based on this choice.

This dialog option is copied directly from the List component dialog.

----
refs adobe#2381
ky940819 added a commit to ky940819/aem-core-wcm-components that referenced this issue Nov 23, 2022
Adds text to the Content Fragment List component example content that
indicates that "all tags" matching is possible. This text is copied
from the List component example content.

----
refs adobe#2381
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant