mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-04 04:47:25 -05:00
52 lines
1.6 KiB
CoffeeScript
52 lines
1.6 KiB
CoffeeScript
define [
|
|
"base"
|
|
"ide/permissions/PermissionsManager"
|
|
], (App, PermissionsManager) ->
|
|
|
|
POLLING_INTERVAL = 15
|
|
ONE_MIN_MILI = 1000 * 60
|
|
|
|
cachedState =
|
|
gotLinkStatus: false
|
|
startedLinkProcess: false
|
|
userIsLinkedToDropbox: false
|
|
hasDropboxFeature: false
|
|
|
|
|
|
App.controller "DropboxController", ($scope, $modal, ide) ->
|
|
$scope.openDropboxModal = () ->
|
|
|
|
$modal.open {
|
|
templateUrl: "dropboxModalTemplate"
|
|
controller: "DropboxModalController"
|
|
scope:$scope
|
|
}
|
|
|
|
App.controller "DropboxModalController", ($scope, $modalInstance, ide, $timeout) ->
|
|
user_id = ide.$scope.user.id
|
|
|
|
$scope.dbState = cachedState
|
|
$scope.dbState.hasDropboxFeature = $scope.project.features.dropbox
|
|
|
|
calculatePollTime = ->
|
|
ide.socket.emit "getLastTimePollHappned", (err, lastTimePollHappened)=>
|
|
milisecondsSinceLastPoll = new Date().getTime() - lastTimePollHappened
|
|
roundedMinsSinceLastPoll = Math.round(milisecondsSinceLastPoll / ONE_MIN_MILI)
|
|
|
|
$scope.dbState.minsTillNextPoll = POLLING_INTERVAL - roundedMinsSinceLastPoll
|
|
$scope.dbState.percentageLeftTillNextPoll = ((roundedMinsSinceLastPoll / POLLING_INTERVAL) * 100)
|
|
$timeout calculatePollTime, 60 * 1000
|
|
|
|
ide.socket.emit "getUserDropboxLinkStatus", user_id, (err, status)=>
|
|
if status.registered
|
|
calculatePollTime()
|
|
$scope.dbState.userIsLinkedToDropbox = true
|
|
$scope.dbState.gotLinkStatus = true
|
|
cachedState = $scope.dbState
|
|
|
|
$scope.linkToDropbox = ->
|
|
window.open("/user/settings#dropboxSettings")
|
|
$scope.startedLinkProcess = true
|
|
|
|
$scope.cancel = () ->
|
|
$modalInstance.dismiss()
|