This commit adds a new `/hashtag/search` endpoint and both relevant JS and ruby plugin APIs to handle plugins adding their own data sources and priority orders for types of things to search when `#` is pressed. A `context` param is added to `setupHashtagAutocomplete` which a corresponding chat PR https://github.com/discourse/discourse-chat/pull/1302 will now use. The UI calls `registerHashtagSearchParam` for each context that will require a `#` search (e.g. the topic composer), for each type of record that the context needs to search for, as well as a priority order for that type. Core uses this call to add the `category` and `tag` data sources to the topic composer. The `register_hashtag_data_source` ruby plugin API call is for plugins to add a new data source for the hashtag searching endpoint, e.g. discourse-chat may add a `channel` data source. This functionality is hidden behind the `enable_experimental_hashtag_autocomplete` flag, except for the change to `setupHashtagAutocomplete` since only core and discourse-chat are using that function. Note this PR does **not** include required changes for hashtag lookup or new styling. |
||
|---|---|---|
| .. | ||
| animated-images.js | ||
| auth-complete.js | ||
| auto-load-modules.js | ||
| badging.js | ||
| banner.js | ||
| clean-dom-on-route-change.js | ||
| click-interceptor.js | ||
| codeblock-buttons.js | ||
| composer-hashtag-autocomplete.js | ||
| csrf-token.js | ||
| d-popover.js | ||
| edit-notification-clicks-tracker.js | ||
| ember-events.js | ||
| ember-input-component-extension.js | ||
| ember-link-component-extension.js | ||
| enable-emoji.js | ||
| image-aspect-ratio.js | ||
| inject-objects.js | ||
| jquery-plugins.js | ||
| keyboard-shortcuts.js | ||
| live-development.js | ||
| localization.js | ||
| logout.js | ||
| logs-notice.js | ||
| message-bus.js | ||
| mobile-keyboard.js | ||
| mobile.js | ||
| moment.js | ||
| onebox-decorators.js | ||
| opengraph-tag-updater.js | ||
| page-tracking.js | ||
| post-decorations.js | ||
| read-only.js | ||
| register-media-optimization-upload-processor.js | ||
| register-service-worker.js | ||
| relative-ages.js | ||
| safari-13-deprecation.js | ||
| sharing-sources.js | ||
| show-footer.js | ||
| signup-cta.js | ||
| sticky-avatars.js | ||
| strip-mobile-app-url-params.js | ||
| subscribe-user-notifications.js | ||
| topic-footer-buttons.js | ||
| url-redirects.js | ||
| webview-background.js | ||
| welcome-topic-banner.js | ||