Commit graph

16 commits

Author SHA1 Message Date
Baha 5f98265e7e Increase threshold for loading related articles in the footer
The threshold is now 2 times the window height per Nirzar.

Bug: T144822
Change-Id: Ia72b0532e481211645364a1ed9715f6f07f28fca
2016-09-15 15:11:13 -04:00
Baha 6941c6df9a Change scroll threshold to viewport height * 1.5
The threshold used to test whether related articles need to be
loaded has been changed to the viewport height * 1.5 from the more
complicated formula used earlier.

The change should help with loading related articles more smoothly.
To eliminate the lag completely the related articles need to be
rendered in the back-end.

Bug: T144822
Change-Id: I9d189163b95533ca43fa3d8632f65b280470f12a
2016-09-13 10:25:53 -04:00
jhobs e68d5b6599 Use mw.viewport to check when to load related pages
Does not change distance threshold.

Bug: T135607
Change-Id: I82dfa78e93f4bb7a8a28d038470265e7fd30c423
2016-09-02 12:01:17 -07:00
Baha d2599c5211 Do not load related articles on diff comparision pages
Bug: T122076
Change-Id: I1dc00b3bd76053d353dc31137c4c15a10286184e
2015-12-29 07:57:47 +05:00
Baha a3d9b22a66 Fix loading related articles on small screens
Related articles are loaded when the user scrolls past
half the document height, which used to be calculated on
page load. This height, however, changes after all sections
are collapsed on small screens, thus never loading the
related articles for the page. Calculating the document height
just before showing related articles allows us to correctly
decide whether it's time to load the needed modules.

Bug: T121263
Change-Id: I1266894ab763cfb571b14f067086445fb6be1887
2015-12-14 15:34:17 +05:00
jdlrobson ed338bbed5 Disable RelatedArticles when editor enabled
We only want to show it in view mode.
When a reader hits edit, wgAction is view so we add a CSS rule to
hide the widget when that transition occurs.

This means related widget does not show up post edit (you'll need to
refresh but this seems like an acceptable workaround until we can
understand this issue some more)

Bug: T120443
Bug: T120735
Change-Id: If1356906d5f55167c9d1abbed88f433f36b7f390
2015-12-09 16:47:52 -08:00
jenkins-bot 4af4c384dc Merge "RelatedArticles load after half window scroll" into dev 2015-12-08 23:27:24 +00:00
Sumit Asthana 9623c1cc42 RelatedArticles load after half window scroll
Only triggers RelatedArticles module load and query after user has scrolled
through half the document height.

Bug: T116838
Change-Id: If290988fb7cc187cad37dd4a8a2c4f38abed9bb9
2015-12-08 20:51:16 +05:30
Paladox 8a73239abf Update packages
Update grunt-jscs to 2.4.0

Update grunt-jsonlint to 1.0.6

Change-Id: I34b1f23469a35e64345ee42a183dd74679e50b81
2015-12-07 21:00:56 +00:00
Baha 8cf9b60ab5 Make RelatedArticles soft-depend on Cards
RelatedArticles tries to load the 'ext.cards' module and if
it succeeds it continues with showing the related articles
on the page.

Dependency: I6661527175eb889cec4193b18fa18207f332b4fc
Bug: T117108
Change-Id: I33936a3e9cd5d1f0296e48fd1c2bba77fff4e466
2015-11-18 22:22:10 +05:00
jhobs d08962d12d [Hygiene] Rename internal uses of "article" to "page"
Leave all public-facing uses of "article" (including classes) because
the extension is remaining named RelatedArticles. Replace all other
instances with "page" for consistency with other extensions.

Bug: T117908
Change-Id: Ib0f258f26b0d11cfe8a598dbd90ff37afbbe36ac
2015-11-13 19:03:39 -05:00
Sam Smith f87807e457 Limit the number of pages to 3
Bug: T116810
Change-Id: I175a1fd26d2041e3c652c80653a73b4211b992e6
2015-11-13 12:01:35 +00:00
Sam Smith 0fed50e266 Optionally disable Read More using extension data
By default, the Read More feature tries to use editor-curated articles
before using the CirrusSearch morelike: feature. Add a configuration
variable that disables the former behaviour but leave the default in
place.

Changes:

* Add the wgReadMoreOnlyUseCirrusSearch configuration variable, which
  defaults to false, and pass it in to
  mw.relatedArticles.RelatedPagesGateway at construction time
* Add the onlyUseCirrusSearch parameter to
  mw.relatedArticles.RelatedPagesGateway, which controls whether to
  ignore the editorCuratedArticles parameter

Bug: T117443
Change-Id: I0dfa67f4a68e8dc17302fef7ebf8d23c0c1d892c
2015-11-12 12:43:29 +00:00
jdlrobson e86fc3b159 Fall back to CirrusSearch's morelike: feature
When no related articles have been specified by an editor we instead
hit request pages similar to the current page using the CirrusSearch
extension's "morelike:" feature [0].

Changes:
* Config variable introduced RelatedArticlesUseCirrusSearch which allows
you to turn on use of the CirrusSearch API.
* Introduce a RelatedPagesGateway for dealing with making the API call
  and returning consistent results
* Move the "simple" API call for hydrating related pages fetched from
  the wgRelatedArticles configuration variable into RelatedPagesGateway
* Reduce the bootstrap module to just a bootstrap module!

Bug: T116707
Change-Id: Ia0ced1d7ae57c0939d1f5af275aa9d393f1420b1
2015-11-06 10:23:39 -08:00
jdlrobson e4685f02be mw.config.get doesn't work that way.
You can't give it a fallback value. This is causing JS errors in
production.

Bug: T116758
Change-Id: Ia459a42250ca6e030025781005e40204f1ede58e
2015-10-29 13:57:50 -07:00
Sam Smith 7c23636954 Add Related Articles section to Minerva
If the page has related articles, is in mainspace, isn't the main page,
and the output is being rendered with the MinervaBeta skin then a
"Related Articles" section is added to the page just before the footer.

Separate loading the information necessary to render the pages, choosing
the renderer, and rendering the data so that multiple skins - currently
Minerva and Vector per the mocks - not just multiple resolutions can all
be handled the same way:

* The bootstrap script (ext.relatedArticles.readMore.bootstrap/index.js)
  for fetches the page image and Wikidata description; loading the
  renderer module; and, finally, notifying the renderer module that it
  should render the data, which it does by emitting
  "ext.relatedArticles.readMore.init" event using mw#track
* The Minerva renderer subscribes to the event and, when it's fired,
  renders the data by passing it to the WatchstarPageList view

Bug: T113635
Change-Id: I651342bdf9796938fa7051828dd13bc6fe774783
2015-10-26 17:13:46 -07:00