Commit graph

716 commits

Author SHA1 Message Date
Stephane Bisson cead7142c7 Fix mark xwiki as read
Marking local or xwiki notifications as read
are different operations that require different
information. Call different functions on the
controller.

Bug: T139114
Change-Id: I824ca668c31ab41d101c632442c91d3a8a1e5c5a
2016-07-04 10:00:59 -04:00
Volker E 135f96a13a Use accessible colors on read status marker
Using accessible colors on read status marker notifications.

Bug: T139167
Change-Id: I2dc35d02abe2fccaf1f9d13d7672b2e432e7d1f0
2016-07-01 21:56:08 +02:00
Moriel Schottlender 984441f8d9 Pad the content so it doesn't stretch beyond the markread button
Bug: T136572
Change-Id: I1db8289722526184b64dbb3e92827988a0e04afc
2016-06-30 15:45:34 -07:00
Moriel Schottlender ce354678b4 Limit 2 secondary actions outside the menu
If there are more than 2 prioritized actions, put those actions
in the dotdotdot menu.

Also, correct the name of a variable from "isInsideMenu" to what
it actually represents, which is, in fact, "isOutsideMenu"

Bug: T126617
Bug: T125949
Change-Id: I95fcae8f822e51d9353599c09f1550797e4ad673
2016-06-30 11:59:37 -07:00
jenkins-bot 95681a694c Merge "Clean up another bit of leftover OptionWidget styling" 2016-06-29 17:22:17 +00:00
jenkins-bot 8a8666637e Merge "Use pointer cursor when hovering CrossWikiNotificationItemWidget" 2016-06-29 12:46:41 +00:00
Roan Kattouw 2488cf0491 Clean up another bit of leftover OptionWidget styling
This rule ensures that long human-readable wiki names
don't cause horizontal scroll bars in the notifications
popup.

Change-Id: Id0c954d2059aeed875fa2eea7a45537aac4e2e58
2016-06-29 12:02:15 +02:00
Roan Kattouw 4ca406e4e8 NotificationItemWidget: Apply hover colors
Also remove OptionWidget-related styles that no longer apply.

Bug: T138917
Change-Id: I9e748549bcfa5aac5a68f0c51cbbe4c0a4537676
2016-06-29 11:55:30 +02:00
Roan Kattouw 254c3309e0 Use pointer cursor when hovering CrossWikiNotificationItemWidget
The bounding box of where this cursor effect is applied isn't
quite the same as with bundled notifications (which in turn isn't
the same as with normal notifications), but to fix that we need
to normalize the DOM structures of the three types. They
currently differ in the presence/absence of the <a> wrapper
and in how padding and margins are used.

Bug: T138913
Change-Id: I1ed32e0a9deca62b68d08acd0699431ddda8ca44
2016-06-29 11:22:10 +02:00
Stephane Bisson f8a8d392d6 Expandable bundle
Support bundles being expandable
to show their sub-notifications.

Bug: T114356
Change-Id: I1507cae360f45cc87f2d60e966b4d047abfa202d
2016-06-28 15:37:54 -04:00
jenkins-bot 731cde01b8 Merge "Dynamic bundles" 2016-06-28 19:34:42 +00:00
Moriel Schottlender e15c258d7b Remove initiallyUnseen before marking item read/unread
If we are marking the item as read/unread, we don't want the change
in class to trigger the unseen animation. When that happens, first
remove the 'initiallyUnseen' class (that triggers the animation)
and only then mark the item as read or unread.

Bug: T138522
Change-Id: I05e02518feb1fc166297594053a084718dcb7194
2016-06-28 11:25:39 -07:00
jenkins-bot 1cca7453b3 Merge "Add a PromisePrioritizer and use it for notifications fetching" 2016-06-27 17:42:41 +00:00
Roan Kattouw 9429e78e61 ToggleReadCircleButtonWidget: Tweak colors per Pau
Also add border-box to prevent the circle from appearing
to grow when a border appears.

Bug: T126214
Change-Id: Id5e89ff87759c4ae44851d5ad3061230a0e59ff0
2016-06-27 17:16:54 +02:00
Stephane Bisson 24caf50ff6 Dynamic bundles
To allow individual notifications to be
marked as read/unread or moderated,
bundles are created by grouping associated
notifications when they are fetched for display
instead of when they are created.

