Commit graph

3161 commits

Author SHA1 Message Date
Stephane Bisson 623d07011c Stop counting notifications objects on the client
The flyout loads no more than 25 notifications
from a given source. Using those in-memory notification
objects to count how many are currently unread (and
update the badge) produces a result of at most 25.

This patch extracts the responsibility or counting the
unread from the Model/Item/Groupitem structure into
a new UnreadNotificationCounter class. It receives
estimated updates from other components and synchronizes
with the server after markRead/markUnread operations
have completed.

Bug: T129726
Change-Id: I9af4defc00dd491ed2b355eb4e85073476e08ce7
2016-03-25 15:31:00 -04:00
jenkins-bot 9aa272b721 Merge "jscs: Add "checkTypes": "strictNativeCase" and make pass" 2016-03-25 19:27:26 +00:00
Roan Kattouw df8e97173f jscs: Enable checkRedundantReturns and make pass
Change-Id: I8013198fdb5852246a0f8360b931334740eaa147
2016-03-25 11:54:55 -07:00
Roan Kattouw ee7b10bf4b jscs: Enable checkParamNames and make pass
Change-Id: I50340b156b7c23483da1613eaabe8f40c559660a
2016-03-25 11:54:44 -07:00
Roan Kattouw 44a015970f jscs: Add "checkTypes": "strictNativeCase" and make pass
Change-Id: I4be0d72ba192f0b79a92f5efa2f5a16fb0f327b5
2016-03-25 11:47:00 -07:00
jenkins-bot d80cd6a673 Merge "Styling changes to the footer message" 2016-03-24 22:51:25 +00:00
Moriel Schottlender 2df435c1fb Styling changes to the footer message
Change-Id: Ie57c0f981671392b751a9774de7be6bb187de3b8
2016-03-24 15:42:10 -07:00
Translation updater bot fd1fa9b736 Localisation updates from https://translatewiki.net.
Change-Id: Idf4e9897596e730cea5745543e08681bdbda1541
2016-03-24 22:34:49 +01:00
Matthias Mullie 3641f7c79b Bundle memcached requests
Bug: T127687
Change-Id: I5ccb317d763b9757ba914830bc6dd5129dd5bd1c
2016-03-24 16:33:15 +01:00
jenkins-bot 61cc85e34a Merge "Let EchoUserNotificationGateway return a different notification count" 2016-03-24 01:12:33 +00:00
jenkins-bot 3a5d0ee405 Merge "build: Bump npm devDependencies to latest" 2016-03-24 01:12:30 +00:00
jenkins-bot 22958ab0d0 Merge "Apply text-decoration: none; on non-hover as well" 2016-03-24 01:04:00 +00:00
James D. Forrester cc3971006b build: Bump npm devDependencies to latest
grunt-contrib-jshint  0.12.0  →  1.0.0
 grunt-contrib-watch    0.6.1  →  1.0.0
 grunt-banana-checker   0.4.0  →  0.5.0
 grunt-jscs             2.7.0  →  2.8.0

Change-Id: I52d27dd66103a7fe954117524e489fd5916305af
2016-03-24 00:58:54 +00:00
jenkins-bot 41ed6bcae9 Merge "Remove duplicate mobile module" 2016-03-23 23:20:27 +00:00
Roan Kattouw 011bd2e558 Apply text-decoration: none; on non-hover as well
Hover effects aren't the only thing that cause link underlining,
the "Underline links" preference can do this too.

We do still need the :hover selectors too, for specificity reasons.

Bug: T130793
Change-Id: I01c0eaee449470380f3bd752e509043c4580fea9
2016-03-23 16:12:29 -07:00
jenkins-bot ad27c38cae Merge "Rename MobileNotificationsWrapper to NotificationsWrapper" 2016-03-23 22:50:20 +00:00
Translation updater bot 30f8845cb8 Localisation updates from https://translatewiki.net.
Change-Id: If03a5bd356acc67de60920f91bbbaf24fa5e13d5
2016-03-23 22:20:48 +01:00
Moriel Schottlender 94fa679568 Remove duplicate mobile module
Followup to I7891eb3fb46b3 this should be merged only after
the changes in MobileFrontend in Ie592ca738ac2d82 are merged.

Change-Id: I0f28e0757170e8a5b12075d3e9a2343fea7e7155
2016-03-23 20:00:52 +00:00
Moriel Schottlender 06ae707d6e Rename MobileNotificationsWrapper to NotificationsWrapper
We need to use it in more than just the context of mobile, and
there is nothing actually mobile-specific in it. Renaming the
class so it isn't awkward to use elsewhere.

This makes the ext.echo.ui.mobile module unnecessary, but
we leave it in until next patchset so that MobileFrontend
doesn't crash while we wait for the adjustments in
Ie592ca738ac2d8 to be merged.

