import Ember from 'ember'; import Resolver from 'ember/resolver'; import loadInitializers from 'ember/load-initializers'; import config from './config/environment'; Ember.MODEL_FACTORY_INJECTIONS = true; Ember.LinkComponent.reopen({ attributeBindings: ['alt'] }); var App = Ember.Application.extend(Ember.Evented, { LOG_TRANSITIONS: true, LOG_TRANSITIONS_INTERNAL: true, LOG_ACTIVE_GENERATION: true, LOG_MODULE_RESOLVER: true, LOG_VIEW_LOOKUPS: true, modulePrefix: config.modulePrefix, podModulePrefix: config.podModulePrefix, Resolver: Resolver, lookup() { return this.__container__.lookup.apply(this.__container__, arguments); }, flash(options) { return Travis.lookup('controller:flash').loadFlashes([options]); }, toggleSidebar() { var element; $('body').toggleClass('maximized'); element = $(''); $('#top .profile').append(element); Ember.run.later((function() { return element.remove(); }), 10); element = $(''); $('#repo').append(element); return Ember.run.later((function() { return element.remove(); }), 10); }, ready() { if (location.hash.slice(0, 2) === '#!') { location.href = location.href.replace('#!/', ''); } this.on('user:signed_in', function(user) { return Travis.onUserUpdate(user); }); this.on('user:refreshed', function(user) { return Travis.onUserUpdate(user); }); this.on('user:synced', function(user) { return Travis.onUserUpdate(user); }); return this.on('user:signed_out', function() { if (config.userlike) { return Travis.removeUserlike(); } }); }, currentDate() { return new Date(); }, onUserUpdate(user) { if (config.pro) { this.identifyCustomer(user); } if (config.userlike) { this.setupUserlike(user); } return this.subscribePusher(user); }, subscribePusher(user) { var channels; if (!user.channels) { return; } channels = user.channels; if (config.pro) { channels = channels.map(function(channel) { if (channel.match(/^private-/)) { return channel; } else { return "private-" + channel; } }); } return Travis.pusher.subscribeAll(channels); }, setupUserlike(user) { var btn, s, userlikeData; btn = document.getElementById('userlikeCustomTab'); btn.classList.add("logged-in"); userlikeData = window.userlikeData = {}; userlikeData.user = {}; userlikeData.user.name = user.login; userlikeData.user.email = user.email; if (!document.getElementById('userlike-script')) { s = document.createElement('script'); s.id = 'userlike-script'; s.src = '//userlike-cdn-widgets.s3-eu-west-1.amazonaws.com/0327dbb23382ccbbb91b445b76e8a91d4b37d90ef9f2faf84e11177847ff7bb9.js'; return document.body.appendChild(s); } }, removeUserlike() { var btn; btn = document.getElementById('userlikeCustomTab'); return btn.classList.remove("logged-in"); }, identifyCustomer(user) { if (_cio && _cio.identify) { return _cio.identify({ id: user.id, email: user.email, name: user.name, created_at: (Date.parse(user.created_at) / 1000) || null, login: user.login }); } } }); loadInitializers(App, config.modulePrefix); export default App;