From a product perspective, this change doesn't
introduce moderation or expandable bundles but
it counts each individual notifications.
For instance, the bundled notification
"3 new topics on PageA" now counts as 3
notifications.

Bug: T93673
Bug: T120153
Change-Id: Iacd098573efd92bb1e3fcd7da4cd40cea9522f15
2016-06-27 09:49:13 -04:00
jenkins-bot 79aad8f479 Merge "Add support for querying notifications not associated with any page" 2016-06-27 13:35:02 +00:00
jenkins-bot 711e2f84c2 Merge "CrossWikiUnreadFilterWidget: Remove unused this.localSource" 2016-06-27 13:28:06 +00:00
Roan Kattouw 8bb8594940 Follow-up 6c4bf99da8: Fix incorrect comment
Change-Id: I14df92823d8e3c19b94cc225f00d45315e8300c5
2016-06-24 01:14:47 +02:00
Roan Kattouw 7d97881344 Add support for querying notifications not associated with any page
Uses the magic value '[]' to mean 'no title'. This is a bit ugly,
but I think introducing an additional &notwithouttitle=1 parameter
is uglier and results in more code.

Change-Id: I83278182aeaf3905eb0f3e24c4c6c247720b1e76
2016-06-24 00:37:21 +02:00
Moriel Schottlender a1ec29d06a Add a PromisePrioritizer and use it for notifications fetching
This will allow us to let the user click filters quickly, effectively
changing the promises sent to the API, but let the API only resolve
with the latest requested promise.

Bug: T136895
Change-Id: I698a2b8eced6d8ee997efef353697d27d92cfb2f
2016-06-23 14:12:00 -07:00
Stephane Bisson 462ef564e8 Fix position of page filters in firefox
Bug: T138454
Change-Id: Ib19f9ab1cedc4613c9ac3a07d40111dd39a55774
2016-06-23 16:18:50 -04:00
jenkins-bot c90176a2cb Merge "ApiUnreadNotificationPages: Output pages as an array rather than an object" 2016-06-23 19:35:37 +00:00
Roan Kattouw eae458801f CrossWikiUnreadFilterWidget: Remove unused this.localSource
This also means PageFilterWidget can stop worrying about being
given a nonexistent source.

Change-Id: Id999a117c66d0600a4386713c98501cc5ed4236a
2016-06-23 17:44:08 +02:00
Roan Kattouw 6c4bf99da8 ApiUnreadNotificationPages: Output pages as an array rather than an object
Make the frontend code based on page titles rather than page IDs.

