diff --git a/app/assets/javascripts/discourse/initializers/url-redirects.js.es6 b/app/assets/javascripts/discourse/initializers/url-redirects.js.es6 index e183bda7424..6ed604872e3 100644 --- a/app/assets/javascripts/discourse/initializers/url-redirects.js.es6 +++ b/app/assets/javascripts/discourse/initializers/url-redirects.js.es6 @@ -20,6 +20,8 @@ export default { DiscourseURL.rewrite(new RegExp(`^/u/${username}/?$`, "i"), `/u/${username}/activity`); } - DiscourseURL.rewrite(/^\/u\/([^\/]+)\/?$/, "/u/$1/summary"); + DiscourseURL.rewrite(/^\/u\/([^\/]+)\/?$/, "/u/$1/summary", { + exceptions: ['/u/account-created'] + }); } }; diff --git a/app/assets/javascripts/discourse/lib/url.js.es6 b/app/assets/javascripts/discourse/lib/url.js.es6 index a08aa5810c6..b92662e3682 100644 --- a/app/assets/javascripts/discourse/lib/url.js.es6 +++ b/app/assets/javascripts/discourse/lib/url.js.es6 @@ -22,7 +22,12 @@ export function rewritePath(path) { const params = path.split("?"); let result = params[0]; - rewrites.forEach(rw => result = result.replace(rw.regexp, rw.replacement)); + rewrites.forEach(rw => { + if (((rw.opts.exceptions || []).some(ex => path.indexOf(ex) === 0))) { + return; + } + result = result.replace(rw.regexp, rw.replacement); + }); if (params.length > 1) { result += `?${params[1]}`; @@ -219,8 +224,8 @@ const DiscourseURL = Ember.Object.extend({ return this.handleURL(path, opts); }, - rewrite(regexp, replacement) { - rewrites.push({ regexp, replacement }); + rewrite(regexp, replacement, opts) { + rewrites.push({ regexp, replacement, opts: opts || {} }); }, redirectTo(url) { diff --git a/app/assets/javascripts/discourse/routes/account-created.js.es6 b/app/assets/javascripts/discourse/routes/account-created.js.es6 new file mode 100644 index 00000000000..f0bc8fba88f --- /dev/null +++ b/app/assets/javascripts/discourse/routes/account-created.js.es6 @@ -0,0 +1,7 @@ +import PreloadStore from 'preload-store'; + +export default Ember.Route.extend({ + setupController(controller) { + controller.set('accountCreated', PreloadStore.get('accountCreated')); + } +}); diff --git a/app/assets/javascripts/discourse/routes/app-route-map.js.es6 b/app/assets/javascripts/discourse/routes/app-route-map.js.es6 index cb0bdb8d5d3..1e8dceec05f 100644 --- a/app/assets/javascripts/discourse/routes/app-route-map.js.es6 +++ b/app/assets/javascripts/discourse/routes/app-route-map.js.es6 @@ -64,6 +64,7 @@ export default function() { // User routes this.route('users', { resetNamespace: true, path: '/u' }); this.route('password-reset', { path: '/u/password-reset/:token' }); + this.route('account-created', { path: '/u/account-created' }); this.route('user', { path: '/u/:username', resetNamespace: true }, function() { this.route('summary'); this.route('userActivity', { path: '/activity', resetNamespace: true }, function() { diff --git a/app/assets/javascripts/discourse/templates/account-created.hbs b/app/assets/javascripts/discourse/templates/account-created.hbs new file mode 100644 index 00000000000..45ee8169ba2 --- /dev/null +++ b/app/assets/javascripts/discourse/templates/account-created.hbs @@ -0,0 +1,3 @@ +