diff --git a/.discourse-compatibility b/.discourse-compatibility index 20d31e7..ff8a823 100644 --- a/.discourse-compatibility +++ b/.discourse-compatibility @@ -1,3 +1,4 @@ +< 3.2.0.beta2-dev: 566d79fa39eacfa299a7e60afe5b8d75020f7f7c 3.1.999: 323bd485b08889360edcae826d6272fd8e77d180 2.7.13: 5b2f5a455e1adf8ce5e8c1cfb7fbc3c388d3d82a 2.6.0.beta3: 68d40fe9f5b625cf465adc31b502a54e16d02cc6 diff --git a/javascripts/discourse/initializers/disco-toc-composer.js b/javascripts/discourse/initializers/disco-toc-composer.js index 6305d12..236cdbb 100644 --- a/javascripts/discourse/initializers/disco-toc-composer.js +++ b/javascripts/discourse/initializers/disco-toc-composer.js @@ -5,7 +5,7 @@ export default { name: "disco-toc-composer", initialize() { - withPluginApi("1.0.0", (api) => { + withPluginApi("1.14.0", (api) => { const currentUser = api.getCurrentUser(); if (!currentUser) { return; @@ -19,27 +19,19 @@ export default { } I18n.translations[I18n.currentLocale()].js.composer.contains_dtoc = " "; - api.modifyClass("controller:composer", { - pluginId: "DiscoTOC", - - actions: { - insertDtoc() { - this.get("toolbarEvent").applySurround( - `
`, - `
`, - "contains_dtoc" - ); - }, + api.addComposerToolbarPopupMenuOption({ + action: (toolbarEvent) => { + toolbarEvent.applySurround( + `
`, + `
`, + "contains_dtoc" + ); + }, + icon: "align-left", + label: themePrefix("insert_table_of_contents"), + condition: (composer) => { + return composer.model.topicFirstPost; }, - }); - - api.addToolbarPopupMenuOptionsCallback((controller) => { - return { - action: "insertDtoc", - icon: "align-left", - label: themePrefix("insert_table_of_contents"), - condition: controller.get("model.topicFirstPost"), - }; }); } }); diff --git a/test/acceptance/toc-composer-test.js b/test/acceptance/toc-composer-test.js index 0e3d77f..2350aed 100644 --- a/test/acceptance/toc-composer-test.js +++ b/test/acceptance/toc-composer-test.js @@ -1,3 +1,4 @@ +import I18n from "I18n"; import { acceptance, exists, @@ -19,7 +20,10 @@ acceptance("DiscoTOC - Composer", function (needs) { await click("#create-topic"); const toolbarPopupMenu = selectKit(".toolbar-popup-menu-options"); await toolbarPopupMenu.expand(); - await toolbarPopupMenu.selectRowByValue("insertDtoc"); + + await toolbarPopupMenu.selectRowByName( + I18n.t(themePrefix("insert_table_of_contents")) + ); assert.ok(query(".d-editor-input").value.includes('data-theme-toc="true"')); }); @@ -33,7 +37,10 @@ acceptance("DiscoTOC - Composer", function (needs) { const toolbarPopupMenu = selectKit(".toolbar-popup-menu-options"); await toolbarPopupMenu.expand(); - await toolbarPopupMenu.selectRowByValue("insertDtoc"); + + await toolbarPopupMenu.selectRowByName( + I18n.t(themePrefix("insert_table_of_contents")) + ); assert.ok(query(".d-editor-input").value.includes('data-theme-toc="true"')); }); @@ -44,6 +51,10 @@ acceptance("DiscoTOC - Composer", function (needs) { const toolbarPopupMenu = selectKit(".toolbar-popup-menu-options"); await toolbarPopupMenu.expand(); - assert.notOk(toolbarPopupMenu.rowByValue("insertDtoc").exists()); + assert.notOk( + toolbarPopupMenu + .rowByName(I18n.t(themePrefix("insert_table_of_contents"))) + .exists() + ); }); });