Commit Graph

23898 Commits

Author SHA1 Message Date
Keegan George
1c4d5dae1c
DEV: Allow async calls to finish before removing uploads (#29918)
This PR simply moves the call to remove in progress uploads **after** the async markdown resolvers finish resolving. This is specifically for the case when markdown resolvers are async functions, such as in the case of Discourse AI's image caption feature. This ensures that the in progress upload doesn't get removed causing replace text having nothing to replace once the async call is finished.

No tests as there currently are no tests for this plugin API function, and it's a little tricky to test, especially with in progress uploads being a private property.
2024-11-25 11:10:27 -08:00
Jarek Radosz
433543a516
DEV: Refactor gjs topic-list (#29792)
Based on the initial review in #28934
2024-11-25 14:15:34 +01:00
Osama Sayegh
118f7869bb
FEATURE: Add bulk destroy to admin users list (#29744)
This commit introduces a new feature that allows staff to bulk select and delete users directly from the users list at `/admin/users/list`. The main use-case for this feature is make deleting spammers easier when a site is under a large spam attack.

Internal topic: t/140321.
2024-11-25 11:13:35 +03:00
Ted Johansson
88af23e1ca
DEV: Modernize admin user fields (#29843)
This PR modernizes the user fields area of the admin UI. It is largely based on the work on the emoji section.
2024-11-25 11:54:43 +08:00
Joffrey JAFFEUX
66409fa8b4
UX: improved collapsed drawer state/interactions (#29850)
- Clicking the channel title of a collapsed drawer will only open the drawer, and not open settings
- Remove the back button when the drawer is collapsed
- Uses same icon for toggling on chat that composer
- add max-width to minimised drawer + add hover effect
---------

Co-authored-by: chapoi <101828855+chapoi@users.noreply.github.com>
2024-11-25 03:39:03 +01:00
dependabot[bot]
1396dfabba
Build(deps-dev): Bump @swc/core from 1.9.2 to 1.9.3 (#29905)
Bumps [@swc/core](https://github.com/swc-project/swc) from 1.9.2 to 1.9.3.
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.9.2...v1.9.3)

---
updated-dependencies:
- dependency-name: "@swc/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-24 22:45:28 +01:00
Gerhard Schlager
0295b4165c
FIX: Permalink.create didn't work as expected anymore (#29895)
This moves the logic of setting the correct permalink values back into the controller. And it replaces the validation with a simpler one, that always works, even when the model is loaded from the DB.

Follow-up to #29634 which broke import scripts and lots of documentation on Meta.
2024-11-22 21:11:26 +01:00
Jordan Vidrine
44fbf1048c
UX: Multiple codeblocks fixes (#29898) 2024-11-22 13:52:23 -06:00
Penar Musaraj
a97ac905d1
Revert "UX: Codeblocks edits (#29893)" (#29896)
This reverts commit 667a09b159.
2024-11-22 12:09:40 -05:00
Joffrey JAFFEUX
f24d2b926f
FIX: makes tags reactive with docked header (#29894)
No test as it's complicated to have a very simple test for this and I don't want to write a system spec for such a very specific thing.
2024-11-22 18:00:11 +01:00
Jordan Vidrine
667a09b159
UX: Codeblocks edits (#29893) 2024-11-22 09:05:48 -06:00
Jarek Radosz
0641d3e4b3
DEV: Improve hbr topic list detection (#29892)
1. `addRawTemplate` is called too early for deprecation handlers to process its deprecation call, so toggle the hbr flag directly
2. move the deprecation handler to an initializer so that other (non-template) calls are always handled
3. move the debug logging to the handler
2024-11-22 14:28:01 +01:00
Jarek Radosz
b9838d6066
DEV: Fix theme name in this deprecation notices (#29888)
A followup to 019ba099c8
2024-11-22 10:24:02 +00:00
Régis Hanol
d71016522e
FIX: hide chat button in user card (#29887)
when the user isn't able to receive DMs (either because they've disabled it or because they're suspended for example).

Internal ref - t/142198
2024-11-22 09:05:58 +01:00
Akshay Birajdar
b138eaf9e5
FEATURE: Add Bulk actions to /filter page (#29420)
- Add bulk actions component on /filter page for both desktop & mobile view.
- Add system specs to assert bulk actions to be available on /filter page.
2024-11-22 11:51:06 +11:00
Amanda Alves Branquinho
02ad1f9cd5
Dev/add outlet for participant (#29864)
* DEV: add outlet for topic participant

* format topic participant file

* Update app/assets/javascripts/discourse/app/components/topic-map/topic-participant.gjs

Co-authored-by: Jarek Radosz <jradosz@gmail.com>

---------

Co-authored-by: Jarek Radosz <jradosz@gmail.com>
2024-11-21 14:41:03 -03:00
David Taylor
019ba099c8
DEV: Unsilence this-property-fallback deprecation (#29855)
This one has the potential to be very noisy, so a special dedupliation handler is introduced.

https://meta.discourse.org/t/337276
2024-11-21 16:35:05 +00:00
Renato Atilio
6e5d4ee492
DEV: refactor composer references on composer-container/-editor (#29629)
Most of it is removing the ComposerContainer > ComposerEditor indirect references to the composer service, so ComposerEditor now deals with the service directly.

Form template was moved from DEditor to ComposerEditor.
2024-11-21 13:29:12 -03:00
Jarek Radosz
2589545623
DEV: Detect hbr topic list customizations (#29793) 2024-11-21 16:00:49 +01:00
Joffrey JAFFEUX
0b210e0fc3
FIX: correctly closes search menu on escape (#29848)
Prior to this fix the menu would not close if a child was in focus, and the search suggestions had a special implementation to handle this. The fix now relies on trapping the keydown escape event on the top dip of the search menu.
2024-11-21 07:39:47 +01:00
Ella E.
a0cf8f64f9
UX: Update sidebar invite button to use correct title attribute text (#29875)
This PR updates the sidebar's Invite button to use the intended text for its title attribute.
2024-11-21 12:22:01 +10:00
chapoi
58edabc2b5
DEV: Dmenu add modifier (#29846) 2024-11-21 03:14:46 +01:00
Jordan Vidrine
34e6c8f3dd
UX: Codeblocks experiment merge (#29870) 2024-11-20 17:24:41 -06:00
dependabot[bot]
4f4b4e74c7
Build(deps): Bump ember-resolver from 13.0.2 to 13.1.0 (#29868)
Bumps [ember-resolver](https://github.com/ember-cli/ember-resolver) from 13.0.2 to 13.1.0.
- [Release notes](https://github.com/ember-cli/ember-resolver/releases)
- [Changelog](https://github.com/ember-cli/ember-resolver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ember-cli/ember-resolver/compare/v13.0.2...v13.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-20 23:39:31 +01:00
Amanda Alves Branquinho
71a8d48d21
DEV: add outlet wrapper for small user list (#29763)
* DEV: add outlet wrapper for small user list

* DEV: use value transformer to extend small user attrs function

* Update app/assets/javascripts/discourse/app/components/small-user-list.gjs

Co-authored-by: Jarek Radosz <jradosz@gmail.com>

---------

Co-authored-by: Jarek Radosz <jradosz@gmail.com>
2024-11-20 19:22:02 -03:00
Kris
fdfc9284fa
DEV: add order to posters column so it gets a classname (#29866) 2024-11-20 17:09:21 -05:00
Kris
9db6bd08a2
FEATURE: add transformer to pass topic ID to simple invite generation (#29861) 2024-11-20 16:08:08 -05:00
David Taylor
daa34b9e11
DEV: Unsilence d-section deprecation (#29851) 2024-11-20 15:27:19 +00:00
David Taylor
6f7c581a80
DEV: Bump @discourse/lint-configs and autofix (#29847)
In particular, this applies:

- new `discourse/no-implicit-this` template-lint rule
- `init`/`willDestroy` ordering enforcement
- `lines-between-class-members`
2024-11-20 14:15:04 +00:00
Joffrey JAFFEUX
67ce111861
DEV: converts do-not-disturb to gjs (#29840) 2024-11-20 09:50:15 +00:00
Joffrey JAFFEUX
704a5f4cab
DEV: converts insert-hyperlink to gjs (#29841) 2024-11-20 09:49:44 +00:00
Joffrey JAFFEUX
8271010387
DEV: converts grant-badge to gjs (#29842) 2024-11-20 09:49:09 +00:00
Joffrey JAFFEUX
a8ca82b11f
DEV: convert keyboard-shortcuts-help to gjs (#29831) 2024-11-19 23:25:02 +01:00
Joffrey JAFFEUX
ad034a5947
DEV: converts user-status to gjs (#29832) 2024-11-19 23:24:49 +01:00
Joffrey JAFFEUX
921416a741
DEV: converts activation-edit modal to gjs (#29827)
* DEV: converts activation-edit modal to gjs

* Update app/assets/javascripts/discourse/app/components/modal/activation-edit.gjs

---------

Co-authored-by: Jarek Radosz <jarek@cvx.dev>
2024-11-19 23:19:51 +01:00
Joffrey JAFFEUX
e02a37b0d7
DEV: converts jump-to-post modal to gjs (#29830)
* DEV: converts jump-to-post modal to gjs

* Update app/assets/javascripts/discourse/app/components/modal/jump-to-post.gjs

---------

Co-authored-by: Jarek Radosz <jarek@cvx.dev>
2024-11-19 23:14:10 +01:00
David Taylor
32665cf9dd
DEV: Consolidate i18n import paths (#29804)
Enables our new eslint rules which enforce consistent i18n imports. For more info, see 0d58b40cd7
2024-11-19 20:45:18 +00:00
Kris
acc7caa816
A11Y: make the uppy image uploader keyboard navigable (#29807) 2024-11-19 15:38:13 -05:00
Kris
84fecd370c
A11Y: convert sortable topic list headers to proper buttons (#29808) 2024-11-19 15:38:03 -05:00
David Taylor
79b3cb8289
DEV: Bump @discourse/lint-configs and apply fixes (#29823) 2024-11-19 19:10:02 +00:00
David Taylor
d606ac3d8e
DEV: add i18n named export to "discourse-i18n" (#29820)
Soon, we intend to consolidate all js/gjs translation calls to this new function. See https://github.com/discourse/lint-configs/pull/67 and https://github.com/discourse/discourse/pull/29804
2024-11-19 11:25:22 +00:00
Ted Johansson
682e8df007
FIX: Amend broken settings link in emoji admin breadcrumbs (#29818)
Because of an oversight in a previous PR, the breadcrumb link when visiting Admin > Emoji > Settings was broken. The correct path is customize, not config.
2024-11-19 17:24:49 +08:00
Ted Johansson
c3367c329c
DEV: Make breadcrumb separators unclickable icons (#29817)
The current breadcrumb separators are ">" characters that are added as pseudo-elements. These become part of the clickable area for the links, which causes mis-clicks.

This PR does two things:

- Replace the pseudo-element with a DIcon.
- Make sure the separator is not clickable.
2024-11-19 16:42:43 +08:00
Ted Johansson
d96b8d1001
DEV: Modernize admin emoji JavaScript (#29714)
app/assets/javascripts/admin/addon/templates/emojis.hbs
2024-11-19 15:44:34 +08:00
Martin Brennan
01a160d8af
UX: Add AdminConfigAreaEmptyList component (#29816)
This component can be used as a placeholder on
admin pages where the table has no data as per
the admin UI guidelines.
2024-11-19 16:49:57 +10:00
Joffrey JAFFEUX
582de0ffe3
DEV: adds blocks support to chat messages (#29782)
Blocks allow BOTS to augment the capacities of a chat message. At the moment only one block is available: `actions`, accepting only one type of element: `button`.

<img width="708" alt="Screenshot 2024-11-15 at 19 14 02" src="https://github.com/user-attachments/assets/63f32a29-05b1-4f32-9edd-8d8e1007d705">

# Usage

```ruby
Chat::CreateMessage.call(
  params: {
    message: "Welcome!",
    chat_channel_id: 2,
    blocks: [
      {
         type: "actions",
         elements: [
           { value: "foo", type: "button", text: { text: "How can I install themes?", type: "plain_text" } }
         ]
      }
    ]
  },
  guardian: Discourse.system_user.guardian
)
```

# Documentation

## Blocks

### Actions

Holds interactive elements: button.

#### Fields

| Field | Type | Description | Required? |
|--------|--------|--------|--------|
| type | string | For an actions block, type is always `actions` | Yes |
| elements | array | An array of interactive elements, maximum 10 elements | Yes |
| block_id | string | An unique identifier for the block, will be generated if not specified. It has to be unique per message | No |

#### Example

```json
{
  "type": "actions",
  "block_id": "actions_1",
  "elements": [...]
}
```

## Elements

### Button

#### Fields

| Field | Type | Description | Required? |
|--------|--------|--------|--------|
| type | string | For a button, type is always `button` | Yes |
| text | object | A text object holding the type and text. Max 75 characters | Yes |
| value | string | The value returned after the interaction has been validated. Maximum length is 2000 characters | No |
| style | string | Can be `primary` ,  `success` or `danger` | No |
| action_id | string | An unique identifier for the action, will be generated if not specified. It has to be unique per message | No |

#### Example

```json
{
  "type": "actions",
  "block_id": "actions_1",
  "elements": [
    {
      "type": "button",
      "text": {
          "type": "plain_text",
          "text": "Ok"
      },
      "value": "ok",
      "action_id": "button_1"
    }
  ]
}
```

## Interactions

When a user interactions with a button the following flow will happen:

- We send an interaction request to the server
- Server checks if the user can make this interaction
- If the user can make this interaction, the server will:

  * `DiscourseEvent.trigger(:chat_message_interaction, interaction)`
  * return a JSON document
  
  ```json
  {
    "interaction": {
        "user": {
            "id": 1,
            "username": "j.jaffeux"
        },
        "channel": {
            "id": 1,
            "title": "Staff"
        },
        "message": {
            "id": 1,
            "text": "test",
            "user_id": -1
        },
        "action": {
            "text": {
                "text": "How to install themes?",
                "type": "plain_text"
            },
            "type": "button",
            "value": "click_me_123",
            "action_id": "bf4f30b9-de99-4959-b3f5-632a6a1add04"
        }
    }
  }
  ```
  * Fire a `appEvents.trigger("chat:message_interaction", interaction)`
2024-11-19 07:07:58 +01:00
Krzysztof Kotlarek
04bac33ed9
UX: consistent flags page (#29798)
Add/Edit form should not have an admin header
2024-11-19 14:46:08 +11:00
Joffrey JAFFEUX
55a074e4c3
FIX: ensures category row is not focusable (#29803) 2024-11-19 03:50:32 +01:00
Ella E.
79ffbe7cd5
UX: Make cells middle aligned; apply overview class directly to td elements (#29813) 2024-11-18 18:42:29 -07:00
Jordan Vidrine
2a59df79d3
UX: Add title & adjust dnd image (#29812) 2024-11-18 19:25:41 -06:00