diff --git a/app/components/contribution-list/component.js b/app/components/contribution-list/component.js
index edb7efe..ceebc4a 100644
--- a/app/components/contribution-list/component.js
+++ b/app/components/contribution-list/component.js
@@ -6,9 +6,13 @@ import { inject as service } from '@ember/service';
export default Component.extend({
+ router: service(),
+
tagName: 'div',
classNames: ['contributions'],
+ selectedContribution: null,
+
showQuickFilter: false,
hideSmallContributions: false,
contributorId: null,
@@ -57,6 +61,10 @@ export default Component.extend({
} else {
window.alert('Only members can veto contributions. Please ask someone to set you up.');
}
+ },
+
+ openContributionDetails(contribution) {
+ this.router.transitionTo('dashboard.contributions.show', contribution);
}
}
diff --git a/app/components/contribution-list/template.hbs b/app/components/contribution-list/template.hbs
index 94a32aa..d6495a6 100644
--- a/app/components/contribution-list/template.hbs
+++ b/app/components/contribution-list/template.hbs
@@ -31,17 +31,13 @@
{{#each contributionsFiltered as |contribution|}}
- -
+
-
{{user-avatar contributor=contribution.contributor}}
({{contribution.kind}})
-
- {{#if contribution.url}}
- {{contribution.description}}
- {{else}}
- {{contribution.description}}
- {{/if}}
-
+ {{contribution.description}}
{{contribution.amount}}₭S
diff --git a/app/components/contributor-list/component.js b/app/components/contributor-list/component.js
index a5b42fd..05f8e46 100644
--- a/app/components/contributor-list/component.js
+++ b/app/components/contributor-list/component.js
@@ -7,6 +7,7 @@ export default Component.extend({
tagName: 'table',
classNames: 'contributor-list',
+
selectedContributorId: null,
actions: {
diff --git a/app/components/contributor-list/template.hbs b/app/components/contributor-list/template.hbs
index e187a2a..dfeecd5 100644
--- a/app/components/contributor-list/template.hbs
+++ b/app/components/contributor-list/template.hbs
@@ -1,8 +1,7 @@
{{#each contributorList as |c|}}
-
+
|
{{user-avatar contributor=c.contributor}} {{c.contributor.name}}
|
diff --git a/app/controllers/dashboard.js b/app/controllers/dashboard.js
index 28c183f..dec3a71 100644
--- a/app/controllers/dashboard.js
+++ b/app/controllers/dashboard.js
@@ -8,6 +8,7 @@ export default Controller.extend({
showDetailsPane: false,
selectedContributorId: null,
+ selectedContributionId: null,
currentBlock: alias('kredits.currentBlock'),
diff --git a/app/router.js b/app/router.js
index e3003cd..339fd9e 100644
--- a/app/router.js
+++ b/app/router.js
@@ -11,6 +11,10 @@ Router.map(function() {
this.route('contributors', function() {
this.route('show', { path: ':id' });
});
+
+ this.route('contributions', function() {
+ this.route('show', { path: ':id' });
+ });
});
this.route('proposals', function() {
this.route('new');
diff --git a/app/routes/dashboard/contributions/show.js b/app/routes/dashboard/contributions/show.js
new file mode 100644
index 0000000..cdcbf59
--- /dev/null
+++ b/app/routes/dashboard/contributions/show.js
@@ -0,0 +1,32 @@
+import { inject as service } from '@ember/service';
+import Route from '@ember/routing/route';
+import { alias } from '@ember/object/computed';
+
+export default Route.extend({
+
+ kredits: service(),
+ contributions: alias('kredits.contributions'),
+
+ model (params) {
+ return this.contributions.findBy('id', parseInt(params.id));
+ },
+
+ setupController (controller, model) {
+ this._super(controller, model);
+
+ this.controllerFor('dashboard')
+ .setProperties({
+ showDetailsPane: true,
+ selectedContributionId: model.id
+ });
+ },
+
+ deactivate () {
+ this.controllerFor('dashboard')
+ .setProperties({
+ showDetailsPane: false,
+ selectedContributionId: null
+ });
+ }
+
+});
diff --git a/app/styles/components/_contribution-list.scss b/app/styles/components/_contribution-list.scss
index 6660ee7..57d9444 100644
--- a/app/styles/components/_contribution-list.scss
+++ b/app/styles/components/_contribution-list.scss
@@ -37,6 +37,7 @@ ul.contribution-list {
background-color: rgba(255,255,255,0.1);
font-size: 1.2rem;
border-bottom: 1px solid rgba(255,255,255,0.2);
+ cursor: pointer;
&:first-of-type {
border-top: 1px solid rgba(255,255,255,0.2);
@@ -52,6 +53,10 @@ ul.contribution-list {
opacity: 0.6;
}
+ &.selected {
+ background-color: rgba(255,255,255,0.2);
+ }
+
p {
align-self: center;
margin: 0;
diff --git a/app/templates/dashboard.hbs b/app/templates/dashboard.hbs
index 3ed82d9..2d46657 100644
--- a/app/templates/dashboard.hbs
+++ b/app/templates/dashboard.hbs
@@ -53,6 +53,7 @@
{{contribution-list contributions=contributionsUnconfirmedSorted
vetoContribution=(action "vetoContribution")
contractInteractionEnabled=kredits.hasAccounts
+ selectedContributionId=selectedContributionId
showQuickFilter=showQuickFilterUnconfirmed}}
@@ -68,6 +69,7 @@
{{contribution-list contributions=contributionsConfirmedSorted
vetoContribution=(action "vetoContribution")
+ selectedContributionId=selectedContributionId
showQuickFilter=showQuickFilterConfirmed}}
diff --git a/app/templates/dashboard/contributions/show.hbs b/app/templates/dashboard/contributions/show.hbs
new file mode 100644
index 0000000..4f460fb
--- /dev/null
+++ b/app/templates/dashboard/contributions/show.hbs
@@ -0,0 +1,16 @@
+
\ No newline at end of file
diff --git a/tests/unit/routes/dashboard/contributions/show-test.js b/tests/unit/routes/dashboard/contributions/show-test.js
new file mode 100644
index 0000000..f6a737b
--- /dev/null
+++ b/tests/unit/routes/dashboard/contributions/show-test.js
@@ -0,0 +1,11 @@
+import { module, test } from 'qunit';
+import { setupTest } from 'ember-qunit';
+
+module('Unit | Route | dashboard/contributions/show', function(hooks) {
+ setupTest(hooks);
+
+ test('it exists', function(assert) {
+ let route = this.owner.lookup('route:dashboard/contributions/show');
+ assert.ok(route);
+ });
+});