From b06d7f9628c3a3e5ac77d1635cf4062028d6a0d9 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Fri, 15 Mar 2013 16:30:28 +0100 Subject: [PATCH 1/6] Tabs on the sidebar, the beginning based on @svenfuchs work --- .../scripts/app/templates/layouts/sidebar.hbs | 20 ++++++-- assets/scripts/app/views/sidebar.coffee | 18 ++++++- assets/styles/right/lists.sass | 48 +++++++++++++++++-- 3 files changed, 79 insertions(+), 7 deletions(-) diff --git a/assets/scripts/app/templates/layouts/sidebar.hbs b/assets/scripts/app/templates/layouts/sidebar.hbs index 9383426f..3921f4dd 100644 --- a/assets/scripts/app/templates/layouts/sidebar.hbs +++ b/assets/scripts/app/templates/layouts/sidebar.hbs @@ -9,9 +9,23 @@ {{view view.DecksView}} -{{view view.WorkersView}} -{{view view.RunningJobsView}} -{{view view.QueuesView}} + + + +
+ {{outlet pane}} +
+ {{view view.LinksView}}
diff --git a/assets/scripts/app/views/sidebar.coffee b/assets/scripts/app/views/sidebar.coffee index 782171f8..47bbdd7b 100644 --- a/assets/scripts/app/views/sidebar.coffee +++ b/assets/scripts/app/views/sidebar.coffee @@ -2,6 +2,22 @@ SidebarView: Travis.View.extend templateName: 'layouts/sidebar' + activate: (name) -> + @set('activeTab', name) + @connectOutlet 'pane', @["#{name.capitalize()}View"].create(controller: @get('controller')) + + classQueues: (-> + 'active' if @get('activeTab') == 'queues' + ).property('activeTab') + + classWorkers: (-> + 'active' if @get('activeTab') == 'workers' + ).property('activeTab') + + classJobs: (-> + 'active' if @get('activeTab') == 'jobs' + ).property('activeTab') + DecksView: Em.View.extend templateName: "sponsors/decks" init: -> @@ -26,7 +42,7 @@ @_super.apply this, arguments @set 'controller', @get('controller').container.lookup('controller:queues') - RunningJobsView: Em.View.extend + JobsView: Em.View.extend templateName: 'jobs/running' elementId: 'running-jobs' init: -> diff --git a/assets/styles/right/lists.sass b/assets/styles/right/lists.sass index 1d8fe8b6..e2eb78f8 100644 --- a/assets/styles/right/lists.sass +++ b/assets/styles/right/lists.sass @@ -1,12 +1,51 @@ @import "_mixins/all" #right - #queues - margin-top: 0 + .tabs + margin-top: 28px + height: 25px + border-bottom-color: $color-border-light + + li + display: inline-block + height: 24px + margin-right: 3px + background-color: $color-bg-right + border: 1px solid $color-bg-right + border-bottom-color: $color-border-light + white-space: nowrap + cursor: pointer + @include border-top-radius(4px) + font-size: 10px + + &:hover + background-color: $color-bg-tab-hover + border-color: $color-border-light + border-bottom-color: $color-bg-tab-active + + .active + background-color: $color-bg-tab-active + border-color: $color-border-light + border-bottom-color: $color-bg-tab-active + + h5 + margin: 0 + font-size: $font-size-small + font-weight: normal + line-height: 26px + + a + display: block + padding: 0 10px + + .pane + position: relative #toggle-workers + position: absolute + top: -30px + right: 5px display: inline-block - float: right width: 10px height: 10px cursor: pointer @@ -17,6 +56,9 @@ #workers li ul display: none + #queues + margin-top: 0 + #workers li, #queues ul li overflow: hidden From aedddd8afe975b59828ca4e72280edd51a2d4345 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Fri, 15 Mar 2013 19:22:24 +0100 Subject: [PATCH 2/6] Display only jobs and workers in tabs --- assets/scripts/app/controllers/sidebar.coffee | 3 +++ assets/scripts/app/templates/jobs/running.hbs | 2 -- assets/scripts/app/templates/layouts/sidebar.hbs | 7 ++----- assets/scripts/app/templates/workers/list.hbs | 5 +---- assets/scripts/app/views/sidebar.coffee | 5 +++++ assets/styles/right/lists.sass | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/assets/scripts/app/controllers/sidebar.coffee b/assets/scripts/app/controllers/sidebar.coffee index 42bfd638..e691cd6f 100644 --- a/assets/scripts/app/controllers/sidebar.coffee +++ b/assets/scripts/app/controllers/sidebar.coffee @@ -1,5 +1,8 @@ Travis.reopen SidebarController: Em.ArrayController.extend + needs: ['runningJobs'] + jobsBinding: 'controllers.runningJobs' + init: -> @_super.apply this, arguments @tickables = [] diff --git a/assets/scripts/app/templates/jobs/running.hbs b/assets/scripts/app/templates/jobs/running.hbs index 44f4e396..6be98a9a 100644 --- a/assets/scripts/app/templates/jobs/running.hbs +++ b/assets/scripts/app/templates/jobs/running.hbs @@ -1,5 +1,3 @@ -

