diff --git a/services/web/public/coffee/ide/editor/controllers/SavingNotificationController.coffee b/services/web/public/coffee/ide/editor/controllers/SavingNotificationController.coffee index edefe07ea9..c59e717407 100644 --- a/services/web/public/coffee/ide/editor/controllers/SavingNotificationController.coffee +++ b/services/web/public/coffee/ide/editor/controllers/SavingNotificationController.coffee @@ -3,7 +3,7 @@ define [ "ide/editor/Document" ], (App, Document) -> App.controller "SavingNotificationController", ["$scope", "$interval", "ide", ($scope, $interval, ide) -> - $interval () -> + setInterval () -> pollSavedStatus() , 1000 @@ -13,21 +13,25 @@ define [ $scope.docSavingStatus = {} pollSavedStatus = () -> oldStatus = $scope.docSavingStatus - $scope.docSavingStatus = {} + newStatus = {} for doc_id, doc of Document.openDocs saving = doc.pollSavedStatus() if !saving if oldStatus[doc_id]? - $scope.docSavingStatus[doc_id] = oldStatus[doc_id] - $scope.docSavingStatus[doc_id].unsavedSeconds += 1 + newStatus[doc_id] = oldStatus[doc_id] + newStatus[doc_id].unsavedSeconds += 1 else - $scope.docSavingStatus[doc_id] = { + newStatus[doc_id] = { unsavedSeconds: 0 doc: ide.fileTreeManager.findEntityById(doc_id) } + if _.size(newStatus) or _.size(oldStatus) + $scope.docSavingStatus = newStatus + $scope.$apply() + warnAboutUnsavedChanges = () -> if Document.hasUnsavedChanges() return "You have unsaved changes. If you leave now they will not be saved." - ] \ No newline at end of file + ]