From faca83ba5f256ef0ee457158eeb92fd103e898db Mon Sep 17 00:00:00 2001 From: Lisa Passing Date: Thu, 26 Feb 2015 17:49:27 +0100 Subject: [PATCH] add org filter to dashboard, prepare sync button --- app/components/orgs-filter.coffee | 10 +++++ app/components/sync-button.coffee | 10 +++++ app/controllers/dashboard/repositories.coffee | 40 ++++++++++++++++++- app/templates/components/orgs-filter.hbs | 28 +++++++++++++ app/templates/components/sync-button.hbs | 2 + app/templates/dashboard/repositories.hbs | 17 +++----- app/utils/location.coffee | 2 +- 7 files changed, 94 insertions(+), 15 deletions(-) create mode 100644 app/components/orgs-filter.coffee create mode 100644 app/components/sync-button.coffee create mode 100644 app/templates/components/orgs-filter.hbs create mode 100644 app/templates/components/sync-button.hbs diff --git a/app/components/orgs-filter.coffee b/app/components/orgs-filter.coffee new file mode 100644 index 00000000..53f39177 --- /dev/null +++ b/app/components/orgs-filter.coffee @@ -0,0 +1,10 @@ +`import Ember from 'ember'` + +Component = Ember.Component.extend + + actions: { + select: (org) -> + @sendAction('action', org) + } + +`export default Component` diff --git a/app/components/sync-button.coffee b/app/components/sync-button.coffee new file mode 100644 index 00000000..86e3b3d7 --- /dev/null +++ b/app/components/sync-button.coffee @@ -0,0 +1,10 @@ +`import Ember from 'ember'` + +Component = Ember.Component.extend + actions: { + sync: -> + console.log(@get('user')); + } + + +`export default Component` diff --git a/app/controllers/dashboard/repositories.coffee b/app/controllers/dashboard/repositories.coffee index ad8f40f9..f7c27196 100644 --- a/app/controllers/dashboard/repositories.coffee +++ b/app/controllers/dashboard/repositories.coffee @@ -1,12 +1,19 @@ `import Ember from 'ember'` +`import config from 'travis/config/environment'` Controller = Ember.Controller.extend - #queryParams: ['filter'] + queryParams: ['org'] filter: null + org: null filteredRepositories: (-> filter = @get('filter') repos = @get('model') + org = @get('org') + + if org + repos = repos.filter (item, index) -> + item.get('owner.login') == org if Ember.isBlank(filter) repos @@ -14,16 +21,45 @@ Controller = Ember.Controller.extend repos.filter (item, index) -> item.slug.match(new RegExp(filter)) - ).property('filter', 'model') + ).property('filter', 'model', 'org') updateFilter: () -> value = @get('_lastFilterValue') @transitionToRoute queryParams: { filter: value } @set('filter', value) + selectedOrg: (-> + @get('orgs').findBy('login', @get('org')) + ).property('org', 'orgs.[]') + + orgs: (-> + orgs = Ember.ArrayProxy.create( + content: [] + isLoading: true + ) + + apiEndpoint = config.apiEndpoint + $.ajax(apiEndpoint + '/v3/orgs', { + headers: { + Authorization: 'token ' + @auth.token() + } + }).then (response) -> + array = response.organizations.map( (org) -> + Ember.Object.create(org) + ) + orgs.set('content', array) + orgs.set('isLoading', false) + + orgs + ).property() + actions: updateFilter: (value) -> @set('_lastFilterValue', value) Ember.run.throttle this, @updateFilter, [], 200, false + selectOrg: (org) -> + login = if org then org.get('login') else null + @set('org', login) + `export default Controller` diff --git a/app/templates/components/orgs-filter.hbs b/app/templates/components/orgs-filter.hbs new file mode 100644 index 00000000..c5878d66 --- /dev/null +++ b/app/templates/components/orgs-filter.hbs @@ -0,0 +1,28 @@ +
+
+ {{#if orgs.isLoading}} + + {{else}} + + {{#if selected }}{{selected.name}} {{else}} All organizations {{/if}} + + {{/if}} +
+ +
+ diff --git a/app/templates/components/sync-button.hbs b/app/templates/components/sync-button.hbs new file mode 100644 index 00000000..ced7bc73 --- /dev/null +++ b/app/templates/components/sync-button.hbs @@ -0,0 +1,2 @@ + +{{user.syncedAt}} diff --git a/app/templates/dashboard/repositories.hbs b/app/templates/dashboard/repositories.hbs index cc904529..6a3b0e9e 100644 --- a/app/templates/dashboard/repositories.hbs +++ b/app/templates/dashboard/repositories.hbs @@ -1,20 +1,13 @@
-
-
- something else -
- + {{orgs-filter orgs=orgs selected=selectedOrg action="selectOrg"}} +
+ {{sync-button user=auth.currentUser}}
- --}}
diff --git a/app/utils/location.coffee b/app/utils/location.coffee index 822b34bd..0b5da2c9 100644 --- a/app/utils/location.coffee +++ b/app/utils/location.coffee @@ -3,6 +3,6 @@ Location = Ember.HistoryLocation.extend getURL: -> location = @get('location') - location.pathname + location.hash + location.pathname + location.search + location.hash `export default Location`