class window.EmailCtrl extends AuthCtrl
    constructor: (@$rootScope, @$scope, @$http, @$state, @$injector, @Cookies, @Dock, @Token, @Constants) ->
        super()

        if not @Dock.hasBoard() or not @Dock.hasUserName() or not @Dock.photo
            @$state.go(@Constants.routes.home);

        @hasError = false
        #set subscribed to true by default
        if not @Dock.data.userInfo?
            @Dock.data.userInfo = {}

        @Dock.data.userInfo.subscribed = true

    continue: =>
        if @$scope.emailForm.$valid
            @hasError = false
            @showPreloader()
            @getToken()
        else
            @hasError = true

    onToken: (data) =>
        super(data)

    onTokenError: (error) =>
        if error.status == 422
            #show password view now
            @$state.go(@Constants.routes.password, {boardId: @boardId})
        else
            @helpText = 'email.403_error'
        @showError(@helpText)

    onUpdateUserError: (error, status) =>
        console.log "error when trying to update user "+status if DEBUG
        console.log error if DEBUG
        @helpText = ''
        @errorText = ''
        if status == 422
            @errorText = @formatErrors(error.errors)
        else
            @helpText = 'email.403_error'
        @showError(@helpText)

    showError: (helpText) =>
        @hidePreloader()
        @processing = false
        @helpText = helpText
        @hasError = true


EmailCtrl.$inject = ["$rootScope", "$scope", "$http", "$state", "$injector", "Cookies", "Dock", "Token", "Constants"]

angular.module("shuttlerockApp").controller("EmailCtrl", EmailCtrl)