Commit graph

1118 commits

Author SHA1 Message Date
Moriel Schottlender 77acb5b3ee Move the popups to the overlay
This will solve multiple issues with the design having to overcome
the theme-based design for the #p-tools.

Bug: T156080
Change-Id: Ibfcdfeea649e566059fd88485e146fbad2201016
2017-12-20 15:44:27 -08:00
Prateek Saxena 391f14cb4b Use findItem(s)FromData instead getItem(s)FromData
Depends-on: Ia2110f71d1642f61451cb8acc7e8a930d0feb31f
Bug: T76630
Change-Id: Iddd1d3f5abaa233adbf030114343a8ed248de28b
2017-12-14 13:36:26 +05:30
petarpetkovic cde5b2d1e9 Add fallback to getting Preferences and Notifications URLs
Change-Id: I0ab756cafcbd535fa1765fd12fdd72bb75f0df62
2017-12-13 23:12:07 +01:00
Albert221 c6388532c0 Better color to represent read notifications
Replace color of read notification background
in notifications list with Base 80, also
slightly increase opacity of timestamp to
be more visible.

Bug: T78594
Change-Id: I93e26a9eb7e01a8b46bcac8b7ed72ddf06a63f30
2017-12-09 02:11:08 +01:00
petarpetkovic 41a4cc4ae6 Add left padding to PageNotificationsOptionWidget
Bug: T177065
Change-Id: I71a9bafe520faf04e59c093761ed1303b13861bb
2017-11-28 16:05:01 +01:00
Volker E 738524da4a Equal CrossWiki/BundleNotificationItemWidget group's padding
Follow-up I18c0caea2438399d6f97e59c47177691cb43816d.

Bug: T177723
Change-Id: Iaa7a19d3d2064d3258bdd161056976fc0ebc781e
2017-11-09 11:43:05 -08:00
Volker E 64c07dfb68 Unify SVG markup
Align SVG markup across Foundation products by:
- unifying XML declaration,
- removing unnecessary `standalone="no"` attribute as it's default,
- removing all `g` group elements where applicable,
- bringing attributes in order,
- removing unnecessary ids and
- unifying whitespace.

Bug: T178867
Change-Id: Id3799a46c14f793636ca9bca3ad0f642466ed5a0
2017-11-04 14:21:06 -07:00
jenkins-bot e25e8b1231 Merge "Use position:sticky for toolbar floating" 2017-10-18 23:01:56 +00:00
Bartosz Dziewoński 6fa38a985c mw.echo.ui.PageNotificationsOptionWidget: Fix CSS after changes in OOjs UI
We have to override 'position: absolute' and increase the specificity
of the selector to override 'display: block'.

Bug: T178439
Change-Id: Icd09e8302f124524779553eae3536d875f2e1227
2017-10-18 20:56:27 +02:00
Ed Sanders cfa130cc13 Use position:sticky for toolbar floating
Avoids any scroll-based DOM changes which slow down scroll events.
Removes floating in browsers without sticky support (mostly IE).

Change-Id: If75e2a90d76644296fe3db5ef8bd9b26de4e7b0c
2017-10-17 15:22:26 +01:00
Ed Sanders 892ba8e5fe build: Update eslint and other linters
Change-Id: I68b74742bea0c3d4c8e359fd7850beaa6bbc4190
2017-10-17 13:53:08 +01:00
jenkins-bot 3460faa930 Merge "Fix CrossWiki-/BundleGroup layout" 2017-10-17 01:44:02 +00:00
Volker E 6a74084e01 Fix CrossWiki-/BundleGroup layout
Fixing CrossWiki-/BundleGroup layout after OOUI button height,
which is used as header in this case, has been increased.
Also removing `border-bottom`, `box-shadow` and
`border` of next item respectively notification footer are
sufficient and result in the groups being less crowded.

Bug: T177723
Change-Id: I18c0caea2438399d6f97e59c47177691cb43816d
2017-10-16 18:29:12 -07:00
jenkins-bot bab8145f06 Merge "Align popup message color to toast message in MinervaNeue" 2017-10-12 19:19:12 +00:00
jenkins-bot b2b7547877 Merge "Replace vendor prefixed box-shadow with central mixin" 2017-10-10 21:16:49 +00:00
Volker E 4b3782a46a Replace subtle greys with WikimediaUI color palette ones
Bug: T177723
Change-Id: Iceafe2f3e702667e0ee68b79ddcb6aa4d8fd0010
2017-10-08 10:26:43 -07:00
Volker E d4682c9f14 Align popup message color to toast message in MinervaNeue
Toast messages carry now `#222`. This should be used here as well.

Bug: T177723
Change-Id: I7e1f6c2e1937353b0485ed0b5c2737742c62e770
2017-10-08 09:55:18 -07:00
Volker E 1a46e0f06f Replace vendor prefixed box-shadow with central mixin
Replacing vendor prefixed `box-shadow` with LESS mixin out of
mediawiki.mixins.less. This also removes obsolete `-moz-box-shadow`
saving some bytes.

Change-Id: I336ee7340bc518fef74762a8381495265dd3eb4b
2017-10-08 09:50:09 -07:00
Kaldari 4381dbbe8a Fix gap between notification pop-up header and notifications
Change-Id: I12261ad8033af7286d426933df19611b8163d9c9
2017-09-26 18:44:56 -07:00
jenkins-bot 31709919e4 Merge "Consistently use the message when updating count" 2017-09-18 15:08:17 +00:00
Moriel Schottlender 57f14931b6 Consistently use the message when updating count
The current initial message in the button label is "Alerts (x)" or
"Notices (x)" but when the badge loaded, we changed that to only show
the rendered number. This is inconsistent; the badge should always
update the label properly, even if it's not visible in most cases.

Bug: T173970
Change-Id: I6a5e13fc36ddb1bf467c712fcf49af3b18e582d0
2017-09-14 17:33:48 -07:00
Moriel Schottlender c086169138 Use "formatversion: 2" in notification fetching
This means booleans are actually true/false rather than value or
empty-string.

Bug: T175867
Change-Id: I3d33129d061a64012602a131741d20e2ff97d1be
2017-09-13 15:18:07 -07:00
Matthew Flaschen f80a11d53b Fix interpretation of 'prioritized'
Docs (especially in EventPresentationModel.php) say true means outside
the menu, false inside.

However, it was interpreting any non-undefined value as true.

Change-Id: Icb438538e5c588c1ac7d4bbac0b762dd07057199
2017-09-07 19:13:10 -04:00
Volker E 537708ce76 Update Red50 'destructive' color
'Destructive' color was updated in WikimediaUI color palette to
ensure WCAG 2.0 level AA conformance with both, white and black.
Due to WikimediaUI Base not in central place we still have to care about
this manually.

Change-Id: I7402ef64b1aa28c2cffeb9bca2804b1dfbecec42
2017-08-21 16:06:06 -07:00
Moriel Schottlender 9e320bac6a Fix 'unread' dot top padding regression
All frameless buttons seemed to have recieved a generous padding-top
in the latest OOUI release. This fix overrides that.

Bug: T173059
Change-Id: Ia1f1bbc48410555163afabc84a199e7a69bb95dc
2017-08-21 11:21:39 -07:00
Volker E d7ebaf8c8b Replace outdated border-radius value with WikimediaUI one
Change-Id: Iebfd55c8e7f52f207f45dc547fccaf89107e8a32
2017-08-17 17:22:57 -07:00
jenkins-bot e74713a3ba Merge "Add 'Mark all as read' button" 2017-08-13 16:19:56 +00:00
mdew192837 e88185c54e Add 'Mark all as read' button
Currently, the 'Mark all as read' button exists only for JS users.
This patch adds the button for no-JS users as well.

Bug: T96061
Change-Id: I1a62c56306597209540ffd694c8fb7b2a92885c9
2017-08-13 10:55:46 -05:00
Roan Kattouw 0bf4861d92 Fix layout regression in notification popup footer
Caused by a new margin rule in OOUI.

Bug: T171302
Change-Id: I5746d9e6a2daa2b0d18e76a99e67c8fdaa1464d6
2017-07-21 13:04:51 -07:00
Roan Kattouw 4cf17a6712 Fix alignment of the "Mark all read" button
Bug: T169019
Change-Id: Ie63e74bef594e9c21c8a9bb615454c4a526276c2
2017-06-27 14:46:19 -07:00
Roan Kattouw 23252571a4 Migrate from FloatingMenuSelectWidget (deprecated) to MenuSelectWidget
Bug: T168679
Change-Id: I987a4b12560d03cc5eec7f8a57020a3e726a040f
2017-06-23 12:58:22 -07:00
Moriel Schottlender f05131a8ef Fallback to dbname if source title doesn't exist
This shouldn't happen regularly, since the source should always
have a title through a wg* variable in LocalSettings.php but in
cases where that is not set up correctly, or is missing for whatever
reason, the system should always fall back to displaying the name
of the source, if the title doesn't exist.

Bug: T164112
Change-Id: I94074adc260a5caf55ca21578fd7071b3323a5e6
2017-06-05 16:40:15 +03:00
jenkins-bot 2de9b411c7 Merge "Follow-up 739847c20: don't adjust the popup anchor position" 2017-05-02 18:39:02 +00:00
Roan Kattouw dd2bdd64af Follow-up 739847c20: don't adjust the popup anchor position
We used to need to center the anchor, but I375a76a49337d3b on oojs-ui
makes popup anchors center themselves, so this is now harmful.

