This task lists all bugs found when reviewing Lingua Libre v3
Deployment:
- [x] Toolforge > deployment thanks to Pushkar, Aditya and Yug.
### UI, i18n, others
Low hanging fruits to fix -> Aditya :
- [x] #1 [medium] Step 0 : Login, intermediate message page [[ https://gitlab.wikimedia.org/search?search=Do%20not%20refresh%20or&nav_source=navbar&project_id=1678&group_id=2992&search_code=true&repository_ref=main | front-end/src/views/OauthSuccesReditect.vue ]] : replace text by [spinner page template](https://jsfiddle.net/hugolpz/dr2k8nf6/) (see also [legacy spinner](https://github.com/search?q=org%3Alingua-libre%20spin&type=code))
- [x] #2 [high] Step 1 > Licenses selector appeared only ~20px width -> add `min-width:10em` ?
- [x] #3 [medium] Step 1 > Place field needs an hint. Wikimedia Codex textInput has [:start-icon](https://doc.wikimedia.org/codex/latest/components/demos/text-input.html#form-field), try [cdxIconMapPin](https://doc.wikimedia.org/codex/latest/icons/all-icons.html#cdxIconMapPin)
- [x] #4 [low] Step 1 >Languages rows need limit to empty creation.
- [ ] #5 & #14 : use Qid of the **working language** being recorded to provide ISOs. Helpers: [[ https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q150&props=claims&format=json | API request > Q150 > P218, P219, P220]]) ; [[ https://gitlab.wikimedia.org/repos/wikimedia-france/lingua-libre/lingua-libre/-/blob/main/front-end/src/stores/labels.js | labels.js]]
- [ ] #5 [high] Step 4 > List generator [LocalListDialog.vue](https://gitlab.wikimedia.org/repos/wikimedia-france/lingua-libre/lingua-libre/-/blob/main/front-end/src/components/Generators/LocalListDialog.vue) input field should be prefilled with `List:{iso3}/.
- [ ] #14a Step 4: Replace hard coded `en` ([here](https://gitlab.wikimedia.org/repos/wikimedia-france/lingua-libre/lingua-libre/-/blob/main/front-end/src/components/Generators/NearbyDialog.vue?ref_type=heads#L139-145)), move to `item.labels.{iso2}.value`.
- [x] #14b Step 4: Nearby generator crash when `item.labels.en.value` is empty strings, need to filter out empty values. ([827a33](https://gitlab.wikimedia.org/repos/wikimedia-france/lingua-libre/lingua-libre/-/commit/827a33bc10ffc8cdeb815b983370f2a5a0259ffb))
- [x] #6 [high] Step 4 > Lexeme generator : shows Qid, should show label in the **selected UI's language**. Two halves solved in [[ https://gitlab.wikimedia.org/repos/wikimedia-france/lingua-libre/lingua-libre/-/commit/e6f3c5b7f06859826b849319e522e52a235b341d | e6f3c5b7 ]]:
- [x] 1) Use `fetchLabelForWikidataItem()`
- [x] 2) phase our hard coded language ([[ https://gitlab.wikimedia.org/repos/wikimedia-france/lingua-libre/lingua-libre/-/blob/e6f3c5b7f06859826b849319e522e52a235b341d/front-end/src/stores/labels.js#L13 | here ]]), use variable to pass **selected UI language**'s `iso2` as argument.
- [x] #17 [medium] Step 4 > <skip to the next word> button shows blank screen on last word
- [x] #7 [medium] Step 5 > CSS on ticked box is misaligned.
- [x] #8 [high] Commons > Uploaded file titles are `{title}`, should be `{{title}}`, fix [here](https://gitlab.wikimedia.org/repos/wikimedia-france/lingua-libre/lingua-libre/-/blob/main/upload_batches/management/commands/upload2commons.py#L360-375).
- [x] #16 [i18n first demo](https://gitlab.wikimedia.org/repos/wikimedia-france/lingua-libre/lingua-libre/-/commit/98dc005c8f1b0f5bf0437d9dc6dea77c5581d582), spread i18n with the assistance of AI agent.
- Realign i18n translation keys ([d6d925](https://gitlab.wikimedia.org/repos/wikimedia-france/lingua-libre/lingua-libre/-/commit/d6d925353011bb58fa8d5a300f9fb308e7c96881))
Q: (At Step 2,) when a language is selected as working language to document. We have its Qid ([[ https://gitlab.wikimedia.org/repos/wikimedia-france/lingua-libre/lingua-libre/-/blob/main/front-end/src/components/Generators/WikidataLexemeDialog.vue#L41 | ex ]]]]), what other properties/values do we have access to ? Do we have iso2 and iso3 ?
{F62821910}
{F62766838}
{F62766801}
{F62766802}
### Postponed
- [ ] #9 [low] Step 1 > Place search input field should not show non-places items, possibility to refine ([current query](https://www.wikidata.org/w/api.php?action=wbsearchentities&format=json&origin=*&search=Orx&language=en&uselang=en&limit=7)) ? (not critical, could be hard! = pass)
{F62766800}
{F62766799}
### Deeper issues -> Pushkar
- [ ] #10 Step 6, after click on "Publish!" :
- [x] #10a Batch upload pending, not uploading, see [#01](https://lingua-libre.toolforge.org/my-upload-batches/1),[#07](https://lingua-libre.toolforge.org/my-upload-batches/07),[#08](https://lingua-libre.toolforge.org/my-upload-batches/08),[#09](https://lingua-libre.toolforge.org/my-upload-batches/09),[#11](https://lingua-libre.toolforge.org/my-upload-batches/11), fixed by [[ https://gitlab.wikimedia.org/repos/wikimedia-france/lingua-libre/lingua-libre/-/merge_requests/56/diffs | PR56 ]]
- [x] #10b SDC not sent (see [[ https://commons.wikimedia.org/wiki/File:LL-Q150%E2%80%94Yug%E2%80%94in%C3%A9dit.wav | ex ]])
- [ ] #10c Batch upload on ALL recordings, should be only **selected** recordings. See screens below and logs in [#15](https://lingua-libre.toolforge.org/my-upload-batches/15)
- [ ] #10d Uploader's counter is incorrect, counts the number of clicks-select actions of check-boxes, should be number of currently selected.
- [ ] #11 Videos miniatures appear as audio [here](https://commons.wikimedia.org/w/index.php?title=Special:ListFiles/Pushkar7077). See [T312554#8782255](https://phabricator.wikimedia.org/T312554#8782255) and [ee86f4ea](https://github.com/lingua-libre/RecordWizard/commit/ee86f4ea03d8978891fc71c2d55e0de28ed322da). It uses FFMPEG server side.
- [ ] #12 [Yug] T397834 : Genders
- [ ] #13 [Yug] Step 4 (List) > Button "Exclude words you have already recorded" and "Remove words already recorded" needs new API request and code. Inspiration : [n⁰1](https://jsfiddle.net/hugolpz/3bd4L02e/5/)
Step 6's counter is off, counting wrong thing :
{F63175934}
Step 5 Recording order, Step 6 get inverted :
{F63175933}
{F63175451}
{F63034167}
{F63034128}
### Other
- [x] #15 Clean up toolforge : `~/www/js/` <repository> seems useless and could be remove. Indeed :
- `~/www/python/src/` is the MariaDB + Django instance
- `~/www/python/src/front-end/dist/` is the front-end, deployed by [gitlab-ci.yml](https://gitlab.wikimedia.org/repos/wikimedia-france/lingua-libre/lingua-libre/-/blob/main/.gitlab-ci.yml?ref_type=heads#L109-121)
- test : move `/js/`'s content.