discourse/app/assets/javascripts/admin/addon/components
Alan Guo Xiang Tan 70f7d369fb
DEV: Rewrite SchemaThemeSetting::Editor to avoid rerendering problems (#26416)
Why this change?

Prior to this change, the `SchemaThemeSetting::Editor#tree` was creating a
new `Tree` instance which holds instances of `Node`. Both classes
consisted of tracked properties. The problem with this approach is that
when any tracked properties is updated, Ember will revaluate
`SchemaThemeSetting::Editor#tree` and because that method always return
a new instance of `Tree`, it causes the whole navigation tree to
rerender just because on tracked property changed.

This rerendering of the whole navigation tree every time made it hard to
implement simple features like hiding a section in
9baa820d53. Instead of being able to just
declare a tracked property to hide/show a section, we end up with a more
complicated solution.

This commit rewrites `SchemaThemeSetting::Editor` to depend on Ember
components to form the tree structure instead. As needed, each component
in the tree structure can declare its own tracked property as necessary.
2024-03-28 21:13:02 +08:00
..
form-template DEV: Use the "new" service import (#26059) 2024-03-06 18:05:11 +01:00
modal DEV: Use the "new" service import (#26059) 2024-03-06 18:05:11 +01:00
report-filters DEV: remove slightly less trivial {{action}} usages (#24289) 2023-11-13 13:29:20 +01:00
schema-theme-setting DEV: Rewrite SchemaThemeSetting::Editor to avoid rerendering problems (#26416) 2024-03-28 21:13:02 +08:00
site-settings FIX: Descriptions not showing for some site setting types (#26399) 2024-03-27 15:48:48 +03:00
ace-editor.hbs UX: Show loading spinner while loading dependencies for ace-editor (#26099) 2024-03-11 06:56:17 +08:00
ace-editor.js UX: Show loading spinner while loading dependencies for ace-editor (#26099) 2024-03-11 06:56:17 +08:00
admin-backups-logs.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
admin-backups-logs.js DEV: Rename I18n imports to discourse-i18n (#23915) 2023-10-18 11:07:09 +01:00
admin-config-area-sidebar-experiment.hbs DEV: Make admin experimental sidebar config more forgiving (#24236) 2023-11-07 13:20:57 +10:00
admin-config-area-sidebar-experiment.js FEATURE: filter additional keywords for the sidebar (#26148) 2024-03-14 12:28:08 +11:00
admin-editable-field.hbs DEV: Update DButton uses (#23333) 2023-08-31 11:49:35 +02:00
admin-editable-field.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-form-row.hbs FIX: Add checkbox-label to more checkbox label elements (#24174) 2023-10-31 08:57:50 +01:00
admin-form-row.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-graph.js DEV: Fix ember/require-super-in-lifecycle-hooks (#24007) 2023-10-19 13:47:45 +02:00
admin-nav.gjs DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-penalty-history.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
admin-penalty-history.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-penalty-post-action.hbs DEV: remove trivial {{action}} usages (#24278) 2023-11-08 10:53:06 +01:00
admin-penalty-post-action.js DEV: Rename I18n imports to discourse-i18n (#23915) 2023-10-18 11:07:09 +01:00
admin-penalty-reason.hbs DEV: Use class attribute instead of @class arg (#24804) 2023-12-12 13:09:05 +01:00
admin-penalty-reason.js DEV: Rename I18n imports to discourse-i18n (#23915) 2023-10-18 11:07:09 +01:00
admin-penalty-similar-users.hbs DEV: remove slightly less trivial {{action}} usages (#24289) 2023-11-13 13:29:20 +01:00
admin-penalty-similar-users.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-plugin-config-area.gjs FEATURE: More flexible admin plugin config nav definition (#26254) 2024-03-21 13:42:06 +10:00
admin-plugin-config-page.gjs FEATURE: More flexible admin plugin config nav definition (#26254) 2024-03-21 13:42:06 +10:00
admin-plugin-filtered-site-settings.gjs FEATURE: Allow site settings to be edited throughout admin UI (#26154) 2024-03-18 08:50:39 +10:00
admin-plugins-list-item.gjs FEATURE: filter additional keywords for the sidebar (#26148) 2024-03-14 12:28:08 +11:00
admin-plugins-list.gjs DEV: Fix "ember/no-empty-glimmer-component-classes" lint (#24629) 2023-11-29 15:14:30 +01:00
admin-report-chart.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
admin-report-chart.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-report-counters.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
admin-report-counters.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-report-counts.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
admin-report-counts.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-report-inline-table.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
admin-report-inline-table.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-report-per-day-counts.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
admin-report-per-day-counts.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-report-radar.hbs DEV: Add support for radar charts when displaying reports. (#24274) 2023-11-08 10:48:12 -03:00
admin-report-radar.js DEV: Add support for radar charts when displaying reports. (#24274) 2023-11-08 10:48:12 -03:00
admin-report-stacked-chart.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
admin-report-stacked-chart.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-report-storage-stats.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
admin-report-storage-stats.js DEV: Rename I18n imports to discourse-i18n (#23915) 2023-10-18 11:07:09 +01:00
admin-report-table-cell.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
admin-report-table-cell.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-report-table-header.hbs DEV: Update DButton uses (#23333) 2023-08-31 11:49:35 +02:00
admin-report-table-header.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-report-table-row.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
admin-report-table-row.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-report-table.hbs DEV: remove slightly less trivial {{action}} usages (#24289) 2023-11-13 13:29:20 +01:00
admin-report-table.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-report-trust-level-counts.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
admin-report-trust-level-counts.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
admin-report.hbs DEV: remove trivial {{action}} usages (#24278) 2023-11-08 10:53:06 +01:00
admin-report.js DEV: Don't use attrs (#24323) 2023-11-27 12:16:31 +01:00
admin-reports.gjs FEATURE: separate admin page for whats new and reports (#26216) 2024-03-20 14:23:18 +11:00
admin-site-settings-filter-controls.gjs FEATURE: Allow site settings to be edited throughout admin UI (#26154) 2024-03-18 08:50:39 +10:00
admin-theme-editor.hbs DEV: remove slightly less trivial {{action}} usages (#24289) 2023-11-13 13:29:20 +01:00
admin-theme-editor.js DEV: Fix "no-setter-return" lint (#24585) 2023-11-28 10:49:49 +01:00
admin-user-field-item.hbs DEV: Use fn+mut instead of action+mut (#26057) 2024-03-06 18:05:03 +01:00
admin-user-field-item.js DEV: Use the "new" service import (#26059) 2024-03-06 18:05:11 +01:00
admin-watched-word.hbs DEV: remove trivial {{action}} usages (#24278) 2023-11-08 10:53:06 +01:00
admin-watched-word.js DEV: Use the "new" service import (#26059) 2024-03-06 18:05:11 +01:00
cancel-link.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
color-input.hbs DEV: Use class attribute instead of @class arg (#24804) 2023-12-12 13:09:05 +01:00
color-input.js DEV: Don't use attrs (#24323) 2023-11-27 12:16:31 +01:00
dashboard-new-feature-item.gjs DEV: Convert truth-helpers to a v2 addon and simplify imports (#26029) 2024-03-05 15:24:47 +00:00
dashboard-new-features.gjs UX: add gift emoji styling for new features (#24523) 2023-11-27 09:32:28 +11:00
dashboard-period-selector.gjs DEV: Use the "new" service import (#26059) 2024-03-06 18:05:11 +01:00
dashboard-problems.hbs DEV: Update DButton uses (#23333) 2023-08-31 11:49:35 +02:00
dashboard-problems.js DEV: Convert admin component definitions to native class syntax (#20311) 2023-02-23 15:32:53 +00:00
email-styles-editor.hbs DEV: Update DButton uses (#23333) 2023-08-31 11:49:35 +02:00
email-styles-editor.js DEV: Use the "new" service import (#26059) 2024-03-06 18:05:11 +01:00
embeddable-host.hbs DEV: Set category on embeddable-host component instead of rest object (#26374) 2024-03-26 11:16:07 -05:00
embeddable-host.js DEV: Set category on embeddable-host component instead of rest object (#26374) 2024-03-26 11:16:07 -05:00
embedding-setting.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
embedding-setting.js DEV: Fix "no-setter-return" lint (#24585) 2023-11-28 10:49:49 +01:00
emoji-value-list.hbs DEV: remove trivial {{action}} usages (#24278) 2023-11-08 10:53:06 +01:00
emoji-value-list.js DEV: Rename I18n imports to discourse-i18n (#23915) 2023-10-18 11:07:09 +01:00
file-size-input.gjs DEV: Add file_size_restriction site setting type (#24704) 2023-12-13 16:22:48 -07:00
flag-user-lists.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
flag-user-lists.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
flag-user.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
flag-user.js DEV: Convert admin component definitions to native class syntax (#20311) 2023-02-23 15:32:53 +00:00
highlighted-code.hbs DEV: Modernise highlightjs loading (#24197) 2023-11-10 20:39:48 +00:00
highlighted-code.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
inline-edit-checkbox.hbs DEV: Update DButton uses (#23333) 2023-08-31 11:49:35 +02:00
inline-edit-checkbox.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
install-theme-item.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
install-theme-item.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
ip-lookup.hbs DEV: revert missing license for maxmind changes (#24538) 2023-11-24 11:31:11 +11:00
ip-lookup.js DEV: Use the "new" service import (#26059) 2024-03-06 18:05:11 +01:00
moderation-history-item.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
permalink-form.hbs DEV: Use fn+mut instead of action+mut (#26057) 2024-03-06 18:05:03 +01:00
permalink-form.js DEV: Use the "new" service import (#26059) 2024-03-06 18:05:11 +01:00
plugin-commit-hash.hbs FIX: Improve admin plugin list and modernize code (#23256) 2023-08-28 10:48:59 +10:00
plugin-commit-hash.js FIX: Improve admin plugin list and modernize code (#23256) 2023-08-28 10:48:59 +10:00
resumable-upload.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
resumable-upload.js DEV: Convert admin component definitions to native class syntax (#20311) 2023-02-23 15:32:53 +00:00
screened-ip-address-form.hbs DEV: Use fn+mut instead of action+mut (#26057) 2024-03-06 18:05:03 +01:00
screened-ip-address-form.js DEV: Use the "new" service import (#26059) 2024-03-06 18:05:11 +01:00
secret-value-list.hbs DEV: Use class attribute instead of @class arg (#24804) 2023-12-12 13:09:05 +01:00
secret-value-list.js DEV: Rename I18n imports to discourse-i18n (#23915) 2023-10-18 11:07:09 +01:00
setting-validation-message.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
setting-validation-message.js DEV: Convert admin component definitions to native class syntax (#20311) 2023-02-23 15:32:53 +00:00
silence-details.hbs DEV: Use class attribute instead of @class arg (#24804) 2023-12-12 13:09:05 +01:00
silence-details.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
simple-list.hbs DEV: remove slightly less trivial {{action}} usages (#24289) 2023-11-13 13:29:20 +01:00
simple-list.js DEV: Update custom array implementations for Ember 5 compatibility (#24435) 2023-11-20 13:26:46 +00:00
site-customization-change-details.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
site-customization-change-details.js DEV: Convert admin component definitions to native class syntax (#20311) 2023-02-23 15:32:53 +00:00
site-customization-change-field.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
site-customization-change-field.js DEV: Convert admin component definitions to native class syntax (#20311) 2023-02-23 15:32:53 +00:00
site-setting.hbs UX: Display setting description for objects typed theme setting (#26152) 2024-03-13 12:38:21 +08:00
site-setting.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
site-text-summary.hbs DEV: Update DButton uses (#23333) 2023-08-31 11:49:35 +02:00
site-text-summary.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
staff-actions.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
staff-actions.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
tags-uploader.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
tags-uploader.js DEV: Use the "new" service import (#26059) 2024-03-06 18:05:11 +01:00
theme-setting-editor.js DEV: Allow typed objects theme settings to be saved via settings editor (#26100) 2024-03-11 08:42:12 +08:00
theme-setting-relatives-selector.js DEV: Remove layoutName references to site-settings component template 2023-02-13 11:42:38 +00:00
theme-settings-editor.hbs FEATURE: JSON editor for theme settings (#21647) 2023-07-27 13:48:59 -04:00
theme-settings-editor.js DEV: Allow typed objects theme settings to be saved via settings editor (#26100) 2024-03-11 08:42:12 +08:00
theme-translation.js FEATURE: add language picker for theme translations in admin UI (#26150) 2024-03-18 12:00:28 -04:00
theme-upload-add.hbs UX: update appropriate btn-flat instances to btn-transparent (#25945) 2024-02-29 11:47:07 +01:00
theme-upload-add.js DEV: Rename I18n imports to discourse-i18n (#23915) 2023-10-18 11:07:09 +01:00
themes-list-item.hbs FEATURE: delete multiple inactive themes/components (#23788) 2023-10-08 21:35:53 +00:00
themes-list-item.js FEATURE: filter themes and components (#25105) 2024-01-04 14:29:08 +11:00
themes-list.hbs UX: update appropriate btn-flat instances to btn-transparent (#25945) 2024-02-29 11:47:07 +01:00
themes-list.js DEV: Use the "new" service import (#26059) 2024-03-06 18:05:11 +01:00
value-list.hbs DEV: remove trivial {{action}} usages (#24278) 2023-11-08 10:53:06 +01:00
value-list.js DEV: Sort imports 2023-10-10 21:46:54 +01:00
version-checks.hbs DEV: Add a plugin outlet for admin upgrade-header (#20274) 2023-02-14 00:03:46 +01:00
version-checks.js DEV: Convert admin component definitions to native class syntax (#20311) 2023-02-23 15:32:53 +00:00
watched-word-form.hbs UX: clean up some label and form inconsistencies, reduce excess bolding (#25701) 2024-02-15 11:27:51 -05:00
watched-word-form.js DEV: Use the "new" service import (#26059) 2024-03-06 18:05:11 +01:00
watched-word-uploader.hbs DEV: Colocate all admin component templates 2023-02-13 11:42:38 +00:00
watched-word-uploader.js DEV: Rename I18n imports to discourse-i18n (#23915) 2023-10-18 11:07:09 +01:00
webhook-event-chooser.hbs FEATURE: granular webhooks (#23070) 2023-10-09 03:35:31 +00:00
webhook-event-chooser.js DEV: Fix "no-setter-return" lint (#24585) 2023-11-28 10:49:49 +01:00
webhook-event.hbs DEV: Apply prettier to hbs files 2022-12-28 13:11:12 +00:00
webhook-event.js DEV: Use the "new" service import (#26059) 2024-03-06 18:05:11 +01:00
webhook-events.hbs DEV: Add extra whitespace to tidy up prettified templates 2022-12-28 13:11:12 +00:00
webhook-events.js DEV: Use the "new" service import (#26059) 2024-03-06 18:05:11 +01:00
webhook-status.hbs DEV: Apply prettier to hbs files 2022-12-28 13:11:12 +00:00
webhook-status.js DEV: Rename I18n imports to discourse-i18n (#23915) 2023-10-18 11:07:09 +01:00