Bug: T163993
Change-Id: I345727ae4175fd9d3cea024f43df802bcd401838
2017-05-02 10:55:02 -07:00
Roan Kattouw 2691d94e0f Don't truncate notification header messages in bundles
Bug: T163518
Change-Id: I569aeba7b8f87ca46a81ffb5a56c241342dc3d21
2017-05-02 10:50:13 -07:00
Stephane Bisson c46d56b018 Special:Notifications show unread by default if there's unread notifications
Bug: T162927
Change-Id: Ibdfaca90803eb8b12b12eb1781b0692e7336b7d9
2017-04-19 15:20:12 -04:00
Moriel Schottlender ebbe2e81af Make date headings a proper semantic <h2> heading
To support accessibility, make sure the titles in Special:Notifications
are <h2> headings.

Bug: T149955
Change-Id: I4f15694efb04896e9bd7b026d297891047759644
2017-04-13 22:39:28 +00:00
Mooeypoo 84d34a3901 Revert "Do not use fancy styled badge on Modern and CologneBlue"
This reverts commit 08d224e955.

Causes bugs in Vector when displaying the badges.

Bug: T162173
Change-Id: I9e92c304b47ce9204d7a7d2fba67118e67b1bdc9
2017-04-04 18:40:09 +00:00
Bartosz Dziewoński 08d224e955 Do not use fancy styled badge on Modern and CologneBlue
Just show the textual "Alerts (1)" and "Notices (1)".

Updated NotificationBadgeWidget to use that internally as label,
same as the PHP-generated list item does after d4d325e7.

Bug: T141944
Change-Id: I468c67b0866530e21c9af32cd02816075a3693a1
2017-04-01 14:57:34 +02:00
jenkins-bot 85c9397bce Merge "Fire 'ext.echo.badge.countChange' after DOM changes" 2017-04-01 04:52:54 +00:00
Bartosz Dziewoński f0875de9f3 Stop badge hacks from messing up the entire page on IE 11 on MonoBook
Looks like we're hitting an edge case where positioning with negative
offsets inside an inline-block element results in incorrect rendering.
We're accidentally rendering an invisible overlay over nearly the
entire page. Twiddle the styles until we no longer hit that case.

Minimal example of the IE 11 bug: https://jsfiddle.net/50v6m0kb/3/

Bug: T161869
Change-Id: Id4b6ccc1ec6a11b455d6ab45c5aaa0e8544385f7
2017-03-31 20:41:00 +02:00
Moriel Schottlender 5c35535f36 Fire 'ext.echo.badge.countChange' after DOM changes
The event should fire after the count actually changes in the
DOM as well as the internal workings of Echo.

Change-Id: I03f1742b209305080af8784632f07dff63135d81
2017-03-30 15:22:02 -07:00
jenkins-bot ea942c6250 Merge "Fix JS error when closing notification popup while animating a moving notification" 2017-03-30 17:59:32 +00:00
Bartosz Dziewoński 945fccf009 Make the invisible text in badges really invisible
Bug: T161302
Change-Id: I5c7a5bcb7a096b69c28651c6fe1e4017654997ad
2017-03-28 18:26:26 +02:00
Roan Kattouw 089531c1e9 Fix JS error when closing notification popup while animating a moving notification
This failed because it tried to call .resetInitiallyUnseen()
on a ClonedNotificationItemWidget.

Change-Id: Ib675aecfb0d916bfb25f17ad738f3a493a49dd1b
2017-03-28 12:24:25 -04:00
Bartosz Dziewoński c39fffd82f Simplify definition of 'ext.echo.badgeicons' module
* The JSON file for the Apex theme was exactly identical to the
  MediaWiki theme. If the icons are the same, there's no need to
  duplicate it.
* Since we now only have one definition used for all themes,
  ResourceLoaderOOUIImageModule is overkill and we can use the
  slightly simpler ResourceLoaderImageModule.
* Remove "prefix": "oo-ui-icon" from the JSON file, since it is
  overridden in the module definition by "selectorWithoutVariant" and
  "selectorWithVariant".

Change-Id: I1d579873459e079369fd13350a9cb00939c2b76b
2017-03-21 20:33:10 +01:00
Roan Kattouw 739847c20f Fix RTL popup alignment for OOjs UI 0.19.5
Popup alignment corrections are now done with margins on the anchor,
not directly on the popup. Setting "left" also didn't have any effect,
because it was being overridden by inline styles set by the new
PopupWidget/FloatableElement code.

Bug: T159999
Change-Id: I7738edee7ae096fcc116a79e71a591a2287ea34f
2017-03-08 15:39:50 -08:00
jenkins-bot 14f261a2fc Merge "Revert "Remove FloatableElement hack, no longer needed"" 2017-03-08 01:48:27 +00:00
Catrope 8b396ec675 Revert "Remove FloatableElement hack, no longer needed"
We still need overflow-x set to a non-visible value, so that
the overflow-y: visible rule doesn't take effect. If it does
take effect, it breaks clipping.

This reverts commit 97bde4d21a.

Bug: T159888
Change-Id: Id834d9cf9615a8d2dad27faf2eb89743ad95da9d
2017-03-08 01:23:09 +00:00
Moriel Schottlender bee8aaa499 Add and listen to 'modified' event for popup clip()
Separate the behavior of promise vs event when changes happen and
we need to clip the popup. The popup should only clip itself after
the DOM has finished populating, not "just" after the model has
been populated with data.

Adding an event that triggers whenever the main list changes anything
that is in its DOM, and having the badge widget trigger a popup clip
will solve this issue and untangle the expectation of the promises
vs. the widgets populating themselves through the events.

Change-Id: Iff9996eb1810e7ade135359139e16837e6dc74f0
2017-03-07 14:35:42 -08:00
jenkins-bot dd61dd06cb Merge "Align the cross-wiki icon with the other notification icons" 2017-03-02 06:47:48 +00:00
jenkins-bot 4ef0594a30 Merge "Remove FloatableElement hack, no longer needed" 2017-03-02 06:46:12 +00:00
jenkins-bot db1a5181dc Merge "NotificationBadgeWidget: Fix appearance of bottom buttons for OOUI changes" 2017-03-02 06:19:48 +00:00
Roan Kattouw 3e8f028ffe NotificationBadgeWidget: Fix appearance of bottom buttons for OOUI changes
This time we actually get to *remove* a hack that overrides OOUI,
which is always nice. Also add our new dependency on future-magic
forthcoming MediaWiki version.

Change-Id: Icef086e6b19dffb34eefe7b5658b57e020c5de8b
2017-03-01 22:04:05 -08:00
MtDu 185e68a803 Support loading of secondary icons in RLEIM module
Before, secondary icons, such as linked, changes, thanks, and
userSpeechBubble were loaded in mw.echo.ui.icons.less. Now, an
extra icons attribute is passed when the module is loaded, allowing
RLEIM to know which icons to load. If this attribute is left out,
an MWException will be thrown.

Bug: T159394
Change-Id: I9b36a74bcf1da0d1c698845bd067b226fb81ac96
2017-03-01 23:45:04 -06:00
James D. Forrester 988eea9da4 build: Bump stylelint and make pass
grunt-stylelint              0.6.0  →   0.7.0
 stylelint-config-wikimedia   0.3.0  →   0.4.1

Change-Id: Id87b8df04d415e1f1058a4042a31408236402037
2017-02-17 15:41:15 -08:00
Roan Kattouw 97bde4d21a Remove FloatableElement hack, no longer needed
T130153 is now fixed in oojs-ui. However, we can't set
overflow-x to visible because that breaks clipping.

Partially reverts 02252d0531. Depends on I22f2ca72cf7c2f in oojs-ui.

Change-Id: I726aada60238d17227e4475637bd3d9befa1b4c3
2017-01-24 13:12:04 +11:00
Stephane Bisson fcbc0ea2bc Remove calls to debouncedUpdateThemeClasses
debouncedUpdateThemeClasses doesn't seem to exist
anymore in ooui.

I'm not sure what this function call was for.
My limited testing has reveal no obvious
problems after removing it.

Bug: T155800
Change-Id: If9ab35ed57e51b103cc5474ea902da390abaf69d
2017-01-20 10:48:32 -05:00
Fomafix a76bd5320f Replace $( document ).ready(...) by $(...)
In jQuery 3 $(document).ready(...) is deprecated.
https://jquery.com/upgrade-guide/3.0/#deprecated-document-ready-handlers-other-than-jquery-function

Change-Id: Iff3d7fb07a739fc6ff9b62a2f586c54cd9c8f315
2017-01-06 14:06:39 +01:00
Stephane Bisson 01a1924187 Adjust unread counter position based on length
Move unread counter to the left (or right, in RTL)
when it's longuer than 2 characters so as to
have harmonious spacing between the counters and
the next link on the toolbar.

Bug: T142454
Change-Id: Ib8aa673cf9e60ade80490ea0eccb7453d3747cd0
2016-12-20 13:40:54 -05:00
Amir Sarabadani 7ac77d8538 Make mw.echo.alert text darker to pass WCAG test
Going from #54595d to #222 (both from the color palette)

