diff --git a/app/components/repo-show-tools.coffee b/app/components/repo-show-tools.coffee new file mode 100644 index 00000000..c5101af8 --- /dev/null +++ b/app/components/repo-show-tools.coffee @@ -0,0 +1,47 @@ +`import Ember from 'ember'` +`import config from 'travis/config/environment'` + +RepoShowToolsComponent = Ember.Component.extend + popup: Ember.inject.service() + + click: (event) -> + if $(event.target).is('a') && $(event.target).parents('.dropdown-menu').length + @closeMenu() + + closeMenu: -> + $('.menu').removeClass('display') + + actions: + menu: -> + @get('popup').close() + $('#tools .menu').toggleClass('display') + return false + + hasPermission: (-> + if permissions = @get('currentUser.permissions') + permissions.contains parseInt(@get('repo.id')) + ).property('currentUser.permissions.length', 'repo.id') + + hasPushPermission: (-> + if permissions = @get('currentUser.pushPermissions') + permissions.contains parseInt(@get('repo.id')) + ).property('currentUser.pushPermissions.length', 'repo.id') + + hasAdminPermission: (-> + if permissions = @get('currentUser.adminPermissions') + permissions.contains parseInt(@get('repo.id')) + ).property('currentUser.adminPermissions.length', 'repo.id') + + displaySettingsLink: (-> + @get('hasPushPermission') + ).property('hasPushPermission') + + displayCachesLink: (-> + @get('hasPushPermission') && config.endpoints.caches + ).property('hasPushPermission') + + displayStatusImages: (-> + @get('hasPermission') + ).property('hasPermission') + +`export default RepoShowToolsComponent` diff --git a/app/components/repos-list-item.coffee b/app/components/repos-list-item.coffee index 1d620188..af4ee542 100644 --- a/app/components/repos-list-item.coffee +++ b/app/components/repos-list-item.coffee @@ -3,6 +3,8 @@ `import { colorForState } from 'travis/utils/helpers'` ReposListItemComponent = Ember.Component.extend Polling, + routing: Ember.inject.service('-routing') + tagName: 'li' pollModels: 'repo' @@ -24,6 +26,6 @@ ReposListItemComponent = Ember.Component.extend Polling, click: -> @scrollTop() - @get('controller').transitionToRoute('/' + @get('repo.slug')) + @get('routing').transitionTo('repo', @get('repo.slug').split('/')) `export default ReposListItemComponent` diff --git a/app/services/popup.coffee b/app/services/popup.coffee new file mode 100644 index 00000000..83c8e37e --- /dev/null +++ b/app/services/popup.coffee @@ -0,0 +1,15 @@ +`import Ember from 'ember'` + +PopupService = Ember.Service.extend + open: (name) -> + @closeAll() + name = event?.target?.name || name + $("##{name}").toggleClass('display') + close: -> + if view = Ember.View.currentPopupView + view.destroy() + Ember.View.currentPopupView = null + + $('.popup').removeClass('display') + +`export default PopupService` diff --git a/app/templates/components/repo-show-tools.hbs b/app/templates/components/repo-show-tools.hbs new file mode 100644 index 00000000..5300edd9 --- /dev/null +++ b/app/templates/components/repo-show-tools.hbs @@ -0,0 +1,18 @@ +