Running Jobs ({{view.jobs.length}})

-
    {{#each group in view.groups}} {{view view.GroupView groupBinding="group"}} diff --git a/assets/scripts/app/templates/layouts/sidebar.hbs b/assets/scripts/app/templates/layouts/sidebar.hbs index 3921f4dd..4b11b8fa 100644 --- a/assets/scripts/app/templates/layouts/sidebar.hbs +++ b/assets/scripts/app/templates/layouts/sidebar.hbs @@ -11,11 +11,8 @@ {{view view.DecksView}}
      -
    • -
      {{t layouts.application.queues}}
      -
    • -
      {{t layouts.application.jobs}}
      +
      {{t layouts.application.jobs}} ({{jobs.length}})
    • {{t layouts.application.workers}}
      @@ -25,7 +22,7 @@
      {{outlet pane}}
      - +{{view view.QueuesView}} {{view view.LinksView}}
      diff --git a/assets/scripts/app/templates/workers/list.hbs b/assets/scripts/app/templates/workers/list.hbs index af00a44b..c9b777e6 100644 --- a/assets/scripts/app/templates/workers/list.hbs +++ b/assets/scripts/app/templates/workers/list.hbs @@ -1,8 +1,5 @@ {{#view Travis.WorkersView}} -

      - {{t workers}} - -

      +
        {{#each group in controller.groups}} {{#view Travis.WorkersListView}} diff --git a/assets/scripts/app/views/sidebar.coffee b/assets/scripts/app/views/sidebar.coffee index 47bbdd7b..b9401d5b 100644 --- a/assets/scripts/app/views/sidebar.coffee +++ b/assets/scripts/app/views/sidebar.coffee @@ -2,6 +2,11 @@ SidebarView: Travis.View.extend templateName: 'layouts/sidebar' + didInsertElement: -> + @_super.apply this, arguments + + @activate('jobs') + activate: (name) -> @set('activeTab', name) @connectOutlet 'pane', @["#{name.capitalize()}View"].create(controller: @get('controller')) diff --git a/assets/styles/right/lists.sass b/assets/styles/right/lists.sass index e2eb78f8..b74cd3a8 100644 --- a/assets/styles/right/lists.sass +++ b/assets/styles/right/lists.sass @@ -9,7 +9,7 @@ li display: inline-block height: 24px - margin-right: 3px + margin-right: 5px background-color: $color-bg-right border: 1px solid $color-bg-right border-bottom-color: $color-border-light From 894f321a8f718b0af4119149dc219fe43547c49d Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Fri, 22 Mar 2013 02:14:00 +0100 Subject: [PATCH 3/6] some style tweaks to the sidebar tabs /cc @drogus --- assets/scripts/app/templates/layouts/sidebar.hbs | 2 +- assets/styles/right.sass | 1 + assets/styles/right/sponsors.sass | 1 + assets/styles/tabs.sass | 10 ++++++++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/assets/scripts/app/templates/layouts/sidebar.hbs b/assets/scripts/app/templates/layouts/sidebar.hbs index 4b11b8fa..5a4ffa18 100644 --- a/assets/scripts/app/templates/layouts/sidebar.hbs +++ b/assets/scripts/app/templates/layouts/sidebar.hbs @@ -12,7 +12,7 @@
        • -
          {{t layouts.application.jobs}} ({{jobs.length}})
          +
          {{t layouts.application.running}} ({{jobs.length}})
        • {{t layouts.application.workers}}
          diff --git a/assets/styles/right.sass b/assets/styles/right.sass index 34eb7169..8150aae6 100644 --- a/assets/styles/right.sass +++ b/assets/styles/right.sass @@ -11,6 +11,7 @@ .box margin-top: 25px + margin-left: -3px padding: 15px border: 1px solid $color-border-normal background-color: $color-bg-sidebar-box diff --git a/assets/styles/right/sponsors.sass b/assets/styles/right/sponsors.sass index 60327a6c..a4b05d49 100644 --- a/assets/styles/right/sponsors.sass +++ b/assets/styles/right/sponsors.sass @@ -4,6 +4,7 @@ .sponsors &.top height: 140px + margin-left: -3px li overflow: hidden diff --git a/assets/styles/tabs.sass b/assets/styles/tabs.sass index b50f2716..a0b779d6 100644 --- a/assets/styles/tabs.sass +++ b/assets/styles/tabs.sass @@ -61,3 +61,13 @@ #main .tab margin: 30px 0 0 12px + +#right + .tabs + margin-left: -3px + + h5 + font-weight: bold + .active + background-color: $color-bg-right + border-bottom-color: $color-bg-right From 8f891168d7cc1bfc2f696c03f2677ea73611587b Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Fri, 22 Mar 2013 02:32:27 +0100 Subject: [PATCH 4/6] un-bold the non-active tab in the sidebar --- assets/styles/tabs.sass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/styles/tabs.sass b/assets/styles/tabs.sass index a0b779d6..19baa134 100644 --- a/assets/styles/tabs.sass +++ b/assets/styles/tabs.sass @@ -66,8 +66,8 @@ .tabs margin-left: -3px - h5 - font-weight: bold .active background-color: $color-bg-right border-bottom-color: $color-bg-right + h5 + font-weight: bold From 39d0202d7ac5b821f46f3eaeb802dfcce5ca89e7 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Fri, 5 Apr 2013 18:09:00 +0200 Subject: [PATCH 5/6] Fix specs, add styling for firefox --- assets/scripts/app/views/application.coffee | 2 +- assets/scripts/app/views/repo/show.coffee | 3 +-- assets/scripts/app/views/sidebar.coffee | 1 + assets/scripts/spec/event_spec.coffee | 10 ++++++++-- assets/scripts/spec/support/conditions.coffee | 1 + assets/styles/right.sass | 1 + 6 files changed, 13 insertions(+), 5 deletions(-) diff --git a/assets/scripts/app/views/application.coffee b/assets/scripts/app/views/application.coffee index 54f18c30..45d414e0 100644 --- a/assets/scripts/app/views/application.coffee +++ b/assets/scripts/app/views/application.coffee @@ -7,7 +7,7 @@ Travis.reopen @rerender() ).observes('templateName') - click: -> + click: (event) -> # TODO: this solves the case of closing menus and popups, # but I would like to rewrite it later, not sure how # yet, but this does not seem optimal diff --git a/assets/scripts/app/views/repo/show.coffee b/assets/scripts/app/views/repo/show.coffee index 0c0e317d..db7ae25e 100644 --- a/assets/scripts/app/views/repo/show.coffee +++ b/assets/scripts/app/views/repo/show.coffee @@ -64,10 +64,9 @@ Travis.reopen currentUserBinding: 'controller.currentUser' closeMenu: -> - console.log 'closeMenu' $('.menu').removeClass('display') - menu: -> + menu: (event) -> @popupCloseAll() $('#tools .menu').toggleClass('display') event.stopPropagation() diff --git a/assets/scripts/app/views/sidebar.coffee b/assets/scripts/app/views/sidebar.coffee index b9401d5b..35103343 100644 --- a/assets/scripts/app/views/sidebar.coffee +++ b/assets/scripts/app/views/sidebar.coffee @@ -8,6 +8,7 @@ @activate('jobs') activate: (name) -> + return if @get('activeTab') == name @set('activeTab', name) @connectOutlet 'pane', @["#{name.capitalize()}View"].create(controller: @get('controller')) diff --git a/assets/scripts/spec/event_spec.coffee b/assets/scripts/spec/event_spec.coffee index ddde0844..f867f868 100644 --- a/assets/scripts/spec/event_spec.coffee +++ b/assets/scripts/spec/event_spec.coffee @@ -121,7 +121,10 @@ describe 'events', -> describe 'an event adding a worker', -> beforeEach -> app '' - waitFor workersRendered + waitFor sidebarTabsRendered + runs -> + $('#right #tab_workers a').trigger('click') + waitFor workersRendered it 'adds a worker to the workers list', -> payload = @@ -155,7 +158,10 @@ describe 'events', -> describe 'an event updating a worker', -> beforeEach -> app '/travis-ci/travis-core' - waitFor workersRendered + waitFor sidebarTabsRendered + runs -> + $('#right #tab_workers a').trigger('click') + waitFor workersRendered it 'does not update repository if it\'s already in the store', -> payload = diff --git a/assets/scripts/spec/support/conditions.coffee b/assets/scripts/spec/support/conditions.coffee index 67a60462..934cada6 100644 --- a/assets/scripts/spec/support/conditions.coffee +++ b/assets/scripts/spec/support/conditions.coffee @@ -12,3 +12,4 @@ @queuesRendered = notEmpty('#queue_linux li') @workersRendered = notEmpty('.worker') +@sidebarTabsRendered = notEmpty('#right #tab_workers a') diff --git a/assets/styles/right.sass b/assets/styles/right.sass index 8150aae6..4d40b06d 100644 --- a/assets/styles/right.sass +++ b/assets/styles/right.sass @@ -57,5 +57,6 @@ white-space: nowrap text-overflow: ellipsis display: inline-block + display: -moz-inline-stack .group a cursor: pointer From d414c47833ffb404691f4f497f9d41db9120d826 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Fri, 5 Apr 2013 19:25:30 +0200 Subject: [PATCH 6/6] Don't render links if slug is missing --- assets/scripts/app/templates/jobs/running/group.hbs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/assets/scripts/app/templates/jobs/running/group.hbs b/assets/scripts/app/templates/jobs/running/group.hbs index f7c1b793..ffe27567 100644 --- a/assets/scripts/app/templates/jobs/running/group.hbs +++ b/assets/scripts/app/templates/jobs/running/group.hbs @@ -5,9 +5,11 @@
            {{#each job in sortedJobs}}
          • - {{#linkTo "job" job.repoData job}} - #{{job.number}} - {{/linkTo}} + {{#if job.repoData.slug}} + {{#linkTo "job" job.repoData job}} + #{{job.number}} + {{/linkTo}} + {{/if}}
          • {{/each}}