diff --git a/app/assets/javascripts/discourse/app/mixins/disable-sidebar.js b/app/assets/javascripts/discourse/app/mixins/disable-sidebar.js new file mode 100644 index 00000000000..e96c2618977 --- /dev/null +++ b/app/assets/javascripts/discourse/app/mixins/disable-sidebar.js @@ -0,0 +1,15 @@ +import Mixin from "@ember/object/mixin"; + +export default Mixin.create({ + activate() { + this.controllerFor("application").setProperties({ + sidebarDisabledRouteOverride: true, + }); + }, + + deactivate() { + this.controllerFor("application").setProperties({ + sidebarDisabledRouteOverride: false, + }); + }, +}); diff --git a/app/assets/javascripts/discourse/app/routes/invites-show.js b/app/assets/javascripts/discourse/app/routes/invites-show.js index 7a044a0e373..5dfd7905a19 100644 --- a/app/assets/javascripts/discourse/app/routes/invites-show.js +++ b/app/assets/javascripts/discourse/app/routes/invites-show.js @@ -2,8 +2,9 @@ import DiscourseRoute from "discourse/routes/discourse"; import I18n from "I18n"; import PreloadStore from "discourse/lib/preload-store"; import { deepMerge } from "discourse-common/lib/object"; +import DisableSidebar from "discourse/mixins/disable-sidebar"; -export default DiscourseRoute.extend({ +export default DiscourseRoute.extend(DisableSidebar, { titleToken() { return I18n.t("invites.accept_title"); }, diff --git a/app/assets/javascripts/discourse/app/routes/second-factor-auth.js b/app/assets/javascripts/discourse/app/routes/second-factor-auth.js index 50bfee3e1ae..b3c0e06f67d 100644 --- a/app/assets/javascripts/discourse/app/routes/second-factor-auth.js +++ b/app/assets/javascripts/discourse/app/routes/second-factor-auth.js @@ -2,8 +2,9 @@ import DiscourseRoute from "discourse/routes/discourse"; import PreloadStore from "discourse/lib/preload-store"; import { ajax } from "discourse/lib/ajax"; import { extractError } from "discourse/lib/ajax-error"; +import DisableSidebar from "discourse/mixins/disable-sidebar"; -export default DiscourseRoute.extend({ +export default DiscourseRoute.extend(DisableSidebar, { queryParams: { nonce: { refreshModel: true }, }, @@ -26,18 +27,6 @@ export default DiscourseRoute.extend({ } }, - activate() { - this.controllerFor("application").setProperties({ - sidebarDisabledRouteOverride: true, - }); - }, - - deactivate() { - this.controllerFor("application").setProperties({ - sidebarDisabledRouteOverride: false, - }); - }, - setupController(controller, model) { this._super(...arguments); controller.resetState(); diff --git a/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js b/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js index 48272b7fc92..b3827c56390 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js @@ -97,6 +97,12 @@ acceptance("Invite accept", function (needs) { }); await visit("/invites/my-valid-invite-token"); + + assert.notOk( + document.body.classList.contains("has-sidebar-page"), + "does not display the sidebar on the invites page" + ); + assert.ok(exists("#new-account-email"), "shows the email input"); assert.ok(exists("#new-account-username"), "shows the username input"); assert.strictEqual( diff --git a/app/assets/javascripts/wizard/addon/routes/wizard.js b/app/assets/javascripts/wizard/addon/routes/wizard.js index 0048317818e..351b95a9580 100644 --- a/app/assets/javascripts/wizard/addon/routes/wizard.js +++ b/app/assets/javascripts/wizard/addon/routes/wizard.js @@ -1,28 +1,31 @@ import Route from "@ember/routing/route"; import { findWizard } from "wizard/models/wizard"; +import DisableSidebar from "discourse/mixins/disable-sidebar"; -export default Route.extend({ +export default Route.extend(DisableSidebar, { model() { return findWizard(); }, activate() { + this._super(...arguments); + document.body.classList.add("wizard"); this.controllerFor("application").setProperties({ showTop: false, showFooter: false, - sidebarDisabledRouteOverride: true, showSiteHeader: false, }); }, deactivate() { + this._super(...arguments); + document.body.classList.remove("wizard"); this.controllerFor("application").setProperties({ showTop: true, - sidebarDisabledRouteOverride: false, showSiteHeader: true, }); },