(function(context,$) { "use strict"; context.JK = context.JK || {}; context.JK.HomeScreen = function(app) { var logger = context.JK.logger; var isFtueComplete = false; function beforeShow(data) { } function mouseenterTile() { $(this).addClass('hover'); } function mouseleaveTile() { $(this).removeClass('hover'); } function switchClientMode(e) { // ctrl + shift + 0 if(e.ctrlKey && e.shiftKey && e.keyCode == 48) { logger.debug("switch client mode!"); var act_as_native_client = $.cookie('act_as_native_client'); logger.debug("currently: " + act_as_native_client); if(act_as_native_client == null || act_as_native_client != "true") { logger.debug("forcing act as native client!"); $.cookie('act_as_native_client', 'true', { expires: 120, path: '/' }); } else { logger.debug("remove act as native client!"); $.removeCookie('act_as_native_client'); } window.location.reload(); } } function userHasDevices() { // and enable features $($createSession).on('mouseenter', mouseenterTile); $($createSession).on('mouseleave', mouseleaveTile); $($findSession).on('mouseenter', mouseenterTile); $($findSession).on('mouseleave', mouseleaveTile); } function userHasNoDevices() { var $createSession = $('div[type="createSession"]'); var $findSession = $('div[type="findSession"]'); $createSession.removeAttr('layout-link'); $findSession.removeAttr('layout-link'); // undo any earlier enabling $($createSession).off('mouseenter', mouseenterTile); $($createSession).off('mouseleave', mouseleaveTile); $($findSession).off('mouseenter', mouseenterTile); $($findSession).off('mouseleave', mouseleaveTile); // disable Create Session and Find Session tiles $('h2', $createSession).addClass('disabled'); $('h2', $findSession).addClass('disabled'); $createSession.addClass('createsession-disabled'); $createSession.removeClass('createsession'); $findSession.addClass('findsession-disabled'); $findSession.removeClass('findsession'); } // used to initialize things that do not have to be touched up in the same UI sessiion function events() { // initialize profile, feed and account tiles normally $('.homecard').on('mouseenter', mouseenterTile); $('.homecard').on('mouseleave', mouseleaveTile); if(gon.allow_force_native_client) { $('body').on('keyup', switchClientMode); } } this.initialize = function() { var screenBindings = { 'beforeShow': beforeShow }; app.bindScreen('home', screenBindings); events(); $('.profile').on('click', function() { context.location = '/client#/profile/' + context.JK.currentUserId; }); }; this.beforeShow = beforeShow; }; })(window,jQuery);