diff --git a/assets/javascripts/app/app.coffee b/assets/javascripts/app/app.coffee index 97bd29d6..690055a1 100644 --- a/assets/javascripts/app/app.coffee +++ b/assets/javascripts/app/app.coffee @@ -3,6 +3,7 @@ require 'ext/jquery' # $.mockjaxSettings.log = false # Ember.LOG_BINDINGS = true +Ember.ENV.RAISE_ON_DEPRECATION = true @Travis = Em.Namespace.create CONFIG_KEYS: ['rvm', 'gemfile', 'env', 'otp_release', 'php', 'node_js', 'perl', 'python', 'scala'] @@ -37,8 +38,6 @@ require 'ext/jquery' @routes = Travis.Router.create() @routes.start() - @initialize(Em.Object.create()) # TODO sheesh. - connect: -> @controller = Em.Controller.create() view = Em.View.create diff --git a/assets/javascripts/app/controllers.coffee b/assets/javascripts/app/controllers.coffee index 264e5ba7..7cb75315 100644 --- a/assets/javascripts/app/controllers.coffee +++ b/assets/javascripts/app/controllers.coffee @@ -3,22 +3,14 @@ require 'travis/ticker' Travis.Controllers = Em.Namespace.create RepositoriesController: Ember.ArrayController.extend - contentBinding: 'layout.repositories' # sortProperties: ['sortOrder'] # sortAscending: false - - RepositoryController: Em.Controller.extend - repositoryBinding: 'layout.repository' - - TabsController: Em.Controller.extend - repositoryBinding: 'layout.repository' - buildBinding: 'layout.build' - jobBinding: 'layout.job' - tabBinding: 'layout.tab' + init: -> + @set('content', Travis.Repository.find()) BuildsController: Em.ArrayController.extend - repositoryBinding: 'layout.repository' - contentBinding: 'layout.builds' + repositoryBinding: 'parent.repository' + contentBinding: 'parent.builds' BuildController: Em.Controller.extend repositoryBinding: 'layout.repository' @@ -35,5 +27,7 @@ Travis.Controllers = Em.Namespace.create # TopController: Em.Controller.extend # userBinding: 'Travis.app.currentUser' +require 'controllers/repository' +require 'controllers/sidebar' require 'controllers/sponsors' require 'controllers/workers' diff --git a/assets/javascripts/app/controllers/sponsors.coffee b/assets/javascripts/app/controllers/sponsors.coffee index 72c7bd2d..56047468 100644 --- a/assets/javascripts/app/controllers/sponsors.coffee +++ b/assets/javascripts/app/controllers/sponsors.coffee @@ -9,7 +9,7 @@ Travis.Controllers.SponsorsController = Em.ArrayController.extend if content = @get('content') then $.shuffle(content) else [] ).property('content.length') - next: -> + tick: -> @set('page', if @isLast() then 0 else @get('page') + 1) pages: (-> diff --git a/assets/javascripts/app/layout.coffee b/assets/javascripts/app/layout.coffee index c648a623..d0e10167 100644 --- a/assets/javascripts/app/layout.coffee +++ b/assets/javascripts/app/layout.coffee @@ -2,7 +2,5 @@ Travis.Layout = Em.Namespace.create() require 'layout/home' require 'layout/left' -require 'layout/sidebar' require 'layout/profile' require 'layout/stats' - diff --git a/assets/javascripts/app/layout/home.coffee b/assets/javascripts/app/layout/home.coffee index 14ce12eb..90abd9ac 100644 --- a/assets/javascripts/app/layout/home.coffee +++ b/assets/javascripts/app/layout/home.coffee @@ -5,65 +5,11 @@ Travis.Layout.Home = Travis.Layout.Base.extend bindings: [] init: -> - @_super('repositories', 'repository', 'tabs', 'builds', 'build', 'job') - # Travis.Layout.Sidebar.create(parent: @controller) + @_super('repositories', 'repository', 'sidebar') @controller.connectOutlet(outletName: 'left', name: 'repositories') @controller.connectOutlet(outletName: 'main', name: 'repository') - @controller.connectOutlet(outletName: 'tabs', name: 'tabs') - - @set('repositories', Travis.Repository.find()) + @controller.connectOutlet(outletName: 'right', name: 'sidebar') activate: (action, params) -> - @_unbind() - @set('tab', if action == 'index' then 'current' else action) - @_super(action, params) - - viewIndex: -> - @_bind('repository', 'repositories.firstObject') - @_bind('build', 'repository.lastBuild') - @connectTab('build') - - viewCurrent: -> - @_bind('repository', 'repositoriesByParams.firstObject') - @_bind('build', 'repository.lastBuild') - @connectTab('build') - - viewBuilds: -> - @_bind('repository', 'repositoriesByParams.firstObject') - @_bind('builds', 'repository.builds') - @connectTab('builds') - - viewBuild: -> - @_bind('repository', 'repositoriesByParams.firstObject') - @_bind('build', 'buildById') - @connectTab('build') - - viewJob: -> - @_bind('repository', 'repositoriesByParams.firstObject') - @_bind('build', 'job.build') - @_bind('job', 'jobById') - @connectTab('job') - - repositoriesByParams: (-> - Travis.Repository.bySlug("#{params.owner}/#{params.name}") if params = @get('params') - ).property('params') - - buildById: (-> - Travis.Build.find(id) if id = @getPath('params.id') - ).property('params.id') - - jobById: (-> - Travis.Job.find(id) if id = @getPath('params.id') - ).property('params.id') - - _bind: (to, from) -> - @bindings.push Ember.oneWay(this, to, from) - - _unbind: -> - binding.disconnect(this) for binding in @bindings - @bindings.length = 0 - - connectTab: (tab) -> - @controller.connectOutlet(outletName: 'tab', name: tab) - + @repositoryController.activate(action, params) diff --git a/assets/javascripts/app/layout/sidebar.coffee b/assets/javascripts/app/layout/sidebar.coffee deleted file mode 100644 index 2eb788e8..00000000 --- a/assets/javascripts/app/layout/sidebar.coffee +++ /dev/null @@ -1,40 +0,0 @@ -require 'layout/base' - -Travis.Layout.Sidebar = Travis.Layout.Base.extend - name: 'sidebar' - - init: -> - @_super('sponsors', 'workers', 'queues') - @parent = @get('parent') - - @connectSponsors(Travis.Sponsor.decks(), Travis.Sponsor.links()) - @connectWorkers(Travis.Worker.find()) - @connectQueues(Travis.QUEUES) - - Travis.Ticker.create(target: this, interval: Travis.INTERVALS.sponsors) - - connect: -> - @parent.connectOutlet(outletName: 'right', name: 'sidebar') - - connectSponsors: (decks, links) -> - @sponsorsController = Em.Controller.create - decks: Travis.Controllers.SponsorsController.create(perPage: 1, content: decks) - links: Travis.Controllers.SponsorsController.create(perPage: 6, content: links) - @parent.set 'sponsors', @sponsorsController - - tick: -> - @sponsorsController.get('decks').next() - @sponsorsController.get('links').next() - - connectWorkers: (workers) -> - @workersController.set('content', workers) - @parent.set('workers', @workersController) - - connectQueues: (queues) -> - queues = for queue in queues - Em.ArrayController.create - content: Travis.Job.queued(queue.name) - name: queue.display - @queuesController.set('content', queues) - @parent.set('queues', @queuesController) - diff --git a/assets/javascripts/app/models/repository.coffee b/assets/javascripts/app/models/repository.coffee index 3555a516..6ac132dc 100644 --- a/assets/javascripts/app/models/repository.coffee +++ b/assets/javascripts/app/models/repository.coffee @@ -56,6 +56,7 @@ require 'travis/model' @find(search: query, orderBy: 'name') bySlug: (slug) -> + # TODO use filter? repo = $.detect(@find().toArray(), (repo) -> repo.get('slug') == slug) if repo then Ember.ArrayProxy.create(content: [repo]) else @find(slug: slug) diff --git a/assets/javascripts/app/templates/builds/list.hbs b/assets/javascripts/app/templates/builds/list.hbs index f5bb24bb..414d22c8 100644 --- a/assets/javascripts/app/templates/builds/list.hbs +++ b/assets/javascripts/app/templates/builds/list.hbs @@ -1,33 +1,39 @@ -{{#with view}} - - - - - - - - - - +{{#if builds.isLoaded}} + {{#with view}} +
{{t builds.name}}{{t builds.commit}}{{t builds.message}}{{t builds.duration}}{{t builds.finished_at}}
+ + + + + + + + + - - {{#each build in builds}} - {{#view Travis.Views.BuildsItemView contextBinding="build"}} - - - - - - - - {{/view}} - {{/each}} - -
{{t builds.name}}{{t builds.commit}}{{t builds.message}}{{t builds.duration}}{{t builds.finished_at}}
{{number}}{{formatCommit commit}}{{{formatMessage commit.message short="true"}}}{{formatDuration duration}}{{formatTime finished_at}}
+ + {{#each build in builds}} + {{#view Travis.Views.BuildsItemView contextBinding="build"}} + + {{number}} + {{formatCommit commit}} + {{{formatMessage commit.message short="true"}}} + {{formatDuration duration}} + {{formatTime finished_at}} + + {{/view}} + {{/each}} + + -

- -

-{{/with}} +

+ +

+ {{/with}} +{{else}} +
+ Loading +
+{{/if}} diff --git a/assets/javascripts/app/templates/builds/show.hbs b/assets/javascripts/app/templates/builds/show.hbs index d464e27a..8f0d4bd7 100644 --- a/assets/javascripts/app/templates/builds/show.hbs +++ b/assets/javascripts/app/templates/builds/show.hbs @@ -1,9 +1,5 @@ {{#with view}} - {{#unless build.isLoaded}} -
- Loading -
- {{else}} + {{#if build.isLoaded}}
@@ -48,5 +44,9 @@ {{view Travis.Views.LogView contextBinding="build.jobs.firstObject"}} {{/if}}
- {{/unless}} + {{else}} +
+ Loading +
+ {{/if}} {{/with}} diff --git a/assets/javascripts/app/templates/layouts/home.hbs b/assets/javascripts/app/templates/layouts/home.hbs index 3266072f..b2cdeff3 100644 --- a/assets/javascripts/app/templates/layouts/home.hbs +++ b/assets/javascripts/app/templates/layouts/home.hbs @@ -29,12 +29,6 @@
{{outlet main}} - {{outlet tabs}} - -
- {{outlet tab}} -
- diff --git a/assets/javascripts/app/templates/layouts/sidebar.hbs b/assets/javascripts/app/templates/layouts/sidebar.hbs index f559d9e5..a7e9449e 100644 --- a/assets/javascripts/app/templates/layouts/sidebar.hbs +++ b/assets/javascripts/app/templates/layouts/sidebar.hbs @@ -6,10 +6,10 @@
 
-{{view templateName="sponsors/decks"}} -{{view templateName="workers/list" id="workers"}} -{{view templateName="queues/list" id="queues"}} -{{view templateName="sponsors/links"}} +{{outlet decks}} +{{outlet workers}} +{{outlet queues}} +{{outlet links}}

{{t layouts.about.alpha}}

diff --git a/assets/javascripts/app/templates/queues/list.hbs b/assets/javascripts/app/templates/queues/list.hbs index 1281c9ce..bcec49f7 100644 --- a/assets/javascripts/app/templates/queues/list.hbs +++ b/assets/javascripts/app/templates/queues/list.hbs @@ -1,4 +1,4 @@ -{{#each queue in queues}} +{{#each queue in controller}}

{{t queue}}: {{queue.name}}

    {{#each queue}} diff --git a/assets/javascripts/app/templates/repositories/list.hbs b/assets/javascripts/app/templates/repositories/list.hbs index ee1b36e8..c833916b 100644 --- a/assets/javascripts/app/templates/repositories/list.hbs +++ b/assets/javascripts/app/templates/repositories/list.hbs @@ -1,5 +1,5 @@
      - {{#each repository in controller}} + {{#each repository in controller.arrangedContent}} {{#view Travis.Views.RepositoriesItemView contextBinding="repository"}}
    • {{slug}} diff --git a/assets/javascripts/app/templates/repositories/show.hbs b/assets/javascripts/app/templates/repositories/show.hbs index 25c9a402..7572c178 100644 --- a/assets/javascripts/app/templates/repositories/show.hbs +++ b/assets/javascripts/app/templates/repositories/show.hbs @@ -12,6 +12,12 @@
    • {{stats.watchers}}
    • {{stats.forks}}
    + + {{view templateName="repositories/_tabs" contextBinding="view"}} +
+ +
+ {{outlet pane}}
{{/with}} {{else}} diff --git a/assets/javascripts/app/templates/repositories/tabs.hbs b/assets/javascripts/app/templates/repositories/tabs.hbs deleted file mode 100644 index 2acc8955..00000000 --- a/assets/javascripts/app/templates/repositories/tabs.hbs +++ /dev/null @@ -1,39 +0,0 @@ - - -
- -
-

-

-

-

-

-
-
diff --git a/assets/javascripts/app/templates/sponsors/decks.hbs b/assets/javascripts/app/templates/sponsors/decks.hbs index 4608e395..08f81627 100644 --- a/assets/javascripts/app/templates/sponsors/decks.hbs +++ b/assets/javascripts/app/templates/sponsors/decks.hbs @@ -1,7 +1,7 @@

{{t layouts.application.sponsers}}