loadConfig = -> pages_endpoint = $('meta[rel="travis.pages_endpoint"]').attr('href') billing_endpoint = $('meta[rel="travis.billing_endpoint"]').attr('href') customer_io_site_id = $('meta[name="travis.customer_io_site_id"]').attr('value') setupCustomerio(customer_io_site_id) if customer_io_site_id enterprise = $('meta[name="travis.enterprise"]').attr('value') == 'true' # for now I set pro to true also for enterprise, but it should be changed # to allow more granular config later pro = $('meta[name="travis.pro"]').attr('value') == 'true' || enterprise if config.pro pusher = channels: [] channel_prefix: 'private-' encrypted: true key: '' else pusher = channels: ['common'] channel_prefix: '' encrypted: false return { syncingPageRedirectionTime: 5000 api_endpoint: $('meta[rel="travis.api_endpoint"]').attr('href') source_endpoint: $('meta[rel="travis.source_endpoint"]').attr('href') pusher_key: $('meta[name="travis.pusher_key"]').attr('value') pusher_host: $('meta[name="travis.pusher_host"]').attr('value') pusher_path: $('meta[name="travis.pusher_path"]').attr('value') ga_code: $('meta[name="travis.ga_code"]').attr('value') code_climate: $('meta[name="travis.code_climate"]').attr('value') ssh_key_enabled: $('meta[name="travis.ssh_key_enabled"]').attr('value') == 'true' code_climate_url: $('meta[name="travis.code_climate_url"]').attr('value') caches_enabled: $('meta[name="travis.caches_enabled"]').attr('value') == 'true' show_repos_hint: 'private' avatar_default_url: 'https://travis-ci.org/images/ui/default-avatar.png' pusher_log_fallback: $('meta[name="travis.pusher_log_fallback"]').attr('value') == 'true' pro: pro enterprise: enterprise sidebar_support_box: pro && !enterprise pages_endpoint: pages_endpoint || billing_endpoint billing_endpoint: billing_endpoint url_legal: "#{billing_endpoint}/pages/legal" url_imprint: "#{billing_endpoint}/pages/imprint" url_security: "#{billing_endpoint}/pages/security" url_terms: "#{billing_endpoint}/pages/terms" customer_io_site_id: customer_io_site_id intervals: { times: -1, updateTimes: 1000 } pusher: pusher } initialize = (container, application) -> config = application.config application.register 'config:main', config, { instantiate: false } application.inject('controller', 'config', 'config:main') application.inject('route', 'config', 'config:main') application.inject('auth', 'config', 'config:main') application.pusher.config = config ConfigInitializer = name: 'config' initialize: initialize Ember.onLoad 'Ember.Application', (Application) -> Application.config loadConfig() Application.ajax.pro = Application.config.pro Application.initializer ConfigInitializer