Commit Graph

47099 Commits

Author SHA1 Message Date
Martin Brennan
c9ab270abd
FEATURE: Add descriptions on hover for hashtag search results (#19162)
Adds the description as a title="" attribute on the hashtag
autocomplete search items for tags, categories, and channels.
These descriptions can be seen by the user since they are
able to see the results that are returned by the search via
Guardian checks.
2022-11-23 14:59:00 +10:00
Martin Brennan
34ce8f9915
FIX: Do not click track .hashtag-cooked (#19159)
This makes it so the new hashtags are not tracked,
same as the old ones. Also slight commenting in click-track
to explain mention clicks rejection mechanics.

Also deleted the single acceptance spec
since everything is covered better by the unit spec.
2022-11-23 14:25:28 +10:00
Martin Brennan
0c1e5a76ee
FIX: Set chat_allowed_groups based on chat_enabled setting (#19146)
Sets the chat_allowed_groups to staff (the old default) in the database for
people who already have chat enabled if they did not already change it.
        
The assumption is that most people who this applies to will be
upgrading from a version that has neither of these two PRs (
the other PR being #19116) to a version that has both of these PRs.

So, for existing site with chat enabled who haven’t set groups, we
want to persist the value which is more likely to match what that are
upgrading from (staff).

People who don’t yet have chat enabled should get the new value (TL1
and staff) when they do enable it.

Follow up to 05b740036e
2022-11-23 14:12:54 +10:00
Alan Guo Xiang Tan
5552e257d8
UX: Styling backwards compatibility for old user page navigation (#19161)
While updating all user pages to use the new horizontal, scrollable user
page navigation, we've inadvertently broken the interface for plugins which rely on the
`user-main-nav` plugin outlet to extend the user profile page. Such
plugins usually add a new user profile page with the following
template structure which is copied from Discourse core before the user
page navigation redesign:

```
{{#d-section pageClass="..." class="user-secondary-navigation" scrollTop=false}}
  {{#mobile-nav class="..." desktopClass="action-list nav-stacked"}}
    ...
  {{/mobile-nav}}
{{/d-section}}

<section class="user-content">
  {{outlet}}
</section>
```

This commit seeks to add backwards compatibility in terms of the styling
of the interface such that even if the old template structure is used,
it would not look completely broken.
2022-11-23 11:53:08 +08:00
Martin Brennan
27b7f28739
FIX: Unescape :emoji: in hashtag search results (#19147)
This commit unescapes the :emoji: and expands into
an image within hashtag autocomplete results, and
also makes some style tweaks to make sure the emoji
is not too big.
2022-11-23 13:52:00 +10:00
Jordan Vidrine
34e21525d0
UX: Style adjustments & addition of login button on admin invite page (#19073)
* user field label move
* more user field edits
* invite page adjustments
* caps lock adjustment


Co-authored-by: Penar Musaraj <pmusaraj@gmail.com>
2022-11-23 12:06:19 +11:00
dependabot[bot]
072ff72759
Build(deps): Bump engine.io in /app/assets/javascripts (#19151)
Bumps [engine.io](https://github.com/socketio/engine.io) from 6.2.0 to 6.2.1.
- [Release notes](https://github.com/socketio/engine.io/releases)
- [Changelog](https://github.com/socketio/engine.io/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/engine.io/compare/6.2.0...6.2.1)

---
updated-dependencies:
- dependency-name: engine.io
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-23 08:49:48 +08:00
dependabot[bot]
9f709e5873
Build(deps): Bump eslint-plugin-qunit in /app/assets/javascripts (#19158)
Bumps [eslint-plugin-qunit](https://github.com/platinumazure/eslint-plugin-qunit) from 7.3.2 to 7.3.3.
- [Release notes](https://github.com/platinumazure/eslint-plugin-qunit/releases)
- [Changelog](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/CHANGELOG.md)
- [Commits](https://github.com/platinumazure/eslint-plugin-qunit/compare/v7.3.2...v7.3.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-qunit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-23 08:46:56 +08:00
Kris
d6ddb337c8
UX: use solid envelope icon for consistency (#19157) 2022-11-23 08:46:35 +08:00
Kris
b0f380c4c7
UX: improve mention styling (#19156)
This updates mention styling. This reduces bold, increases contrast, and makes inactive mentions look more inactive.
2022-11-23 09:17:03 +10:00
Gerhard Schlager
62be87d5f3
FIX: Filtering rows of S3 inventory files was too strict (#19153)
In some setups the keys start with "original/" and "optimized/" and in some setups the key is something like "foo/original/", so lets make the filter less strict.
2022-11-22 21:41:22 +01:00
Discourse Translator Bot
3c1db9bcb6
Update translations (#19155) 2022-11-22 21:39:02 +01:00
Gerhard Schlager
c75b6cd999
UX: Update "education.dominating_topic" and raise default percentage (#19154)
See /t/82396
2022-11-22 21:11:53 +01:00
Daniel Waterworth
f895f27b02
FIX: When filtering tags for visibility, respect tag group permissions (#19152) 2022-11-22 12:55:57 -06:00
Rafael dos Santos Silva
c18453e38c
FEATURE: Allow staff to flag chat messages (#18919) 2022-11-22 12:14:15 -03:00
Discourse Translator Bot
2eee6fb644
Update translations (#19150) 2022-11-22 15:01:19 +01:00
Kris
69e55a0e1c
A11Y: Improve "my posts" sidebar link title (#19132) 2022-11-22 08:36:43 -05:00
TheJammiestDodger
91701d677f
FIX: Update link in group_in_subject site description (#19148)
Updates the Meta topic link in the `group_in_subject` site description
2022-11-22 10:37:09 +00:00
Loïc Guitaut
01392ab90c FIX: Delete associated channel upon category deletion
Currently when a category is deleted, if it has an associated chat
channel, the latter won’t be deleted automatically.

The fix is quite simple as we were simply missing a `dependent:
:destroy` option on the existing relation.
2022-11-22 10:04:29 +01:00
Joffrey JAFFEUX
e9863b145c
UX: ensures browse view input is focused on page load (#19137)
No test as I don't think it's worth the complexity of a test.
2022-11-22 08:57:17 +01:00
Joffrey JAFFEUX
d127d2acdf
FIX: allows to change sound when no sound was ever set (#19136)
It fixes a bug which was only allowing users with a sound to change it. Users with `none` could not change it again after a full page reset.
2022-11-22 08:57:06 +01:00
Martin Brennan
564292bfc1
FIX: Revert to old hashtag style for hashtag-raw (#19145)
This fix changes the hashtag-raw hashtags, which are
the ones that do not actually match anything, back
to the old style which does not look like mentions.
2022-11-22 17:45:47 +10:00
Martin Brennan
d7b7660061
DEV: Minor hashtag to-markdown fix (#19142)
Follow-up to 3846b6248f,
check if class contains hashtag-cooked rather than
it being the only class.
2022-11-22 13:55:23 +10:00
Kris
bc61629d0f
A11Y: improved titles for chat in the sidebar (#19134) 2022-11-22 09:24:39 +08:00
Alan Guo Xiang Tan
d3366a9092
DEV: Centralise user preferences security test into a single file (#19121)
* Makes it easier to find all the related tests for the particular route
* Remove some tests that don't really provide much value against regressions
2022-11-22 07:43:30 +08:00
Kris
bb42016a72
A11Y: add title & aria-expanded for sidebar toggle (#19130) 2022-11-22 07:17:45 +08:00
Krzysztof Kotlarek
f5692edb5c
DEV: Avoid hard-coded values in topic tracking state spec (#19139)
MessageBus sends message only when post number is equal to topic `highest_post_number`

https://github.com/discourse/discourse/blob/main/app/models/topic_tracking_state.rb#L534

Hard-coded value may be a cause for flaky spec.
2022-11-22 09:48:27 +11:00
Alan Guo Xiang Tan
e05cd5de8f
DEV: Add tests for sidebar accessibility changes (#19138)
Accessibility is a feature which we do not want to regress on.

Follow-up to e30df22716
2022-11-22 06:07:47 +08:00
Kris
e30df22716
A11Y: Improve the accessibility of sidebar content (#19131) 2022-11-22 05:32:43 +08:00
Joffrey JAFFEUX
6530eb2859
FIX: do not add color style if no prefixColor (#19123) 2022-11-22 05:25:07 +08:00
dependabot[bot]
421ebe8769
Build(deps): Bump bootsnap from 1.13.0 to 1.14.0 (#19135)
Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.13.0 to 1.14.0.
- [Release notes](https://github.com/Shopify/bootsnap/releases)
- [Changelog](https://github.com/Shopify/bootsnap/blob/main/CHANGELOG.md)
- [Commits](https://github.com/Shopify/bootsnap/compare/v1.13.0...v1.14.0)

---
updated-dependencies:
- dependency-name: bootsnap
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-22 05:18:32 +08:00
Bianca Nenciu
c78eb60cea
FEATURE: Sync user tips status between client (#19095)
The user attributes are not updated between clients and that is a
problem with user tips because the same user tip will be displayed
multiple times, once for every client.
2022-11-21 20:57:02 +02:00
TheJammiestDodger
be99c3eec7
FIX: Amend release_notes_link in app/models/admin_dashboard_general_data.rb (#19125)
Update `release_notes_link` to current version

<!-- NOTE: All pull requests should have tests (rspec in Ruby, qunit in
JavaScript). If your code does not include test coverage, please include
an explanation of why it was omitted. -->
2022-11-21 16:21:34 +00:00
TheJammiestDodger
d49fa9007d
FIX: Amend release_notes_link in /tests/fixtures/dashboard-new-features.js (#19124)
Update `release_notes_link` to the current version.

<!-- NOTE: All pull requests should have tests (rspec in Ruby, qunit in
JavaScript). If your code does not include test coverage, please include
an explanation of why it was omitted. -->
2022-11-21 16:20:51 +00:00
Rafael dos Santos Silva
e901403621
FEATURE: API to customize server side composer errors handling in the client side (#19107)
This will be used by plugins to handle the client side of their custom
post validations without having to overwrite the whole composer save
action as it was done in other plugins.

Co-authored-by: Penar Musaraj <pmusaraj@gmail.com>
2022-11-21 13:11:29 -03:00
David Taylor
269f65f14c
FIX: Ensure DButton uses the correct target for string actions (#19126)
Our `triggerAction` backwards-compatibility was firing the action on
`parentView`. In most cases this worked, but it doesn't match the
classic behaviour when the DButton is included inside a 'wrapper'
component. In that case, the action should be triggered on the current
'this' context of the template that called the DButton.

This commit mimics the Ember Classic Component manager's behaviour. It
adds the `createCaller` capability to the custom component manager, and
then uses the `callerSelfRef` for dispatching the action.
2022-11-21 13:31:18 +00:00
Joffrey JAFFEUX
5573257158
FIX: enable_auto_join_users was used in create channel (#19128)
7e39a21de1
broke the explanation of the check box on `create-channel` view.

Actions:
- uses core yes_value/no_value
- re-add the correct translation for `enable_auto_join_users`
- removes `disable_auto_join_users` which is not used anymore
2022-11-21 14:28:11 +01:00
David Taylor
ecce3c81f2
UX: Do not automatically refresh page while composer is open (#19112)
We automatically refresh the page 'on the next navigation' whenever a
new version of the JS client is available. If the composer is open when
this happens then it will be closed and you'll have to reopen the draft.
In some circumstances, this refresh can also cause some composer content
to be lost.

This commit updates the auto-refresh logic so that it doesn't trigger
while the composer is open, and adds an acceptance test for the
behaviour.

<!-- NOTE: All pull requests should have tests (rspec in Ruby, qunit in
JavaScript). If your code does not include test coverage, please include
an explanation of why it was omitted. -->
2022-11-21 10:45:19 +00:00
Alan Guo Xiang Tan
59e02bd210
UX: Removed tracked section link from Community section in Sidebar (#19122)
Product has decided that the tracked section link provides very little
value at this moment in time so we're removing it.

See https://meta.discourse.org/t/245374 for more context.
2022-11-21 16:45:19 +08:00
Joffrey JAFFEUX
3f24a5e9e2
FIX: better chat-message-actions position (#19111)
- prevents menu to hide underlying text
- prevents `chat-message-actions` to close when hovering dropdown of 3
dots button as mouse would hover an other message due to the small space
between `chat-message-actions` menu and the dropdown of the 3 dots
button

<!-- NOTE: All pull requests should have tests (rspec in Ruby, qunit in
JavaScript). If your code does not include test coverage, please include
an explanation of why it was omitted. -->
2022-11-21 09:10:52 +01:00
Alan Guo Xiang Tan
a64d2364ec
FIX: Correct implementation for user preferences tracking page (#19119)
The user preferences tracking page is only present when the redesign
user navigation menu is enabled. During the first pass of
implementation, some old bugs were introduced and this commit fixes
that. Regression tests have also been added.
2022-11-21 14:48:47 +08:00
Martin Brennan
3dcf158b56
FIX: Tag ordering adjustment for new hashtag autocompletion (#19120)
The tag ordering was inconsistent, because we were not
passing the correct order option to DiscourseTagging.filter_allowed_tags.
The order would change based on the limit provided. Now,
we can have a consistent order which is term exact match -> topic count ->
name.
2022-11-21 16:40:15 +10:00
Alan Guo Xiang Tan
a8eb607162
DEV: Centralise user preferences account route tests into single file (#19118)
Makes it easier to associate the route with the tests instead of
squeezing difference acceptance modules into a single file
2022-11-21 13:09:33 +08:00
Alan Guo Xiang Tan
6d8a93ac41
DEV: Centralise more user preferences tests into individual files (#19100)
Makes it easier to associate the route with the tests
2022-11-21 10:16:47 +08:00
Martin Brennan
3846b6248f
FIX: Allow new hashtag HTML to be quoted to markdown (#19117)
Follow up from d3f02a1270

This commit fixes post quoting so that if the new
hashtag-cooked HTML is selected, we convert back to
a regular plain text #hashtag with the correct type and ref.
2022-11-21 12:04:46 +10:00
dependabot[bot]
86ae75f8d5
Build(deps): Bump jsdom from 20.0.2 to 20.0.3 in /app/assets/javascripts (#19115)
Bumps [jsdom](https://github.com/jsdom/jsdom) from 20.0.2 to 20.0.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jsdom/jsdom/releases">jsdom's
releases</a>.</em></p>
<blockquote>
<h2>Version 20.0.3</h2>
<ul>
<li>Updated dependencies, notably <code>w3c-xmlserializer</code>, which
fixes using <code>DOMParser</code> on XML documents containing
emoji.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jsdom/jsdom/blob/master/Changelog.md">jsdom's
changelog</a>.</em></p>
<blockquote>
<h2>20.0.3</h2>
<ul>
<li>Updated dependencies, notably <code>w3c-xmlserializer</code>, which
fixes using <code>DOMParser</code> on XML documents containing
emoji.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="22f7c3c518"><code>22f7c3c</code></a>
Version 20.0.3</li>
<li><a
href="c540630669"><code>c540630</code></a>
Update dependencies and dev dependencies</li>
<li><a
href="cdf07a1f0e"><code>cdf07a1</code></a>
Slight tweaks to GitHub Actions</li>
<li><a
href="bd77578169"><code>bd77578</code></a>
Try to make the issue template clearer</li>
<li>See full diff in <a
href="https://github.com/jsdom/jsdom/compare/20.0.2...20.0.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jsdom&package-manager=npm_and_yarn&previous-version=20.0.2&new-version=20.0.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-21 09:47:48 +08:00
dependabot[bot]
8a2e30b0a7
Build(deps): Bump faraday from 2.7.0 to 2.7.1 (#19113)
Bumps [faraday](https://github.com/lostisland/faraday) from 2.7.0 to
2.7.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/lostisland/faraday/releases">faraday's
releases</a>.</em></p>
<blockquote>
<h2>v2.7.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: require 'pp' to have access to #pretty_inspect by <a
href="https://github.com/olleolleolle"><code>@​olleolleolle</code></a>
in <a
href="https://github-redirect.dependabot.com/lostisland/faraday/pull/1463">lostisland/faraday#1463</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/lostisland/faraday/compare/v2.7.0...v2.7.1">https://github.com/lostisland/faraday/compare/v2.7.0...v2.7.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c6668ef8a8"><code>c6668ef</code></a>
Version bump to 2.7.1</li>
<li><a
href="4ad9c1e921"><code>4ad9c1e</code></a>
fix: require 'pp' to have access to #pretty_inspect</li>
<li>See full diff in <a
href="https://github.com/lostisland/faraday/compare/v2.7.0...v2.7.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=faraday&package-manager=bundler&previous-version=2.7.0&new-version=2.7.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-21 09:47:29 +08:00
dependabot[bot]
bc65a35aaa
Build(deps): Bump eslint from 8.27.0 to 8.28.0 in /app/assets/javascripts (#19114)
Bumps [eslint](https://github.com/eslint/eslint) from 8.27.0 to 8.28.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/eslint/eslint/releases">eslint's
releases</a>.</em></p>
<blockquote>
<h2>v8.28.0</h2>
<h2>Features</h2>
<ul>
<li><a
href="63bce44e7b"><code>63bce44</code></a>
feat: add <code>ignoreClassFieldInitialValues</code> option to
no-magic-numbers (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16539">#16539</a>)
(Milos Djermanovic)</li>
<li><a
href="8385ecdbbe"><code>8385ecd</code></a>
feat: multiline properties in rule <code>key-spacing</code> with option
<code>align</code> (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16532">#16532</a>)
(Francesco Trotta)</li>
<li><a
href="a4e89dbe85"><code>a4e89db</code></a>
feat: <code>no-obj-calls</code> support <code>Intl</code> (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16543">#16543</a>)
(Sosuke Suzuki)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li><a
href="c50ae4f840"><code>c50ae4f</code></a>
fix: Ensure that dot files are found with globs. (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16550">#16550</a>)
(Nicholas C. Zakas)</li>
<li><a
href="9432b67f76"><code>9432b67</code></a>
fix: throw error for first unmatched pattern (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16533">#16533</a>)
(Milos Djermanovic)</li>
<li><a
href="e76c382772"><code>e76c382</code></a>
fix: allow <code>* 1</code> when followed by <code>/</code> in
no-implicit-coercion (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16522">#16522</a>)
(Milos Djermanovic)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a
href="34c05a779a"><code>34c05a7</code></a>
docs: Language Options page intro and tweaks (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16511">#16511</a>)
(Ben Perlmutter)</li>
<li><a
href="3e663873c9"><code>3e66387</code></a>
docs: add intro and edit ignoring files page (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16510">#16510</a>)
(Ben Perlmutter)</li>
<li><a
href="436f712843"><code>436f712</code></a>
docs: fix Header UI inconsistency (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16464">#16464</a>)
(Tanuj Kanti)</li>
<li><a
href="f743816967"><code>f743816</code></a>
docs: switch to wrench emoji for auto-fixable rules (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16545">#16545</a>)
(Bryan Mishkin)</li>
<li><a
href="bc0547eb14"><code>bc0547e</code></a>
docs: improve styles for versions and languages page (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16553">#16553</a>)
(Nitin Kumar)</li>
<li><a
href="6070f58d80"><code>6070f58</code></a>
docs: clarify esquery issue workaround (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16556">#16556</a>)
(Milos Djermanovic)</li>
<li><a
href="b48e4f89c5"><code>b48e4f8</code></a>
docs: Command Line Interface intro and tweaks (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16535">#16535</a>)
(Ben Perlmutter)</li>
<li><a
href="b92b30f93d"><code>b92b30f</code></a>
docs: Add Rules page intro and content tweaks (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16523">#16523</a>)
(Ben Perlmutter)</li>
<li><a
href="1769b42339"><code>1769b42</code></a>
docs: Integrations page introduction (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16548">#16548</a>)
(Ben Perlmutter)</li>
<li><a
href="a8d0a57cbc"><code>a8d0a57</code></a>
docs: make table of contents sticky on desktop (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16506">#16506</a>)
(Sam Chen)</li>
<li><a
href="a01315a7d8"><code>a01315a</code></a>
docs: fix route of japanese translation site (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16542">#16542</a>)
(Tanuj Kanti)</li>
<li><a
href="0515628539"><code>0515628</code></a>
docs: use emoji instead of svg for deprecated rule (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16536">#16536</a>)
(Bryan Mishkin)</li>
<li><a
href="68f12882fb"><code>68f1288</code></a>
docs: set default layouts (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16484">#16484</a>)
(Percy Ma)</li>
<li><a
href="776827a174"><code>776827a</code></a>
docs: init config about specifying shared configs (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16483">#16483</a>)
(Percy Ma)</li>
<li><a
href="5c39425fc5"><code>5c39425</code></a>
docs: fix broken link to plugins (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16520">#16520</a>)
(Ádám T. Nagy)</li>
<li><a
href="c97c789768"><code>c97c789</code></a>
docs: Add missing no-new-native-nonconstructor docs code fence (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16503">#16503</a>)
(Brandon Mills)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a
href="e94a4a95ee"><code>e94a4a9</code></a>
chore: Add tests to verify <a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16038">#16038</a>
is fixed (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16538">#16538</a>)
(Nicholas C. Zakas)</li>
<li><a
href="e13f194f89"><code>e13f194</code></a>
chore: stricter validation of <code>meta.docs.description</code> in core
rules (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16529">#16529</a>)
(Milos Djermanovic)</li>
<li><a
href="72dbfbc0c4"><code>72dbfbc</code></a>
chore: use <code>pkg</code> parameter in
<code>getNpmPackageVersion</code> (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16525">#16525</a>)
(webxmsj)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/eslint/eslint/blob/main/CHANGELOG.md">eslint's
changelog</a>.</em></p>
<blockquote>
<p>v8.28.0 - November 18, 2022</p>
<ul>
<li><a
href="34c05a779a"><code>34c05a7</code></a>
docs: Language Options page intro and tweaks (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16511">#16511</a>)
(Ben Perlmutter)</li>
<li><a
href="3e663873c9"><code>3e66387</code></a>
docs: add intro and edit ignoring files page (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16510">#16510</a>)
(Ben Perlmutter)</li>
<li><a
href="436f712843"><code>436f712</code></a>
docs: fix Header UI inconsistency (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16464">#16464</a>)
(Tanuj Kanti)</li>
<li><a
href="f743816967"><code>f743816</code></a>
docs: switch to wrench emoji for auto-fixable rules (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16545">#16545</a>)
(Bryan Mishkin)</li>
<li><a
href="bc0547eb14"><code>bc0547e</code></a>
docs: improve styles for versions and languages page (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16553">#16553</a>)
(Nitin Kumar)</li>
<li><a
href="6070f58d80"><code>6070f58</code></a>
docs: clarify esquery issue workaround (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16556">#16556</a>)
(Milos Djermanovic)</li>
<li><a
href="b48e4f89c5"><code>b48e4f8</code></a>
docs: Command Line Interface intro and tweaks (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16535">#16535</a>)
(Ben Perlmutter)</li>
<li><a
href="b92b30f93d"><code>b92b30f</code></a>
docs: Add Rules page intro and content tweaks (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16523">#16523</a>)
(Ben Perlmutter)</li>
<li><a
href="1769b42339"><code>1769b42</code></a>
docs: Integrations page introduction (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16548">#16548</a>)
(Ben Perlmutter)</li>
<li><a
href="63bce44e7b"><code>63bce44</code></a>
feat: add <code>ignoreClassFieldInitialValues</code> option to
no-magic-numbers (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16539">#16539</a>)
(Milos Djermanovic)</li>
<li><a
href="c50ae4f840"><code>c50ae4f</code></a>
fix: Ensure that dot files are found with globs. (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16550">#16550</a>)
(Nicholas C. Zakas)</li>
<li><a
href="a8d0a57cbc"><code>a8d0a57</code></a>
docs: make table of contents sticky on desktop (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16506">#16506</a>)
(Sam Chen)</li>
<li><a
href="9432b67f76"><code>9432b67</code></a>
fix: throw error for first unmatched pattern (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16533">#16533</a>)
(Milos Djermanovic)</li>
<li><a
href="8385ecdbbe"><code>8385ecd</code></a>
feat: multiline properties in rule <code>key-spacing</code> with option
<code>align</code> (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16532">#16532</a>)
(Francesco Trotta)</li>
<li><a
href="a4e89dbe85"><code>a4e89db</code></a>
feat: <code>no-obj-calls</code> support <code>Intl</code> (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16543">#16543</a>)
(Sosuke Suzuki)</li>
<li><a
href="a01315a7d8"><code>a01315a</code></a>
docs: fix route of japanese translation site (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16542">#16542</a>)
(Tanuj Kanti)</li>
<li><a
href="e94a4a95ee"><code>e94a4a9</code></a>
chore: Add tests to verify <a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16038">#16038</a>
is fixed (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16538">#16538</a>)
(Nicholas C. Zakas)</li>
<li><a
href="0515628539"><code>0515628</code></a>
docs: use emoji instead of svg for deprecated rule (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16536">#16536</a>)
(Bryan Mishkin)</li>
<li><a
href="e76c382772"><code>e76c382</code></a>
fix: allow <code>* 1</code> when followed by <code>/</code> in
no-implicit-coercion (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16522">#16522</a>)
(Milos Djermanovic)</li>
<li><a
href="68f12882fb"><code>68f1288</code></a>
docs: set default layouts (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16484">#16484</a>)
(Percy Ma)</li>
<li><a
href="e13f194f89"><code>e13f194</code></a>
chore: stricter validation of <code>meta.docs.description</code> in core
rules (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16529">#16529</a>)
(Milos Djermanovic)</li>
<li><a
href="776827a174"><code>776827a</code></a>
docs: init config about specifying shared configs (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16483">#16483</a>)
(Percy Ma)</li>
<li><a
href="72dbfbc0c4"><code>72dbfbc</code></a>
chore: use <code>pkg</code> parameter in
<code>getNpmPackageVersion</code> (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16525">#16525</a>)
(webxmsj)</li>
<li><a
href="5c39425fc5"><code>5c39425</code></a>
docs: fix broken link to plugins (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16520">#16520</a>)
(Ádám T. Nagy)</li>
<li><a
href="c97c789768"><code>c97c789</code></a>
docs: Add missing no-new-native-nonconstructor docs code fence (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16503">#16503</a>)
(Brandon Mills)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b8769f192b"><code>b8769f1</code></a>
8.28.0</li>
<li><a
href="d2b072313d"><code>d2b0723</code></a>
Build: changelog update for 8.28.0</li>
<li><a
href="34c05a779a"><code>34c05a7</code></a>
docs: Language Options page intro and tweaks (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16511">#16511</a>)</li>
<li><a
href="3e663873c9"><code>3e66387</code></a>
docs: add intro and edit ignoring files page (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16510">#16510</a>)</li>
<li><a
href="436f712843"><code>436f712</code></a>
docs: fix Header UI inconsistency (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16464">#16464</a>)</li>
<li><a
href="f743816967"><code>f743816</code></a>
docs: switch to wrench emoji for auto-fixable rules (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16545">#16545</a>)</li>
<li><a
href="bc0547eb14"><code>bc0547e</code></a>
docs: improve styles for versions and languages page (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16553">#16553</a>)</li>
<li><a
href="6070f58d80"><code>6070f58</code></a>
docs: clarify esquery issue workaround (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16556">#16556</a>)</li>
<li><a
href="b48e4f89c5"><code>b48e4f8</code></a>
docs: Command Line Interface intro and tweaks (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16535">#16535</a>)</li>
<li><a
href="b92b30f93d"><code>b92b30f</code></a>
docs: Add Rules page intro and content tweaks (<a
href="https://github-redirect.dependabot.com/eslint/eslint/issues/16523">#16523</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/eslint/eslint/compare/v8.27.0...v8.28.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=eslint&package-manager=npm_and_yarn&previous-version=8.27.0&new-version=8.28.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-21 09:47:07 +08:00
Martin Brennan
05b740036e
FEATURE: Add TL1 to chat_allowed_groups by default (#19116)
By doing this, we will:

* Have an open, but safe default People reach `@trust_level_1` pretty
quickly, but `@trust_level_0` is still excluded by default, to limit new
accounts joining and immediately spamming or otherwise abusing channels.
* Make it easier to change the default By keeping `@staff` in the
default, we make it easy for admins to remove `@trust_level_1` and
optionally add additional groups to their liking.
2022-11-21 09:17:40 +10:00
Martin Brennan
d3f02a1270
FEATURE: Generic hashtag autocomplete lookup and markdown cooking (#18937)
This commit fleshes out and adds functionality for the new `#hashtag` search and
lookup system, still hidden behind the `enable_experimental_hashtag_autocomplete`
feature flag.

**Serverside**

We have two plugin API registration methods that are used to define data sources
(`register_hashtag_data_source`) and hashtag result type priorities depending on
the context (`register_hashtag_type_in_context`). Reading the comments in plugin.rb
should make it clear what these are doing. Reading the `HashtagAutocompleteService`
in full will likely help a lot as well.

Each data source is responsible for providing its own **lookup** and **search**
method that returns hashtag results based on the arguments provided. For example,
the category hashtag data source has to take into account parent categories and
how they relate, and each data source has to define their own icon to use for the
hashtag, and so on.

The `Site` serializer has two new attributes that source data from `HashtagAutocompleteService`.
There is `hashtag_icons` that is just a simple array of all the different icons that
can be used for allowlisting in our markdown pipeline, and there is `hashtag_context_configurations`
that is used to store the type priority orders for each registered context.

When sending emails, we cannot render the SVG icons for hashtags, so
we need to change the HTML hashtags to the normal `#hashtag` text.

**Markdown**

The `hashtag-autocomplete.js` file is where I have added the new `hashtag-autocomplete`
markdown rule, and like all of our rules this is used to cook the raw text on both the clientside
and on the serverside using MiniRacer. Only on the server side do we actually reach out to
the database with the `hashtagLookup` function, on the clientside we just render a plainer
version of the hashtag HTML. Only in the composer preview do we do further lookups based
on this.

This rule is the first one (that I can find) that uses the `currentUser` based on a passed
in `user_id` for guardian checks in markdown rendering code. This is the `last_editor_id`
for both the post and chat message. In some cases we need to cook without a user present,
so the `Discourse.system_user` is used in this case.

**Chat Channels**

This also contains the changes required for chat so that chat channels can be used
as a data source for hashtag searches and lookups. This data source will only be
used when `enable_experimental_hashtag_autocomplete` is `true`, so we don't have
to worry about channel results suddenly turning up.

------

**Known Rough Edges**

- Onebox excerpts will not render the icon svg/use tags, I plan to address that in a follow up PR
- Selecting a hashtag + pressing the Quote button will result in weird behaviour, I plan to address that in a follow up PR
- Mixed hashtag contexts for hashtags without a type suffix will not work correctly, e.g. #ux which is both a category and a channel slug will resolve to a category when used inside a post or within a [chat] transcript in that post. Users can get around this manually by adding the correct suffix, for example ::channel. We may get to this at some point in future
- Icons will not show for the hashtags in emails since SVG support is so terrible in email (this is not likely to be resolved, but still noting for posterity)
- Additional refinements and review fixes wil
2022-11-21 08:37:06 +10:00