mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-04 19:44:55 -05:00
46 lines
1.3 KiB
CoffeeScript
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
|