diff --git a/app/controllers/proposals/new.js b/app/controllers/proposals/new.js index fc6c6da..dbea973 100644 --- a/app/controllers/proposals/new.js +++ b/app/controllers/proposals/new.js @@ -1,29 +1,24 @@ -import Ember from 'ember'; -import QueryParams from 'ember-parachute'; +import Controller from 'ember-controller'; +import { filterBy } from 'ember-computed'; +import injectService from 'ember-service/inject'; -export const queryParams = new QueryParams({ - recipient: { - defaultValue: '' - }, - amount: { - defaultValue: '' - }, - url: { - defaultValue: '' - }, - ipfsHash: { - defaultValue: '' - } -}); +export default Controller.extend({ + kredits: injectService(), -export default Ember.Controller.extend(queryParams.Mixin, { - - contributors: null, + contributors: [], + minedContributors: filterBy('contributors', 'id'), actions: { - onSave() { - this.transitionToRoute('index'); + save(proposal) { + // contributorIpfsHash is needed for the proposal ipfs data. I'm not happy to do this here but I think to load all the contributors in addProposal again is a bit too much. I hope we can refactor it later. + let contributor = this.get('contributors').findBy('id', proposal.recipientId); + proposal.contributorIpfsHash = contributor.get('ipfsHash'); + + return this.get('kredits').addProposal(proposal) + .then((proposal) => { + this.transitionToRoute('index'); + return proposal; + }); } } - }); diff --git a/app/routes/proposals/new.js b/app/routes/proposals/new.js index f5870d9..4c3110c 100644 --- a/app/routes/proposals/new.js +++ b/app/routes/proposals/new.js @@ -1,37 +1,15 @@ -import Ember from 'ember'; -import Proposal from 'kredits-web/models/proposal'; - -const { - Route, - RSVP, - inject: { - service - } -} = Ember; +import injectService from 'ember-service/inject'; +import Route from 'ember-route'; export default Route.extend({ - - kredits: service(), - - model(params) { - const proposal = Proposal.create({ - recipientAddress: params.recipient, - amount: params.amount, - url: params.url, - kind: params.kind || 'dev', - ipfsHash: params.ipfsHash - }); - - return RSVP.hash({ - proposal, - contributors: this.get('kredits').getContributors() - }); - }, + kredits: injectService(), setupController(controller, model) { - this._super(controller, model.proposal); + this._super(...arguments); - controller.set('contributors', model.contributors); + this.get('kredits').getContributors() + .then((contributors) => { + this.controller.set('contributors', contributors); + }); } - });