Fixes a bug in `controllers/insert-hyperlink` where `addEventListener` was called with different (anonymous) functions than the matching `removeEventListener` calls.
For sites that are configured to mute some or all categories and tags
for users by default, groups can now be configured to set members'
notification level to normal from the group manage UI.
If there's already a `LockOn` instance, clear its lock before creating creating a new one. Fixes a shaky viewport effect after certain transitions.
Includes:
* Slight refactor (elementId wasn't an id, but a selector - it included the "#" prefix)
* Add support for a[name=X] anchors in `jumpToPost`
* Scope down anchors to the #main element (Embeded fontawesome sprites are causing conflicts, e.g. when given `bed` anchor, `<a name="bed">` was at odds with `<symbol id="bed" viewBox="0 0 640 512">(…)</symbol>`)
* REFACTOR: `refreshSort` doesn't cause it to sort again, it's misleading
* FIX: Move queryParams to each discovery controller rather than shared
This fixes issues where params previously would not reset between
routes. For example if you added `max_posts=1` to /latest and then went
to a category.
* Add backward compatibility for (action "changeSort") for themes
* FIX: refreshing was not working
* Update app/assets/javascripts/discourse/app/controllers/discovery/topics.js
Co-authored-by: Jarek Radosz <jradosz@gmail.com>
Co-authored-by: Jarek Radosz <jradosz@gmail.com>
When visiting a permalink with an anchor (e.g. /important-link#notes) the anchor part was being dropped during redirection.
The change doesn't have a test. Functions like scrollToPost or scrollToElement don't have any effect in the test environment.
Mostly de-jQuery-ification. This refactor tries to closely preserve the original behavior.
Changes:
* Store the interval inside the class (allows using `clearLock()` on `LockOn` objects)
* Extract the interval function to a separate method
* Math.max result is never undefined (per MDN: "[Return value] The largest of the given numbers. If at least one of the arguments cannot be converted to a number, NaN is returned.")
* Replace jQuery's `offset()`
* Private methods be private
* Native `scrollTop` (jQuery's just a wrapper for this)
* `addEventListener`/`removeEventListener`
The controller method `_changeFilters` is now changed to `changeFilters` in the commit 1fc58b5a4e. But it was not modified in the `admin-tools` service script.
We trigger `/topics/timings` requests without ever caring about the
promise afterwards, so they can bleed from one test to another.
If you're very unlucky, this might happen and then the next test
is testing a subfolder, which means you end up with a path like
`/forum/topics/timings` which is not caught by pretender and causes the
suite to fail.
It's easier (and faster) to never send these requests in test mode
than to track the ajax requests and abort them between runs.
Legacy Firefox Android has some quirks around vibration where it:
- asks for permission
- doesn't persist the permission
This makes the default like vibration popup a permission on Firefox
Android <= 68.
This isn't the case (yet?) on their new Firefox which is rolling out
worldwide right now.
I'd say we merge this now and revert in 3 months or so when
https://arewefenixyet.com/ shows a full rollout.
When a tab is open but left unattended for a while, the red, green, and blue
pills tend to go out of sync.
So whevener we open the notifications menu, we sync up the notification count
(eg. blue and green pills) with the server.
However, the reviewable count (eg. the red pill) is not a notification and
is located in the hamburger menu. This commit adds a new route on the server
side to retrieve the reviewable count for the current user and a ping
(refreshReviewableCount) from the client side to sync the reviewable count
whenever they open the hamburger menu.
REFACTOR: I also refactored the hamburger-menu widget code to prevent repetitive uses
of "this.".
PERF: I improved the performance of the 'notify_reviewable' job by doing only 1 query
to the database to retrieve all the pending reviewables and then tallying based on the
various rights.
This hack is only attempting to hide something which should have been working in core and for which we should provide a fix soon. Also it's not working as it should.