mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-23 11:23:27 +08:00
Continues the work done on https://github.com/discourse/discourse/pull/30815. Adds a `poll` node, parser, and serializer.
35 lines
1 KiB
JavaScript
Vendored
35 lines
1 KiB
JavaScript
Vendored
import { withPluginApi } from "discourse/lib/plugin-api";
|
|
import richEditorExtension from "../../lib/rich-editor-extension";
|
|
import PollUiBuilder from "../components/modal/poll-ui-builder";
|
|
|
|
function initializePollUIBuilder(api) {
|
|
api.addComposerToolbarPopupMenuOption({
|
|
action: (toolbarEvent) => {
|
|
api.container.lookup("service:modal").show(PollUiBuilder, {
|
|
model: { toolbarEvent },
|
|
});
|
|
},
|
|
icon: "chart-bar",
|
|
label: "poll.ui_builder.title",
|
|
condition: (composer) => {
|
|
const siteSettings = api.container.lookup("service:site-settings");
|
|
const currentUser = api.getCurrentUser();
|
|
|
|
return (
|
|
siteSettings.poll_enabled &&
|
|
(composer.model.topic?.pm_with_non_human_user ||
|
|
(currentUser && (currentUser.staff || currentUser.can_create_poll)))
|
|
);
|
|
},
|
|
});
|
|
|
|
api.registerRichEditorExtension(richEditorExtension);
|
|
}
|
|
|
|
export default {
|
|
name: "add-poll-ui-builder",
|
|
|
|
initialize() {
|
|
withPluginApi("1.14.0", initializePollUIBuilder);
|
|
},
|
|
};
|