Bug: T153506
Change-Id: I7e844f63a743ff8791ab76149147e9e9c71df7d2
2016-12-17 02:42:51 +03:30
Roan Kattouw 22caa786c1 Follow-up eed48aa7: remove unnecessary z-index
This z-index rule isn't needed for the floating toolbar, and it
causes the notificationInboxWidget to be on top of MobileFrontend's
semi-transparent cloaking overlay, which makes it look weird.

Change-Id: Ie9d10e4193d15b72ce0199ff9b4e45742afec132
2016-12-09 15:28:14 -08:00
Stephane Bisson 61b602e961 Fix unread notification count caching
Purge all cache when unread count changes and
repopulate on read.

Also fix client-side estimation when
marking a foreign notification as read.

Bug: T151389
Change-Id: I62def3d40a5640e26c234bb0335bc506dbf864a0
2016-12-09 09:23:59 -05:00
Roan Kattouw 49974544ba Split up $wgEchoConfig
$wgEchoConfig is a deeply nested structure that ExtensionRegistry can't handle well.
It also combined different things, and the version number was used for two
separate purposes.

Split this out into $wgEchoCacheVersion, $wgEchoEventLoggingVersion
and $wgEchoEventLoggingSchemas.

Change-Id: I2f9d5d111f7925fb057d423a3e7064bff5040205
2016-12-05 15:44:12 -08:00
jenkins-bot 53d3e99744 Merge "Add help icon" 2016-12-04 04:23:58 +00:00
cenarium c753cc04ee Add help icon
This adds an help icon that extensions can use for help pages. This is
the same icon as the one used in core mediawiki, located at
resources/src/mediawiki/images/help.svg.

Change-Id: I31665932b69c52e2a3eb2f0e1d9b5d88c562bca2
2016-12-03 20:10:21 -08:00
Amir Sarabadani 550dc4ee88 Align echo alert colors to WikimediaUI color palette
Change-Id: I4a6d53f7a5407838ce43f12b3a8ec6dde365ce4c
2016-12-01 07:30:01 +00:00
Ed Sanders c8d24ebd17 build: Replace jscs/jshint with eslint
Change-Id: Iee1d1b20ed31e636bfb8fc8cf9b18ff328bf608c
2016-11-23 15:25:59 -08:00
Kavitha Muthu 22389cf69b Add shadow to the notifications top toolbar
Bug: T140964
Change-Id: I5d795bc9c6601d874dfd58010399832b2727b811
2016-11-03 17:08:55 -07:00
Roan Kattouw c5d3fe3159 Clean up and simplify icon SVGs
Using svgo and some manual fixes

Change-Id: Ifb2ca82da7e95e2f0deccbec0e01eeefaae43236
2016-11-02 00:52:34 +00:00
jenkins-bot aead4d1ae9 Merge "Follow overhauled color palette" 2016-11-01 22:49:16 +00:00
Volker E 33655c75e7 Follow overhauled color palette
Replacing colors with ones from the overhauled WCAG 2.0 level AA
compliant color palette https://phabricator.wikimedia.org/M82
Applying Less variables where possible for better flexibility
in future design maintenance.
Also introducing some variables from WikimediaUI Base.

Bug: T147365
Depends-on: I16bdfbdada252ee27d5a0de11e0930347315b699
Change-Id: Ic05ed15b44d86752c686d80efc4f2ed2a1e71b41
2016-11-01 22:31:28 +00:00
Pau Giner 1e24c5798a Updating icon colors to latest palette
Echo icons updated to the new color palette
https://phabricator.wikimedia.org/M82
Also setting color value hex codes to lowercase for uniformity
across products.

Bug: T147365
Change-Id: I16bdfbdada252ee27d5a0de11e0930347315b699
2016-11-01 22:00:24 +00:00
jenkins-bot 84ad297d8e Merge "(re)Add JavaScript hooks to Notifications" 2016-10-14 22:36:37 +00:00
Moriel Schottlender e9264022a7 (re)Add JavaScript hooks to Notifications
Added the following Javascript hooks:
* ext.echo.notifications.beforeRender: Firing before a group of
  notification widgets are rendered, whether in the popup, in
  the special page, or in a cross-wiki bundle (which requires
  async loading)
* ext.echo.badge.countChange: Fired when the badge count changes
  with the notification type, count and the label count for
  display purposes.
* ext.echo.popup.onInitialize: Fired when the popup is opened and
  after notifications were fetched, with the context of the popup
  notification type.
* ext.echo.special.onInitialize: Fired when the special page is
  ready and notifications were fetched. Note that it will be fired
  whenever the special page is updated with notifications list,
  as well, like when changing filter, remote wiki or pagination.

The hooks were also documented in hooks.txt

Bug: T146296
Change-Id: Ie3dc97f97e8d1f90b67f62fcdc65dd29cb379aad
2016-10-14 17:25:25 -05:00
Kavitha Muthu cc2189f009 Remove notifications bottom controls
Bug: T140964
Change-Id: I5c1a07161ab75de0537c002785da89ebeadc508a
2016-10-13 14:16:46 -07:00
Roan Kattouw d834f023f3 Align the cross-wiki icon with the other notification icons
Bug: T147221
Change-Id: Ic88e7c4755f2efa6cc43b1acc16e3b7a1ae8572e
2016-10-11 10:39:58 -07:00
jenkins-bot 7441dcc3d2 Merge "ToggleReadCircleButtonWidget: Make circle perfectly round and align color" 2016-10-07 21:06:34 +00:00
Volker E 675d454bad build: Extend stylelint to further rules
Extending stylelint to include further general rules
and remove obsolete .csslintrc file.

Change-Id: I6957cc3731c39f495e985c9dbd40363102e2e6f0
2016-10-05 14:52:29 -07:00
Volker E 6d2e560c1e Introduce stylelint
Introducing stylelint with configuration rules compliant to
Wikimedia CSS Coding Standards 'stylelint-config-wikimedia', nullifying
some for now and making majority pass.

Change-Id: I2c4acee41c9b56d9b00e2a2c5b7ab0ab5de454ce
2016-10-04 18:15:02 -07:00
Roan Kattouw 4e5d2a8aa6 Use colors for pressed/selected options in the Special:Notifications sidebar
Unfortunately there's no generic support for using colors for icons in
OOUI yet, so we have to copy what OutlineOptionWidget does and
override setPressed()/setSelected() to add/clear the progressive flag.
Also reintroducing colors for text which are aligned with icons on
the different states and use transitions.

Change-Id: I07cf4011d28c1db4eefb451367e29c271b5efaeb
2016-10-04 17:21:26 -07:00
jenkins-bot f107dbd371 Merge "Reintroduce highlighted and selected background colors in the Special:Notifications sidebar" 2016-10-04 22:45:11 +00:00
jenkins-bot 717b53dbe4 Merge "Make notifications top toolbar controls sticky" 2016-10-04 22:37:27 +00:00
Volker E c4ea2c4af8 Reintroduce highlighted and selected background colors in the Special:Notifications sidebar
After Id1312fee5bb of OOjs UI got merged, we have to reintroduce
`highlighted` and `selected` states background color manually as
it caused issues on simple OptionWidgets.

Change-Id: I3fe7a4d2577bd1bc0fd258bc977b3539e268a84e
2016-10-04 22:34:22 +00:00
Kavitha Muthu eed48aa7fe Make notifications top toolbar controls sticky
Bug: T140964
Change-Id: I483c91344918f602da3280b9f8ad7e966bf55596
2016-10-04 22:27:49 +00:00
Touhid Arastu 50384e2f30 i18n: Native digits on CrossWikiNotificationItemWidget
Change-Id: I982319c81405917461297e96e47030953d5070d4
2016-10-04 13:49:57 +03:30
Volker E 819545ed7e Add box-sizing mixin
Replacing standard `box-sizing` with MediaWiki's Less mixin, which also
features prefixed properties for older browsers like Firefox 28 and below.

Change-Id: Iafb88b192045fb7df6bbe6954a166a198d04c5cf
2016-10-03 13:21:54 -07:00
Volker E a1ae72a03c ToggleReadCircleButtonWidget: Make circle perfectly round and align color
Due to pixel rounding errors when relying on `em` as base size unit,
the circle isn't always perfectly round and as a result /not/ a circle.
Adding `min-width` and `min-height` ensures the intended layout similar
to Ie61e7303e446 in OOjs UI's ToggleSwitchWidget.
Also aligning `:hover` unread color to OOjs UI progressive button's
`:hover`.

Bug: T141504
Change-Id: Idf130947e8e61a68819e3ac9ba3cb1e105e65370
2016-10-03 19:19:38 +00:00
Moriel Schottlender 7b4bb11c2a Add proper QUnit tests
Change-Id: I7a4abf068a32d9cf65eb464eb036f72f319c54ff
2016-09-29 15:28:30 -07:00
Moriel Schottlender 2875e3e5dd UnreadNotificationCounter should always normalize the count
Whether we estimate or not, the actual stored count should always be
normalized within the range of 0-cap. Estimation should always skip if
the current count is at the cap; in that case, the count can only be
changed when we get the value from the API through setCount() (used
when the value is known, rather than estimated.)

Change-Id: Ie8b81a4433e8254ee0e90f59e5b25d727158eecf
2016-09-23 16:22:56 -07:00
jenkins-bot f40f1aa36c Merge "Convert 'seenTime' to a global property" 2016-09-20 23:22:26 +00:00
jenkins-bot 21cd011dda Merge "Make sure bundledNotifications is an array" 2016-09-20 00:13:56 +00:00
Moriel Schottlender f47c554e1c Make sure bundledNotifications is an array
- Make sure that even if internal values of the array are null,
  the end-result is a valid array (with sequential keys)
