diff --git a/assets/scripts/app/adapters/application.coffee b/assets/scripts/app/adapters/application.coffee index 272c5885..426b742e 100644 --- a/assets/scripts/app/adapters/application.coffee +++ b/assets/scripts/app/adapters/application.coffee @@ -1,5 +1,8 @@ Adapter = DS.ActiveModelAdapter.extend - host: Travis.config.api_endpoint + host: (-> + Travis.config.api_endpoint + ).property() + ajaxOptions: (url, type, options) -> hash = @_super(url, type, options) diff --git a/assets/scripts/app/app.coffee b/assets/scripts/app/app.coffee index 35f10edc..2db70e8c 100644 --- a/assets/scripts/app/app.coffee +++ b/assets/scripts/app/app.coffee @@ -1,126 +1,126 @@ -unless window.TravisApplication - window.TravisApplication = Em.Application.extend(Ember.Evented, - LOG_TRANSITIONS: true, +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 + #LOG_RESOLVER: true - setup: -> - @pusher = new Travis.Pusher(key: Travis.config.pusher_key, host: Travis.config.pusher_host) if Travis.config.pusher_key - @tailing = new Travis.Tailing($(window), '#tail', '#log') - @toTop = new Travis.ToTop($(window), '.to-top', '#log-container') + setup: -> + @pusher = new Travis.Pusher(key: Travis.config.pusher_key, host: Travis.config.pusher_host) if Travis.config.pusher_key + @tailing = new Travis.Tailing($(window), '#tail', '#log') + @toTop = new Travis.ToTop($(window), '.to-top', '#log-container') - @on 'user:signed_in', (user) -> - Travis.onUserUpdate(user) + @on 'user:signed_in', (user) -> + Travis.onUserUpdate(user) - @on 'user:synced', (user) -> - Travis.onUserUpdate(user) + @on 'user:synced', (user) -> + Travis.onUserUpdate(user) - reset: -> - @_super.apply(this, arguments) - @get('modelClasses').forEach (klass) -> - klass.resetData() - @setup() + lookup: -> + @__container__.lookup.apply @__container__, arguments - lookup: -> - @__container__.lookup.apply @__container__, arguments + flash: (options) -> + Travis.lookup('controller:flash').loadFlashes([options]) - flash: (options) -> - Travis.lookup('controller:flash').loadFlashes([options]) + receive: (event, data) -> + [name, type] = event.split(':') - receive: (event, data) -> - [name, type] = event.split(':') + store = @__container__.lookup('store:main') - store = @__container__.lookup('store:main') + if name == 'job' && data.job?.commit + store.pushPayload(commits: [data.job.commit]) - if name == 'job' && data.job?.commit - store.pushPayload(commits: [data.job.commit]) + if name == 'build' && data.build?.commit + # TODO: commit should be a sideload record on build, not mixed with it + build = data.build + commit = { + id: build.commit_id + author_email: build.author_email + author_name: build.author_name + branch: build.branch + committed_at: build.committed_at + committer_email: build.committer_email + committer_name: build.committer_name + compare_url: build.compare_url + message: build.message + sha: build.commit + } + delete(data.build.commit) - if name == 'build' && data.build?.commit - # TODO: commit should be a sideload record on build, not mixed with it - build = data.build - commit = { - id: build.commit_id - author_email: build.author_email - author_name: build.author_name - branch: build.branch - committed_at: build.committed_at - committer_email: build.committer_email - committer_name: build.committer_name - compare_url: build.compare_url - message: build.message - sha: build.commit - } - delete(data.build.commit) + store.pushPayload(commit: [commit]) - store.pushPayload(commit: [commit]) + if event == 'job:log' + console.log 'store: received job:log event', data if Log.DEBUG + data = data.job + job = store.recordForId('job', data.id) + job.appendLog(number: parseInt(data.number), content: data._log, final: data.final) + else if data[name] + @_loadOne(store, name, data) + else + throw "can't load data for #{name}" unless type - if event == 'job:log' - console.log 'store: received job:log event', data if Log.DEBUG - data = data.job - job = store.recordForId('job', data.id) - job.appendLog(number: parseInt(data.number), content: data._log, final: data.final) - else if data[name] - @_loadOne(store, name, data) + _loadOne: (store, type, json) -> + payload = {} + payload[type.pluralize()] = [json[type]] + store.pushPayload(payload) + + # we get other types of records only in a few situations and + # it's not always needed to update data, so I'm specyfing which + # things I want to update here: + if type == 'build' && (json.repository || json.repo) + data = json.repository || json.repo + store.pushPayload(repos: [data]) + + toggleSidebar: -> + $('body').toggleClass('maximized') + # TODO gotta force redraws here :/ + element = $('') + $('#top .profile').append(element) + Em.run.later (-> element.remove()), 10 + element = $('') + $('#repo').append(element) + Em.run.later (-> element.remove()), 10 + + ready: -> + @slider = new Travis.Slider(@storage) + location.href = location.href.replace('#!/', '') if location.hash.slice(0, 2) == '#!' + + currentDate: -> + new Date() + + onUserUpdate: (user) -> + if Travis.config.pro + @identifyCustomer(user) + @subscribePusher(user) + @setupCharm(user) + + subscribePusher: (user) -> + channels = user.channels + channels = channels.map (channel) -> + if channel.match /^private-/ + channel else - throw "can't load data for #{name}" unless type + "private-#{channel}" + Travis.pusher.subscribeAll(channels) - _loadOne: (store, type, json) -> - payload = {} - payload[type.pluralize()] = [json[type]] - store.pushPayload(payload) + setupCharm: (user) -> + $.extend window.__CHARM, + customer: user.login, + customer_id: user.id, + email: user.email - # we get other types of records only in a few situations and - # it's not always needed to update data, so I'm specyfing which - # things I want to update here: - if type == 'build' && (json.repository || json.repo) - data = json.repository || json.repo - store.pushPayload(repos: [data]) + displayCharm: -> + __CHARM.show() - toggleSidebar: -> - $('body').toggleClass('maximized') - # TODO gotta force redraws here :/ - element = $('') - $('#top .profile').append(element) - Em.run.later (-> element.remove()), 10 - element = $('') - $('#repo').append(element) - Em.run.later (-> element.remove()), 10 - - ready: -> - @slider = new Travis.Slider(@storage) - location.href = location.href.replace('#!/', '') if location.hash.slice(0, 2) == '#!' - - currentDate: -> - new Date() - - onUserUpdate: (user) -> - if Travis.config.pro - @identifyCustomer(user) - @subscribePusher(user) - @setupCharm(user) - - subscribePusher: (user) -> - channels = user.channels - channels = channels.map (channel) -> - if channel.match /^private-/ - channel - else - "private-#{channel}" - Travis.pusher.subscribeAll(channels) - - setupCharm: (user) -> - $.extend window.__CHARM, - customer: user.login, - customer_id: user.id, + identifyCustomer: (user) -> + if _cio && _cio.identify + _cio.identify + id: user.id email: user.email + name: user.name + created_at: (Date.parse(user.created_at) / 1000) || null + login: user.login +) - displayCharm: -> - __CHARM.show() - - identifyCustomer: (user) -> - if _cio && _cio.identify - _cio.identify - id: user.id - email: user.email - name: user.name - created_at: (Date.parse(user.created_at) / 1000) || null - login: user.login - ) +window.App = App unless window.App diff --git a/assets/scripts/app/controllers/account.coffee b/assets/scripts/app/controllers/account.coffee index 8b692219..51f0a086 100644 --- a/assets/scripts/app/controllers/account.coffee +++ b/assets/scripts/app/controllers/account.coffee @@ -1,4 +1,4 @@ -Travis.AccountController = Ember.ObjectController.extend +Controller = Ember.ObjectController.extend allHooks: [] needs: ['currentUser'] userBinding: 'controllers.currentUser' @@ -38,9 +38,11 @@ Travis.AccountController = Ember.ObjectController.extend ).property('allHooks.length', 'allHooks') showPrivateReposHint: (-> - Travis.config.show_repos_hint == 'private' + @config.show_repos_hint == 'private' ) .property() showPublicReposHint: (-> - Travis.config.show_repos_hint == 'public' + @config.show_repos_hint == 'public' ) .property() + +Travis.AccountController = Controller diff --git a/assets/scripts/app/controllers/accounts.coffee b/assets/scripts/app/controllers/accounts.coffee index b96965a1..0959f1cd 100644 --- a/assets/scripts/app/controllers/accounts.coffee +++ b/assets/scripts/app/controllers/accounts.coffee @@ -1,2 +1,4 @@ -Travis.AccountsController = Ember.ArrayController.extend +Controller = Ember.ArrayController.extend tab: 'accounts' + +Travis.AccountsController = Controller diff --git a/assets/scripts/app/controllers/accounts/info.coffee b/assets/scripts/app/controllers/accounts/info.coffee index 538617bb..80d9e48b 100644 --- a/assets/scripts/app/controllers/accounts/info.coffee +++ b/assets/scripts/app/controllers/accounts/info.coffee @@ -1,4 +1,4 @@ -Controller = Em.Controller.extend +Controller = Ember.Controller.extend needs: ['currentUser', 'repos'] userBinding: 'controllers.currentUser' diff --git a/assets/scripts/app/controllers/annotations.coffee b/assets/scripts/app/controllers/annotations.coffee deleted file mode 100644 index e69de29b..00000000 diff --git a/assets/scripts/app/controllers/auth.coffee b/assets/scripts/app/controllers/auth.coffee index 4bbfb9e6..ca123dee 100644 --- a/assets/scripts/app/controllers/auth.coffee +++ b/assets/scripts/app/controllers/auth.coffee @@ -1 +1,3 @@ -Travis.AuthController = Ember.Controller.extend() +Controller = Ember.Controller.extend() + +Travis.AuthController = Controller diff --git a/assets/scripts/app/controllers/build.coffee b/assets/scripts/app/controllers/build.coffee index dbbbf33d..48ea6918 100644 --- a/assets/scripts/app/controllers/build.coffee +++ b/assets/scripts/app/controllers/build.coffee @@ -1,5 +1,3 @@ -require 'helpers/urls' - gravatarImage = Travis.Urls.gravatarImage Controller = Ember.Controller.extend Travis.GithubUrlProperties, diff --git a/assets/scripts/app/controllers/builds.coffee b/assets/scripts/app/controllers/builds.coffee index ca4474e3..6d86a1be 100644 --- a/assets/scripts/app/controllers/builds.coffee +++ b/assets/scripts/app/controllers/builds.coffee @@ -1,4 +1,4 @@ -Travis.BuildsController = Em.ArrayController.extend +Controller = Ember.ArrayController.extend isPullRequestsList: false sortAscending: false @@ -26,3 +26,5 @@ Travis.BuildsController = Em.ArrayController.extend options.event_type = type.replace(/s$/, '') # poor man's singularize @store.find('build', options) + +Travis.BuildsController = Controller diff --git a/assets/scripts/app/controllers/builds/item.coffee b/assets/scripts/app/controllers/builds/item.coffee index 1b6c47b3..17baee76 100644 --- a/assets/scripts/app/controllers/builds/item.coffee +++ b/assets/scripts/app/controllers/builds/item.coffee @@ -1,6 +1,7 @@ colorForState = Travis.Helpers.colorForState +GithubUrlProperties = Travis.GithubUrlProperties -Controller = Em.ObjectController.extend(Travis.GithubUrlProperties, +Controller = Ember.ObjectController.extend(GithubUrlProperties, needs: ['builds'] isPullRequestsListBinding: 'controllers.builds.isPullRequestsList' buildBinding: 'content' diff --git a/assets/scripts/app/controllers/caches-by-branch.coffee b/assets/scripts/app/controllers/caches-by-branch.coffee new file mode 100644 index 00000000..450a43b9 --- /dev/null +++ b/assets/scripts/app/controllers/caches-by-branch.coffee @@ -0,0 +1,24 @@ +Ajax = Travis.ajax + +Controller = Ember.ObjectController.extend + isDeleting: false + needs: ['repo', 'caches'] + repo: Ember.computed.alias('controllers.repo.repo') + + actions: + delete: -> + return if @get('isDeleting') + + if confirm('Are you sure?') + @set('isDeleting', true) + + data = { branch: @get('branch') } + + deletingDone = => @set('isDeleting', false) + + repo = @get('repo') + Ajax("/repos/#{repo.get('id')}/caches", "DELETE", data: data).then(deletingDone, deletingDone).then => + model = @get('model') + @get('controllers.caches').removeObject(model) + +Travis.CachesByBranchController = Controller diff --git a/assets/scripts/app/controllers/caches-item.coffee b/assets/scripts/app/controllers/caches-item.coffee new file mode 100644 index 00000000..9ef9b6aa --- /dev/null +++ b/assets/scripts/app/controllers/caches-item.coffee @@ -0,0 +1,26 @@ +Ajax = Travis.ajax + +Controller = Ember.ObjectController.extend + isDeleting: false + needs: ['repo', 'caches'] + repo: Ember.computed.alias('controllers.repo.repo') + + actions: + delete: -> + return if @get('isDeleting') + + if confirm('Are you sure?') + @set('isDeleting', true) + + data = { branch: @get('branch'), match: @get('slug') } + + deletingDone = => @set('isDeleting', false) + + repo = @get('repo') + Ajax("/repos/#{repo.get('id')}/caches", "DELETE", data: data).then(deletingDone, deletingDone).then => + model = @get('model') + @get('parent.caches').removeObject(model) + if @get('parent.caches.length') == 0 + @get('controllers.caches').removeObject(@get('parent')) + +Travis.CacheItemController = Controller diff --git a/assets/scripts/app/controllers/caches.coffee b/assets/scripts/app/controllers/caches.coffee index 7a054876..336ba5eb 100644 --- a/assets/scripts/app/controllers/caches.coffee +++ b/assets/scripts/app/controllers/caches.coffee @@ -1,4 +1,4 @@ -Travis.CachesController = Ember.ArrayController.extend +Controller = Ember.ArrayController.extend isDeleting: false needs: ['repo'] repo: Ember.computed.alias('controllers.repo.repo') @@ -16,46 +16,4 @@ Travis.CachesController = Ember.ArrayController.extend Travis.ajax.ajax("/repos/#{repo.get('id')}/caches", "DELETE").then(deletingDone, deletingDone).then => @clear() -Travis.CachesByBranchController = Ember.ObjectController.extend - isDeleting: false - needs: ['repo', 'caches'] - repo: Ember.computed.alias('controllers.repo.repo') - - actions: - delete: -> - return if @get('isDeleting') - - if confirm('Are you sure?') - @set('isDeleting', true) - - data = { branch: @get('branch') } - - deletingDone = => @set('isDeleting', false) - - repo = @get('repo') - Travis.ajax.ajax("/repos/#{repo.get('id')}/caches", "DELETE", data: data).then(deletingDone, deletingDone).then => - model = @get('model') - @get('controllers.caches').removeObject(model) - -Travis.CacheItemController = Ember.ObjectController.extend - isDeleting: false - needs: ['repo', 'caches'] - repo: Ember.computed.alias('controllers.repo.repo') - - actions: - delete: -> - return if @get('isDeleting') - - if confirm('Are you sure?') - @set('isDeleting', true) - - data = { branch: @get('branch'), match: @get('slug') } - - deletingDone = => @set('isDeleting', false) - - repo = @get('repo') - Travis.ajax.ajax("/repos/#{repo.get('id')}/caches", "DELETE", data: data).then(deletingDone, deletingDone).then => - model = @get('model') - @get('parent.caches').removeObject(model) - if @get('parent.caches.length') == 0 - @get('controllers.caches').removeObject(@get('parent')) +Travis.CachesController = Controller diff --git a/assets/scripts/app/controllers/current-user.coffee b/assets/scripts/app/controllers/current-user.coffee index 4b8ca9e4..147a37bb 100644 --- a/assets/scripts/app/controllers/current-user.coffee +++ b/assets/scripts/app/controllers/current-user.coffee @@ -1,4 +1,4 @@ -Travis.CurrentUserController = Em.ObjectController.extend +Controller = Ember.ObjectController.extend sync: -> @get('model').sync() @@ -9,3 +9,5 @@ Travis.CurrentUserController = Em.ObjectController.extend Ember.run.scheduleOnce 'routerTransitions', this, -> @container.lookup('router:main').send('renderFirstSync') ).observes('isSyncing', 'auth.currentUser') + +Travis.CurrentUserController = Controller diff --git a/assets/scripts/app/controllers/env-var-new.coffee b/assets/scripts/app/controllers/env-var-new.coffee index d4fe5777..6b511d6e 100644 --- a/assets/scripts/app/controllers/env-var-new.coffee +++ b/assets/scripts/app/controllers/env-var-new.coffee @@ -3,7 +3,7 @@ require 'travis/validations' Validations = Travis.Validations EnvVar = Travis.EnvVar -Travis.EnvVarsNewController = Ember.Controller.extend Validations, +Controller = Ember.Controller.extend Validations, needs: ['repo'] repo: Ember.computed.alias('controllers.repo.repo') @@ -42,3 +42,5 @@ Travis.EnvVarsNewController = Ember.Controller.extend Validations, self.transitionToRoute('env_vars') , => @set('isSaving', false) + +Travis.EnvVarsNewController = Controller diff --git a/assets/scripts/app/controllers/env-var.coffee b/assets/scripts/app/controllers/env-var.coffee index 00e7613a..1618bd83 100644 --- a/assets/scripts/app/controllers/env-var.coffee +++ b/assets/scripts/app/controllers/env-var.coffee @@ -1,6 +1,8 @@ require 'travis/validations' -Travis.EnvVarController = Ember.ObjectController.extend Travis.Validations, +Validations = Travis.Validations + +Controller = Ember.ObjectController.extend Validations, isEditing: false isDeleting: false @@ -43,3 +45,5 @@ Travis.EnvVarController = Ember.ObjectController.extend Travis.Validations, # TODO: handle errors env_var.save().then => @set('isEditing', false) + +Travis.EnvVarController = Controller diff --git a/assets/scripts/app/controllers/env-vars.coffee b/assets/scripts/app/controllers/env-vars.coffee index 7eb1d499..6923be6b 100644 --- a/assets/scripts/app/controllers/env-vars.coffee +++ b/assets/scripts/app/controllers/env-vars.coffee @@ -1,2 +1,4 @@ -Travis.EnvVarsController = Ember.ArrayController.extend +Controller = Ember.ArrayController.extend vars: Ember.computed.filterBy('model', 'isNew', false) + +Travis.EnvVarsController = Controller diff --git a/assets/scripts/app/controllers/first-sync.coffee b/assets/scripts/app/controllers/first-sync.coffee index eb4b4b14..1631678b 100644 --- a/assets/scripts/app/controllers/first-sync.coffee +++ b/assets/scripts/app/controllers/first-sync.coffee @@ -1,4 +1,4 @@ -Controller = Em.Controller.extend +Controller = Ember.Controller.extend needs: ['currentUser'] user: Ember.computed.alias('controllers.currentUser') diff --git a/assets/scripts/app/controllers/flash.coffee b/assets/scripts/app/controllers/flash.coffee index e5d51a08..7f192c68 100644 --- a/assets/scripts/app/controllers/flash.coffee +++ b/assets/scripts/app/controllers/flash.coffee @@ -1,10 +1,13 @@ -Travis.FlashController = Ember.ArrayController.extend +LimitedArray = Travis.LimitedArray +Broadcast = Travis.Broadcast + +Controller = Ember.ArrayController.extend needs: ['currentUser'] currentUserBinding: 'controllers.currentUser' init: -> @_super.apply this, arguments - @set('flashes', Travis.LimitedArray.create(limit: 2, content: [])) + @set('flashes', LimitedArray.create(limit: 2, content: [])) model: (-> broadcasts = @get('unseenBroadcasts') @@ -31,7 +34,7 @@ Travis.FlashController = Ember.ArrayController.extend Ember.run.later(this, (-> @get('flashes.content').removeObject(msg)), 15000) close: (msg) -> - if msg instanceof Travis.Broadcast + if msg instanceof Broadcast msg.setSeen() @notifyPropertyChange('unseenBroadcasts') else @@ -40,3 +43,5 @@ Travis.FlashController = Ember.ArrayController.extend actions: close: (msg) -> @close(msg) + +Travis.FlashController = Controller diff --git a/assets/scripts/app/controllers/main/error.coffee b/assets/scripts/app/controllers/main/error.coffee index e997f66a..c5a336b7 100644 --- a/assets/scripts/app/controllers/main/error.coffee +++ b/assets/scripts/app/controllers/main/error.coffee @@ -1,3 +1,3 @@ -Controller = Em.Controller.extend() +Controller = Ember.Controller.extend() Travis.MainErrorController = Controller diff --git a/assets/scripts/app/controllers/profile.coffee b/assets/scripts/app/controllers/profile.coffee index 6ff6703d..5b1b4184 100644 --- a/assets/scripts/app/controllers/profile.coffee +++ b/assets/scripts/app/controllers/profile.coffee @@ -1,4 +1,4 @@ -Travis.ProfileController = Ember.Controller.extend +Controller = Ember.Controller.extend name: 'profile' needs: ['currentUser', 'accounts', 'account'] @@ -22,3 +22,5 @@ Travis.ProfileController = Ember.Controller.extend id = if @get('account.type') == 'user' then 'user' else @get('account.login') "#{@get('config').billing_endpoint}/subscriptions/#{id}" ).property('account.login', 'account.type') + +Travis.ProfileController = Controller diff --git a/assets/scripts/app/controllers/queue.coffee b/assets/scripts/app/controllers/queue.coffee index 01dd0a14..4fe67325 100644 --- a/assets/scripts/app/controllers/queue.coffee +++ b/assets/scripts/app/controllers/queue.coffee @@ -1,7 +1,4 @@ -require 'models/job' -Job = Travis.Job - -Controller = Em.ArrayController.extend +Controller = Ember.ArrayController.extend content: (-> @store.filter 'job', {}, (job) -> ['created', 'queued'].indexOf(job.get('state')) != -1 diff --git a/assets/scripts/app/controllers/repo.coffee b/assets/scripts/app/controllers/repo.coffee index 16c94fc1..3f05d2ce 100644 --- a/assets/scripts/app/controllers/repo.coffee +++ b/assets/scripts/app/controllers/repo.coffee @@ -14,7 +14,7 @@ Controller = Ember.Controller.extend init: -> @_super.apply this, arguments if !Ember.testing - Visibility.every Travis.INTERVALS.updateTimes, @updateTimes.bind(this) + Visibility.every @config.intervals.updateTimes, @updateTimes.bind(this) updateTimes: -> Ember.run this, -> diff --git a/assets/scripts/app/controllers/repos.coffee b/assets/scripts/app/controllers/repos.coffee index c9d70a7c..67d8c547 100644 --- a/assets/scripts/app/controllers/repos.coffee +++ b/assets/scripts/app/controllers/repos.coffee @@ -30,7 +30,7 @@ Controller = Ember.ArrayController.extend init: -> @_super.apply this, arguments if !Ember.testing - Visibility.every Travis.INTERVALS.updateTimes, @updateTimes.bind(this) + Visibility.every @config.intervals.updateTimes, @updateTimes.bind(this) recentRepos: (-> Ember.ArrayProxy.extend( diff --git a/assets/scripts/app/controllers/requests.coffee b/assets/scripts/app/controllers/requests.coffee index 860ca276..051d5400 100644 --- a/assets/scripts/app/controllers/requests.coffee +++ b/assets/scripts/app/controllers/requests.coffee @@ -1,4 +1,4 @@ -Travis.RequestsController = Ember.ArrayController.extend +Controller = Ember.ArrayController.extend needs: ['repo'] repo: Ember.computed.alias('controllers.repo.repo') @@ -6,3 +6,5 @@ Travis.RequestsController = Ember.ArrayController.extend slug = @get('repo.slug') "https://lint.travis-ci.org/#{slug}" ).property('repo.slug') + +Travis.RequestsController = Controller diff --git a/assets/scripts/app/controllers/running-jobs.coffee b/assets/scripts/app/controllers/running-jobs.coffee index 719a3342..1322b75f 100644 --- a/assets/scripts/app/controllers/running-jobs.coffee +++ b/assets/scripts/app/controllers/running-jobs.coffee @@ -1,7 +1,4 @@ -require 'models/job' -Job = Travis.Job - -Controller = Em.ArrayController.extend +Controller = Ember.ArrayController.extend content: (-> @store.filter 'job', { state: 'started' }, (job) -> ['started', 'received'].indexOf(job.get('state')) != -1 diff --git a/assets/scripts/app/controllers/settings.coffee b/assets/scripts/app/controllers/settings/index.coffee similarity index 89% rename from assets/scripts/app/controllers/settings.coffee rename to assets/scripts/app/controllers/settings/index.coffee index d090beea..5a1226d1 100644 --- a/assets/scripts/app/controllers/settings.coffee +++ b/assets/scripts/app/controllers/settings/index.coffee @@ -1,4 +1,4 @@ -Travis.SettingsIndexController = Em.ObjectController.extend +Controller = Ember.ObjectController.extend settings: Ember.computed.alias('model.settings') settingsChanged: (-> @@ -16,3 +16,5 @@ Travis.SettingsIndexController = Em.ObjectController.extend save: -> @get('model').saveSettings(@get('settings')).then null, -> Travis.flash(error: 'There was an error while saving settings. Please try again.') + +Travis.SettingsIndexController = Controller diff --git a/assets/scripts/app/controllers/sidebar.coffee b/assets/scripts/app/controllers/sidebar.coffee index 3d1485a1..1cc8cb5a 100644 --- a/assets/scripts/app/controllers/sidebar.coffee +++ b/assets/scripts/app/controllers/sidebar.coffee @@ -1,4 +1,4 @@ -Controller = Em.ArrayController.extend +Controller = Ember.ArrayController.extend init: -> @_super.apply this, arguments @tickables = [] diff --git a/assets/scripts/app/controllers/ssh-key.coffee b/assets/scripts/app/controllers/ssh-key.coffee index 640fde1a..f02ff0e3 100644 --- a/assets/scripts/app/controllers/ssh-key.coffee +++ b/assets/scripts/app/controllers/ssh-key.coffee @@ -1,6 +1,8 @@ require 'travis/validations' -Travis.SshKeyController = Ember.ObjectController.extend Travis.Validations, +Validations = Travis.Validations + +Controller = Ember.ObjectController.extend Validations, isEditing: false isSaving: false isDeleting: false @@ -57,3 +59,5 @@ Travis.SshKeyController = Ember.ObjectController.extend Travis.Validations, edit: -> @set('isEditing', true) + +Travis.SshKeyController = Controller diff --git a/assets/scripts/app/controllers/top.coffee b/assets/scripts/app/controllers/top.coffee index 2b9d343f..8370391e 100644 --- a/assets/scripts/app/controllers/top.coffee +++ b/assets/scripts/app/controllers/top.coffee @@ -1,4 +1,4 @@ -Controller = Em.Controller.extend +Controller = Ember.Controller.extend needs: ['currentUser'] userBinding: 'controllers.currentUser' diff --git a/assets/scripts/app/helpers/github-url-properties.coffee b/assets/scripts/app/helpers/github-url-properties.coffee deleted file mode 100644 index 6a19e21c..00000000 --- a/assets/scripts/app/helpers/github-url-properties.coffee +++ /dev/null @@ -1,8 +0,0 @@ -Travis.GithubUrlProperties = Ember.Mixin.create - urlGithubCommit: (-> - Travis.Urls.githubCommit(@get('repo.slug'), @get('commit.sha')) - ).property('repo.slug', 'commit.sha') - - urlGithubPullRequest: (-> - Travis.Urls.githubPullRequest(@get('repo.slug'), @get('build.pullRequestNumber')) - ).property('repo.slug', 'build.pullRequestNumber') diff --git a/assets/scripts/app/helpers/travis-errors.coffee b/assets/scripts/app/helpers/travis-errors.coffee index 934dd279..b15f478e 100644 --- a/assets/scripts/app/helpers/travis-errors.coffee +++ b/assets/scripts/app/helpers/travis-errors.coffee @@ -1,5 +1,3 @@ -notEmpty = Ember.computed.notEmpty - ErrorsView = Ember.View.extend tagName: 'span' template: Ember.Handlebars.compile("{{#each view.errors}}{{message}}{{/each}}") @@ -12,7 +10,7 @@ ErrorsView = Ember.View.extend codes: (-> @get('errors').mapBy('code') ).property('@errors') - show: notEmpty('errors.[]') + show: Ember.computed.notEmpty('errors.[]') fn = (name, options) -> errors = @get('errors').for(name) diff --git a/assets/scripts/app/helpers/travis-field.coffee b/assets/scripts/app/helpers/travis-field.coffee index 0efc4042..c389b963 100644 --- a/assets/scripts/app/helpers/travis-field.coffee +++ b/assets/scripts/app/helpers/travis-field.coffee @@ -1,7 +1,5 @@ -notEmpty = Ember.computed.notEmpty - FormFieldRowView = Ember.View.extend - invalid: notEmpty('errors.[]') + invalid: Ember.computed.notEmpty('errors.[]') classNameBindings: ['invalid'] classNames: 'field' diff --git a/assets/scripts/app/initializers/config.coffee b/assets/scripts/app/initializers/config.coffee index 9d1ca338..8980bb9a 100644 --- a/assets/scripts/app/initializers/config.coffee +++ b/assets/scripts/app/initializers/config.coffee @@ -1,3 +1,45 @@ +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 + + 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') + 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 } + } + initialize = (container, application) -> application.register 'config:main', application.config, { instantiate: false } @@ -10,4 +52,8 @@ ConfigInitializer = initialize: initialize Ember.onLoad 'Ember.Application', (Application) -> + Application.config loadConfig() + + Application.ajax.pro = Application.config.pro + Application.initializer ConfigInitializer diff --git a/assets/scripts/app/mixins/github-url-properties.coffee b/assets/scripts/app/mixins/github-url-properties.coffee new file mode 100644 index 00000000..ef532a95 --- /dev/null +++ b/assets/scripts/app/mixins/github-url-properties.coffee @@ -0,0 +1,13 @@ +githubCommit = Travis.Urls.githubCommit +githubPullRequest = Travis.Urls.githubPullRequest + +mixin = Ember.Mixin.create + urlGithubCommit: (-> + githubCommit(@get('repo.slug'), @get('commit.sha')) + ).property('repo.slug', 'commit.sha') + + urlGithubPullRequest: (-> + githubPullRequest(@get('repo.slug'), @get('build.pullRequestNumber')) + ).property('repo.slug', 'build.pullRequestNumber') + +Travis.GithubUrlProperties = mixin diff --git a/assets/scripts/app/models/build.coffee b/assets/scripts/app/models/build.coffee index 7381bbbe..a0d4ffdc 100644 --- a/assets/scripts/app/models/build.coffee +++ b/assets/scripts/app/models/build.coffee @@ -1,5 +1,4 @@ require 'travis/model' -require 'models/extensions' require 'utils/duration-calculations' require 'travis/ajax' diff --git a/assets/scripts/app/models/job.coffee b/assets/scripts/app/models/job.coffee index d248fdc9..de553035 100644 --- a/assets/scripts/app/models/job.coffee +++ b/assets/scripts/app/models/job.coffee @@ -1,5 +1,4 @@ require 'travis/model' -require 'models/extensions' require 'models/log' require 'travis/ajax' diff --git a/assets/scripts/app/models/repo.coffee b/assets/scripts/app/models/repo.coffee index daf94eab..faa8029a 100644 --- a/assets/scripts/app/models/repo.coffee +++ b/assets/scripts/app/models/repo.coffee @@ -1,6 +1,5 @@ require 'travis/expandable-record-array' require 'travis/model' -require 'helpers/helpers' Model = Travis.Model ExpandableRecordArray = Travis.ExpandableRecordArray diff --git a/assets/scripts/app/router.coffee b/assets/scripts/app/router.coffee index 37162ed1..fb35cc5d 100644 --- a/assets/scripts/app/router.coffee +++ b/assets/scripts/app/router.coffee @@ -1,20 +1,20 @@ require 'travis/location' require 'routes/application' -Ember.Router.reopen +Router = Ember.Router.extend + location: 'history' + handleURL: (url) -> url = url.replace(/#.*?$/, '') @_super(url) -Travis.Router.reopen - location: 'history' didTransition: -> @_super.apply @, arguments if Travis.config.ga_code _gaq.push ['_trackPageview', location.pathname] -Travis.Router.map -> +Router.map -> @resource 'dashboard', -> @route 'repositories', path: '/' @@ -32,14 +32,14 @@ Travis.Router.map -> @resource 'pullRequests', path: '/pull_requests' @resource 'branches', path: '/branches' @resource 'requests', path: '/requests' - @resource 'caches', path: '/caches' if Travis.config.caches_enabled + @resource 'caches', path: '/caches' @resource 'request', path: '/requests/:request_id' @resource 'settings', -> @route 'index', path: '/' @resource 'env_vars', -> @route 'new' - @resource 'ssh_key' if Travis.config.ssh_key_enabled + @resource 'ssh_key' @route 'first_sync' @route 'insufficient_oauth_permissions' @@ -52,3 +52,4 @@ Travis.Router.map -> @route 'notFound', path: "/*path" +Travis.Router = Router diff --git a/assets/scripts/app/routes/accounts.coffee b/assets/scripts/app/routes/accounts.coffee index 16f211c3..55f24d7a 100644 --- a/assets/scripts/app/routes/accounts.coffee +++ b/assets/scripts/app/routes/accounts.coffee @@ -1,7 +1,5 @@ require 'routes/route' -require 'models/account' -Account = Travis.Account TravisRoute = Travis.Route Route = TravisRoute.extend diff --git a/assets/scripts/app/routes/first-sync.coffee b/assets/scripts/app/routes/first-sync.coffee index 7a1071f7..88327de2 100644 --- a/assets/scripts/app/routes/first-sync.coffee +++ b/assets/scripts/app/routes/first-sync.coffee @@ -20,7 +20,7 @@ Route = SimpleLayoutRoute.extend if !controller.get('isSyncing') self = this Ember.run.later this, -> - Repo.fetch(member: @get('controller.user.login')).then( (repos) -> + @store.find('repo', member: @get('controller.user.login')).then( (repos) -> if repos.get('length') self.transitionTo('main') else diff --git a/assets/scripts/app/routes/main.coffee b/assets/scripts/app/routes/main.coffee index 7ae7fe80..d28941fe 100644 --- a/assets/scripts/app/routes/main.coffee +++ b/assets/scripts/app/routes/main.coffee @@ -1,5 +1,4 @@ require 'routes/route' -require 'pusher' TravisRoute = Travis.Route channels = Travis.Pusher.CHANNELS diff --git a/assets/scripts/app/routes/request.coffee b/assets/scripts/app/routes/request.coffee index 3be4ddb0..540303a9 100644 --- a/assets/scripts/app/routes/request.coffee +++ b/assets/scripts/app/routes/request.coffee @@ -1,7 +1,6 @@ require 'routes/route' require 'models/request' -Request = Travis.Request TravisRoute = Travis.Route Route = TravisRoute.extend @@ -10,6 +9,6 @@ Route = TravisRoute.extend @controllerFor('repo').activate('request') model: (params) -> - Request.fetch params.request_id + @store.find 'request', params.request_id Travis.RequestRoute = Route diff --git a/assets/scripts/app/routes/requests.coffee b/assets/scripts/app/routes/requests.coffee index 5a220668..2b41e053 100644 --- a/assets/scripts/app/routes/requests.coffee +++ b/assets/scripts/app/routes/requests.coffee @@ -1,8 +1,6 @@ require 'routes/route' -require 'models/request' TravisRoute = Travis.Route -Request = Travis.Request Route = TravisRoute.extend needsAuth: true @@ -12,6 +10,6 @@ Route = TravisRoute.extend @controllerFor('repo').activate('requests') model: -> - Request.fetch repository_id: @modelFor('repo').get('id') + @store.find 'request', repository_id: @modelFor('repo').get('id') Travis.RequestsRoute = Route diff --git a/assets/scripts/app/slider.coffee b/assets/scripts/app/slider.coffee deleted file mode 100644 index 5e9127d3..00000000 --- a/assets/scripts/app/slider.coffee +++ /dev/null @@ -1,24 +0,0 @@ -@Travis.Slider = (storage) -> - @minimize() if storage.getItem('travis.maximized') == 'true' - this - -$.extend Travis.Slider.prototype, - persist: -> - Travis.storage.setItem('travis.maximized', @isMinimized()) - - isMinimized: -> - return $('body').hasClass('maximized'); - - minimize: -> - $('body').addClass('maximized') - - toggle: -> - $('body').toggleClass('maximized') - @persist() - # TODO gotta force redraws here :/ - element = $('') - $('#top .profile').append(element) - Em.run.later (-> element.remove()), 10 - - - diff --git a/assets/scripts/app/store.coffee b/assets/scripts/app/store.coffee index fc637f2b..8dbc15a6 100644 --- a/assets/scripts/app/store.coffee +++ b/assets/scripts/app/store.coffee @@ -1,3 +1,5 @@ -Travis.Store = DS.Store.extend +Store = DS.Store.extend defaultAdapter: 'application' adapter: 'application' + +Travis.Store = Store diff --git a/assets/scripts/app/store/fixture-adapter.coffee b/assets/scripts/app/store/fixture-adapter.coffee deleted file mode 100644 index 0ed65579..00000000 --- a/assets/scripts/app/store/fixture-adapter.coffee +++ /dev/null @@ -1,30 +0,0 @@ -@Travis.FixtureAdapter = DS.Adapter.extend - find: (store, type, id) -> - fixtures = type.FIXTURES - Ember.assert "Unable to find fixtures for model type " + type.toString(), !!fixtures - return if fixtures.hasLoaded - setTimeout (-> - store.loadMany type, fixtures - fixtures.hasLoaded = true - ), 300 - - findMany: -> - @find.apply this, arguments - - findAll: (store, type) -> - fixtures = type.FIXTURES - Ember.assert "Unable to find fixtures for model type " + type.toString(), !!fixtures - ids = fixtures.map (item, index, self) -> - item.id - store.loadMany type, ids, fixtures - - findQuery: (store, type, params, array) -> - fixtures = type.FIXTURES - Ember.assert "Unable to find fixtures for model type " + type.toString(), !!fixtures - hashes = for fixture in fixtures - matches = for key, value of params - key == 'orderBy' || fixture[key] == value - if matches.reduce((a, b) -> a && b) then fixture else null - array.load(hashes.compact()) - - diff --git a/assets/scripts/app/store/rest-adapter.coffee b/assets/scripts/app/store/rest-adapter.coffee deleted file mode 100644 index 939ebaff..00000000 --- a/assets/scripts/app/store/rest-adapter.coffee +++ /dev/null @@ -1,150 +0,0 @@ -require 'travis/ajax' -require 'models' - -DS.JSONTransforms['object'] = { - deserialize: (serialized) -> serialized - serialize: (deserialized) -> deserialized -} - -Travis.Serializer = DS.RESTSerializer.extend - # The next 3 methods specify the behavior of adding records to dirty sets - # (ie. which records will be treated as dirty on the next commit). We don't - # allow to change most of the records on the client, so for anything except - # the User, we ignore dirtyiness. - dirtyRecordsForAttributeChange: (dirtySet, record) -> - if record.constructor == Travis.User - @_super.apply this, arguments - - dirtyRecordsForBelongsToChange: (dirtySet, record) -> - if record.constructor == Travis.User - @_super.apply this, arguments - - dirtyRecordsForHasManyChange: (dirtySet, record) -> - if record.constructor == Travis.User - @_super.apply this, arguments - - merge: (record, serialized) -> - data = record.get('data') - - # TODO: write test that ensures that we go to materializingData - # only if we can - state = record.get('stateManager.currentState.path') - unless state == "rootState.loaded.materializing" - record.send('materializingData') - - record.eachAttribute( (name, attribute) -> - value = @extractAttribute(record.constructor, serialized, name) - if value != undefined - value = @deserializeValue(value, attribute.type) - if value != data.attributes[name] - record.materializeAttribute(name, value) - record.notifyPropertyChange(name) - , this) - - record.eachRelationship( (name, relationship) -> - if relationship.kind == 'belongsTo' - key = @_keyForBelongsTo(record.constructor, relationship.key) - value = @extractBelongsTo(record.constructor, serialized, key) - - if value != undefined && data.belongsTo[name] != value - record.materializeBelongsTo name, value - record.notifyPropertyChange(name) - else if relationship.kind == 'hasMany' - key = @_keyForHasMany(record.constructor, relationship.key) - value = @extractHasMany(record.constructor, serialized, key) - - if value != undefined - record.materializeHasMany name, value - record.notifyPropertyChange(name) - , this) - - record.notifyPropertyChange('data') - -Travis.RestAdapter = DS.RESTAdapter.extend - serializer: Travis.Serializer - mappings: - broadcasts: Travis.Broadcast - repositories: Travis.Repo - repository: Travis.Repo - repos: Travis.Repo - repo: Travis.Repo - builds: Travis.Build - build: Travis.Build - commits: Travis.Commit - commit: Travis.Commit - jobs: Travis.Job - job: Travis.Job - account: Travis.Account - accounts: Travis.Account - worker: Travis.Worker - workers: Travis.Worker - annotation: Travis.Annotation - annotations: Travis.Annotation - - plurals: - repositories: 'repositories', - repository: 'repositories', - repo: 'repos', - repos: 'repos', - build: 'builds' - branch: 'branches' - job: 'jobs' - worker: 'workers' - profile: 'profile' - annotation: 'annotations' - - ajax: -> - Travis.ajax.ajax.apply(this, arguments) - - sideload: (store, type, json, root) -> - if json && json.result - return - else - @_super.apply this, arguments - - merge: (store, record, serialized) -> - @get('serializer').merge(record, serialized) - - didFindRecord: (store, type, payload, id) -> - if (type == Travis.Build || type == Travis.Job) && payload.commit? - payload.commits = payload.commit - delete payload.commit - - @_super.apply this, arguments - - didSaveRecord: (store, type, record, payload) -> - # API sometimes return { result: true } response - # which does not play nice with ember-data. For now - # let's just change payload to have serialized record - # included, but ideally it should be fixed in the API - # to be consistent across all the endpoints. - if payload?.result == true - payload = {} - payload[type.singularName()] = record.serialize() - - @_super(store, type, record, payload) - -Travis.RestAdapter.map 'Travis.Commit', {} - -Travis.RestAdapter.map 'Travis.Build', { - repoId: { key: 'repository_id' } - repo: { key: 'repository_id' } - _duration: { key: 'duration' } - jobs: { key: 'job_ids' } - _config: { key: 'config' } -} - -Travis.RestAdapter.map 'Travis.Repo', { - _lastBuildDuration: { key: 'last_build_duration' } -} - -Travis.RestAdapter.map 'Travis.Job', { - repoId: { key: 'repository_id' } - repo: { key: 'repository_id' } - _config: { key: 'config' } - annotations: { key: 'annotation_ids' } -} - -Travis.RestAdapter.map 'Travis.User', { - _name: { key: 'name' } -} diff --git a/assets/scripts/app/utils/duration-calculations.coffee b/assets/scripts/app/utils/duration-calculations.coffee index 42062e50..366862b6 100644 --- a/assets/scripts/app/utils/duration-calculations.coffee +++ b/assets/scripts/app/utils/duration-calculations.coffee @@ -1,5 +1,3 @@ -require 'helpers/helpers' - durationFrom = Travis.Helpers.durationFrom Travis.DurationCalculations = Ember.Mixin.create diff --git a/assets/scripts/app/utils/helpers.coffee b/assets/scripts/app/utils/helpers.coffee index ec885552..70eefc20 100644 --- a/assets/scripts/app/utils/helpers.coffee +++ b/assets/scripts/app/utils/helpers.coffee @@ -1,5 +1,4 @@ require 'config/emoij' -require 'helpers/urls' config_keys_map = Travis.CONFIG_KEYS_MAP config = Travis.config diff --git a/assets/scripts/app/utils/keys-map.coffee b/assets/scripts/app/utils/keys-map.coffee new file mode 100644 index 00000000..d9a5c572 --- /dev/null +++ b/assets/scripts/app/utils/keys-map.coffee @@ -0,0 +1,25 @@ +keys = { + go: 'Go' + rvm: 'Ruby' + gemfile: 'Gemfile' + env: 'ENV' + jdk: 'JDK' + otp_release: 'OTP Release' + php: 'PHP' + node_js: 'Node.js' + perl: 'Perl' + python: 'Python' + scala: 'Scala' + compiler: 'Compiler' + ghc: 'GHC' + os: 'OS' + ruby: 'Ruby' + xcode_sdk: 'Xcode SDK' + xcode_scheme:'Xcode Scheme' + d: 'D' + julia: 'Julia' + csharp: 'C#' + dart: 'Dart' +} + +Travis.CONFIG_KEYS_MAP = keys diff --git a/assets/scripts/lib/travis/limited-array.coffee b/assets/scripts/app/utils/limited-array.coffee similarity index 86% rename from assets/scripts/lib/travis/limited-array.coffee rename to assets/scripts/app/utils/limited-array.coffee index f5f9941f..ad86d5ba 100644 --- a/assets/scripts/lib/travis/limited-array.coffee +++ b/assets/scripts/app/utils/limited-array.coffee @@ -1,4 +1,4 @@ -Travis.LimitedArray = Em.ArrayProxy.extend +LimitedArray = Ember.ArrayProxy.extend limit: 10 isLoadedBinding: 'content.isLoaded' arrangedContent: Ember.computed.limit('content', 'limit') @@ -21,3 +21,5 @@ Travis.LimitedArray = Em.ArrayProxy.extend showAll: -> @set 'limit', Infinity + +Travis.LimitedArray = LimitedArray diff --git a/assets/scripts/app/utils/slider.coffee b/assets/scripts/app/utils/slider.coffee new file mode 100644 index 00000000..46b789f0 --- /dev/null +++ b/assets/scripts/app/utils/slider.coffee @@ -0,0 +1,22 @@ +Slider = (storage) -> + @minimize() if storage.getItem('travis.maximized') == 'true' + this + +Slider.prototype.persist = -> + Travis.storage.setItem('travis.maximized', @isMinimized()) + +Slider.prototype.isMinimized = -> + return $('body').hasClass('maximized'); + +Slider.prototype.minimize = -> + $('body').addClass('maximized') + +Slider.prototype.toggle = -> + $('body').toggleClass('maximized') + @persist() + # TODO gotta force redraws here :/ + element = $('') + $('#top .profile').append(element) + Em.run.later (-> element.remove()), 10 + +Travis.Slider = Slider diff --git a/assets/scripts/app/helpers/status-image-formats.coffee b/assets/scripts/app/utils/status-image-formats.coffee similarity index 100% rename from assets/scripts/app/helpers/status-image-formats.coffee rename to assets/scripts/app/utils/status-image-formats.coffee diff --git a/assets/scripts/app/tailing.coffee b/assets/scripts/app/utils/tailing.coffee similarity index 100% rename from assets/scripts/app/tailing.coffee rename to assets/scripts/app/utils/tailing.coffee diff --git a/assets/scripts/lib/travis/validations.coffee b/assets/scripts/app/utils/validations.coffee similarity index 94% rename from assets/scripts/lib/travis/validations.coffee rename to assets/scripts/app/utils/validations.coffee index 25ca1567..23d696dd 100644 --- a/assets/scripts/lib/travis/validations.coffee +++ b/assets/scripts/app/utils/validations.coffee @@ -1,5 +1,3 @@ -get = Ember.get - Error = Ember.Object.extend message: (-> switch code = @get('code') @@ -43,13 +41,13 @@ Validator = Ember.Object.extend isValid: (target) -> name = @get('name') - @get('validator').call(target, get(target, name)) + @get('validator').call(target, Ember.get(target, name)) validate: (target) -> unless @isValid(target) @setError(target) -Travis.Validations = Ember.Mixin.create +Validations = Ember.Mixin.create init: -> @_super.apply this, arguments @@ -89,3 +87,5 @@ Travis.Validations = Ember.Mixin.create addErrorsFromResponse: (errors) -> for error in errors @get('errors').add(error.field, error.code) + +Travis.Validations = Validations diff --git a/assets/scripts/app/views/build.coffee b/assets/scripts/app/views/build.coffee index 85929026..89bd39cf 100644 --- a/assets/scripts/app/views/build.coffee +++ b/assets/scripts/app/views/build.coffee @@ -1,5 +1,3 @@ -require 'helpers/helpers' - colorForState = Travis.Helpers.colorForState View = Travis.View.extend diff --git a/assets/scripts/app/views/job.coffee b/assets/scripts/app/views/job.coffee index ce549cb0..482fbb6f 100644 --- a/assets/scripts/app/views/job.coffee +++ b/assets/scripts/app/views/job.coffee @@ -1,5 +1,3 @@ -require 'helpers/helpers' - colorForState = Travis.Helpers.colorForState githubCommit = Travis.Urls.githubCommit gravatarImage = Travis.Urls.gravatarImage diff --git a/assets/scripts/travis.coffee b/assets/scripts/travis.coffee index b3f94287..bf364cb0 100644 --- a/assets/scripts/travis.coffee +++ b/assets/scripts/travis.coffee @@ -6,89 +6,10 @@ require 'app' window.ENV ||= {} window.ENV.RAISE_ON_DEPRECATION = true -window.Travis = TravisApplication.create( - LOG_ACTIVE_GENERATION: true, - LOG_MODULE_RESOLVER: true, - LOG_TRANSITIONS: true, - LOG_TRANSITIONS_INTERNAL: true, - LOG_VIEW_LOOKUPS: true -) +window.Travis = App.create() Travis.deferReadiness() -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 - -$.extend Travis, - run: -> - Travis.advanceReadiness() # bc, remove once merged to master - - config: - 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') - 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 - - CONFIG_KEYS_MAP: { - go: 'Go' - rvm: 'Ruby' - gemfile: 'Gemfile' - env: 'ENV' - jdk: 'JDK' - otp_release: 'OTP Release' - php: 'PHP' - node_js: 'Node.js' - perl: 'Perl' - python: 'Python' - scala: 'Scala' - compiler: 'Compiler' - ghc: 'GHC' - os: 'OS' - ruby: 'Ruby' - xcode_sdk: 'Xcode SDK' - xcode_scheme:'Xcode Scheme' - d: 'D' - julia: 'Julia' - csharp: 'C#' - dart: 'Dart' - } - - QUEUES: [ - { name: 'linux', display: 'Linux' } - { name: 'mac_osx', display: 'Mac and OSX' } - ] - - INTERVALS: { times: -1, updateTimes: 1000 } - Ember.LinkView.reopen loadingClass: 'loading_link' @@ -101,8 +22,15 @@ if charm_key = $('meta[name="travis.charm_key"]').attr('value') require 'travis/ajax' -Travis.ajax.pro = Travis.config.pro +require 'utils/urls' +require 'utils/helpers' +require 'utils/status-image-formats' +require 'utils/pusher' +require 'utils/slider' +require 'utils/tailing' +require 'mixins/github-url-properties' +require 'utils/keys-map' require 'adapters/application' require 'serializers/application' require 'serializers/repo' @@ -168,11 +96,13 @@ require 'controllers/job' require 'controllers/profile' require 'controllers/repos' require 'controllers/repo' -require 'controllers/settings' +require 'controllers/settings/index' require 'controllers/current-user' require 'controllers/request' require 'controllers/requests' require 'controllers/caches' +require 'controllers/caches-item' +require 'controllers/caches-by-branch' require 'controllers/env-var' require 'controllers/env-vars' require 'controllers/env-var-new' @@ -187,11 +117,6 @@ require 'controllers/queue' require 'controllers/running-jobs' require 'controllers/dashboard/repositories' -require 'utils/helpers' -require 'utils/urls' -require 'helpers/status-image-formats' -require 'helpers/github-url-properties' - Travis.Handlebars = {} require 'helpers/label' @@ -241,7 +166,6 @@ Ember.LinkView.reopen _trackEvent: (event) -> event.preventDefault() -require 'models/extensions' require 'models/account' require 'models/broadcast' require 'models/branch' @@ -258,11 +182,6 @@ require 'models/user' require 'models/env-var' require 'models/ssh-key' -require 'utlils/pusher' -require 'slider' -require 'tailing' -require 'templates' - require 'ext/ember/namespace' require 'views/view' require 'views/accounts' diff --git a/public/index.html b/public/index.html index 26a9f71b..db4e8fd8 100644 --- a/public/index.html +++ b/public/index.html @@ -29,7 +29,7 @@