Hi,
This is a brainstorming aimed at fixing:
*
http://jira.xwiki.org/browse/XWIKI-10384
*
http://jira.xwiki.org/browse/XWIKI-12033
In addition I believe we need to support the following use cases:
* UC1: (Simple) users should be able to see documents in the currently selected UI
language and documents with no translations
* UC2: (Advanced) users should be able to see all documents in the wiki (i.e. all
translations + all docs with no translations)
* UC3: It could be interesting to have an option to limit the translations to the list of
configured languages of the wiki
ATM the issues is that:
* the “currentlanguage” query filter is not implemented properly and returns duplicates
(the default language + the translation)
* sorting can fail
* there’s no way for an advanced users to see all translations in the AllDocs LT
Also note that Marius (who’s discovered the problem) as commented at
http://jira.xwiki.org/browse/XWIKI-9229
There are several solutions I can imagine
Solution 1
========
The idea is to implement a query filter that returns “a given language + the default
language if there’s no translation”. It can be done, see
http://jira.xwiki.org/browse/XWIKI-9229?focusedCommentId=90654&page=com…
Pros:
- Generic solution that would work wherever we use the query manager in the wiki
Cons:
- it’s “slow”.
- It’s also not solving UC2 and UC3.
Solution 2
========
When the wiki is in multilingual mode, add a “Language” column in the LT and display all
docs having translations in one of the configured languages of the wiki + all docs with no
translations.
The user will see duplicates but the “Language” column will indicate clearly that they are
different translations.
Pros:
- This would fix UC3, partially UC2 and partially UC1.
Cons:
- Not a generic solution; only solves the issue for the AllDocs LT (and the other places
where we want to do the same).
Solution 3
========
(initially proposed by Marius)
Have a toggle with several states somewhere in the AllDocs UI (could be outside of the LT)
to be able to choose different results:
* Only docs in the current UI language
* Only docs that don’t have translations
* All docs
* All docs in one of the configured languages of the wiki
Note that from a wiki syntax POV, this could be a parameter in the {{document/}} live
table.
Pros:
- This would fix UC2, UC3 and partially UC1.
Cons:
- Not a generic solution; only solves the issue for the AllDocs LT (and the other places
where we want to do the same).
Solution 4
=========
Modify the DB schema and add a column in the xwikidocs table to indicate if a doc has
translations. This would mean updating it when a new translation is created and when a
translation is removed.
Pros:
- Fast query
- Generic solution that will work with any query using the query manager
Cons:
- Requires a DB update
Conclusion
=========
Solution 4 seems to be the only real generic solution.
WDYT? Any other idea?
Thanks
-Vincent