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.

Environment

None

Observations

None
Resolved

Assignee

Unassigned

Reporter

Adrien Ragot (Play SQL / Requirement Yogi)

Labels

None

Participants

None

Fix versions

Priority

Matter of months