diff --git a/assets/scripts/app/controllers/account_index.coffee b/assets/scripts/app/controllers/account_index.coffee index b5dda57a..0b721c8b 100644 --- a/assets/scripts/app/controllers/account_index.coffee +++ b/assets/scripts/app/controllers/account_index.coffee @@ -1,6 +1,8 @@ Travis.AccountIndexController = Em.Controller.extend needs: ['profile', 'currentUser'] hooksBinding: 'controllers.profile.hooks' + allHooksBinding: 'controllers.profile.allHooks' + unAdminisetableHooksBinding: 'controllers.profile.unAdminisetableHooks' userBinding: 'controllers.currentUser' sync: -> diff --git a/assets/scripts/app/controllers/profile.coffee b/assets/scripts/app/controllers/profile.coffee index fbac998a..02800623 100644 --- a/assets/scripts/app/controllers/profile.coffee +++ b/assets/scripts/app/controllers/profile.coffee @@ -35,7 +35,15 @@ Travis.ProfileController = Travis.Controller.extend @reloadHooks() reloadHooks: -> - @set('hooks', Travis.Hook.find(owner_name: @get('params.login') || @get('user.login'))) + @set('allHooks', Travis.Hook.find(all: true, owner_name: @get('params.login') || @get('user.login'))) + + hooks: (-> + @get('allHooks').filter (hook) -> hook.get('admin') + ).property('allHooks.length', 'allHooks') + + unAdminisetableHooks: (-> + @get('allHooks').filter (hook) -> !hook.get('admin') + ).property('allHooks.length', 'allHooks') viewUser: -> @connectTab('user') diff --git a/assets/scripts/app/models/hook.coffee b/assets/scripts/app/models/hook.coffee index 0e6cdc8e..13cc04d1 100644 --- a/assets/scripts/app/models/hook.coffee +++ b/assets/scripts/app/models/hook.coffee @@ -5,6 +5,7 @@ require 'travis/model' ownerName: DS.attr('string') description: DS.attr('string') active: DS.attr('boolean') + admin: DS.attr('boolean') account: (-> @get('slug').split('/')[0] diff --git a/assets/scripts/app/routes.coffee b/assets/scripts/app/routes.coffee index 60a27b49..93dda8af 100644 --- a/assets/scripts/app/routes.coffee +++ b/assets/scripts/app/routes.coffee @@ -328,7 +328,7 @@ Travis.ProfileRoute = Ember.Route.extend setupController: -> @container.lookup('controller:application').connectLayout('profile') - @container.lookup('controller:accounts').set('content', Travis.Account.find()) + @container.lookup('controller:accounts').set('content', Travis.Account.find(all: true)) renderTemplate: -> $('body').attr('id', 'profile') diff --git a/assets/scripts/app/templates/profile/tabs/hooks.hbs b/assets/scripts/app/templates/profile/tabs/hooks.hbs index 4f41fde5..3387ab73 100644 --- a/assets/scripts/app/templates/profile/tabs/hooks.hbs +++ b/assets/scripts/app/templates/profile/tabs/hooks.hbs @@ -2,7 +2,7 @@ {{{t profiles.show.message.your_repos}}}

-{{#if hooks.isLoaded}} +{{#if allHooks.isLoaded}} {{#if user.isSyncing}}

Please wait while we sync from GitHub @@ -35,10 +35,33 @@ {{else}}

  • - You do not seem to have any repositories that we could sync. + {{#if unAdminisetableHooks.length}} + You do not have any repositories, which you can manage + {{else}} + You do not seem to have any repositories that we could sync. + {{/if}}
  • {{/each}} + + {{#if unAdminisetableHooks.length}} +
    +

    Repositories without admin access

    + +

    + These are the repositories, which we synced, but you do not seem to have admin access for them. +

    + + +
    + {{/if}} {{/if}} {{else}}

    diff --git a/assets/styles/profile/hooks.sass b/assets/styles/profile/hooks.sass index f3e94f87..c1c4ef96 100644 --- a/assets/styles/profile/hooks.sass +++ b/assets/styles/profile/hooks.sass @@ -1,6 +1,14 @@ @import "_mixins/all" -#hooks +#profile + #unadministerable-hooks + margin-top: 15px + h3 + font-size: $font-size-big + .tip + margin-top: 5px + +#hooks, #unadministerable-hooks // @include list-base margin-top: 10px