- Verify that the API sent the UI an actual array, and if not,
  output an error to the console.

Bug: T145825
Change-Id: Ibdf17c58fe88e3e2547dde62cd4d3d06e089cbc8
2016-09-19 23:08:14 +00:00
Moriel Schottlender 1575e2bb7a Convert 'seenTime' to a global property
This transforms seenTime concept to a global property for all wikis
and sources, and updates the global seen time on opening the popup.

Bug: T134855
Change-Id: I67bcc4b346237317c7a9204dd43cd0e9ee02792f
2016-09-19 14:37:31 -07:00
Moriel Schottlender 58c53af1d1 Remove primary link from the bundle of page linked notification
Also, make sure that the bundle follows the same behavior as the
xwiki bundle, where if it does not have a primary link, the 'click'
event triggers the 'expand' action.

Bug: T145902
Change-Id: I456bf76a7bd531ffcad5462708f37cd54d8af99d
2016-09-19 14:16:43 -07:00
Catrope bba984c002 Revert "Make seen/unseen badge more consistent across wikis"
Has bugs, and will likely cause deployment problems.
This'll need to be reverted in wmf.19 at least
until we fix it up.

This reverts commit 00e0b9f45d.

Change-Id: Ia9d220ebcb607f96dee6bc856755305ed8501fcc
2016-09-13 14:21:32 -07:00
jenkins-bot 4063a26c0e Merge "Allow for count cap display in Special:Notifications sidebar" 2016-09-13 17:26:36 +00:00
jenkins-bot 1159a14b1f Merge "Generalize getCappedNotificationCount and move to counter" 2016-09-13 16:07:18 +00:00
Moriel Schottlender fcc2e1ddfc Allow for count cap display in Special:Notifications sidebar
Some of the counts are capped (wiki counts) and some are not (page
counts) - so we are adding a config option ('isCapped') to the
widget to make sure that capped numbers appear with the proper
i18n message ('99+' in English) and non-capped numbers appear
as-is.

Bug: T144707
Change-Id: I7332e7f5108621d0bd403edefe4feacca44b1f88
2016-09-12 16:35:38 -07:00
Moriel Schottlender dbd2f4ccf7 Generalize getCappedNotificationCount and move to counter
This follows the generalization we made in the back-end and allows
us to always use the same method to get capped notification count
in the display.

Bug: T144707
Change-Id: I4d7f406b05a195972dca0d2088bde2ff739d313d
2016-09-12 15:32:52 -07:00
Moriel Schottlender 5e8377b2f6 Make sure to use mw.language.convertNumber on displayed counts
In the special page, the counts should always display with
mw.language.convertNumber.

Change-Id: I9acafff9a35f2d3a1eb83ad003e57491905cb233
2016-09-12 22:02:13 +00:00
jenkins-bot c01b053025 Merge "Remove js-truncation of descriptions in Special:Notifications desktop" 2016-09-10 02:49:02 +00:00
Moriel Schottlender 42832ad04a Use echo-badge-count message for cross-wiki counts in Special:Notifications
These numbers are already "capped" for display as 99+ after they pass
100, so we should use this message for proper display.

Individual page number counts are not capped (they are accurate) so
they can remain the same.

Bug: T144707
Change-Id: Iecb877c11e2f372d58f4fc926119dbf3b316e825
2016-09-09 13:11:34 -07:00
Moriel Schottlender a834420533 Remove js-truncation of descriptions in Special:Notifications desktop
In order for the special page to be responsive, the descriptions can't
be truncated in the JS. If they are, they take a bigger portion
of the screen, sometimes going out of its confines.

The popup should still truncate descriptions.

Change-Id: I533f29c00482f6cfbb7b1c9c7417715e3c5809bf
2016-09-09 12:44:03 -07:00
Moriel Schottlender 00e0b9f45d Make seen/unseen badge more consistent across wikis
- Add a 'hasUnseen' data to the xwiki bundle so the badge can
  consider its value when changing its color even without the
  bundle being opened.
- Check and store seenTimes from all sources that the xwiki
  has in a new JS object that the SeenTimeModel can store

Bug: T134855
Change-Id: Ifdcee88b4378cdc7acb4ae5c0cbc60b76339757e
2016-09-08 12:40:15 -07:00
jenkins-bot 39720f926b Merge "Break more rules in break-word so long words can wrap in notifications" 2016-09-08 00:06:47 +00:00
Moriel Schottlender ed453c1026 Hide separator when bundled item is expanded
Bug: T142260
Change-Id: I5ea12d426c29a4b82bdfa5453d14841800b7a108
2016-09-07 16:44:03 -07:00
Moriel Schottlender 22d83568f7 Break more rules in break-word so long words can wrap in notifications
Change-Id: Ib0cde96438175f2bc136bd89d4a2717785cecba0
2016-09-07 16:32:37 -07:00
Moriel Schottlender 93f4f2a460 Add method to get local unread notifications in the manager
Bug: T141404
Change-Id: I90aa4b83cdc1f3c1c793f8ca88b532a428c7b0af
2016-09-06 13:07:57 -07:00
jenkins-bot 32e8a8c845 Merge "Add confirmation popup widget" 2016-09-02 23:28:09 +00:00
jenkins-bot 4ca6513039 Merge "Hide xwiki widget separator when widget is expanded" 2016-09-02 19:56:22 +00:00
Ed Sanders 44140295ce Remove apparently unused PNG files
The repo is now PNG-free.

Change-Id: Ia76505473fc99365781735a19ece4d028eaec528
2016-09-02 12:28:28 -07:00
Moriel Schottlender df38f142ef Followup I3daae156d: Don't truncate body text for small screens
We already took away the truncation of header text, the body should
follow for narrow screens and wrap, instead of using the ellipses
truncation.

Change-Id: I3504599044e1c94ccec55c420d455b9370dae474
2016-09-02 11:27:56 -07:00
jenkins-bot 05d05d2c56 Merge "Fix notification page width responsiveness issues" 2016-09-02 17:22:00 +00:00
Ed Sanders b54576564b Fix notification page width responsiveness issues
Have the page hide the sidebar at 982px, when there is
not enough room for both (and when vector switches down to SD).

Make inbox responsive when resizing.

Change-Id: I3daae156d1ebb0619090d466caa5138d0d98e937
2016-09-01 18:02:06 -07:00
Ed Sanders 0271cdd52d Remove unused CSS and icon for old preferences button
Change-Id: I0ba1d1322c4c53fe7fefd92be85fd595198a63c9
2016-09-01 17:30:50 -07:00
Ed Sanders b0f5a46964 Convert 'generic' icon to SVG
Change-Id: I3a364720161ede8045c5a3f7cf51923966266c56
2016-09-01 17:24:30 -07:00
Moriel Schottlender 4047f2f2c1 Hide xwiki widget separator when widget is expanded
Bug: T142260
Change-Id: I24fbd6bd2eba3c7b2d16cb1e46130cfd4a981fb3
2016-09-01 14:30:49 -07:00
Moriel Schottlender 97a7d44190 Clean up Special:Notifications output
Transform the php output to OOUI widgets.

Bug: T129172
Change-Id: I65cb5f2a016fc2a3c33a0b1cd2f3f88ed963ab02
2016-09-01 13:38:06 -07:00
Moriel Schottlender f449c68780 Add confirmation popup widget
Mainly used for mobile actions, and should be appended to the
overlay - this widget assumes it should appear and then fade out
with some confirmation message.

Also moved 'doubleCheck' icon to the ooui definitions, including
an inverted icon that is necessary for this widget.

Bug: T141404
Change-Id: I67a44962eaee6b7bd8cac26dcb5277177fa5d224
2016-08-31 14:47:59 -07:00
jenkins-bot 4c82613936 Merge "Fix sidebar counts Special:Notifications in monobook" 2016-08-31 02:41:05 +00:00
jenkins-bot 8c03fbb0e4 Merge "Adjust Special:Notifications width for small screens" 2016-08-31 02:41:03 +00:00
jenkins-bot ac62a9361c Merge "Fix line-height for notification item text" 2016-08-31 02:41:02 +00:00
Moriel Schottlender a4aa79fa50 Add the best CSS rule to notifications: word-break: break-word;
Add word-break: break-word; so we make sure even long names or titles
without spaces are broken/wrapped where they need to.

Bug: T142662
Change-Id: I166e834495972ec49eb98e301ab9be85f40f5a5e
2016-08-30 17:23:32 -07:00
Moriel Schottlender 311150a92d Adjust Special:Notifications width for small screens
Bug: T141949
Change-Id: Id0987ea9e7929777c887ceea6757ec00b3bf18ae
2016-08-30 15:29:22 -07:00
Moriel Schottlender 6e0076410c Fix sidebar counts Special:Notifications in monobook
Bug: T143845
Change-Id: Idf5922876f55aca6ed5d6800d0ff5066306c5fb1
2016-08-30 15:23:32 -07:00
Moriel Schottlender 07dde93247 Fix line-height for notification item text
Bug: T140523
Change-Id: I6a1a174ed70324da50970ecfb35ebba21ea703dd
2016-08-30 15:12:07 -07:00
jenkins-bot 76ea1746f9 Merge "Display a message when API fail due to session end" 2016-08-29 23:46:59 +00:00
Roan Kattouw 191a3309eb Fix font size for notifications dotdotdot menu in Monobook
Change-Id: Ie75ad192204a652885a82b0021340410b69864f4
2016-08-29 15:22:44 -07:00
Roan Kattouw 68a344d59a Override white background on hover for links in Monobook
p-personal links have a white background on hover, and links
inside the notifications popup were inheriting that CSS rule.

