diff --git a/Gemfile.lock b/Gemfile.lock index d947ad08..de360019 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -43,7 +43,7 @@ GIT GIT remote: git://github.com/travis-ci/travis-api.git - revision: 602bd4d30db7b41520615947556d5e77d6fae0a4 + revision: 6b02ffabacd4476e1a0b4d7f150d0733cfbb57d9 specs: travis-api (0.0.1) backports (~> 2.5) diff --git a/assets/scripts/app/controllers/repo.coffee b/assets/scripts/app/controllers/repo.coffee index 6d564c86..c7f46c9d 100644 --- a/assets/scripts/app/controllers/repo.coffee +++ b/assets/scripts/app/controllers/repo.coffee @@ -42,6 +42,10 @@ Travis.RepoController = Travis.Controller.extend @connectTab('branches') @_bind('builds', 'repo.branches') + viewEvents: -> + @connectTab('events') + @_bind('events', 'repo.events') + viewBuild: -> @connectTab('build') diff --git a/assets/scripts/app/models.coffee b/assets/scripts/app/models.coffee index b116ae0f..4ff0bdb6 100644 --- a/assets/scripts/app/models.coffee +++ b/assets/scripts/app/models.coffee @@ -4,6 +4,7 @@ require 'models/artifact' require 'models/branch' require 'models/build' require 'models/commit' +require 'models/event' require 'models/hook' require 'models/job' require 'models/repo' diff --git a/assets/scripts/app/models/branch.coffee b/assets/scripts/app/models/branch.coffee index 6b6702e5..93e0786f 100644 --- a/assets/scripts/app/models/branch.coffee +++ b/assets/scripts/app/models/branch.coffee @@ -21,8 +21,6 @@ require 'travis/model' @notifyPropertyChange 'started_at' @notifyPropertyChange 'finished_at' - @Travis.Branch.reopenClass byRepoId: (id) -> @find repository_id: id - diff --git a/assets/scripts/app/models/repo.coffee b/assets/scripts/app/models/repo.coffee index 7b513a59..cb0a11ff 100644 --- a/assets/scripts/app/models/repo.coffee +++ b/assets/scripts/app/models/repo.coffee @@ -37,6 +37,10 @@ require 'travis/model' Travis.Branch.byRepoId @get('id') ).property() + events: (-> + Travis.Event.byRepoId @get('id') + ).property() + owner: (-> (@get('slug') || '').split('/')[0] ).property('slug') diff --git a/assets/scripts/app/routes.coffee b/assets/scripts/app/routes.coffee index 5c29e629..bf7b0ad7 100644 --- a/assets/scripts/app/routes.coffee +++ b/assets/scripts/app/routes.coffee @@ -124,6 +124,7 @@ Travis.Router = Ember.Router.extend showBuild: Ember.Route.transitionTo('root.home.repo.builds.show') showPullRequests: Ember.Route.transitionTo('root.home.repo.pullRequests') showBranches: Ember.Route.transitionTo('root.home.repo.branches') + showEvents: Ember.Route.transitionTo('root.home.repo.events') showJob: Ember.Route.transitionTo('root.home.repo.job') showProfile: Ember.Route.transitionTo('root.profile') @@ -390,6 +391,11 @@ Travis.Router = Ember.Router.extend connectOutlets: (router, repo) -> router.get('repoController').activate 'branches' + events: Ember.Route.extend + route: '/events' + connectOutlets: (router, repo) -> + router.get('repoController').activate 'events' + job: Ember.Route.extend route: '/jobs/:job_id' connectOutlets: (router, job) -> diff --git a/assets/scripts/app/templates/repos/show/tabs.hbs b/assets/scripts/app/templates/repos/show/tabs.hbs index a0649cda..6021de14 100644 --- a/assets/scripts/app/templates/repos/show/tabs.hbs +++ b/assets/scripts/app/templates/repos/show/tabs.hbs @@ -35,6 +35,15 @@ {{/if}} +
  • +
    + {{#if view.repo.slug}} + + Events + + {{/if}} +
    +
  • {{#if view.build.id}} diff --git a/assets/scripts/app/views.coffee b/assets/scripts/app/views.coffee index e0b1cad7..d1fd85e9 100644 --- a/assets/scripts/app/views.coffee +++ b/assets/scripts/app/views.coffee @@ -20,6 +20,7 @@ require 'ext/ember/namespace' require 'views/accounts' require 'views/application' require 'views/build' +require 'views/events' require 'views/flash' require 'views/job' require 'views/repo' diff --git a/assets/scripts/app/views/repo/show.coffee b/assets/scripts/app/views/repo/show.coffee index a05dfdf6..37c53514 100644 --- a/assets/scripts/app/views/repo/show.coffee +++ b/assets/scripts/app/views/repo/show.coffee @@ -53,6 +53,10 @@ 'active' if @get('tab') == 'branches' ).property('tab') + classEvents: (-> + 'active' if @get('tab') == 'events' + ).property('tab') + classBuild: (-> tab = @get('tab') classes = [] diff --git a/assets/styles/main/list.sass b/assets/styles/main/list.sass index 73a5793f..eecc6f52 100644 --- a/assets/styles/main/list.sass +++ b/assets/styles/main/list.sass @@ -43,3 +43,6 @@ table.list td:last-child @include border-right-radius(4px) + + tr.message, td.message + width: 100% diff --git a/public/scripts/app.js b/public/scripts/app.js index 2a6b1e61..06b21d5d 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_key);\n return this.tailing = new Travis.Tailing();\n },\n signIn: function() {\n return this.get('auth').signIn();\n },\n autoSignIn: function() {\n return this.get('auth').autoSignIn();\n },\n signOut: function() {\n this.get('auth').signOut();\n return this.get('router').send('afterSignOut');\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: $('