about summary refs log tree commit diff
path: root/app/javascript/mastodon/actions/notifications.js
AgeCommit message (Collapse)Author
2020-12-15Change notification permission handling (#15176)ThibG
* Change notification permission handling - allow changing individual alert settings even if permission is not explicitly enabled (asks for permission on toggle) - persist permission request banner dismissal across sessions through settings * Add additional, more discrete message to grant permissions * Change permission granting button design according to reviews Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-11-23Fixed ESLint error (#15214)abcang
* eslint --fix * fix consistent-return * fix promise/catch-or-return * ignore import rule
2020-11-11Add button to dismiss desktop notifications permissions banner (#15141)Eugen Rochko
2020-10-13Fix browser notification permission request logic (#13543)ThibG
* Add notification permission handling code * Request notification permission when enabling any notification setting * Add badge to notification settings when permissions insufficient * Disable alerts by default, requesting permission and enable them on onboarding
2020-09-29Fix unread notification markers (#14897)Takeshi Umeda
2020-09-26Add unread notification markers (#14818)ThibG
* Add unread notification markers Fixes #14804 * Allow IntersectionObserverArticle's children to be updated
2020-09-18Add option to be notified when a followed user posts (#13546)Eugen Rochko
* Add bell button Fix #4890 * Remove duplicate type from post-deployment migration * Fix legacy class type mappings * Improve query performance with better index * Fix validation * Remove redundant index from notifications
2020-05-29Fix timeline markers not working on Chrome (#13887)ThibG
* Periodically save timeline markers This saves timeline markers immediately upon message arrival, but not more than once every 5 minutes. This does not change how the markers are saved on closing the window, except that it avoids submitting them if there is no need for it. * Use the Fetch API when possible instead of XHR on window unload
2020-01-23Add announcements (#12662)Eugen Rochko
* Add announcements Fix #11006 * Add reactions to announcements * Add admin UI for announcements * Add unit tests * Fix issues - Add `with_dismissed` param to announcements API - Fix end date not being formatted when time range is given - Fix announcement delete causing reactions to send streaming updates - Fix announcements container growing too wide and mascot too small - Fix `all_day` being settable when no time range is given - Change text "Update" to "Announcement" * Fix scheduler unpublishing announcements before they are due * Fix filter params not being passed to announcements filter
2019-12-01Add follow_request notification type (#12198)ThibG
* Add follow_request notification type The notification type already existed in the backend but was never pushed to the front-end. This also means translation strings were also available for the backend, from the notification mailer. Unlike other notification types, these are off by default, to match what I remember of Gargron's view on the topic: that follow requests should not clutter notifications and should instead be reviewed at the user's own leisure in the dedicated column. Since follow requests have their own column, I've deemed it unnecessary to add a specific tab for them in the notification quick filter. * Show follow request link in single-column if there are pending requests, even if account isn't locked * Push follow requests from notifications to the follow_requests list * Offer to accept or reject follow request from the notification * Redesign follow request notification
2019-11-04Fix notification filters not applying to poll options (#12269)ThibG
2019-09-21Fix updates being hidden behind pending items on unmounted components (#11898)Eugen Rochko
2019-09-18Fix “load more” adding older toots/notifications to pending items (#11883)ThibG
2019-07-16Add option to disable real-time updates in web UI (#9984)Eugen Rochko
Fix #9031 Fix #7913
2019-06-30Optimize makeGetStatus (#11211)ThibG
* Optimize makeGetStatus Because `ImmutableList.filter` always returns a new object and `createSelector` memoizes based on object identity, the selector returned by `makeGetStatus` would *always* execute. To avoid that, we wrap `getFilters` into a new memoizer that memoizes based on deep equality, thus returning the same object as long as the filters haven't changed, allowing the memoization of `makeGetStatus` to work. Furthermore, we memoize the compiled regexs instead of recomputing them each time the selector is called. * Fix memoized result being cleared too often * Make notifications use memoized getFiltersRegex
2019-06-18Completely hide toots matched by “irreversible” filters even if they got ↵ThibG
to the client (#11113) Fixes #11090
2019-03-17Save quick filter settings when selecting a different filter (#10296)ThibG
The active filter is stored in the web app's settings, but no save is explicitly triggered, meaning that it is only saved when a different setting is changed.
2019-03-11Support pushing and receiving updates to poll tallies (#10209)ThibG
* Process incoming poll tallies update * Send Update on poll vote * Do not send Updates for a poll more often than once every 3 minutes * Include voters in people to notify of results update * Schedule closing poll worker on poll creation * Add new notification type for ending polls * Add front-end support for ended poll notifications * Fix UpdatePollSerializer * Fix Updates not being triggered by local votes * Fix tests failure * Fix web push notifications for closing polls * Minor cleanup * Notify voters of both remote and local polls when those close * Fix delivery of poll updates to mentioned accounts and voters
2018-12-16Add notification quick-filter bar in the frontend app (#9399)Paweł Ngei
* create FilterBar componer and its container, unstyled * introduce basic styling for FilterBar * add selection css * allow FilterBar to display active CSS with js * connect the FilterBar to the Redux state * change getNotifications to use filter * remove temporary comments * add an option to turn the FilterBar off in settings * fix showFilterBar data type to boolean * fix eslint errors * add English and Polish translations * allowed filter bar overflow to accomodate for longer languages * fix mispelled translation key * add unified CSS look * replace text in FilterBar with icons * add tooltips * replace text @ with an icon * introduce simple and advanced filtering view * add ability to toggle the advanced view * add Polish translations * change Advanced View description to be more clear * make each filter flush notifications and load new ones, fixing pagination * simplify getNotifications once frontend filtering is not needed for FilterBar * add a semicolon * Revert "simplify getNotifications once frontend filtering is not needed for FilterBar" This reverts commit 9f4be7857135b0327814bd22a3e8a4e7b546f7cc. * reset filter to 'all' when turning off FilterBar
2018-12-01Fix last_status parameter for notifications and conversations (#9407)ThibG
2018-11-10Fix loading indicator inconsistency (#9252)Eugen Rochko
* Use global loading indicator when loading more items * Use local loading indicator for notifications And remove global loading indicator for initial custom emojis load
2018-07-07Fix filters not affecting notifications in web UI (#7977)Eugen Rochko
* Hook up filtering to statuses in notifications column * Filter notifications for sound, desktop notifications
2018-05-19Improve payload format of Web Push API now that it's open (#7521)Eugen Rochko
> Good lord what is happening in there Previously the contents of the Web Push API payloads closely resembled the structure of JavaScript's [Notification](https://developer.mozilla.org/en-US/docs/Web/API/Notification). But now that the API is open to non-browser apps, and given that there is no required coupling between contents of the payload and a Notification object, here is how I changed the payload: ```json { "access_token": "...", "preferred_locale": "en", "notification_id": "12345", "notification_type": "follow", "title": "So and so followed you", "body": "This is my bio", "icon": "https://example.com/avatar.png" } ``` The title, body and icon attributes are included as a fallback so you can construct a minimal notification if you cannot perform a network request to the API to get more data.
2018-05-18Use randomized setTimeout when fallback-polling and re-add since_id (#7522)Eugen Rochko
2018-05-07Use plaintext value for field value tooltips in web UI (#7388)Eugen Rochko
Fix #7383
2018-04-13When notification type filtered, ignore live updates for it (#7101)Eugen Rochko
Fix #5625
2018-03-29Fix TypeError on follow notification (#6950)unarist
`notification.status` may not be present, e.g. follow notification.
2018-03-24Allow clients to fetch notifications made while they were offline (#6886)Akihiko Odaki
2018-03-24Store objects to IndexedDB (#6826)Akihiko Odaki
2018-03-12Fix follow relationships not loading after notifications fetch (#6746)Eugen Rochko
2018-01-02Fix newlines-to-spaces functionality (#6158)Noiob
yay for regexes, amirite
2017-10-14replace newlines in desktop notif with spaces instead of removing them (#5361)Ondřej Hruška
2017-07-11refactor: Rewrite immutablejs import statements using destructuring (#4147)Sorin Davidoi
2017-06-23Remove unused variables (#3906)Yamagishi Kazutoshi
2017-06-11Fix #3665 - Refactor timelines reducer (#3686)Eugen Rochko
* Move ancestors/descendants out of timelines reducer * Refactor timelines reducer All types of timelines now have a flat structure and use the same reducer functions and actions * Reintroduce some missing behaviours * Fix wrong import in reports * Fix includes typo * Fix issue related to "next" pagination in timelines and notifications * Fix bug with timeline's initial state, expandNotifications
2017-05-20Improve eslint rules (#3147)Yamagishi Kazutoshi
* Add semi to ESLint rules * Add padded-blocks to ESLint rules * Add comma-dangle to ESLint rules * add config/webpack and storyboard * add streaming/ * yarn test:lint -- --fix
2017-05-13Revert HTML CW changes (#3020)beatrix
* selectively Revert "Fix regressions from #2683 (#2970)" This reverts commit 72698bc3b49925a2b2955f32e5a562c1eecd729b. * Revert "Handle hashtags in spoiler_texts (partial fix for #699) (#2683)" This reverts commit e2491680e696d2c285a798ec4c66b26d2748df66.
2017-05-12Fix locales again (#3010)Eugen Rochko
* Normalize locales * Restore "mention" locale key
2017-05-11Focus tab of Mastodon when clicking notification (#2989)Yamagishi Kazutoshi
2017-05-11Refine unescapeHTML (#2977)Yamagishi Kazutoshi
2017-05-11Fix regressions from #2683 (#2970)Eugen Rochko
* Fix regressions from #2683 Properly format spoiler text HTML, while keeping old logic for blankness intact Process hashtags and mentions in spoiler text Format spoiler text for Atom Change "show more" toggle into a button instead of anchor Fix style regression on dropdowns for detailed statuses * Fix lint issue * Convert spoiler text to plaintext in desktop notifications
2017-05-09Remove jquery-ujs (#2939)Yamagishi Kazutoshi
* Remove jquery-ujs * fix for eslint
2017-05-04When streaming API is disconnected, poll home/notifications (#2776)Eugen Rochko
* When streaming API is disconnected, poll home/notifications Display slightly different empty home timeline message if user is following others Cull notifications to 20 items when over 40 get added in real-time Run manage:translations * Optimize <HomeTimeline /> a little
2017-05-03Replace sprockets/browserify with Webpack (#2617)Eugen Rochko
* Replace browserify with webpack * Add react-intl-translations-manager * Do not minify in development, add offline-plugin for ServiceWorker background cache updates * Adjust tests and dependencies * Fix production deployments * Fix tests * More optimizations * Improve travis cache for npm stuff * Re-run travis * Add back support for custom.scss as before * Remove offline-plugin and babili * Fix issue with Immutable.List().unshift(...values) not working as expected * Make travis load schema instead of running all migrations in sequence * Fix missing React import in WarningContainer. Optimize rendering performance by using ImmutablePureComponent instead of React.PureComponent. ImmutablePureComponent uses Immutable.is() to compare props. Replace dynamic callback bindings in <UI /> * Add react definitions to places that use JSX * Add Procfile.dev for running rails, webpack and streaming API at the same time