Bug: T144063
Change-Id: I3868e418ab8cce8e5ff6f7cc10e042907cb1e8df
2016-08-29 14:41:54 -07:00
Moriel Schottlender 4eab01b3b4 Display a message when API fail due to session end
Bug: T144231
Change-Id: I3ced44de097ba5b17d9edb91d4e3c527a5f18f03
2016-08-29 12:56:56 -07:00
Matthew Flaschen 299b66f937 Dynamic actions: Reuse label/description for those fields
This is necessary to preserve backwards compatibility for the API, and
this also fixes the no-JS special page.

Also, fix additional warnings.

Change-Id: Id603b4ab22c69097d5559a756bec72a6ba785661
2016-08-25 22:00:25 -04:00
jenkins-bot 4e99a5095f Merge "Add dynamic secondary actions to notification items" 2016-08-23 17:43:08 +00:00
Moriel Schottlender 480ce92bd8 Add dynamic secondary actions to notification items
Allow extensions to add dynamic actions that perform some
API request and display a confirmation message.

Bug: T132975
Change-Id: Ib16d57c3f1a11a9749564c6e2112bf1ca32c55e8
2016-08-22 16:04:48 -07:00
jenkins-bot d51d1ebc23 Merge "Make Monobook use the same badge color scheme as Vector" 2016-08-19 21:58:30 +00:00
jenkins-bot 3fe453cd78 Merge "Make dotdotdot menu not be extremely wide" 2016-08-19 21:58:29 +00:00
Roan Kattouw b9b1363ca6 Make dotdotdot menu not be extremely wide
Work around new styles introduced in oojs-ui in I77cd5212c.

Bonus: remove useless styles targeting the dotdotdot popup
in NotificationItemWidget.less: it's not even a popupWidget
any more and it's located in an overlay anyway, so these
styles didn't do anything.

Change-Id: Ifb16b7bb0b01c1eb2551ba4c173042cc759e9b02
2016-08-19 14:48:29 -07:00
Roan Kattouw 383f424576 Move the badges down a bit in Monobook
So that they don't touch the top of the screen.

Change-Id: I0ebfce76522540c879cc1440ea333143ce1855d9
2016-08-19 14:33:48 -07:00
jenkins-bot 50ce51fdf0 Merge "Tweak badge styles" 2016-08-19 21:14:49 +00:00
Moriel Schottlender 0b28b4c67a Mobile action menu should stick to bottom of screen
Just like we do in the mobile popup, the menu should be accessible
in mobile clicks/taps by being "stuck" at the bottom of the screen.

Bug: T142013
Change-Id: I730216e717c2a02ad98bbcc28f66b13c1cbe29ed
2016-08-18 13:12:22 -07:00
jenkins-bot 8f7edc6901 Merge "Revert "Dim the title of current wiki if it has 0 notifications"" 2016-08-17 23:01:15 +00:00
Catrope 0e52416fcb Revert "Dim the title of current wiki if it has 0 notifications"
We decided we didn't want this behavior after all.

This reverts commit eadaac1c84.

Bug: T139646
Change-Id: Ib71f8000a59e66968c0fa161e3ab59b9ebdb3b1a
2016-08-17 22:51:28 +00:00
Roan Kattouw f9ac794133 Make Monobook use the same badge color scheme as Vector
In the unseen notifications case, Monobook used badges with
black text on a light red/blue, even though the text
is white on grey in the non-unseen case. Change the unseen style
to white on dark red/blue like Vector, and also make the colors
exactly the same as Vector.

Change-Id: I9d2d1a2614ac1130e027fb952c9288588d25d495
2016-08-16 17:38:46 -07:00
Roan Kattouw 3cbddb546b Make excerpts in bundles not italic, but still grey
Bug: T141034
Change-Id: I34c376a97e222257ae660149e0fb8172128eb8c0
2016-08-16 11:48:01 -07:00
Moriel Schottlender 879ff56756 Log the mark entire cross-wiki bundle as read action
Bug: T127955
Change-Id: Iddff3592915c1f7d71622c1137abc725985fb3c2
2016-08-15 17:18:27 -07:00
Moriel Schottlender 951f146b54 Emit sortChange only for read/unread actions
Do not emit sortChange for toggleSeen, because every sortChange
creates a fake widget with a flipped 'read' state. There is no
reason to emit the sortChange event in toggleSeen anyways so it
is safer when only emitted in togglRead.

Also, make sure the controller always updates the correct seenTime
from the API when fetching local notifications. This was done for
the special page method but was overlooked for the fetching of local
notifications. For the most part, it shouldn't be affecting too much
because the SeenTimeModel is initialized with wgEchoSeenTime (which
is local) but updating the controller with the API response is the
safe thing to do, and will also cover cases where a tab was open,
notifications were seen in a different tab, and now the popup was
reopened in a "stale" tab again.

Bug: T143067
Change-Id: Ie261e32db28926d04fe14f7badd9d287ddc52749
2016-08-15 16:53:09 -07:00
Roan Kattouw a4caed52cd Make footer notice link blue in Monobook
We have to override a CSS rule that tries to make all <a>s blue,
but not override it so powerfully that the real link in the footer
notice isn't blue.

Change-Id: I5a91419aab7cf6d6fe10c8e707168b52c2451cd8
2016-08-15 11:13:01 -07:00
Roan Kattouw 7b71d734e1 Tweak badge styles
Bug: T141923
Bug: T142454
Change-Id: Id82681369ffcb41b18ea408fc8bdc7fdd7d65ec6
2016-08-15 11:12:24 -07:00
WMDE-Fisch 272cb9a960 Bundle mention success and failure notifications
Adds common bundling including messages and icons.
Bundling relates to revision now.
Changed order how notifications are generated. Now errors will
show first, since they are generated last.

Bug: T140224
Change-Id: I1069aeb5523db8710da4e8e21065bf447d031e3c
2016-08-13 08:08:12 +00:00
jenkins-bot 6886c18c03 Merge "Revert "Hack around browser bug in IE breaking badge alignment in Monobook"" 2016-08-11 23:27:25 +00:00
Catrope 092c4c64fb Revert "Hack around browser bug in IE breaking badge alignment in Monobook"
Seems to be fixed by different changes, and now this change
is causing trouble, moving the badges up off-screen.

This reverts commit 0b7f8712a9.

Change-Id: Ia5a0a6b6be3698436a043aee111f251709c22f20
2016-08-11 23:15:15 +00:00
jenkins-bot ccab1d8351 Merge "Log 'mark all read' button click actions" 2016-08-11 20:58:31 +00:00
jenkins-bot 7ee4ffd1f4 Merge "Reduce the amount of space between the badges a bit" 2016-08-08 20:52:45 +00:00
jenkins-bot 515d38fb85 Merge "Follow-up de795bdbc5: actually hide badge number in Monobook" 2016-08-08 18:39:36 +00:00
jenkins-bot 96f11311b7 Merge "Don't truncate bundled item content in mobile view" 2016-08-06 04:58:18 +00:00
jenkins-bot 65d4368860 Merge "Round timestamps to the day when displaying date titles in Special:Notifications" 2016-08-06 04:49:21 +00:00
Roan Kattouw 68479f7442 Reduce the amount of space between the badges a bit
What this really does is:
* Change the forced width of the <a> to the width of the icon
  (rather than 1.25x the width of the icon)
* Change the alignment of the :before from 40% to 50% so it
  stays in the middle (1.25*40=50)

Change-Id: I0399a20fc84e59fcbcf69da509a4d8bfa9b54a08
2016-08-05 18:01:48 -07:00
Roan Kattouw a27d748f6a Follow-up de795bdbc5: actually hide badge number in Monobook
The color: transparent; hack was being overridden by a color rule
that's only in effect after the popup is opened.

Change-Id: I2f415619603ccadb625ed2482c25fde78765fee4
2016-08-06 01:00:33 +00:00
Moriel Schottlender adab7f087b Fix top position of badges in monobook
Change-Id: Ie2638445d020baf1be79ac1689b446ac1abc2f63
2016-08-05 16:00:49 -07:00
jenkins-bot 181c0b9557 Merge "Enable local bundles on mobile" 2016-08-05 22:00:35 +00:00
jenkins-bot c9f48a80bb Merge "mw.echo.badge: Use 'color: transparent' rather than 'font-size: 0' to hide text" 2016-08-05 21:58:02 +00:00
jenkins-bot af3d0a4b0f Merge "mw.echo.badge: Use 'background-image' rather than 'content'" 2016-08-05 21:58:00 +00:00
jenkins-bot e86a21e1eb Merge "Hack around browser bug in IE breaking badge alignment in Monobook" 2016-08-05 21:53:03 +00:00
Bartosz Dziewoński de795bdbc5 mw.echo.badge: Use 'color: transparent' rather than 'font-size: 0' to hide text
It's a lot easier to set 'color' back to the desired value than 'font-size'.

As an amusing side-effect, the hidden text will appear when selected, and
it will be possible to copy it.

