diff --git a/app/coffee/modules/auth.coffee b/app/coffee/modules/auth.coffee index 512b31ab..26b5c466 100644 --- a/app/coffee/modules/auth.coffee +++ b/app/coffee/modules/auth.coffee @@ -203,14 +203,20 @@ module.service("$tgAuth", AuthService) # Directive that manages the visualization of public register # message/link on login page. -PublicRegisterMessageDirective = ($config, $navUrls, templates) -> +PublicRegisterMessageDirective = ($config, $navUrls, $routeParams, templates) -> template = templates.get("auth/login-text.html", true) templateFn = -> publicRegisterEnabled = $config.get("publicRegisterEnabled") if not publicRegisterEnabled return "" - return template({url:$navUrls.resolve("register")}) + + url = $navUrls.resolve("register") + if $routeParams['next'] and $routeParams['next'] != $navUrls.resolve("login") + nextUrl = decodeURIComponent($routeParams['next']) + url += "?next=#{nextUrl}" + + return template({url:url}) return { restrict: "AE" @@ -218,22 +224,22 @@ PublicRegisterMessageDirective = ($config, $navUrls, templates) -> template: templateFn } -module.directive("tgPublicRegisterMessage", ["$tgConfig", "$tgNavUrls", "$tgTemplate", - PublicRegisterMessageDirective]) +module.directive("tgPublicRegisterMessage", ["$tgConfig", "$tgNavUrls", "$routeParams", + "$tgTemplate", PublicRegisterMessageDirective]) LoginDirective = ($auth, $confirm, $location, $config, $routeParams, $navUrls, $events, $translate) -> link = ($scope, $el, $attrs) -> form = new checksley.Form($el.find("form.login-form")) - onSuccess = (response) -> - if $routeParams['next'] and $routeParams['next'] != $navUrls.resolve("login") - nextUrl = decodeURIComponent($routeParams['next']) - else - nextUrl = $navUrls.resolve("home") + if $routeParams['next'] and $routeParams['next'] != $navUrls.resolve("login") + $scope.nextUrl = decodeURIComponent($routeParams['next']) + else + $scope.nextUrl = $navUrls.resolve("home") + onSuccess = (response) -> $events.setupConnection() - $location.url(nextUrl) + $location.url($scope.nextUrl) onError = (response) -> $confirm.notify("light-error", $translate.instant("LOGIN_FORM.ERROR_AUTH_INCORRECT")) @@ -271,7 +277,7 @@ module.directive("tgLogin", ["$tgAuth", "$tgConfirm", "$tgLocation", "$tgConfig" ## Register Directive ############################################################################# -RegisterDirective = ($auth, $confirm, $location, $navUrls, $config, $analytics, $translate) -> +RegisterDirective = ($auth, $confirm, $location, $navUrls, $config, $routeParams, $analytics, $translate) -> link = ($scope, $el, $attrs) -> if not $config.get("publicRegisterEnabled") $location.path($navUrls.resolve("not-found")) @@ -280,12 +286,17 @@ RegisterDirective = ($auth, $confirm, $location, $navUrls, $config, $analytics, $scope.data = {} form = $el.find("form").checksley({onlyOneErrorElement: true}) + if $routeParams['next'] and $routeParams['next'] != $navUrls.resolve("login") + $scope.nextUrl = decodeURIComponent($routeParams['next']) + else + $scope.nextUrl = $navUrls.resolve("home") + onSuccessSubmit = (response) -> $analytics.trackEvent("auth", "register", "user registration", 1) $confirm.notify("success", $translate.instant("LOGIN_FORM.SUCCESS")) - $location.path($navUrls.resolve("home")) + $location.path($scope.nextUrl) onErrorSubmit = (response) -> if response.data._error_message @@ -313,7 +324,7 @@ RegisterDirective = ($auth, $confirm, $location, $navUrls, $config, $analytics, return {link:link} module.directive("tgRegister", ["$tgAuth", "$tgConfirm", "$tgLocation", "$tgNavUrls", "$tgConfig", - "$tgAnalytics", "$translate", RegisterDirective]) + "$routeParams", "$tgAnalytics", "$translate", RegisterDirective]) ############################################################################# diff --git a/app/partials/auth/login-text.jade b/app/partials/auth/login-text.jade index f5db9ef4..90b384f8 100644 --- a/app/partials/auth/login-text.jade +++ b/app/partials/auth/login-text.jade @@ -1,4 +1,4 @@ p.login-text span(translate="AUTH.NOT_REGISTERED_YET") |   - a(href!='<%- url %>', tg-nav='register', title='{{"AUTH.REGISTER" | translate}}', translate="AUTH.CREATE_ACCOUNT") + a(href!='<%- url %>', title='{{"AUTH.REGISTER" | translate}}', translate="AUTH.CREATE_ACCOUNT") diff --git a/app/partials/includes/modules/register-form.jade b/app/partials/includes/modules/register-form.jade index 52426fd6..e5aa9b6b 100644 --- a/app/partials/includes/modules/register-form.jade +++ b/app/partials/includes/modules/register-form.jade @@ -64,5 +64,6 @@ div.register-form-container(tg-register) href="" title="{{'REGISTER_FORM.TITLE_LINK_LOGIN' | translate}}" tg-nav="login" + tg-nav-get-params="{\"next\": \"{{nextUrl}}\"}" translate="REGISTER_FORM.LINK_LOGIN" )