From 32d890adfec447a0c05d49c30ac4d504479165fd Mon Sep 17 00:00:00 2001 From: ofir-frd Date: Fri, 12 Dec 2025 15:17:31 +0200 Subject: [PATCH] Apply changes for benchmark PR --- config/locales/client.en.yml | 1 + .../components/admin-config-areas/flags.gjs | 35 +-- .../admin-config-areas/user-fields-list.gjs | 4 +- .../admin-config-areas/webhooks-form.gjs | 3 +- .../admin-config-areas/webhooks-list.gjs | 67 +++-- .../admin/components/admin-flags-form.gjs | 2 +- .../components/admin-user-fields-form.gjs | 2 +- .../admin/components/dashboard-problems.gjs | 7 +- .../components/edit-category-security.gjs | 16 +- .../admin/components/edit-category-tab.gjs | 3 +- .../admin/components/edit-category-tags.gjs | 5 +- .../admin/components/emoji-value-list.gjs | 232 ++++++++---------- .../components/modal/edit-badge-groupings.gjs | 30 +-- .../components/modal/uploaded-image-list.gjs | 12 +- .../components/schema-setting/editor.gjs | 46 +++- .../admin/components/secret-value-list.gjs | 190 +++++++------- .../admin/components/simple-list.gjs | 4 +- .../components/site-settings/emoji-list.gjs | 1 + .../components/site-settings/secret-list.gjs | 23 +- .../discourse/admin/components/value-list.gjs | 24 +- .../components/webhook-event-chooser.gjs | 9 +- .../admin/components/webhook-events.gjs | 7 +- .../admin-config/color-palettes/index.js | 20 +- .../controllers/admin-embedding/index.js | 14 +- .../admin-logs/screened-ip-addresses.js | 65 ++--- .../controllers/admin-permalinks/index.js | 32 ++- .../admin/controllers/admin-user/badges.js | 73 +++--- .../admin/controllers/admin-user/index.js | 10 +- .../admin/controllers/admin-web-hooks/edit.js | 104 -------- .../controllers/admin-web-hooks/index.js | 37 --- .../admin/controllers/admin-web-hooks/show.js | 1 - .../admin/controllers/admin/dashboard.js | 17 +- .../admin/controllers/edit-category/tabs.js | 3 +- .../admin/lib/setting-object-helper.js | 5 +- frontend/discourse/admin/models/admin-user.js | 8 +- .../discourse/admin/models/color-scheme.js | 53 ++-- frontend/discourse/admin/models/embedding.js | 6 + .../discourse/admin/models/site-setting.js | 2 +- frontend/discourse/admin/models/theme.js | 25 +- .../admin-config/color-palettes/index.js | 8 +- .../admin/routes/admin-user/badges.js | 19 +- .../discourse/admin/routes/admin/backups.js | 17 +- .../admin/routes/admin/backups/index.js | 3 +- .../discourse/admin/services/admin-emojis.js | 11 +- .../admin/services/admin-user-fields.js | 4 +- .../templates/admin-permalinks/index.gjs | 26 +- .../app/components/bookmark-list.gjs | 10 +- .../app/components/composer-messages.gjs | 14 +- .../app/components/composer-user-selector.gjs | 10 +- .../components/form-template-field/upload.gjs | 5 +- .../app/components/ignored-user-list.gjs | 8 +- .../discourse/app/components/invite-panel.gjs | 2 +- .../app/components/modal/create-invite.gjs | 2 +- .../app/components/modal/grant-badge.gjs | 5 +- .../components/modal/sidebar-section-form.gjs | 65 ++--- .../discourse/app/components/tag-info.gjs | 10 +- .../app/components/topic-list/item.gjs | 8 +- .../app/components/track-selected.gjs | 8 +- .../app/components/user-menu/menu.gjs | 2 +- .../components/user-notification-schedule.gjs | 24 +- .../discourse/app/controllers/group/index.js | 9 +- .../app/controllers/group/manage/logs.js | 3 +- .../discourse/app/controllers/invites/show.js | 6 +- .../app/controllers/preferences/account.js | 15 +- .../app/controllers/preferences/security.js | 6 +- frontend/discourse/app/controllers/topic.js | 48 ++-- .../app/controllers/user-invited/show.js | 3 +- .../discourse/app/deprecation-workflow.js | 86 ------- .../subscribe-user-notifications.js | 3 +- frontend/discourse/app/lib/array-tools.js | 29 ++- .../app/lib/legacy-array-like-object.js | 2 + .../app/lib/post-bookmark-manager.js | 4 +- frontend/discourse/app/lib/search.js | 4 +- frontend/discourse/app/lib/sidebar/section.js | 15 +- .../app/lib/topic-bookmark-manager.js | 2 +- frontend/discourse/app/lib/tracked-tools.js | 38 ++- .../discourse/app/lib/uppy/composer-upload.js | 2 +- frontend/discourse/app/models/category.js | 47 ++-- frontend/discourse/app/models/group.js | 4 +- frontend/discourse/app/models/site.js | 17 +- .../discourse/app/models/topic-details.js | 26 +- frontend/discourse/app/models/topic-list.js | 11 +- frontend/discourse/app/models/topic.js | 14 +- frontend/discourse/app/models/user-stream.js | 3 +- frontend/discourse/app/models/user.js | 46 ++-- .../app/routes/discovery/categories.js | 33 +-- frontend/discourse/app/routes/new-invite.js | 5 +- frontend/discourse/app/services/composer.js | 4 +- .../bulk-select-topics-dropdown-test.gjs | 3 +- .../components/secret-value-list-test.gjs | 8 + .../tests/unit/controllers/topic-test.js | 39 +-- .../tests/unit/lib/array-tools-test.js | 111 +++++++++ .../tests/unit/lib/tracked-tools-test.gjs | 42 +++- .../tests/unit/models/nav-item-test.js | 3 +- .../discourse/tests/unit/models/site-test.js | 7 +- 95 files changed, 1146 insertions(+), 1011 deletions(-) delete mode 100644 frontend/discourse/admin/controllers/admin-web-hooks/edit.js delete mode 100644 frontend/discourse/admin/controllers/admin-web-hooks/index.js create mode 100644 frontend/discourse/admin/models/embedding.js diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index c42beb0db86d1..5ec99a3353f1b 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -8411,6 +8411,7 @@ en: experimental: "Experimental" secret_list: invalid_input: "Input fields cannot be empty or contain vertical bar character." + already_exists: "Entry for %{key} already exists." default_categories: modal_description: one: "Would you like to apply this change historically? This will change preferences for %{count} existing user." diff --git a/frontend/discourse/admin/components/admin-config-areas/flags.gjs b/frontend/discourse/admin/components/admin-config-areas/flags.gjs index 5c02dffece3db..5cebafeeba415 100644 --- a/frontend/discourse/admin/components/admin-config-areas/flags.gjs +++ b/frontend/discourse/admin/components/admin-config-areas/flags.gjs @@ -1,17 +1,18 @@ import Component from "@glimmer/component"; -import { tracked } from "@glimmer/tracking"; import { action } from "@ember/object"; import { service } from "@ember/service"; import AdminFlagItem from "discourse/admin/components/admin-flag-item"; import { ajax } from "discourse/lib/ajax"; import { popupAjaxError } from "discourse/lib/ajax-error"; +import { removeValueFromArray } from "discourse/lib/array-tools"; import { bind } from "discourse/lib/decorators"; +import { trackedArray } from "discourse/lib/tracked-tools"; import { i18n } from "discourse-i18n"; export default class AdminConfigAreasFlags extends Component { @service site; - @tracked flags = this.site.flagTypes; + @trackedArray flags = this.site.flagTypes; @bind isFirstFlag(flag) { @@ -24,7 +25,7 @@ export default class AdminConfigAreasFlags extends Component { } @action - moveFlagCallback(flag, direction) { + async moveFlagCallback(flag, direction) { const fallbackFlags = [...this.flags]; const flags = this.flags; @@ -39,23 +40,27 @@ export default class AdminConfigAreasFlags extends Component { this.flags = flags; - return ajax(`/admin/config/flags/${flag.id}/reorder/${direction}`, { - type: "PUT", - }).catch((error) => { + try { + await ajax(`/admin/config/flags/${flag.id}/reorder/${direction}`, { + type: "PUT", + }); + } catch (error) { this.flags = fallbackFlags; return popupAjaxError(error); - }); + } } @action - deleteFlagCallback(flag) { - return ajax(`/admin/config/flags/${flag.id}`, { - type: "DELETE", - }) - .then(() => { - this.flags.removeObject(flag); - }) - .catch((error) => popupAjaxError(error)); + async deleteFlagCallback(flag) { + try { + await ajax(`/admin/config/flags/${flag.id}`, { + type: "DELETE", + }); + + removeValueFromArray(this.flags, flag); + } catch (error) { + popupAjaxError(error); + } }