mirror of
https://github.com/discourse/discourse.git
synced 2024-12-12 16:13:54 +08:00
5d9306a6fc
There was an issue with channel archiving, where at times the topic creation could fail which left the archive in a bad state, as read-only instead of archived. This commit does several things: * Changes the ChatChannelArchiveService to validate the topic being created first and if it is not valid report the topic creation errors in the PM we send to the user * Changes the UI message in the channel with the archive status to reflect that topic creation failed * Validate the new topic when starting the archive process from the UI, and show the validation errors to the user straight away instead of creating the archive record and starting the process This also fixes another issue in the discourse_dev config which was failing because YAML parsing does not enable all classes by default now, which was making the seeding rake task for chat fail. |
||
---|---|---|
.. | ||
app | ||
assets | ||
config | ||
db | ||
lib | ||
public | ||
spec | ||
test/javascripts | ||
plugin.rb | ||
README.md |
⚠️ This plugin is still in active development and may change frequently
Documentation
The Discourse Chat plugin adds chat functionality to your Discourse so it can natively support both long-form and short-form communication needs of your online community.
For documentation, see Discourse Chat
Plugin API
registerChatComposerButton
Usage
api.registerChatComposerButton({ id: "foo", ... });
Options
Every option accepts a value
or a function
, when passing a function this
will be the chat-composer
component instance. Example of an option using a function:
api.registerChatComposerButton({
id: "foo",
displayed() {
return this.site.mobileView && this.canAttachUploads;
},
});
Required
id
unique, used to identify your button, eg: "gifs"action
callback when the button is pressed, can be an action name or an anonymous function, eg: "onFooClicked" or() => { console.log("clicked") }
A button requires at least an icon or a label:
icon
, eg: "times"label
, text displayed on the button, a translatable key, eg: "foo.bar"translatedLabel
, text displayed on the button, a string, eg: "Add gifs"
Optional
position
, can be "inline" or "dropdown", defaults to "inline"title
, title attribute of the button, a translatable key, eg: "foo.bar"translatedTitle
, title attribute of the button, a string, eg: "Add gifs"ariaLabel
, aria-label attribute of the button, a translatable key, eg: "foo.bar"translatedAriaLabel
, aria-label attribute of the button, a string, eg: "Add gifs"classNames
, additional names to add to the button’s class attribute, eg: ["foo", "bar"]displayed
, hide/or show the button, expects a booleandisabled
, sets the disabled attribute on the button, expects a booleanpriority
, an integer defining the order of the buttons, higher comes first, eg:700
dependentKeys
, list of property names which should trigger a refresh of the buttons when changed, eg:["foo.bar", "bar.baz"]