Change-Id: I7891eb3fb46b350f0b325bf0a2b56b2cd55ff1d7
2016-03-23 19:47:23 +00:00
Matthias Mullie a3d2196851 Notification titles should differentiate subpages of the talk page
Bug: T129686
Change-Id: If3a8eec489cbbea8c2ed7c03b75986ab7fd6c262
2016-03-23 15:19:43 +01:00
Translation updater bot 028d7359f0 Localisation updates from https://translatewiki.net.
Change-Id: I333c14b3b6ed7f0470b20682f55a0bfbab2c5490
2016-03-22 22:29:48 +01:00
jenkins-bot cf99b3214e Merge "Add footer notice widget for invitations for feedback" 2016-03-22 19:32:57 +00:00
jenkins-bot 3a246a2ea2 Merge "Sort wikis by timestamp of most recent notification" 2016-03-22 17:17:50 +00:00
Matthias Mullie 6175a9c1b5 Let EchoUserNotificationGateway return a different notification count
There is currently a hard cap of badge display count.
We'll want to be able to request a different count for other purposes:
cleaning up old notifications, for example. We want to keep around a
certain amount of motifications (which is higher than the display count)
so we must be able to query a different count.

Change-Id: Id460fd7f46e397d22da49283b30fd12a6bbb0c9f
2016-03-22 14:22:15 +01:00
Translation updater bot 8ce621881f Localisation updates from https://translatewiki.net.
Change-Id: I5d183678aa57766e03407db6782d523f390d1824
2016-03-21 23:31:25 +01:00
Translation updater bot 77b576d74c Localisation updates from https://translatewiki.net.
Change-Id: If964717ad3ffeb667c7c0a30d84a53e45b8a024b
2016-03-20 22:38:55 +01:00
Translation updater bot 195adce95c Localisation updates from https://translatewiki.net.
Change-Id: I6b4f4a6213e442d935dc524a5bc882175fa3ba85
2016-03-19 22:51:26 +01:00
Moriel Schottlender e50ef3841a Add footer notice widget for invitations for feedback
Add a mw.echo.ui.FooterNoticeWidget that includes a link to
a feedback survey, and three config variables:

* $wgEchoShowFooterNotice: Enable this feature per wiki
  (Defaults to false)
* $wgEchoFooterNoticeURL: The URL for the survey
  (Defaults to '')
* User preference 'echo-dismiss-feedback-alert': determines
  whether the user permanently dismissed the feedback alert.
  (Defaults to false)

Bug: T128937
Change-Id: I918a70beaba7b173e764519fe4fe0f780b61082d
2016-03-18 17:02:31 -07:00
Translation updater bot e72fd168d7 Localisation updates from https://translatewiki.net.
Change-Id: I5337bcee9c6bda0182565592b12c38c6e18437ee
2016-03-18 22:41:58 +01:00
Roan Kattouw b484c4c4d3 Change bundle collapse label from "Collapse all" to "Collapse"
Bug: T130358
Change-Id: Ief7d057a2221d85d8b3702c57914092cf0a10c12
2016-03-18 16:10:50 +00:00
Siebrand Mazeland 8f9bd4be91 Use strong and em instead of wiki markup bold and italics
Change-Id: I9ef1846984c5d5192f73715ed9341740b5a6e8c0
2016-03-18 04:54:24 +00:00
Catrope 7be5ce857f Revert "Localisation updates from https://translatewiki.net."
Overwrote qqq.json which reverted a bunch of message
documentation changes and broke banana.

This reverts commit 688cedb0b7.

Change-Id: If5934b11706ca7d754b36e42072f2841726db1f7
2016-03-18 04:41:58 +00:00
Translation updater bot 688cedb0b7 Localisation updates from https://translatewiki.net.
Change-Id: I5192ef1428949aa360adc81c98879ff254be5fa0
2016-03-17 23:17:00 +01:00
jenkins-bot 8b15325346 Merge "Make plural support for large values (100 or more) explicit in l10n" 2016-03-17 21:53:40 +00:00
Roan Kattouw bfbfa6be62 Sort wikis by timestamp of most recent notification
Both in the order of the cross-wiki bundles themselves, and
in the message in the notification body.

ForeignNotifications tracks timestamps per wiki per section,
and exposes these through getWikiTimestamp(). ApiEchoNotifications
adds these timestamps to the sources manifest, and also sorts
the list of wikis by timestamp (it'd be nicer to do this in
ForeignPresentationModel instead, but then we'd have to create a new
ForeignNotifications instance which causes a duplicated DB query).

NotificationsModel receives the timestamp for its wiki as its
fallback timestamp, and makes getTimestamp() return this value
during the pre-population phase. This causes its parent to
automatically sort it correctly.

Because the timestamp of a wiki depends on the section (alerts vs messages),
we can't put it in the global sources manifest at the top level
of the API response. Instead, get rid of this global sources
manifest and put all the sources data in the foreign notifications
directly. This allows us to specify different timestamps, and also
allows us to get rid of code in EchoApi that was already remapping
the API response to this format.