Change-Id: I7a7ef8e60f514743c9cb65bcef3ba4e869f5b7b7
2016-08-05 21:41:41 +00:00
Bartosz Dziewoński 3656c74fd1 mw.echo.badge: Use 'background-image' rather than 'content'
I think everything works the same. Some older browsers (IE 10-11,
Opera 12) have funny issues with SVGs in 'content'.

.mw-echo-notifications-badge now has 'height: 24px', as it must be
at least as high as the background to display it. We no longer need
.oo-ui-popupWidget to have 'margin-top: 7px', that was a workaround
for the badge having smaller dimensions in CSS than in reality.

This also allows us to significantly reduce the amount of Monobook-
specific CSS, because we now use the background-image approach for
all skins.

Bug: T142042
Bug: T142248
Change-Id: Iaa22202dbd5b5eb7a9b1ef47d068e80764ed982f
2016-08-05 14:34:08 -07:00
Moriel Schottlender b02a6e8b26 Log 'mark all read' button click actions
The actions logged:

* Popup: Mark all notifications in the popup as read
  - Event ID is omitted
  - Context 'flyout'
* Special page: Mark all notifications in current wiki
  as read
  - Event ID is omitted
  - Context 'archive'

Bug: T127955
Change-Id: Id7c091f9e0cf0dd3745d33e335ab44706581d7f3
2016-08-05 13:33:47 -07:00
jenkins-bot 23dcba0419 Merge "Don't use a smaller font size for the badge numbers in Monobook" 2016-08-04 23:17:56 +00:00
jenkins-bot ddc4738687 Merge "Remove allTalkRead listener for the messages popup" 2016-08-04 23:14:01 +00:00
Roan Kattouw 300c64ae1f Don't use a smaller font size for the badge numbers in Monobook
Bug: T142149
Change-Id: I1456581625f405512f448c2793c194c5ba199302
2016-08-04 16:04:25 -07:00
Moriel Schottlender df83d1d6dd Skip redundant bundle-id expansion when marking entire xwiki bundle read
When we mark an entire bundle as read, we don't care if it was opened
before or not - we call the API for the list of sources and their items
and build a list of IDs to mark as read in the remote source.

Then, we make sure that bundleIDs are expanded, added to that list.

Previously, we then sent those IDs to 'markCrossWikiItemsRead'
which marked the item IDs in the remote wikis as read.
markCrossWikiItemsRead is also expanding item bundle
IDs (correctly, because we also use it when we mark individual
xwiki items, and they should be expanded)

However, in cases where we mark individual xwiki items, the
model list is already filled, so markCrossWikiItemsRead trusts
the models to deliver the sub items (and then expand on their
IDs properly)

