custom-wizard-redirect.js.es6 1007 B

123456789101112131415161718192021222324252627282930313233
  1. import ApplicationRoute from 'discourse/routes/application';
  2. export default {
  3. name: "custom-wizard-redirect",
  4. after: "message-bus",
  5. initialize: function (container) {
  6. const messageBus = container.lookup('message-bus:main');
  7. if (!messageBus) { return; }
  8. messageBus.subscribe("/redirect_to_wizard", function (wizardId) {
  9. const wizardUrl = window.location.origin + '/w/' + wizardId;
  10. window.location.href = wizardUrl;
  11. });
  12. ApplicationRoute.reopen({
  13. actions: {
  14. willTransition(transition) {
  15. const redirectToWizard = this.get('currentUser.redirect_to_wizard');
  16. const excludedPaths = Discourse.SiteSettings.wizard_redirect_exclude_paths.split('|').concat(['loading']);
  17. if (redirectToWizard && excludedPaths.indexOf(this.routeName) === -1) {
  18. transition.abort();
  19. window.location = '/w/' + redirectToWizard.dasherize();
  20. }
  21. return this._super(transition);
  22. }
  23. }
  24. })
  25. }
  26. };