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 @@ +