From 94f1e645547963fe70a9079afe981119f763c84f Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Mon, 8 Oct 2012 16:49:43 +0200 Subject: [PATCH] Show sponsor info under the log --- Gemfile.lock | 4 +- assets/scripts/app/models/artifact.coffee | 12 + assets/scripts/app/models/job.coffee | 4 +- assets/scripts/data/sponsors.coffee | 39 +- public/scripts/app.js | 2 +- public/scripts/min/app.js | 2 +- public/styles/app.css | 3000 ++++++++++----------- public/version | 2 +- 8 files changed, 1557 insertions(+), 1508 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index eecfd4a6..392f3d90 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -43,7 +43,7 @@ GIT GIT remote: git://github.com/travis-ci/travis-api.git - revision: fa4c5db39b94234e9a3a87da0b4ccca466e034e2 + revision: 1624742cfd4bb1704ef916684e8962bf25219de3 specs: travis-api (0.0.1) backports (~> 2.5) @@ -159,7 +159,7 @@ GEM activesupport faraday (0.8.4) multipart-post (~> 1.1) - foreman (0.60.0) + foreman (0.60.2) thor (>= 0.13.6) fssm (0.2.9) guard (1.4.0) diff --git a/assets/scripts/app/models/artifact.coffee b/assets/scripts/app/models/artifact.coffee index 0497af38..8cf48fd9 100644 --- a/assets/scripts/app/models/artifact.coffee +++ b/assets/scripts/app/models/artifact.coffee @@ -6,6 +6,9 @@ require 'travis/model' @_super.apply this, arguments @set 'queue', Ember.A([]) + @addObserver 'body', @fetchWorker + @fetchWorker() + append: (body) -> if @get('isLoaded') @set('body', @get('body') + body) @@ -18,3 +21,12 @@ require 'travis/model' if queue.get('length') > 0 @append queue.toArray().join('') ).observes('isLoaded') + + fetchWorker: -> + if body = @get('body') + line = body.split("\n")[0] + if line && (match = line.match /Using worker: (.*)/) + if worker = match[1] + worker = worker.trim().split(':')[0] + @set('workerName', worker) + @removeObserver 'body', @fetchWorker diff --git a/assets/scripts/app/models/job.coffee b/assets/scripts/app/models/job.coffee index 99aa875a..c4af0933 100644 --- a/assets/scripts/app/models/job.coffee +++ b/assets/scripts/app/models/job.coffee @@ -30,8 +30,8 @@ require 'travis/model' ).property('data.config') sponsor: (-> - @get('data.sponsor') - ).property('data.sponsor') + Travis.WORKERS[@get('log.workerName')] + ).property('log.workerName') configValues: (-> if config = @get('config') diff --git a/assets/scripts/data/sponsors.coffee b/assets/scripts/data/sponsors.coffee index 400e541b..1510ff73 100644 --- a/assets/scripts/data/sponsors.coffee +++ b/assets/scripts/data/sponsors.coffee @@ -41,4 +41,41 @@ { type: 'silver', link: "Tupalo: Discover, review & share local businesses." } ] - +@Travis.WORKERS = { + "jvm-otp1.worker.travis-ci.org": + name: "Travis Pro" + url: "http://beta.travis-ci.com" + "jvm-otp2.worker.travis-ci.org": + name: "Transloadit" + url: "http://transloadit.com" + "ppp1.worker.travis-ci.org": + name: "Travis Pro" + url: "http://beta.travis-ci.com" + "ppp2.worker.travis-ci.org": + name: "EnterpriseRails" + url: "http://www.enterprise-rails.com" + "ppp3.worker.travis-ci.org": + name: "Alchemy CMS" + url: "http://alchemy-cms.com/" + "rails1.worker.travis-ci.org": + name: "EnterpriseRails" + url: "http://www.enterprise-rails.com" + "ruby1.worker.travis-ci.org": + name: "Engine Yard" + url: "http://www.engineyard.com" + "ruby2.worker.travis-ci.org": + name: "EnterpriseRails" + url: "http://www.enterprise-rails.com" + "ruby3.worker.travis-ci.org": + name: "Railslove" + url: "http://railslove.de" + "ruby4.worker.travis-ci.org": + name: "Engine Yard" + url: "http://www.engineyard.com" + "spree.worker.travis-ci.org": + name: "Spree" + url: "http://spreecommerce.com" + "staging.worker.travis-ci.org": + name: "EnterpriseRails" + url: "http://www.enterprise-rails.com" +} diff --git a/public/scripts/app.js b/public/scripts/app.js index 8328a51b..462cc54d 100644 --- a/public/scripts/app.js +++ b/public/scripts/app.js @@ -29619,4 +29619,4 @@ var _require=function(){function c(a,c){document.addEventListener?a.addEventList ++g&&setTimeout(c,0)})}}(); (function(){!window.WebSocket&&window.MozWebSocket&&(window.WebSocket=window.MozWebSocket);if(window.WebSocket)Pusher.Transport=window.WebSocket,Pusher.TransportType="native";var c=(document.location.protocol=="http:"?Pusher.cdn_http:Pusher.cdn_https)+Pusher.VERSION,a=[];window.JSON||a.push(c+"/json2"+Pusher.dependency_suffix+".js");if(!window.WebSocket)window.WEB_SOCKET_DISABLE_AUTO_INITIALIZATION=!0,a.push(c+"/flashfallback"+Pusher.dependency_suffix+".js");var b=function(){return window.WebSocket?function(){Pusher.ready()}: function(){window.WebSocket?(Pusher.Transport=window.WebSocket,Pusher.TransportType="flash",window.WEB_SOCKET_SWF_LOCATION=c+"/WebSocketMain.swf",WebSocket.__addTask(function(){Pusher.ready()}),WebSocket.__initialize()):(Pusher.Transport=null,Pusher.TransportType="none",Pusher.ready())}}(),e=function(a){var b=function(){document.body?a():setTimeout(b,0)};b()},g=function(){e(b)};a.length>0?_require(a,g):g()})(); -;minispade.register('app', "(function() {(function() {\nminispade.require('auth');\nminispade.require('controllers');\nminispade.require('helpers');\nminispade.require('models');\nminispade.require('pusher');\nminispade.require('routes');\nminispade.require('slider');\nminispade.require('store');\nminispade.require('tailing');\nminispade.require('templates');\nminispade.require('views');\nminispade.require('config/locales');\nminispade.require('data/sponsors');\n\n Travis.reopen({\n App: Em.Application.extend({\n autoinit: false,\n currentUserBinding: 'auth.user',\n authStateBinding: 'auth.state',\n init: function() {\n this._super.apply(this, arguments);\n this.store = Travis.Store.create();\n this.store.loadMany(Travis.Sponsor, Travis.SPONSORS);\n this.set('auth', Travis.Auth.create({\n app: this,\n endpoint: Travis.config.api_endpoint\n }));\n this.slider = new Travis.Slider();\n this.pusher = new Travis.Pusher(Travis.config.pusher);\n return this.tailing = new Travis.Tailing();\n },\n signIn: function() {\n return this.get('auth').signIn();\n },\n signOut: function() {\n this.get('auth').signOut();\n return this.get('router').send('showRoot');\n },\n receive: function() {\n return this.store.receive.apply(this.store, arguments);\n },\n toggleSidebar: function() {\n var element;\n $('body').toggleClass('maximized');\n element = $('');\n $('#top .profile').append(element);\n Em.run.later((function() {\n return element.remove();\n }), 10);\n element = $('');\n $('#repo').append(element);\n return Em.run.later((function() {\n return element.remove();\n }), 10);\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=app");minispade.register('auth', "(function() {(function() {\n\n this.Travis.Auth = Ember.Object.extend({\n iframe: $('