Support for UTF-8 characters in property names
Description
See branch RY-459-Attempt-to-support-Russian-chars
Add support for mentions (save both userkey and username)
Release notes
The awesome part is that no HTML interferes with the search queries anymore.
The % keyword is now always active.
Lists: If the property contains a list, then == will match with any element of the list, even if there are other elements.
If the property contains a mention, then the correct syntax is `@Property == user('nmandela')`. It is resistant to username changes, amusingly.
Miscellaneous
Ideas
Support UTF-8
Be serious and have a separate value for display and search. So people can search for "@category='tx'" and it displays `<span class="active-green">TX</span>`,
Go farther and implement support for lists, notably equality on lists.
Implementation
AOProperty
name: As currently, simple text (no HTML tag) -> html-encoded, so Russian characters can work.
value: As currently, whatever HTML. Used only for disply.
textValue: The text, extracted from the HTML. UTF-8. Between double quotes. Example: `"item"`
Multivalues
When a user types `@prop = "item 1"`, it is transformed into `... AND TEXTVALUE LIKE '%"item1"%'`.
We could afford to not-JSON encode it, as long as we have a start and end delimiter, and this delimiter is escaped. But JSON is fun.
It won't work with LIKE, because `@prop ~ "item % quotes"` will return items like `["item sans", "with quotes"]`. But at least the exact equality will be nice.
Dates – Not implemented
So we can use < and >?
Mentions of users
Has to work with lists too.
So `@author = user("John Bercow")` resolves to `... AND TEXTVALUE LIKE '%|uuid-1111-abcd-2222"'`, which works for both single and list values.