Search topics by "assoc involvement"
At the moment the Search dialog allows for searching topics by-value, by-type, and by (parent/child) hierarchy. What is missing is searching topics by-assoc-involvement, that is by being a player in an association of a certain type.
We also want search assocs by-value. However, searching assocs by-value and topics by-value at the same time is not required.
GUI extension:
-
Extend the Search dialog by another checkbox "Search by association" (wording TBD) along with an assoc type selector.
The existing Search dialog GUI elements remain functional as they are.
Note: despite both is supported, searching topics by-value and searching assocs-by-value still only one input field is required.
Search semantics:
- If an assoc type is selected the search result will contain only topics which are a player in an association of that type.
- If an assoc type is selected and a value is entered in the input field that value is interpreted as assoc value -- not as topic value. In this case also the "Search child topics" checkbox relates to the assoc parent/child hierarchy (not the topic's parent/child hierarchy). So we can search assocs by-value, just like we search topics by-value.
- Entering a value in the input field is now optional. That is you can perform a sole by-assoc-involvement search without combining it with a by-value search.
- If no assoc type is selected, and no value is entered in the input field we have a sole topic-by-type search. If no topic type is selected no search is performed.
Usage:
-
The search result is still a list of topics. The result list looks the same as it looks now. However in case an assoc type is selected the result is technically a list of topic-assoc pairs, and we can exploit this for revelation: if the user reveals such a topic and the player at the other's assoc end is revealed at the moment, the Webclient will reveal the assoc as well.
Note that this realizes a semi-automatic assoc-revelation-process which is similar to the existing Webclient's auto-assoc-revelation feature (#100 (closed)).
This is a follow-up of dmx-intern/sprint-planning#138.
In particular the "DSCR" use case described there is addressed here.