Refactor proposals #38

Merged
fsmanuel merged 6 commits from refactor/proposal into master 2018-04-08 12:02:28 +00:00
2 changed files with 25 additions and 52 deletions
Showing only changes of commit 45044c0f61 - Show all commits
+17 -22
View File
@@ -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;
});
}
}
});
+8 -30
View File
@@ -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);
});
}
});