Bug: T130298
Change-Id: Ie083fbb1ccaf74fbe804633d87ef03c9e71b120f
2016-03-17 14:21:16 -07:00
jenkins-bot 299006ab69 Merge "Add i18n/en.json authors" 2016-03-17 20:42:25 +00:00
jenkins-bot 34742aa3a6 Merge "MentionPresentationModel: use Title::equals()" 2016-03-17 20:36:10 +00:00
Amire80 1de453d0c6 Add i18n/en.json authors
The names wereound by running `git shortlog -s -n`
on i18n/en.json and on the old Echo.i18n.php.

Change-Id: Ie3837e0a6df6d368ee1e0952fd29bdd2fa209486
2016-03-17 13:30:46 -07:00
jenkins-bot c7cdd8bf20 Merge "Always show a cross-wiki notifications preference, even if the beta feature is disabled" 2016-03-17 10:05:03 +00:00
jenkins-bot a0031a4fc9 Merge "Unconvolute DiscussionParser::getTextSnippet()" 2016-03-17 09:54:21 +00:00
Matthew Flaschen cac85b635f Make plural support for large values (100 or more) explicit in l10n
This involves:

* Making this value no longer admin-configurable.
* Changing getNotificationCountForOutput to return only a single value
  Since there is no + in the formatted value anymore, we can actually
  use the same value for both.

  This is a B/C break, but hopefully worth it to simplify the method
  call.

  For now, the excess parameter is just marked unused.  It could be
  removed at some point if the translations are updated.

This must be merged at the same time as:
* Flow - Ibfa56b1af9e8c56b4c5f900e0d487bc09688b2a2
* MobileFrontend - Ibf784b279d56773a227ff261b75f2b26125bbb63 (well, MF
  can be merged first)
* translatewiki - I2a4b6938aed49e4101deb6b9351c43656a863490

Also, change 1 to One/one, per Siebrand on the task.  This can easily
be dropped/undone if we don't want it.

Also, remove reference to no-longer-existent notification-page-linked-bundle

Bug: T127288
Change-Id: Iabeaae747f99980c0610d552f6b38f89d940b890
2016-03-16 18:43:16 -04:00
Roan Kattouw 02252d0531 Work around regression in OO.ui.FloatableElement
FloatableElement incorrectly believes it doesn't need to
position itself when its closest scrollable is the same as
the closest scrollable of the container. This causes
the dotdotdot menu to be placed at the top left of the screen
if the notifications popup is not scrollable. If it is scrollable,
everything works fine. This regression was introduced by I5b5d7936c4d.

Work around this by setting overflow-x: auto; on the popup body.
This is a no-op, but tricks OOUI into thinking that the popup
body is scrollable even when it visually isn't. We can't use
overflow-y for this, because we still need to set overflow-y: auto;
on the popup body to work around a Chrome bug where right-floated
elements don't move over when the scrollbar appears.

Bug: T130153
Change-Id: I8bd8a26a4931444a760d2159779240272c51f966
2016-03-16 15:40:27 -07:00
jenkins-bot 059b368e2d Merge "Adjust line-height of bundle group titles" 2016-03-16 17:58:10 +00:00
jenkins-bot a624a95205 Merge "Adjust bottom-alignment of action buttons in notifications" 2016-03-16 17:58:07 +00:00
jenkins-bot 39820d8b62 Merge "Add MobileNotificationsWrapper for Mobile display" 2016-03-16 17:57:26 +00:00
jenkins-bot 66affc067f Merge "Clicking a marked-as-unread notification should mark it as read" 2016-03-16 17:48:42 +00:00
Moriel Schottlender 56c82f3f9d Add MobileNotificationsWrapper for Mobile display
This is to wrap the mobile notifications in MobileFrontend with
a pendingElement and organize the API calls specifically for the
mixed popup in mobile.

Also added a specific 'ext.echo.ui.mobile' module so we don't
load unnecessary files for mobile.

Bug: T124188
Change-Id: I4a8be19a79b9e38c21907bb9d4123540a648c535
2016-03-16 10:29:42 -07:00
Moriel Schottlender cd57ab5e54 Clicking a marked-as-unread notification should mark it as read
Bug: T129898
Change-Id: Ia8c699ccc4bb0feba0949082608357d35971a515
2016-03-15 17:53:36 -07:00
Moriel Schottlender 47eb8b0065 Adjust line-height of bundle group titles
Bug: T128069
Change-Id: Ic968e00c789e8dbb20d04bb1d277afec57a2bebc
2016-03-15 16:35:37 -07:00
Moriel Schottlender fdff3b1116 Adjust bottom-alignment of action buttons in notifications
Bug: T125969
Change-Id: If13fa27ede927901cf2fd9ffe99784b5086bd9e3
2016-03-15 16:27:59 -07:00