Respect next param when toggling between login and register

stable
Alejandro Alonso 2016-01-13 10:02:41 +01:00 committed by Juanfran
parent 073bee3185
commit 7d60729c2e
3 changed files with 26 additions and 14 deletions

View File

@ -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])
#############################################################################

View File

@ -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")

View File

@ -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"
)