Commit graph

16 commits

Author SHA1 Message Date
Ostrzyciel edd0a7d949 Move the warning outside sitenotice, tidy up code
There's a lot of things going on here, so a quick summary:
* Moved the warning outside sitenotice to avoid reflows and all
  kinds of other issues, including those with dismissable notices.
* Placed the warning on the bottom of the page, on all skins, for
  consistency and to avoid obstructing vital UI elements such as
  site name, user tools, search box.
* Changed the UI to use OOUI for, again, consistency and to avoid
  reinventing the wheel with button styling.
* Removed the cookie emoji as it was only taking up valuable space
  on mobile and making designing a sensible layout much harder.
* Merged the mobile and desktop RL modules into a single, responsive
  one. The warning will work correctly for any skin and screen width.
* The integration tests are truly horrible, I tried to at least
  make them work. They deserve a proper rewrite, but that should be
  done after the extension switches to the new hook system.

I will post screenshots of this in action in the first of the linked
tasks.

Bug: T271047
Bug: T173335
Change-Id: I6e2a3d7aeccc0d4df1b3238e52c67e72099d27d8
2021-02-01 11:23:53 +01:00
Paladox 0dc0e795a1 Replace deprecated hook
Bug: T254302
Change-Id: I140af90b5f175974eb20873f2c1c6449be5a6669
2020-11-22 15:48:59 +00:00
takidelfin e0d100ca60 Replaced CSSLint with StyleLint
Removed old csslint package and added grunt-stylelint and stylelint
config for Wikimedia. Fixed the violations caused by this change.

Bug: T206506
Change-Id: Ieb1f087de859f5321c4f1fe65c0e3bf7b655ca15
2018-11-25 23:53:51 +00:00
Fomafix 1982eb268b Use mw.config instead of window.mw.config in JavaScript
Change-Id: I4ecc5d842cccc3905ee4794106bc63de707c9fbb
2018-08-27 21:10:03 +02:00
jdlrobson 60929abb69 Drop Minerva LESS dependency
* Instead of repeating CSS already in Minerva instead use an element
"banner-container" already in use by CentralNotice (given this is also a banner)
This removes the need for positioning styles at Minerva is delegated to handle that.
* Rewrite existing rules using mediawiki ui variables to make clearer line-height
relates to iconography

Bug: T140807
Change-Id: I1bd3fb164bbb7866e5d32367c66afae5c1933bcb
2018-05-19 11:51:16 +02:00
Jesús Martínez Novo 37c6d7d217 Check also the dismissed cookie on client-side
If geolocation is done at client-side, it was displaying the warning without
checking the dismissed cookie. Now the main module will remove it if the cookie
exists, and the geolocation service won't display it again.

The idea of doing geolocation at client side rather than server side is to
allow more pages cached at varnish/squid, but it still required to let the
dismissed cookie break the cache. With this change, the dismissed cookie can
be blocked at the varnish/squid level, all pages will contain the cookie
warning notice, but it will be left hidden by the client-side script instead
of displaying it.

In addition, the click handler for .mw-cookiewarning-dismiss has been put
inside a DOMready handler to prevent this code fire before the element becomes
available.

Bug: T183657
Change-Id: I5f7505dbd650867155485d17fff58fb92800581b
2018-04-12 22:46:16 +02:00
Fomafix 1416dc5465 Switch from jshint/jscs to eslint
Change-Id: I278905a67c42d268bb4a891c9df34b0fdbf4307d
2018-03-29 22:03:15 +02:00
Fomafix fc3d0012c7 Use saveOption from module 'mediawiki.api.options'
The module 'mediawiki.api.options' is present since MediaWiki 1.25.

Change-Id: I986afad78f8054596e0efe89aa9e663c6c123f03
2018-03-22 22:12:34 +01:00
Florian Schmidt 4a15a7fb83 Remove explicit font selection
We want to use the font of the page, not some different one.

Change-Id: Iaf8d6ce5e7422a4515fc9e8ab4f067e213609560
2017-01-12 01:42:26 +01:00
Florian Schmidt 9b342e875b Redesign mobile CookieWarning banner
Based on design input from Reading web team (Nirzar).

Bug: T146077
Change-Id: I99aa74842486c4c397462dd51f55c272ae17ad07
2017-01-11 23:06:25 +01:00
Florian Schmidt c35b78fae8 Add option to limit the cookie warning to specific regions
With this change, CookieWarning gets two new ways to limit the warning
bar to users of specific (configurable) regions. Based on the geo location
service (which can be configured, too, defaults to freegeoip.net), the
extension will try to get the region of the user (based on the IP address)
and checks it against the configured regions.

With the configuration variable $wgCookieWarningGeoIPLookup, the wiki sysadmin
can configure, if the lookup should be done with PHP (the timeout for the
request is hardcoded to 2 sedonds max), which will save the paylod sent to
the user, or with JavaScript, which will be asynchronous.

Deactivating this feature is easily done by simply setting the configured regions
to false, instead of an object.

Bug: T145780
Change-Id: I4d9371b8608ef270c11c42bdb3a773675977ab3a
2016-10-07 23:51:18 +02:00
Florian Schmidt b8686223e5 Allow non-JS users to dismiss the CookieWarning bar
This commit change sthe "OK"-link to dismiss the cookiewarning bar
from a link to a POST-based form, so that non-JS users are able to
click it, too. If clicked, the dismiss is saved int he user prefs
(if the user is logged in) or in a cookie.

The JS version still works without reloading the page.

Bug: T145647
Change-Id: I711413abcbc131aaba34e8b285630ef1a1c9bda1
2016-09-18 00:00:14 +02:00
Florian 97c134e397 Improve documentation of code and add test features (npm, composer)
Also: Add license (MIT).

Change-Id: Ia184b396b648ecb4ef30b40d13618e2ecf72294a
2016-01-10 19:31:07 +01:00
Florian e37bbc73cc Change de-Message, adjust mobile less and add url config option
de i18n message now represents the en translation. The mobile opacity
is now 1, instead of 0.85 from desktop (it covers text in mobile, which
makes it harder to read with the opacity).

The URL isn't hardcoded anymore, it now can be configured with a config
option.

Change-Id: I9a4e3eb40675496e9467ecee4307298d0542633e
2015-08-16 12:00:33 +02:00
Florian bc100e294d Show CookieWarning for mobile users and save setting to user
Enable the CookieWarning to be visible on a mobile device (bottom, instead of top).

Instead of only rely on cookies to save, that a user accepted that we use cookies,
save it as a user preference, too.

Change-Id: Ib03d5eafd4392d14315115c158b547b9e26a173c
2015-08-16 11:49:05 +02:00
Florian b60d6e857a Initial commit
Change-Id: I75ba290d33d981c1c3789868f4ac21916faabde0
2015-07-27 19:19:29 +02:00