DEV: Switch to new `addComposerToolbarPopupMenuOption` plugin API (#460)

Why this change?

`api.addToolbarPopupMenuOptionsCallback` has been deprecated in 913fd3a7b3
This commit is contained in:
Alan Guo Xiang Tan 2023-10-23 08:32:04 +08:00 committed by GitHub
parent 09583aa7dd
commit 1964912315
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 45 additions and 45 deletions

View File

@ -1,3 +1,4 @@
< 3.2.0.beta2: 6c659020ab5cca4af846b4b78e4ed0b4e06a2bca
3.1.0.beta3: 10077ca904956005f9fa83c3d9fb124b59e8c47b 3.1.0.beta3: 10077ca904956005f9fa83c3d9fb124b59e8c47b
2.9.0.beta13: b4c366b35d6f9778e54a878aa083348e8a45e86e 2.9.0.beta13: b4c366b35d6f9778e54a878aa083348e8a45e86e
2.9.0.beta9: 6f16ae10dc0306d6e1369e0d1414416d7e72141d 2.9.0.beta9: 6f16ae10dc0306d6e1369e0d1414416d7e72141d

View File

@ -3,50 +3,40 @@ import showModal from "discourse/lib/show-modal";
function initializeEventBuilder(api) { function initializeEventBuilder(api) {
const currentUser = api.getCurrentUser(); const currentUser = api.getCurrentUser();
const store = api.container.lookup("service:store");
api.addToolbarPopupMenuOptionsCallback((composerController) => { api.addComposerToolbarPopupMenuOption({
if (!currentUser || !currentUser.can_create_discourse_post_event) { action: (toolbarEvent) => {
return; const eventModel = store.createRecord("discourse-post-event-event");
} eventModel.set("status", "public");
eventModel.set("custom_fields", {});
eventModel.set("starts_at", moment());
eventModel.set("timezone", moment.tz.guess());
const composerModel = composerController.model; showModal("discourse-post-event-builder").setProperties({
if ( toolbarEvent,
composerModel && model: { eventModel },
!composerModel.replyingToTopic && });
(composerModel.topicFirstPost || },
composerModel.creatingPrivateMessage || group: "insertions",
(composerModel.editingPost && icon: "calendar-day",
composerModel.post && label: "discourse_post_event.builder_modal.attach",
composerModel.post.post_number === 1)) condition: (composer) => {
) { if (!currentUser || !currentUser.can_create_discourse_post_event) {
return { return false;
label: "discourse_post_event.builder_modal.attach", }
id: "insertEvent",
group: "insertions",
icon: "calendar-day",
action: "insertEvent",
};
}
});
api.modifyClass("controller:composer", { const composerModel = composer.model;
pluginId: "discourse-calendar",
actions: { return (
insertEvent() { composerModel &&
const eventModel = this.store.createRecord( !composerModel.replyingToTopic &&
"discourse-post-event-event" (composerModel.topicFirstPost ||
); composerModel.creatingPrivateMessage ||
eventModel.set("status", "public"); (composerModel.editingPost &&
eventModel.set("custom_fields", {}); composerModel.post &&
eventModel.set("starts_at", moment()); composerModel.post.post_number === 1))
eventModel.set("timezone", moment.tz.guess()); );
showModal("discourse-post-event-builder").setProperties({
toolbarEvent: this.toolbarEvent,
model: { eventModel },
});
},
}, },
}); });
} }

View File

@ -1,8 +1,9 @@
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
import { test } from "qunit";
import { click, fillIn, visit } from "@ember/test-helpers"; import { click, fillIn, visit } from "@ember/test-helpers";
import selectKit from "discourse/tests/helpers/select-kit-helper"; import { test } from "qunit";
import sinon from "sinon"; import sinon from "sinon";
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
import selectKit from "discourse/tests/helpers/select-kit-helper";
import I18n from "discourse-i18n";
acceptance("Post event - composer", function (needs) { acceptance("Post event - composer", function (needs) {
needs.user({ admin: true, can_create_discourse_post_event: true }); needs.user({ admin: true, can_create_discourse_post_event: true });
@ -21,7 +22,11 @@ acceptance("Post event - composer", function (needs) {
await categoryChooser.expand(); await categoryChooser.expand();
await categoryChooser.selectRowByValue(2); await categoryChooser.selectRowByValue(2);
await click(".toolbar-popup-menu-options .dropdown-select-box-header"); await click(".toolbar-popup-menu-options .dropdown-select-box-header");
await click(".toolbar-popup-menu-options *[data-value='insertEvent']"); await click(
`.toolbar-popup-menu-options *[data-name='${I18n.t(
"discourse_post_event.builder_modal.attach"
)}']`
);
const modal = ".discourse-post-event-builder-modal"; const modal = ".discourse-post-event-builder-modal";
@ -87,7 +92,11 @@ acceptance("Post event - composer", function (needs) {
await categoryChooser.selectRowByValue(2); await categoryChooser.selectRowByValue(2);
await click(".toolbar-popup-menu-options .dropdown-select-box-header"); await click(".toolbar-popup-menu-options .dropdown-select-box-header");
await click(".toolbar-popup-menu-options *[data-value='insertEvent']"); await click(
`.toolbar-popup-menu-options *[data-name='${I18n.t(
"discourse_post_event.builder_modal.attach"
)}']`
);
const modal = ".discourse-post-event-builder-modal"; const modal = ".discourse-post-event-builder-modal";