overleaf/services/web/public/coffee/ide/chat/controllers/ChatButtonController.coffee
2015-02-16 23:16:38 +00:00

46 lines
1.3 KiB
CoffeeScript

define [
"base"
], (App) ->
App.controller "ChatButtonController", ($scope, ide) ->
$scope.toggleChat = () ->
$scope.ui.chatOpen = !$scope.ui.chatOpen
$scope.resetUnreadMessages()
$scope.unreadMessages = 0
$scope.resetUnreadMessages = () ->
$scope.unreadMessages = 0
$scope.$on "chat:resetUnreadMessages", (e) ->
$scope.resetUnreadMessages()
$scope.$on "chat:newMessage", (e, message) ->
if message?
if message?.user?.id != ide.$scope.user.id
if !$scope.ui.chatOpen
$scope.unreadMessages += 1
flashTitle()
focussed = true
newMessageNotificationTimeout = null
originalTitle = null
$(window).on "focus", () ->
clearNewMessageNotification()
focussed = true
$(window).on "blur", () ->
focussed = false
flashTitle = () ->
if !focussed and !newMessageNotificationTimeout?
originalTitle ||= window.document.title
do changeTitle = () =>
if window.document.title == originalTitle
window.document.title = "New Message"
else
window.document.title = originalTitle
newMessageNotificationTimeout = setTimeout changeTitle, 800
clearNewMessageNotification = () ->
clearTimeout newMessageNotificationTimeout
newMessageNotificationTimeout = null
if originalTitle?
window.document.title = originalTitle