Page MenuHomePhabricator

[Epic] Build the new Vue.js search experience
Open, HighPublic

Description

This (currently placeholder) Epic captures, given more or less all the tools needed, building the new search experience.

Acceptance Criteria

  • Drop down results are suggested and updated on user input.
  • Results must include: page name, image (if available), Wikidata description (if available), and access to search results page.
  • If a user presses enter or taps the "search pages containing..." result, Special:Search is shown.
  • Vue.js lessons learned are documented.
  • If any shareable components (e.g., buttons) are made as part of this work, they're shareable (or a task is written to make them shareable).
  • Results must include an intelligent loading state (e.g., show placeholder cards when content is loading).
  • Search is featurized so that its deployment is distinct from Desktop Improvements.
  • Don't break UniversalLanguageSelector input tools (note: mw.config.get( 'wgULSImeSelectors' ))

Open questions

  • What is the minimal catalog of components needed to build the new search experience?
    • Layout changes: Header
    • Components: Search form, Input, Button, LanguageSwitcher, Menu/List, SearchResults, Dropdown, LanguageMenu
    • Mixin: Icons, Thumbnails...?
    • This will helps us tighten the scope of the project rather trying to build a complete component library out the gate.
  • What to do with the existing search widget on Special:Search?
  • Do we want a more button-like presentation for "search pages containing" or should it look like a result as it does in the mock?
  • Do we need to provide an API for DWIM or will this be covered by Core API? We don't want to break it. We can flip between the new and old APIs using skin version if necessary.
  • What JavaScript API should we use to throttle queries made after each key input? Is jquery.throttle-debounce the most practical option?
  • Does the random link in the sidebar need to be moved? What about no-JS?

References

Related Objects

StatusSubtypeAssignedTask
OpenNone
OpenNone
OpenbearND
Openeprodromou
ResolvedEvanProdromou
ResolvedPeter.ovchyn
ResolvedPeter.ovchyn
ResolvedPeter.ovchyn
Resolvedeprodromou
ResolvedPeter.ovchyn
Resolveddaniel
Resolveddaniel
Resolveddaniel
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenJdlrobson
DuplicateNone
Resolvedalexhollender
ResolvedMNeisler
Openovasileva
ResolvedJdlrobson
DuplicateNone
OpenSpikeNone
Openphuedx
OpenJdrewniak
Openalexhollender
OpenNone
OpenAnribolon
OpenNone
OpenAnribolon
ResolvedNiedzielski
OpenAnribolon
OpenNone
OpenNone
OpenNone
OpenNiedzielski

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald TranscriptApr 3 2020, 2:45 AM
Niedzielski updated the task description. (Show Details)Apr 3 2020, 3:48 AM
Niedzielski updated the task description. (Show Details)
Niedzielski updated the task description. (Show Details)Apr 3 2020, 6:42 PM
Niedzielski updated the task description. (Show Details)Apr 3 2020, 6:57 PM
Niedzielski updated the task description. (Show Details)Apr 3 2020, 8:28 PM
Niedzielski renamed this task from [Epic] Build the new search experience to [Epic] Build the new Vue.js search experience.Apr 5 2020, 4:23 PM
ovasileva triaged this task as High priority.Apr 6 2020, 11:25 AM
Volker_E updated the task description. (Show Details)Apr 14 2020, 11:07 PM
Volker_E updated the task description. (Show Details)Apr 16 2020, 6:27 AM

Change 593881 had a related patch set uploaded (by Niedzielski; owner: Stephen Niedzielski):
[mediawiki/skins/Vector@master] [dev][JavaScript] allow clients to be version

https://gerrit.wikimedia.org/r/593881

Niedzielski updated the task description. (Show Details)May 11 2020, 3:42 AM
Niedzielski updated the task description. (Show Details)May 11 2020, 3:46 AM

Change 593881 abandoned by Niedzielski:
[dev][JavaScript] allow clients to be versioned

Reason:
Thanks for the comments all. I'm going to try a different approach for now.

https://gerrit.wikimedia.org/r/593881

Niedzielski updated the task description. (Show Details)May 23 2020, 5:35 PM
Niedzielski updated the task description. (Show Details)May 29 2020, 2:28 AM
Niedzielski updated the task description. (Show Details)May 29 2020, 5:48 AM
  • Are we starting with the base components (Button, Input, ...) from ContentTranslation? Is the approach to styling acceptable? If not, why and what can we reuse? /cc @santhosh @Volker_E @Jdrewniak @holger.knust

Component baseline decision moved to T253933. See also related styling baseline in T253953.

Niedzielski updated the task description. (Show Details)Jul 10 2020, 3:30 AM
Niedzielski updated the task description. (Show Details)Jul 10 2020, 3:36 AM