Change-Id: I79c6a0e3a7178acdb14039a0c5208e90a7341044
2016-06-23 17:00:51 +02:00
jenkins-bot 190994bab2 Merge "Use the actual total notification count in the special page sidebar" 2016-06-23 11:05:14 +00:00
Stephane Bisson c93800e17c Support for PlaceholderWidget with no link
Bug: T137490
Change-Id: Ia861b5aa3f100124418956a0e09603a9ba29215a
2016-06-22 12:54:13 -04:00
Roan Kattouw e4b79c1bc2 Use the actual total notification count in the special page sidebar
Adding up numbers in the front-end is not enough, because it could
be that not all pages are listed (it's a top 10). So get the
total count from the backend.

Change-Id: Ibbc76691ef88333b92132a514fdba3cde3797e10
2016-06-22 17:11:34 +01:00
jenkins-bot 45d8fdf24f Merge "Add a cross-wiki sidebar to the Special:Notifications page" 2016-06-21 21:57:48 +00:00
Moriel Schottlender 820d2b0fa7 Add a cross-wiki sidebar to the Special:Notifications page
Add a sidebar with cross-wiki sources and pages of unread notifications.
The filter allows the user to fetch notifications from a foreign source
and specific pages if those exist.

Bug: T129366
Change-Id: I57d827a47f80274d75364c2099a9624049a26834
2016-06-21 14:49:42 -07:00
Ed Sanders 1f002745a7 Wrap table-cell buttons in table-row
Removes unwanted 2px bottom margin from footer buttons.

Change-Id: I67c1d5f21d7c62a436010932e3d7b6257e4b73ff
2016-06-21 20:24:20 +01:00
jenkins-bot b846c11910 Merge "Change mark as read buttons to circles" 2016-06-21 19:06:00 +00:00
Moriel Schottlender f84808b83a Change mark as read buttons to circles
Allow for mark read and mark unread through the side button, and
change its style according to spec in the ticket.

Bug: T126214
Change-Id: I78a93c0545bbe2d7c11a0c62557cd2e97e9d3866
2016-06-21 11:54:00 -07:00
Roan Kattouw 92d1d600ae SubGroupListWidget: use timestamp from model, not from listWidget
This ensures that the fallback timestamp is used if the list is
still empty. Not doing this causes the wikis in the cross-wiki bundle
to appear in the wrong order. Also, it makes more sense to use the
model as the source of truth regardless.

Bug: T138115
Change-Id: Icbfdc7e7c7f67179e50f0f692aef1a54568265e6
2016-06-21 13:41:45 +00:00
Stephane Bisson 5a5e1970c5 Improve client-side unread count estimation
- Remove duplicated counter adjustments.

- Differentiate between all IDs to mark as
  read vs. all IDs that represent visible
  notifications when adjusting the counter.

Change-Id: I1b3e52a929c6e920e3b782c9ef028539b3db0c99
2016-06-21 08:27:39 -04:00
Roan Kattouw 2872b5eae2 Remove automatic mark-as-read-when-seen
Bug: T132525
Change-Id: I095704252eaf2f8fe71950a4cfcd42a6fce431ff
2016-06-17 17:09:25 +01:00
jenkins-bot 1a9656691f Merge "Don't mark alerts as read when seen" 2016-06-14 15:34:11 +00:00
Stephane Bisson 26bc47c1b2 Don't mark alerts as read when seen
This is done the quick way by just turning
off a config option. The full cleanup
is in I095704252eaf2f8fe71950a4cfcd42a6fce431ff

Bug: T132525
Change-Id: I5becaa2f91b7eff6ebe4ce3943e86975c844c884
2016-06-14 08:50:47 -04:00
Roan Kattouw 65c6b8cbaf NotificationBadgeWidget: Fix header getting larger when "Mark all as read" present
The "Mark all as read" button had margins that made it just a little
bit taller than the header would otherwise be. This pushed the
bottom border of the header and the top border of the first notification
away from each other.

We only need top and right margins on this button, so drop the
bottom and left margins.

Bug: T137778
Change-Id: I8d47d84c79cbdad707b8cbaa8d43187c054755b3
2016-06-14 11:12:54 +01:00
jenkins-bot b98392824d Merge "Separate model's symbolic name and model's source" 2016-06-13 12:30:15 +00:00
Roan Kattouw 4028160906 Use localized weekdays on Special:Notifications
Bug: T137634
Change-Id: I97d7058657782d1bbc878c30e0712b1a8833dda1
2016-06-13 13:09:51 +01:00
Moriel Schottlender 3101bfc537 Separate model's symbolic name and model's source
This should have been done from the beginning; the model manager
pulls models by their symbolic names. So far, we've used the source
for that, but that assumes that two modules always have different
sources, and that is absolutely not necessarily the case.

For example, internal local bundles will each be a model, but have
the same ('local') source. They should still be differentiated in
the manager by their names, but the source should state clearly that
it is local.

For this, the models now have "getName" method and the name is
created separately from their source. Items also preserve a
reference to their parent's symbolic name so they can provide
that for items that require the controller to manipulate a specific
model.

Change-Id: I8c39d5d28383d11fb330addce21e07d5c424da6f
2016-06-09 16:20:57 -07:00
Moriel Schottlender df18946387 Listen to 'mark as read' secondary link in xwiki bundles
We weren't even listening to the choose event from that menu in
xwiki bundles.

Bug: T136878
Change-Id: Ib15bb6888dadd154b97e5820972cdcdf8bd89d2e
2016-06-03 12:37:18 -07:00
Stephane Bisson aa578a44a1 Mark bundled notifications as read
In the current bundling system, only the
bundle base is mark as read. It leaves all
the non-base bundled notifications without
a read_timestamp. They would all appear
as read in the new bundling system.

With this change, all notifications in
a bundled are update with a read_timestamp
when the bundle is read.

The implementation of this change is
somewhat temporary as the new bundling
system brings changes to the models
and controller.

Bug: T136368
Change-Id: I70b71d722d8d62cbdd1adc004293030ef900ac94
2016-06-02 13:48:33 -04:00
jenkins-bot 7c89fc0fa2 Merge "No-JS special page: One-click mark as read" 2016-06-01 18:21:56 +00:00
jenkins-bot 6824dbd020 Merge "Display a message if there are no notifications in Special:Notifications" 2016-05-31 23:22:43 +00:00
jenkins-bot 0d56040d06 Merge "Clean up the pagination in Special:Notifications" 2016-05-31 23:22:39 +00:00
Moriel Schottlender cf99479468 Display a message if there are no notifications in Special:Notifications
The zero results can either be because there are no notifications
at all for this user in the local wiki, or because there are no
results for the specific filter. Both messages are used for either
case.

Also, clean up the display of push/pop pending for the inbox widget
and hide the label in case the message count is 0 or 1 notifications
as it is unhelpful and irrelevant in these cases.

Bug: T136586
Bug: T136574
Bug: T129363
Change-Id: I1465f772bb9f5247df645d6612f951e5fd7d38cf
2016-05-31 23:13:48 +00:00
Moriel Schottlender 6e21a620ef Clean up the pagination in Special:Notifications
Add a pagination widget with events and separate the logic for
organization. Let the widget listen to events from the pagination
model so it always keeps itself updated.

Change-Id: Id1df112cbb0d90195217e88fbee97a59170b99c5
2016-05-31 16:12:09 -07:00
Moriel Schottlender acc672ca64 Darken the dates in the Special:Notifications groups
Bug: T132739
Change-Id: I8dd4d481fde239528620fb245e2733780f76c689
2016-05-31 14:26:05 -07:00
jenkins-bot 683ef3b737 Merge "Adjust styling for Special:Notification items" 2016-05-31 18:39:06 +00:00
Moriel Schottlender 070656731d Adjust styling for Special:Notification items
The items should resemble the popup items, but the styles clashed
with the popup's cross-wiki notification item, so the image size
was smaller and the border was incomplete.

Bug: T136572
Change-Id: I3c3f825d469ccee1e711da21f627eeb9491e9480
2016-05-31 11:30:35 -07:00
jenkins-bot 7647737b00 Merge "Styling changes to Special:Notifications headers and toolbar" 2016-05-31 00:48:15 +00:00
Moriel Schottlender fd45db9eb2 Styling changes to Special:Notifications headers and toolbar
Bug: T136580
Bug: T136568
Change-Id: I1a7f08cca8884ada42eca50ba802b4d1e0b788e0
2016-05-31 00:40:07 +00:00
Moriel Schottlender cc3e40b408 Make the notifications list the pending element
Change the pending element to be the notifications list rather than
the whole inbox widget in the Special:Notifications page.

Bug: T136581
Change-Id: I82b073c9cd628f30c13305510d6604e3ef636c2a
2016-05-30 17:24:12 -07:00
Roan Kattouw d6c340f591 Display error message on API failure or empty result
Show an API failure message if the request failed.
Also take this opportunity to show a message in case
there are no notifications at all.

Bug: T136467
Change-Id: If5761ec3d3df10a8774561bed06a4ade54458c4b
2016-05-30 15:01:33 -07:00
jenkins-bot a0aead0416 Merge "Fix JS error when API request fails" 2016-05-30 08:59:50 +00:00
Roan Kattouw ab1bcbefd4 Fix JS error when API request fails
We don't show an error message in this case, just an
empty popup, so that should be fixed regardless.

Bug: T136467
Change-Id: I06ddd5306bd8d7edeb8c75bdae7abd7215285e3d
2016-05-29 21:18:59 +00:00
Matthew Flaschen 188e8d7395 No-JS special page: One-click mark as read
Bug: T136361
Change-Id: I7896dbdf25d2c1624f97777f4c8d0af41b195ef0
Depends-On: Ic31f857c749d62a32cafae68dc3f1cbd86e1e382
2016-05-27 17:23:29 -07:00
Stephane Bisson 1bef12c3e7 Stop outputting $nextContinue in Special:Notifications
Bug: T129176
Change-Id: If0d05cb1df0b2e0f93c7367c0848fbcbb04fea8d
2016-05-27 16:46:20 -07:00
jenkins-bot 5d30e4cfac Merge "Filter notifications by read state in Special:Notifications" 2016-05-27 21:35:41 +00:00
jenkins-bot 95bea57983 Merge "Initial version of Special:Notifications Javascript page" 2016-05-27 21:34:44 +00:00
Moriel Schottlender e5e19dd0f1 Filter notifications by read state in Special:Notifications
Change-Id: I7b47e76ae48eaf4732d99616baa3b4b1ee4ddff5
2016-05-27 13:47:41 -07:00
Moriel Schottlender 9262614ded Initial version of Special:Notifications Javascript page
Bug: T129176
Change-Id: I2f55358c16f78e234ec19154b944a4edebfbe639
2016-05-27 13:42:25 -07:00
matejsuchanek 38adb78619 Use native MediaWiki linking to help pages
There was quite a small link under the main title in Special:Notifications
which pointed to a related help page. Now the OutputPage::addHelpLink()
method is used which moves this link to the upper right corner and allows
configuring this on-wiki (instead of LocalSettings.php or so).

Bug: T101057
Change-Id: Ib4aecee8006b8d71bb3cd86f1d4ebdfee9080870
2016-05-27 20:40:41 +02:00
jenkins-bot 23cc46be36 Merge "Avoid calc() in CSS" 2016-05-26 23:06:08 +00:00
jenkins-bot b894c3407a Merge "Add style to the NotificationsWrapper" 2016-05-26 22:58:40 +00:00
jenkins-bot e9482fbd34 Merge "Remove technical error from echo-api-failure" 2016-05-26 22:55:46 +00:00
Bartosz Dziewoński cc9e667c49 Avoid calc() in CSS
* Use `margin: A` with `padding: B` rather than `padding: calc(A + B)`.
* Remove a `display: inline-block` which necessitated `width: 100%`.

I think this results in the same rendering, but please test carefully,
as I didn't check it for all the possible notifications.

(There is one more calc() in mw.echo.badge.less that can't be avoided.)

Bug: T135936
Change-Id: Ic01f16c8469c3b9d45d2885108ec6260e967731a
2016-05-26 22:52:44 +00:00
jenkins-bot 3fc46a639d Merge "Adjust styling for "Mark group as read"" 2016-05-26 22:43:12 +00:00
Stephane Bisson 194b75cfed Remove technical error from echo-api-failure
Bug: T129764
Change-Id: Ia8779ff90b71c1c8b4df5b28fd61bfb891533b06
2016-05-26 13:43:14 -07:00
Stephane Bisson 52525249e6 Adjust styling for "Mark group as read"
Bug: T134204
Change-Id: Ia0486fa400be7e96ffc4e1ad47f952c17f40042c
2016-05-26 13:30:49 -07:00
jenkins-bot 35f1388e7f Merge "Generalize the SubGroupListWidget" 2016-05-26 20:26:31 +00:00
jenkins-bot 76a391220d Merge "Allow for overriding parameters in fetch notifications API request" 2016-05-26 20:26:28 +00:00
Moriel Schottlender c649c29e7d Generalize the SubGroupListWidget
Allow for the widget to have a mark-as-read button to its individual
groups, as well as change the event listening from 'remove' to 'discard'

The problem with 'remove' event is that it is triggered when an item
is either intentionally removed from the list *and* when an item is
changing its position in the list (move event includes 'remove' and
then 'add' event)

If we listen to 'remove' events we will get both cases, which is
unhelpful. Instead, a new event - 'discard' - was introduced so
we are certain it is used with the clear intention of removing the
item completely.

Change-Id: Ia08720bf4c547fa41edf62331eeb1a45ff4965b7
2016-05-26 18:44:16 +00:00
Moriel Schottlender ac9bbb8e07 Allow for overriding parameters in fetch notifications API request
Change-Id: I677d6d1b3a8f9424820969a12005d7a457d938b1
2016-05-26 11:42:14 -07:00
Stephane Bisson c96bc7ec38 Pagination on no-js Special:Notifications
Bug: T129169
Change-Id: I48aff35352bbda7f8818d456284c5c7adb346bb1
2016-05-23 15:39:43 -07:00
Moriel Schottlender 299adfe6b1 Add style to the NotificationsWrapper
We have to make sure that any notifications wrapper has the css
term overflow-y: auto; so that the popup menus behave properly.

Change-Id: I14a1a9f1c3610ef27fe04aa4b1e7197c08d1dfd4
2016-05-19 13:43:51 -07:00
Moriel Schottlender 8e76bc4126 Refactoring Echo's front end for MVC
Changing the way Echo's front-end architecture works to work with
model-view-controller methodology.

Change-Id: I97862402c41bc04dd41cd08d79f19ff677340249
2016-05-18 12:28:45 -07:00
Moriel Schottlender 28feb4bf82 Link project labels in xwiki bundle to their Special:Notifications page
Also, get rid of the feature where we hide the project name when there
is only one project available. The titles are always showing.

Bug: T127419
Change-Id: I1b1285d84b7fb4775d13067e6ae1c50602ed3baf
2016-05-16 13:33:18 -07:00
Stephane Bisson 52b60075d1 Handle empty foreign notification sources
Foreign notification sources can end up being empty
for legitimate reasons (already marked as read on the
foreign wiki) or errors (failed to query remote server).

This change makes the front-end resilient by
removing the sources if they end up being empty,
and removing the foreign notifications bundle if
all the sources end up being empty.

Bug: T135252
Bug: T135250
Change-Id: I5901bb0007420a19d8c0727faa982eb00809c074
2016-05-13 15:42:58 -04:00
Stephane Bisson 413206d82a Pass source url when creating API handler
Change-Id: I8e42c6678766baea1b8b1f66537ec15b1f2bdff7
2016-05-13 14:54:38 -04:00
Matthias Mullie 876197b520 Get rid of addApiHandler factory
Some complexity is now gone. We didn't currently have a good justification
for a the APIHandler factory: the apiHandler caller would have to specify
(variable `foreign`) what kind of handler it would like to initiate anyway,
so it might as well just inject the object (which makes the code easier to
follow, decreases bugs risk because there are less code paths)

This also gives the caller more control of the API handlers:
registerForeignSources will now be able to do more. Now it can e.g. create
1 object that is shared for multiple wikis (to do lookups for multiple
wikis at once)

Also renamed addApiHandler to setApiHandler (it just sets the value it needs
without checking if it already existed anyway)

Change-Id: Ie1814c5bf1a1f0e5607033beb506df67f3585b24
2016-05-13 14:11:42 -04:00
Matthias Mullie 84b016e695 Make sure APIHandler has this.api
this.api is used in APIHandler.createNewFetchNotificationPromise,
so we should make sure it always has a valid this.api

Change-Id: Id476661fb427adbbb3c5741737c293c32ad8a27e
2016-05-13 17:29:56 +00:00
Roan Kattouw 468ead1ca1 Correctly update locally cached seenTime
> Object.keys( wgEchoSeenTime );
["alert", "message", "m", "e", "s", "a", "g"]

Bug: T134854
Change-Id: I167e0eba1bad61a683f36218d2c90235f285a3c2
2016-05-12 16:04:24 -07:00
jenkins-bot dcdfb59567 Merge "Add JSDuck support and fix errors" 2016-05-11 21:38:17 +00:00
Moriel Schottlender 2d184c087c Add JSDuck support and fix errors
Change-Id: I7816110862d9ca1b16e2ec9ce842d240bee6b46b
2016-05-11 14:07:12 -07:00
Moriel Schottlender 8f5c718a4f Add 'mark section as read' to Special:Notifications
Allow marking notifications as read per 'section' (days) in the
Special:Notifications page.

Bug: T115528
Bug: T134204
Change-Id: I7324a2c693aa92b9327cf8ff98f125293d5fba10
2016-05-11 20:00:24 +00:00
jenkins-bot 4331c30993 Merge "Add mark-as-read button to notifications in Special:Notifications" 2016-05-11 18:42:46 +00:00
Moriel Schottlender 15a44768f4 Add mark-as-read button to notifications in Special:Notifications
Bug: T115528
Change-Id: I54dba5f86d28a069659d66dede5b7ab9981213aa
2016-05-11 10:41:32 -07:00
Roan Kattouw 351297caf1 Don't apply margin to dotdotdot menu items
Otherwise the background color on hover doesn't cover the entire item.

Bug: T130677
Change-Id: I7c0a4cd7a77e3ae333e1ea0161bfc909e246c6e6
2016-05-09 15:00:18 -07:00
Stephane Bisson 6cca5b6a01 Fetch foreign notifications before marking them as read
Bug: T134579
Change-Id: I4b88bbf5e23d9fbc066e17e1af77a3874a824b04
2016-05-06 11:47:58 -04:00
Moriel Schottlender 7055f83fe0 Use server-side cross-wiki requests in the frontend
Fetch cross-wiki notifications by asking the local API, but still
maintain the ability to send remote requests to the foreign wikis
for mark-as-read operations.

Bug: T130636
Change-Id: I48524cb9dff43257a401d7483e939edfb042b928
2016-05-04 21:21:08 +00:00
Roan Kattouw 7942a2de79 Replace mark-as-read-on-click with ?markasread= URL parameter
Notifications were being marked as read in response to a click event
in JavaScript, but that causes a jarring effect in the UI, and it's
not reliable (the browser could abort the AJAX request).

Instead, add ?markasread=XYZ to the end of every primary link URL,
where XYZ is the event ID.

Bug: T133975
Depends-On: Icb99d5479836fea25a47451b5a758dd71f642f71
Change-Id: I8047d121584b43e6172463a50ad0e0de5f7fa73c
2016-05-03 00:20:03 -07:00
Roan Kattouw 73b0a083d4 FooterNoticeWidget: Top-align the close icon
Bug: T117669
Change-Id: I70d8df95e719824c8f135d01d6d9bf63a20daf02
2016-05-02 14:36:01 -07:00
Roan Kattouw fbf702aa7e Follow-up 1608a5e6fc: add hasOwnProperty check
To prevent crashes when wikis extend Array.prototype.

Bug: T133817
Change-Id: I40063d7997a1dfb72053eb09e48d4480dbf371a8
2016-04-28 00:34:11 +00:00
Roan Kattouw 4f7f1a3a09 Repurpose survey call-out in the footer for beta feature invitation
Removing the info popup because we don't have to show
a privacy notice when linking within the wiki.

This adds a database query to every page view for logged-in
users; If78bfc710, once merged, will fix that.

Bug: T117669
Change-Id: I8451db34ae8e94264e4921ecd6df6e4b32c7623a
2016-04-27 07:23:30 +00:00
Roan Kattouw 1608a5e6fc Follow-up b10bd7003: allow object instead of array for b/c with wikis running old code
Change-Id: I1566b73e0d8daea6c2e701f60cbcb9dd42129ec9
2016-04-26 15:57:25 -07:00
Roan Kattouw 91a7833209 Follow-up 57ee9759: add notnoforn=1 for b/c with wikis running old code
Change-Id: I24b697d59f9306b9cfa40372c5d4a92ba331b20b
2016-04-26 15:55:07 -07:00
Matthias Mullie 57ee975984 Change (opt-out) noforn to (opt-in) crosswikisummary
I thought the name was confusing, and would be even more so
if we get real notifications from other sources.

Meanwhile also split $crossWikiSummary into 2 properties:
- 1 with the class
- 1 to indicate if it should be used

Change-Id: I0e83be7924c8c77680ea1ada3f2bd6a190ce6149
2016-04-22 12:14:21 -07:00
Matthias Mullie b10bd70033 List is no longer an associative array
This would soon become problematic when output can come from
multiple sources, with potentially conflicting ids.
The ID is already included in the result anyway.

Change-Id: Id92150c71c68958819fe0ee329e70393052c34c9
2016-04-22 12:13:21 -07:00