mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
92 lines
2.6 KiB
CoffeeScript
92 lines
2.6 KiB
CoffeeScript
define [
|
|
"base"
|
|
], (App) ->
|
|
App.controller "AccountSettingsController", ["$scope", "$http", "$modal", "event_tracking", "UserAffiliationsDataService", ($scope, $http, $modal, event_tracking, UserAffiliationsDataService) ->
|
|
$scope.subscribed = true
|
|
|
|
$scope.unsubscribe = () ->
|
|
$scope.unsubscribing = true
|
|
$http({
|
|
method: "DELETE"
|
|
url: "/user/newsletter/unsubscribe"
|
|
headers:
|
|
"X-CSRF-Token": window.csrfToken
|
|
})
|
|
.then () ->
|
|
$scope.unsubscribing = false
|
|
$scope.subscribed = false
|
|
.catch () ->
|
|
$scope.unsubscribing = true
|
|
|
|
$scope.deleteAccount = () ->
|
|
modalInstance = $modal.open(
|
|
templateUrl: "deleteAccountModalTemplate"
|
|
controller: "DeleteAccountModalController"
|
|
resolve:
|
|
userDefaultEmail: () ->
|
|
UserAffiliationsDataService
|
|
.getUserEmails()
|
|
.then (userEmails) ->
|
|
defaultEmailDetails = _.find userEmails, (userEmail) -> userEmail.default
|
|
return defaultEmailDetails?.email or null
|
|
.catch () -> null
|
|
)
|
|
|
|
$scope.upgradeIntegration = (service) ->
|
|
event_tracking.send 'subscription-funnel', 'settings-page', service
|
|
]
|
|
|
|
App.controller "DeleteAccountModalController", [
|
|
"$scope", "$modalInstance", "$timeout", "$http", "userDefaultEmail",
|
|
($scope, $modalInstance, $timeout, $http, userDefaultEmail) ->
|
|
$scope.state =
|
|
isValid : false
|
|
deleteText: ""
|
|
password: ""
|
|
inflight: false
|
|
error: false
|
|
invalidCredentials: false
|
|
|
|
$modalInstance.opened.then () ->
|
|
$timeout () ->
|
|
$scope.$broadcast "open"
|
|
, 700
|
|
|
|
$scope.checkValidation = ->
|
|
$scope.state.isValid = userDefaultEmail? and $scope.state.deleteText == userDefaultEmail and $scope.state.password.length > 0
|
|
|
|
$scope.delete = () ->
|
|
$scope.state.inflight = true
|
|
$scope.state.error = false
|
|
$scope.state.invalidCredentials = false
|
|
$http({
|
|
method: "POST"
|
|
url: "/user/delete"
|
|
headers:
|
|
"X-CSRF-Token": window.csrfToken
|
|
"Content-Type": 'application/json'
|
|
data:
|
|
password: $scope.state.password
|
|
disableAutoLoginRedirect: true # we want to handle errors ourselves
|
|
})
|
|
.then () ->
|
|
$modalInstance.close()
|
|
$scope.state.inflight = false
|
|
$scope.state.error = false
|
|
$scope.state.invalidCredentials = false
|
|
setTimeout(
|
|
() ->
|
|
window.location = "/login"
|
|
, 1000
|
|
)
|
|
.catch (response) ->
|
|
{ data, status } = response
|
|
$scope.state.inflight = false
|
|
if status == 403
|
|
$scope.state.invalidCredentials = true
|
|
else
|
|
$scope.state.error = true
|
|
|
|
$scope.cancel = () ->
|
|
$modalInstance.dismiss('cancel')
|
|
]
|