(function (context, $) { /** Javascript for managing the (account dropdown) */ "use strict"; context.JK = context.JK || {}; context.JK.UserDropdown = function (app) { var EVENTS = context.JK.EVENTS; var logger = context.JK.logger; var rest = new JK.Rest(); var userMe = null; var invitationDialog = null; var nowYetShownGettingStarted = true; function menuHoverIn() { $('ul.shortcuts', this).show(); } function menuHoverOut() { $('ul.shortcuts', this).hide(); } function events() { $('.userinfo').hoverIntent({ over: function () { $('ul.shortcuts', this).fadeIn(100); }, out: function () { $('ul.shortcuts', this).fadeOut(100); }, timeout: 500 }); $('.userinfo .invite-friends .menuheader').on('click', function (e) { $(this).closest('li').css('height', 'auto').find('ul').toggle(); e.stopPropagation(); return false; }); $('.invite-friends .google-invite a').on('click', function (e) { invitationDialog.showGoogleDialog(); }); $('.invite-friends .email-invite a').on('click', function (e) { invitationDialog.showEmailDialog(); }); $('.invite-friends .facebook-invite a').on('click', function (e) { invitationDialog.showFacebookDialog(e); }); $('.shortcuts .test-network').on('click', function(e) { app.layout.showDialog('network-test'); return false; }); $('#header-avatar').on('avatar_changed', function (event, newAvatarUrl) { updateAvatar(newAvatarUrl); event.preventDefault(); return false; }); $(document).on(EVENTS.USER_UPDATED, function(e, data) { userMe = data; updateHeader(); }) } function loadMe() { if (!context.JK.currentUserId) { return; } app.user() .done(function(r) { userMe = r; // TODO - Setting global variable for local user. context.JK.userMe = r; updateHeader(); }); } function updateHeader() { $('#user').html(userMe.name); showAvatar(); } // initially show avatar function showAvatar() { var photoUrl = context.JK.resolveAvatarUrl(userMe.photo_url); $('#header-avatar').attr('src', photoUrl); } // handle update avatar event function updateAvatar(avatar_url) { var photoUrl = context.JK.resolveAvatarUrl(avatar_url); var avatar = $(new Image()); avatar.attr('src', photoUrl + '?cache_bust=' + new Date().getTime()); avatar.attr('alt', "Avatar"); avatar.attr('id', 'header-avatar'); $('#header-avatar').replaceWith(avatar); } this.initialize = function (invitationDialogInstance) { events(); invitationDialog = invitationDialogInstance; loadMe(); } this.loadMe = loadMe; } })(window, jQuery);