New update version page
Background / User story
As ABP user I would like to be informed about new updates so I can know what was changed
What to change
- Design: https://eyeogmbh.invisionapp.com/share/FNU32OJKERP
- Research: https://dovetailapp.com/projects/20f2176b-5c9c-4f9e-bee4-05777c63cf2c/insights/present
- Spec: eyeo/specs/spec!300
-
Development: Add
"ignore": ["/en/ignorable.json"]
to crowdin.yml (see #371 (closed)) to ignore updates files when uploading translatable strings to Crowdin.
Hints for testers
- On first-run: First-run page should open.
- On update: Updates notification should be shown instead of automatically opening updates page in foreground.
- On update with a data corruption: Problem notification should be shown (see #589 (closed)) instead of updates notification.
- Day1 landing page should remain visually and functionally unchanged.
- New notification should be dismissable (e.g. not reappear when opening the icon popup again or after downloading notifications.json).
- Clicking on the Adblock Plus logo in the updates page should open the link in a new tab.
- Clicking on a notification link should close the icon popup on Firefox.
- Language names in desktop settings page should be shown correctly.
Hints for translators
- Replaced content of updates.json.
- Added updates-latest.json for any update-specific strings that are not meant to be translated by/uploaded to Crowdin. Currently, this file merely contains placeholder strings for testing. The content will be replaced with the actual strings later on in #702 (closed).
Integration notes
- Requires core#126.
- Allow notifications to open updates.html using "abp:updates".
- Call
showUpdatesNotification()
from lib/notifications.js instead of opening updates.html directly.- Remove existing platform restriction so that it will be shown on all supported platforms.
- Our plan is to increment the
updatesVersion
number in adblockplusui/lib/prefs.js for each major update in order to trigger the updates notification each time.
- Renamed lib/day1Init.js to lib/notifications.js.
- Import the following new files:
- data/locales.json
- data/updates.json
- skin/icons/updates/panda.gif
- skin/icons/email-white.svg
- skin/icons/facebook-white.svg
- skin/icons/fixes.svg
- skin/icons/improvements.svg
- skin/icons/twitter-white.svg
- skin/icons/update.svg
- Import translations from locale/*/updates-latest.json.
- Stop importing the following files:
- data/languages.json
- skin/icons/updates/*
Edited by Thomas Greiner