In the case of marking an entire xwiki bundle as read without
opening it first, however, that operation is not only redundant,
it produces a problem where the models were not yet filled
(because the xwiki bundle wasn't opened) and so we get empty
array of IDs, and the API has nothing to mark as read.

The solution is simple in this case - skip this method for working
with an entire bundle. It's both a redundant operation and the
wrong model to check. Send the information directly to the API
instead.

Bug: T142143
Change-Id: I4ed3bbc5c83290ed5791060b124840b1c3b12a75
2016-08-04 22:46:42 +00:00
Roan Kattouw 16d239c516 Remove allTalkRead listener for the messages popup
This fixes a bug where changing the read status of any notification
in the messages popup would remove the "You have new messages"
banner even though there are still unread talk page notifications
in the alerts popup.

Change-Id: Ic6b3d2c9fa764be2da8f9bd9b0d10311857f8509
2016-08-04 13:58:47 -07:00
Moriel Schottlender 9468ff0e1d Don't truncate bundled item content in mobile view
Bug: T140523
Change-Id: I8223d5596825bdd80c3c961576b46c7f2d4654cd
2016-08-04 13:03:35 -07:00
Moriel Schottlender 8d3b4fad2c Round timestamps to the day when displaying date titles in Special:Notifications
Bug: T141915
Change-Id: I5fcb78ac2fa168aa8bba90c467544fe3a6914ec3
2016-08-04 12:58:06 -07:00
Stephane Bisson 3600a271c5 Enable local bundles on mobile
Have the 'bundle' param always
controlled by the controller
instead of configured in the
API.

Change-Id: I08fb7c515f1af28fc01073702b552624cc14f2f0
2016-08-04 10:42:11 -04:00
Roan Kattouw 0b7f8712a9 Hack around browser bug in IE breaking badge alignment in Monobook
A browser bug causes the badges to be pushed down by 1em in IE11
and below, but not in Edge. The only way I could find to work
around this was to add top:-1em; in IE browsers using CSS hacks.

Bug: T142053
Change-Id: If240f7281dd795085c003af524da294d5bf5ff76
2016-08-03 17:08:58 -07:00
jenkins-bot adaccf56e4 Merge "Prevent IE from rendering the badge SVGs ridiculously big" 2016-08-03 22:31:44 +00:00
Roan Kattouw 59db7844e4 Prevent IE from rendering the badge SVGs ridiculously big
Not sure why it's doing that, because the SVG has explicit 24x24
dimensions, but adding these (theoretically unnecessary) CSS rules helps.
In Chrome/FF (as well as more modern IE versions), this is a no-op.

Bug: T142042
Change-Id: Ibb293f453dc79de90690ab48f522e43d3e66b8e8
2016-08-03 15:18:21 -07:00
Stephane Bisson 3b4e4d30a8 Mark all notifications in a foreign bundle as read
Foreign notifications, though non-expandable, can represent
bundles (4 new topics on your talk page). When marking one
as read, it's important to provide all the IDs that are
part of that bundle. Otherwise, only the dynamic base is
marked as read and the bundle shows up again on reload
(3 new topics on your talk page).

For bundles that do not include the count
(The description on Flow_Page was edited multiple times)
it looks like the mark-as-read action did not work.

Tagging with T140309 as it may explain it but not 100% sure.

Bug: T140309
Change-Id: I19c9eb18669b7cad8173c966392a6e5977018121
2016-08-03 17:27:56 -04:00
jenkins-bot 2d390bad2e Merge "Add a footer notice inviting users to visit the Special:Notifications page" 2016-08-03 19:51:08 +00:00
Moriel Schottlender c1e7fc2208 Adjust notification badges for monobook
Make everything a little smaller, decrease spacing. In order to
make the icons smaller, we had to override the content: url(...)
into using background-image with sizing.

Bug: T141923
Change-Id: Icacb15871c824ae845acc937973fb230b05b489a
2016-08-02 16:41:33 -07:00
jenkins-bot dedca66c8a Merge "Implement subject+talk and null+user page grouping" 2016-08-02 22:01:27 +00:00
Moriel Schottlender 75f6c11524 Add a footer notice inviting users to visit the Special:Notifications page
Bug: T141414
Change-Id: I6d9f9db62ecb85e70f72a9eb5a09e8ea1c8eebc2
2016-08-02 13:59:04 -07:00
Roan Kattouw 4e64643eb7 Implement subject+talk and null+user page grouping
Make it optional through the unpgrouppages parameter, so that
generic usage of the unreadnotificationpages API is still possible.

In the front-end, store which display title maps to what set of titles,
and pass in the full set rather than just the display title when
filtering by a page.

Bug: T137502
Change-Id: I443ca00ff5e5d36fd6910101226358942e6aa8ee
2016-08-02 13:48:48 -07:00
jenkins-bot 3be9a2e212 Merge "Update and fetch seenTime per source" 2016-08-02 19:57:12 +00:00
Moriel Schottlender 9e206ef8f5 Reduce number of prioritized actions in mobile
For mobile view, only display 1 prioritized action in the items,
and for general desktop view, stick to the default 2.

Bug: T141788
Change-Id: Ibf386ee598553ecfb717f07f02688034bbc338c8
2016-08-01 16:31:18 -07:00
jenkins-bot 9db03278b8 Merge "Fix fade-in/out animation in sorting" 2016-08-01 22:08:30 +00:00
Moriel Schottlender b5c0b2458d Align popup to center of the new badges
Bug: T141677
Change-Id: I24c1a12f325ca6a432d6fe9cc5635fbde10b1685
2016-08-01 13:57:40 -07:00
Moriel Schottlender f4a955efe9 Fix fade-in/out animation in sorting
The fade in/out animation is asynchronous. This means that if we are
sorting multiple items one after the other, by the time the item faded
out, it will be reinserted back into the wrong position, breaking the
sorting.

This also broke the promise of OO.SortedEmitterList whereby all its items
are always in order.

The way to fix this was to force a better synchronization with the item
order while we hide and show the item in its new place. To do that,
a new widget is created as a fake clone of the old one, in the original
position of the old one. The original item is then reinserted (while hidden)
to the proper location -- preserving order. The fake clone is then faded
out, and the real item is then faded in.

For this to work properly, the cloned item had to preserve some of the
original item's information, like timestamp, foreigness and id. However,
since both the real item and the fake new clone have the same details,
the clone fakes its ID by adding a fraction to it - promising that the
fallback in case of equal timestamps (which happens on the real and
cloned items) will still resolve with some decision about the placement
of the items rather than (falsely but understandably) decide they are
both the same.

Since this whole animation is somewhat of a hack, the list now has a
configuration parameter to turn the animation on.

The animation is on in the popups, but off in the special page.

Bug: T141419
Change-Id: Ic7c35e5ddefc51bf7fde497eab36414b4dddcd9e
2016-08-01 13:49:10 -07:00
WMDE-Fisch 78632108fd Echo notifications for successful mentions
Adds new notification type and icon for successful mentions.
Complements existing test to consider successful mentions.

Bug: T139623
Change-Id: I7a77b40e8b14c95cadb9023065ee916247feacf9
2016-08-01 13:40:55 +02:00
jenkins-bot d80e2a5896 Merge "Remove fixed width from notifications heading" 2016-07-30 00:29:39 +00:00
jenkins-bot 5f04fc334c Merge "Redo the notification badges" 2016-07-29 22:53:34 +00:00
Ed Sanders 72a1f292cf Remove fixed width from notifications heading
Bug: T141627
Change-Id: I7828cf8289baf04718233e8f8f1670670669ecf3
2016-07-29 16:38:50 +01:00
Moriel Schottlender 1553a1a520 Remove 'mark as unread' from dotdotdot menu in items
Bug: T140517
Change-Id: Ie6c0f003239d4a683a1651df9470074668faa4eb
2016-07-28 15:47:42 -07:00
Moriel Schottlender 51331f318a Update and fetch seenTime per source
Also update the seenTime of the remote wikis when opening the
cross-wiki bundle.

Bug: T134855
Change-Id: I10510fc612f7d5349f8b579ede70be647a119470
2016-07-27 17:39:45 -07:00
Moriel Schottlender 9ab351352f Redo the notification badges
Bug: T115845
Bug: T140900
Depends-On: Ic666540d70de52f
Change-Id: I34e2736490319989a3a251a43fbe8080ab960b00
2016-07-27 11:51:05 -07:00
jenkins-bot 0815c41560 Merge "Echo notifications for mention failures" 2016-07-27 11:27:55 +00:00
WMDE-Fisch 868190bbf6 Echo notifications for mention failures
- Adds global "$wgEchoMentionStatusNotifications"
   to activate mention status notifications.
   (must be set before extension is loaded)
 - Adds notification types and icon for some basic mention
   failures.
 - Adds failure and stats for anonymous IP.
 - Adds check for links to user subpages.
 - Adds config var for max mention notifications allowed.
 - Bundles notifications.
 - Refactors test for the event generation and adds tests
   for unknown users, user links with subpages and failures
   for too many mentions.

Bug: T136326
Change-Id: I388bdc3714feb9a2865a5ad10dbeabb0a6a09a4f
2016-07-27 13:00:25 +02:00
Matthew Flaschen c0a464e425 BREAKING CHANGE: More ISO 8601 for seen time
* Add ISO 8601 date format to notification output

  This is actually supposed to be the only output date format used,
  per https://www.mediawiki.org/wiki/API:Data_formats#Timestamps , but
  I'm not doing anything to deprecate the others right now.

* Change wgEchoSeenTime to use ISO 8601.  mwgrep and extension grep do
  not show any usages.  However, since it is a breaking change, to
  minimize disruption, I'm also using this opportunity to change
  'message' to 'notice'.

* Remove wgEchoInitialNotifCount.  I was going to also change 'message'
  to 'notice' here too, but then I saw it was totally unused.
  (It was read in Echo to populate a JS variable, but then it was
  unused.)

* Make sure the Special:Notifications page aggregation by days is
  done by local days, even though the timestamp per item is still
  UTC. This is to make sure the days are displayed correctly in
  the local timezone.

* Change all reverse sorting callbacks to handle comparisons of
  ISO 8601.

Bug: T141413
Change-Id: I20271345c7d350dc3e7f467288e5cdc98e6250cc
2016-07-27 02:42:08 +00:00
jenkins-bot 834c240948 Merge "Adjust mobile view for the new settings cog menu" 2016-07-25 20:12:38 +00:00
Moriel Schottlender 1dd3af10bb Adjust mobile view for the new settings cog menu
Now that we have the cog menu, it should be placed correctly in
mobile and the "preferences" link should be hidden.

Since MobileFrontend doesn't have the personal toolbar, and we
can't cheat by using jQuery and grabbing the url of preferences,
we have to get SpecialNotifications.php to output the urls
to a wg variable and reading it from there.

Bug: T115528
Change-Id: I6a69823d6f75c376c04e9a21d79916321e417178
2016-07-25 19:30:44 +00:00
jenkins-bot 5b7f24b11e Merge "Use body color (gray) for <em>s in bundle headers" 2016-07-25 14:23:13 +00:00
Roan Kattouw ebd995072f Use body color (gray) for <em>s in bundle headers
Bundles only have a header, no body, so when we include excerpts
in bundle headers, we wrap them in <em> tags. This change
makes these excerpts the same color as the excerpts in the
non-bundled case.

Bug: T139960
Bug: T141034
Change-Id: I6a14274b42ba672ab1366c0dd106ea0847db6404
2016-07-22 16:58:39 -07:00
jenkins-bot 53f39017f0 Merge "Follow-up d47f0bd3: only capitalize the first letter of date titles on Special:Notifications" 2016-07-22 23:53:21 +00:00
Roan Kattouw bb09f1f9fa Follow-up d47f0bd3: only capitalize the first letter of date titles on Special:Notifications
Bug: T141092
Change-Id: Ib68c118279b8fe248e8523801a7fd85cc79c2138
2016-07-22 16:43:31 -07:00
jenkins-bot 20dd822284 Merge "Hide the 'preferences' link from Special:Notifications JS" 2016-07-22 22:23:05 +00:00
Moriel Schottlender 4ac79a6253 Hide the 'preferences' link from Special:Notifications JS
In JS version, the preferences link is in the cog menu.

Bug: T115528
Bug: T141141
Change-Id: I18503f1deccf82c9f6580198570822e97f053f9b
2016-07-22 22:10:00 +00:00
Moriel Schottlender d739b89d77 Add a down indicator to the cog menu
As pointed out by Roan, this is the consistent way ooui elements
are displayed when they have a drop-down menu.

Change-Id: I36ecdd4cf6374dff34be15b24959548887788130
2016-07-22 15:06:28 -07:00
jenkins-bot 6fa22b5d49 Merge "Check for local unread talk notifications in alert popup too" 2016-07-22 01:54:32 +00:00
Moriel Schottlender 0431dbf235 Check for local unread talk notifications in alert popup too
Alert popup can now also have talk-page related notifications, so
we should make sure we listen to 'allTalkRead' event when it is
updating as well.

Bug: T141047
Change-Id: I1317efc63b503bd1a55734ebe377ff4c617fe485
2016-07-21 16:18:51 -07:00
jenkins-bot 7d29b6088e Merge "Make Special:Notifications responsive" 2016-07-21 21:07:56 +00:00
Moriel Schottlender 35a5384900 Change 'pt-notification-message' to 'pt-notification-notice'
And change all CSS and JS dependent calls/tags based on the new
tooltip message and ID of the personal tool <li> item.

Change-Id: I136fabe5710f90da10eb8d4afe92acdb77571eec
2016-07-21 11:19:17 -07:00
jenkins-bot e1b2823703 Merge "Add a mark-all-read button and a settings menu to Special:Notifications" 2016-07-21 14:04:39 +00:00
Moriel Schottlender 545d4e67ae Add a mark-all-read button and a settings menu to Special:Notifications
Add a global-wiki 'mark all as read' to the Special:Notifications page.
The 'mark all as read' will makr all notifications in the given
wiki. The context of the wiki changes when filters are chosen,
and so the message of the button changes as well.

Bug: T115528
Change-Id: Ibd9dcdf7072d6cbc1a268c18e558e6d0df28f929
2016-07-20 17:25:38 -07:00
Moriel Schottlender 8a69d86d18 Make Special:Notifications responsive
As a first step for mobile support, make the page responsive,
hide the sidebar, and slightly adjust button/title positions and
sizes so they fit in a small screen.

Bug: T140687
Change-Id: I98f264948a57924f6370a861381456ce9c82f8d8
2016-07-19 15:11:47 -07:00
jenkins-bot 1c7d93ba00 Merge "i18n: Native digits on PageNotificationsOptionWidget and PaginationWidget" 2016-07-19 21:53:38 +00:00
jenkins-bot 47de8691eb Merge "Show placeholder widget when there are no notifications" 2016-07-19 20:25:46 +00:00
Stephane Bisson c21c5cc821 Show placeholder widget when there are no notifications
When there are only foreign notifications, marking them all
as read empties the flyout completely. With this change,
we now show the placeholder widget with the 'no notifications'
message instead.

Bug: T132202
Change-Id: I7ee38b160ca03c08711670a3296ba4ab45a5eb6c
2016-07-19 20:14:39 +00:00
jenkins-bot 8b0dbd2031 Merge "Relate read-state filter and mark read/unread action" 2016-07-19 15:22:48 +00:00
jenkins-bot 060bc4e8b5 Merge "Fix truncation of notification headers" 2016-07-19 00:28:11 +00:00
jenkins-bot 184874473d Merge "Add tooltips to page filters" 2016-07-19 00:07:03 +00:00
Roan Kattouw d36c0ab123 Fix truncation of notification headers
We need a fixed-width CSS table with a number of fixed-width
cells and one cell that takes up the remaining width, with
text truncation. This is a pain to do with CSS tables,
but this trick I found on StackOverflow[1] works well:
wrap the contents of the cell in a div that's position: relative;,
containing another div that's position: absolute; width: 100%;

[1] http://stackoverflow.com/questions/7569436/css-constrain-a-table-with-long-cell-contents-to-page-width

Bug: T140349
Change-Id: I507f915f06185c767d7a5c8edbff6c341e07b6e2
2016-07-18 17:06:48 -07:00
Moriel Schottlender 5aaf6d26d8 Relate read-state filter and mark read/unread action
When we are viewing a certain read state filter ('read' or 'unread')
the visibility of items should correspond to that state even when
the user marks a specific item as read/unread. That means that the
system should remove these items from view when the action is taken.

In this commit:
* The controller makes the judgment of whether to remove items when
  read/unread action is taken, based on whether a filter is set.
* We clean up the terminology of discard - no more 'remove' - to
  make sure we have consistency in the code.
* Related: The 'discard' event is now scoped within the hierarchy;
  meaning, lists emit 'discard' when an item is removed, grouplist
  emits 'discard' when a group is removed, and the manager emits
  'discard' when an entire notification model is removed. This
  means we can actually have proper hierarchy and organization with
  a single event, and not worry about clashing between the intentional
  'discard' action and the event 'remove' that is also used while
  resorting happens.
* The model manager emits a discard event when a model is removed
  so that the general list can listen to the manager and remove an
  entire batch of items if needed.
* The pagination model now updates the count for the current page
  rather than some vague notion of the last page. This is also
  updated when the controller removes items, so we can get an
  accurate count in the page for the number of notifications that
  are displayed.

Bug: T136891
Change-Id: I247c618042ef256fadf09922f7b83bd1ad361f64
2016-07-18 13:23:57 -07:00
jenkins-bot d27cab59d6 Merge "Add a SeenTimeModel to handle seenTime in sources" 2016-07-18 13:01:35 +00:00
jenkins-bot 9352ce9756 Merge "Dim the title of current wiki if it has 0 notifications" 2016-07-15 19:09:43 +00:00
Moriel Schottlender eadaac1c84 Dim the title of current wiki if it has 0 notifications
Bug: T139646
Change-Id: I827cb43d5badd0a13666226691450a73ddcc85ea
2016-07-15 11:42:47 -07:00
Moriel Schottlender 3a710790d5 Add a SeenTimeModel to handle seenTime in sources
This organizes the operation of seenTime so we can store and
follow up on it based on different sources, as well as update
it correctly remotely when needed.

Change-Id: I629ecfc84999be998b45c9c7adb00ea7e3e51742
2016-07-15 11:25:38 -07:00
Moriel Schottlender 7660732bb7 Fade in/out elements that are moved in the notifications list
Bug: T126214
Change-Id: Iad5df1f56bfbd12cb6f42dd6e73860bdcc27cd68
2016-07-15 18:04:49 +00:00
jenkins-bot 880fb2a43d Merge "Fix messages/notices documentation" 2016-07-14 18:55:29 +00:00
jenkins-bot 1a9c47f527 Merge "Capitalize title dates in Special:Notifications" 2016-07-14 13:37:07 +00:00
Ed Sanders f000a82c1d Fix messages/notices documentation
Bug: T139682
Change-Id: I453b7377c13ca172774e103c1f097423bf68e9b2
2016-07-14 13:45:23 +01:00
Ed Sanders 1e4ed9cafe Remove extra 1px top border and margin from popup list
Bug: T140354
Change-Id: I06bfc014f485b9cd460dfda0a9c7f982de4f9bf6
2016-07-14 13:30:03 +01:00
Moriel Schottlender d47f0bd350 Capitalize title dates in Special:Notifications
Bug: T137634
Change-Id: I84b03f030f6182194a38a7bbfc200f5e0c187878
2016-07-13 13:56:17 -07:00
Moriel Schottlender ac5c9c17f8 Prevent click propogation when clicking 'mark as read' button
Bug: T139339
Change-Id: I3a19a0d01b036fe3c0379e3a5bc0c3f0e5f9473e
2016-07-13 11:30:55 -07:00
Stephane Bisson 35e782c3d8 Add tooltips to page filters
Bug: T139644
Change-Id: I6ae0d0e8c6c7dd79b9ab00db1d601f670764d3a4
2016-07-13 09:51:51 -04:00
jenkins-bot be3cca488d Merge "Make sure sidebar titles are under one another in Special:Notifications" 2016-07-11 15:23:12 +00:00
Ebrahim Byagowi 4eba4c1dd0 i18n: Native digits on PageNotificationsOptionWidget and PaginationWidget
Similar to Icdd52ea0267ffbaa0e103070655735eff8423ca1

Change-Id: I8667fc8b7027d2c9c8b42155a7b79ef18500dc2b
2016-07-09 07:52:23 +00:00
Moriel Schottlender 3f723ab7d1 Use 'uselang' when fetching unread page notifications
This would make the wiki names localized to the current user
interface language, rather than the wiki language.

Bug: T139807
Change-Id: I2b787e1486819d6833e169ac6db519cd36a3c3eb
2016-07-08 16:27:02 -07:00
Moriel Schottlender 4b204644a2 Make sure sidebar titles are under one another in Special:Notifications
Bug: T139807
Change-Id: I59621117835d5ba3f0314f3cdd0c7cd0f0cd6b7c
2016-07-08 16:00:59 -07:00
jenkins-bot 152bd3e622 Merge "Store local source as 'local' rather than dbName" 2016-07-08 14:27:51 +00:00
jenkins-bot 28aca00dce Merge "Properly aggregate the itemUpdate event" 2016-07-08 14:16:20 +00:00
jenkins-bot 39fef27775 Merge "Only fetch 'unreadfirst' for the Popup, not Special:Notifications" 2016-07-08 13:37:57 +00:00
Moriel Schottlender 4b137b3208 Followup Ib7f4dc4ea: Bring back message tooltip with 'notice' text
The message for tooltip-pt-notifications-message was removed to comply
with the new naming. The problem is that in the back end, sections are
still defined as 'message' vs 'alerts' and the sections in the user
toolbar are defined with those terms. In no-JS mode (which is before
the user clicks any of the badges) this tooltip is created automatically
by MediaWiki based on class names.

It's easier to return the message key with different text for translation
and wait for the bigger tech debt to correct all instances of 'message'
to 'notice' (including in the API, which would require a much more
massive work)

Bug: T139520
Change-Id: I6368b63e38f64aa065f2580df812de1c63a93716
2016-07-07 17:09:18 -07:00
Moriel Schottlender eea0dea7ce Only fetch 'unreadfirst' for the Popup, not Special:Notifications
We need the API to return the notifications for the special page
in timestamp order and not read/unread order, so that the 'continue'
value is still correct.

On top of that, if we have many unread notifications, they should
still be placed according to the dates, so the API must bring back
proper result.

In this fix, we add 'unreadFirst' to filters, and only use that
filter when needed (namely, in the popup)

Bug: T136885
Change-Id: I3018d09b009d735402d83074a5ffcd14ea1c242a
2016-07-07 16:29:40 -07:00
Moriel Schottlender 7879f0c9f8 Change 'messages' to 'notices' throughout the interface
Bug: T139520
Change-Id: Ib7f4dc4ea1ff4c5d1fccdc5fdf0c66b049162cb2
2016-07-07 15:57:49 -07:00
Moriel Schottlender fcd2f41151 Store local source as 'local' rather than dbName
When we fetch the pages per wiki, the API returns an object that
defines the local wiki we are in as its dbName; this then gets
stored into the model as the source, which forces us to check against
the dbName whenever we want to perform an operation so we can tell
the API layer to fetch and perform the actions locally, rather than
use a foreign API.

The term 'local' makes no sense for naming the model (and upcoming
tech debt work will fix this) but it makes sense in the context of
the API layer -- and hence, the source name should follow suit.

This fix makes sure that the local wiki objects always have their
sources defined to be 'local', and thus making us use the test for
dbName in very specific points (when we get the data) rather than
throughout the codebase, randonly.

This is also the first step to allow proper updating of things like
seenTime accross wikis, especially in cases where we view a remote
wiki as if it is local (in the Special:Notifications page)

Change-Id: I94633a1cd074580cbc5029d7c75d179e908e5c52
2016-07-07 12:20:39 -07:00
Moriel Schottlender 5c81ac8d3b Properly aggregate the itemUpdate event
Instead of 'cheating' and externally aggregating the itemUpdate event
we should just let the relevant (non-xwiki) models aggregate this
centrally and properly, and include it as an offered event.

Change-Id: Ibe528fe971e1be8309a97275b1a1be8979306ff5
2016-07-07 19:08:47 +00:00
Matthew Flaschen 5022af0b22 Correct section (alert/message/all)
Fix issue where it said 'View x messages' in the alerts popup.

Change-Id: I4b6d00f0ba704ec76c6b5068ab923e51d5804f07
2016-07-06 20:15:47 -04:00
Stephane Bisson db838e42ce Keep bundled notification compact header on one line
Bug: T139321
Change-Id: I4b0a7173bc06a0760efff544bcc28a59ba72ce7f
2016-07-06 20:44:00 +00:00
jenkins-bot 4d5e4505df Merge "Followup Iae32cbf82cdb: Set width to Special:Notifications" 2016-07-05 21:52:34 +00:00
jenkins-bot 27a1572d5c Merge "Use accessible colors on read status marker" 2016-07-05 21:50:03 +00:00