{"action":"created","comment":{"url":"https://api.github.com/repos/code-corps/code-corps-ember/pulls/comments/86148054","pull_request_review_id":6819534,"id":86148054,"diff_hunk":"@@ -0,0 +1,67 @@\n+import Ember from 'ember';\n+\n+const { Controller } = Ember;","path":"app/controllers/project/settings/donations.js","position":3,"original_position":3,"commit_id":"8022c450a4a8483b86ecbd5f61161c1b500c2b71","original_commit_id":"8022c450a4a8483b86ecbd5f61161c1b500c2b71","user":{"login":"sbatson5","id":881981,"avatar_url":"https://avatars.githubusercontent.com/u/881981?v=3","gravatar_id":"","url":"https://api.github.com/users/sbatson5","html_url":"https://github.com/sbatson5","followers_url":"https://api.github.com/users/sbatson5/followers","following_url":"https://api.github.com/users/sbatson5/following{/other_user}","gists_url":"https://api.github.com/users/sbatson5/gists{/gist_id}","starred_url":"https://api.github.com/users/sbatson5/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sbatson5/subscriptions","organizations_url":"https://api.github.com/users/sbatson5/orgs","repos_url":"https://api.github.com/users/sbatson5/repos","events_url":"https://api.github.com/users/sbatson5/events{/privacy}","received_events_url":"https://api.github.com/users/sbatson5/received_events","type":"User","site_admin":false},"body":"You should be able to use the `ember-route-action-helper` if you don't want to go through the controller.  Although, I don't see anything wrong with using a controller in this case.","created_at":"2016-11-02T14:07:30Z","updated_at":"2016-11-02T14:07:30Z","html_url":"https://github.com/code-corps/code-corps-ember/pull/634#discussion_r86148054","pull_request_url":"https://api.github.com/repos/code-corps/code-corps-ember/pulls/634","_links":{"self":{"href":"https://api.github.com/repos/code-corps/code-corps-ember/pulls/comments/86148054"},"html":{"href":"https://github.com/code-corps/code-corps-ember/pull/634#discussion_r86148054"},"pull_request":{"href":"https://api.github.com/repos/code-corps/code-corps-ember/pulls/634"}}},"pull_request":{"url":"https://api.github.com/repos/code-corps/code-corps-ember/pulls/634","id":90646601,"html_url":"https://github.com/code-corps/code-corps-ember/pull/634","diff_url":"https://github.com/code-corps/code-corps-ember/pull/634.diff","patch_url":"https://github.com/code-corps/code-corps-ember/pull/634.patch","issue_url":"https://api.github.com/repos/code-corps/code-corps-ember/issues/634","number":634,"state":"open","locked":false,"title":"Add donation goals","user":{"login":"begedin","id":1925540,"avatar_url":"https://avatars.githubusercontent.com/u/1925540?v=3","gravatar_id":"","url":"https://api.github.com/users/begedin","html_url":"https://github.com/begedin","followers_url":"https://api.github.com/users/begedin/followers","following_url":"https://api.github.com/users/begedin/following{/other_user}","gists_url":"https://api.github.com/users/begedin/gists{/gist_id}","starred_url":"https://api.github.com/users/begedin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/begedin/subscriptions","organizations_url":"https://api.github.com/users/begedin/orgs","repos_url":"https://api.github.com/users/begedin/repos","events_url":"https://api.github.com/users/begedin/events{/privacy}","received_events_url":"https://api.github.com/users/begedin/received_events","type":"User","site_admin":false},"body":"# What's in this PR?\r\n## `donation-goal``\r\n\r\nA component for viewing a donation goal. Can send an `edit` action to the parent, indicating that the \"Edit\" link rendered by the component was clicked.\r\n\r\n``` handlebars\r\n{{donation-goal \r\n  donationGoal=donationGoal \r\n  edit=(action externalEditHandler donationGoal)}}\r\n```\r\n## `donation-goal-edit`\r\n\r\nA component for editing a donation goal\r\n\r\nThe component is not added anywhere into the app, but it's well tested with integration tests. I tried to finally use the \"proper\" data-down-actions-up approach here (or I hope I did, someone with more ember knowledge can correct me on it.\r\n\r\nThe component has two actions, `save` and `cancel`. In order to use it correctly, we do the following:\r\n\r\n``` handlebars\r\n{{donation-goal-edit\r\n  isNew=donationGoal.isNew \r\n  amount=donationGoal.amount description=donationGoal.description \r\n  cancel=(action externalCancelHandler)\r\n  save=(action externalSaveHandler donationGoal)}}\r\n```\r\n## `donation-goals`\r\n\r\nA component for displaying a list of donation goals. Each can be edited/cancelled/saved individually\r\n\r\n``` handlebars\r\n{{donation-goals\r\n  donationGoals=donationGoals\r\n  cancel='externalCancelHandler'\r\n  save='externalSaveHandler'}}\r\n```\r\n\r\nThe action handlers will both receive the donation goal which is being saved/cancelled.\r\n## Route behavior\r\n\r\nInitially, all of the project's donation goals are listed. If there are none, a new record is initialized and added to the list. \r\n- Saving a new or existing records commits those changes to the API.\r\n- Cancelling a new record removes that record from the list.\r\n- Cancelling an existing record simply puts it back to display mode.\r\n## TODO\r\n- [x] `donation-goal-edit` component\r\n- [x] `donation-goal` component\r\n- [x] `donation-goals` component\r\n- [x] `donation-goal` route\r\n- [x] UI details (texts, etc.)\r\n- [x] Hide the `edit` link and `add new buttons` for unauthorized users\r\n- [x] add missing route and model unit tests (basic, but did not create them yet).\r\n- [x] rewrite `donation-goal-edit` to bind to the donationGoal, not individual properties. Should then set initial values of individual properties on init. More explicit that way, but easier to use.\r\n* [x] Merge #654 \r\n* [x] Add it to the `donation-goal-edit` component here.\r\n* [x] Update tests\r\n* [x] Add project ability tests\r\n\r\n## References\r\n\r\nProgress on  #470\r\nProgress on: #469 \r\n","created_at":"2016-10-24T16:24:19Z","updated_at":"2016-11-02T14:07:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f2e7fb8d1d3b63a1c85c3360890fe40558340bd3","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/code-corps/code-corps-ember/pulls/634/commits","review_comments_url":"https://api.github.com/repos/code-corps/code-corps-ember/pulls/634/comments","review_comment_url":"https://api.github.com/repos/code-corps/code-corps-ember/pulls/comments{/number}","comments_url":"https://api.github.com/repos/code-corps/code-corps-ember/issues/634/comments","statuses_url":"https://api.github.com/repos/code-corps/code-corps-ember/statuses/8022c450a4a8483b86ecbd5f61161c1b500c2b71","head":{"label":"code-corps:470-add-donation-goal-component","ref":"470-add-donation-goal-component","sha":"8022c450a4a8483b86ecbd5f61161c1b500c2b71","user":{"login":"code-corps","id":12991115,"avatar_url":"https://avatars.githubusercontent.com/u/12991115?v=3","gravatar_id":"","url":"https://api.github.com/users/code-corps","html_url":"https://github.com/code-corps","followers_url":"https://api.github.com/users/code-corps/followers","following_url":"https://api.github.com/users/code-corps/following{/other_user}","gists_url":"https://api.github.com/users/code-corps/gists{/gist_id}","starred_url":"https://api.github.com/users/code-corps/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/code-corps/subscriptions","organizations_url":"https://api.github.com/users/code-corps/orgs","repos_url":"https://api.github.com/users/code-corps/repos","events_url":"https://api.github.com/users/code-corps/events{/privacy}","received_events_url":"https://api.github.com/users/code-corps/received_events","type":"Organization","site_admin":false},"repo":{"id":37887675,"name":"code-corps-ember","full_name":"code-corps/code-corps-ember","owner":{"login":"code-corps","id":12991115,"avatar_url":"https://avatars.githubusercontent.com/u/12991115?v=3","gravatar_id":"","url":"https://api.github.com/users/code-corps","html_url":"https://github.com/code-corps","followers_url":"https://api.github.com/users/code-corps/followers","following_url":"https://api.github.com/users/code-corps/following{/other_user}","gists_url":"https://api.github.com/users/code-corps/gists{/gist_id}","starred_url":"https://api.github.com/users/code-corps/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/code-corps/subscriptions","organizations_url":"https://api.github.com/users/code-corps/orgs","repos_url":"https://api.github.com/users/code-corps/repos","events_url":"https://api.github.com/users/code-corps/events{/privacy}","received_events_url":"https://api.github.com/users/code-corps/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/code-corps/code-corps-ember","description":"Ember web application for Code Corps.","fork":false,"url":"https://api.github.com/repos/code-corps/code-corps-ember","forks_url":"https://api.github.com/repos/code-corps/code-corps-ember/forks","keys_url":"https://api.github.com/repos/code-corps/code-corps-ember/keys{/key_id}","collaborators_url":"https://api.github.com/repos/code-corps/code-corps-ember/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/code-corps/code-corps-ember/teams","hooks_url":"https://api.github.com/repos/code-corps/code-corps-ember/hooks","issue_events_url":"https://api.github.com/repos/code-corps/code-corps-ember/issues/events{/number}","events_url":"https://api.github.com/repos/code-corps/code-corps-ember/events","assignees_url":"https://api.github.com/repos/code-corps/code-corps-ember/assignees{/user}","branches_url":"https://api.github.com/repos/code-corps/code-corps-ember/branches{/branch}","tags_url":"https://api.github.com/repos/code-corps/code-corps-ember/tags","blobs_url":"https://api.github.com/repos/code-corps/code-corps-ember/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/code-corps/code-corps-ember/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/code-corps/code-corps-ember/git/refs{/sha}","trees_url":"https://api.github.com/repos/code-corps/code-corps-ember/git/trees{/sha}","statuses_url":"https://api.github.com/repos/code-corps/code-corps-ember/statuses/{sha}","languages_url":"https://api.github.com/repos/code-corps/code-corps-ember/languages","stargazers_url":"https://api.github.com/repos/code-corps/code-corps-ember/stargazers","contributors_url":"https://api.github.com/repos/code-corps/code-corps-ember/contributors","subscribers_url":"https://api.github.com/repos/code-corps/code-corps-ember/subscribers","subscription_url":"https://api.github.com/repos/code-corps/code-corps-ember/subscription","commits_url":"https://api.github.com/repos/code-corps/code-corps-ember/commits{/sha}","git_commits_url":"https://api.github.com/repos/code-corps/code-corps-ember/git/commits{/sha}","comments_url":"https://api.github.com/repos/code-corps/code-corps-ember/comments{/number}","issue_comment_url":"https://api.github.com/repos/code-corps/code-corps-ember/issues/comments{/number}","contents_url":"https://api.github.com/repos/code-corps/code-corps-ember/contents/{+path}","compare_url":"https://api.github.com/repos/code-corps/code-corps-ember/compare/{base}...{head}","merges_url":"https://api.github.com/repos/code-corps/code-corps-ember/merges","archive_url":"https://api.github.com/repos/code-corps/code-corps-ember/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/code-corps/code-corps-ember/downloads","issues_url":"https://api.github.com/repos/code-corps/code-corps-ember/issues{/number}","pulls_url":"https://api.github.com/repos/code-corps/code-corps-ember/pulls{/number}","milestones_url":"https://api.github.com/repos/code-corps/code-corps-ember/milestones{/number}","notifications_url":"https://api.github.com/repos/code-corps/code-corps-ember/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/code-corps/code-corps-ember/labels{/name}","releases_url":"https://api.github.com/repos/code-corps/code-corps-ember/releases{/id}","deployments_url":"https://api.github.com/repos/code-corps/code-corps-ember/deployments","created_at":"2015-06-23T00:18:45Z","updated_at":"2016-11-01T17:46:27Z","pushed_at":"2016-11-02T13:55:40Z","git_url":"git://github.com/code-corps/code-corps-ember.git","ssh_url":"git@github.com:code-corps/code-corps-ember.git","clone_url":"https://github.com/code-corps/code-corps-ember.git","svn_url":"https://github.com/code-corps/code-corps-ember","homepage":"https://www.codecorps.org","size":2774,"stargazers_count":60,"watchers_count":60,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":42,"mirror_url":null,"open_issues_count":81,"forks":42,"open_issues":81,"watchers":60,"default_branch":"develop"}},"base":{"label":"code-corps:develop","ref":"develop","sha":"291ab29354e5b68fe8d1ac7079b168acf6db8e11","user":{"login":"code-corps","id":12991115,"avatar_url":"https://avatars.githubusercontent.com/u/12991115?v=3","gravatar_id":"","url":"https://api.github.com/users/code-corps","html_url":"https://github.com/code-corps","followers_url":"https://api.github.com/users/code-corps/followers","following_url":"https://api.github.com/users/code-corps/following{/other_user}","gists_url":"https://api.github.com/users/code-corps/gists{/gist_id}","starred_url":"https://api.github.com/users/code-corps/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/code-corps/subscriptions","organizations_url":"https://api.github.com/users/code-corps/orgs","repos_url":"https://api.github.com/users/code-corps/repos","events_url":"https://api.github.com/users/code-corps/events{/privacy}","received_events_url":"https://api.github.com/users/code-corps/received_events","type":"Organization","site_admin":false},"repo":{"id":37887675,"name":"code-corps-ember","full_name":"code-corps/code-corps-ember","owner":{"login":"code-corps","id":12991115,"avatar_url":"https://avatars.githubusercontent.com/u/12991115?v=3","gravatar_id":"","url":"https://api.github.com/users/code-corps","html_url":"https://github.com/code-corps","followers_url":"https://api.github.com/users/code-corps/followers","following_url":"https://api.github.com/users/code-corps/following{/other_user}","gists_url":"https://api.github.com/users/code-corps/gists{/gist_id}","starred_url":"https://api.github.com/users/code-corps/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/code-corps/subscriptions","organizations_url":"https://api.github.com/users/code-corps/orgs","repos_url":"https://api.github.com/users/code-corps/repos","events_url":"https://api.github.com/users/code-corps/events{/privacy}","received_events_url":"https://api.github.com/users/code-corps/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/code-corps/code-corps-ember","description":"Ember web application for Code Corps.","fork":false,"url":"https://api.github.com/repos/code-corps/code-corps-ember","forks_url":"https://api.github.com/repos/code-corps/code-corps-ember/forks","keys_url":"https://api.github.com/repos/code-corps/code-corps-ember/keys{/key_id}","collaborators_url":"https://api.github.com/repos/code-corps/code-corps-ember/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/code-corps/code-corps-ember/teams","hooks_url":"https://api.github.com/repos/code-corps/code-corps-ember/hooks","issue_events_url":"https://api.github.com/repos/code-corps/code-corps-ember/issues/events{/number}","events_url":"https://api.github.com/repos/code-corps/code-corps-ember/events","assignees_url":"https://api.github.com/repos/code-corps/code-corps-ember/assignees{/user}","branches_url":"https://api.github.com/repos/code-corps/code-corps-ember/branches{/branch}","tags_url":"https://api.github.com/repos/code-corps/code-corps-ember/tags","blobs_url":"https://api.github.com/repos/code-corps/code-corps-ember/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/code-corps/code-corps-ember/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/code-corps/code-corps-ember/git/refs{/sha}","trees_url":"https://api.github.com/repos/code-corps/code-corps-ember/git/trees{/sha}","statuses_url":"https://api.github.com/repos/code-corps/code-corps-ember/statuses/{sha}","languages_url":"https://api.github.com/repos/code-corps/code-corps-ember/languages","stargazers_url":"https://api.github.com/repos/code-corps/code-corps-ember/stargazers","contributors_url":"https://api.github.com/repos/code-corps/code-corps-ember/contributors","subscribers_url":"https://api.github.com/repos/code-corps/code-corps-ember/subscribers","subscription_url":"https://api.github.com/repos/code-corps/code-corps-ember/subscription","commits_url":"https://api.github.com/repos/code-corps/code-corps-ember/commits{/sha}","git_commits_url":"https://api.github.com/repos/code-corps/code-corps-ember/git/commits{/sha}","comments_url":"https://api.github.com/repos/code-corps/code-corps-ember/comments{/number}","issue_comment_url":"https://api.github.com/repos/code-corps/code-corps-ember/issues/comments{/number}","contents_url":"https://api.github.com/repos/code-corps/code-corps-ember/contents/{+path}","compare_url":"https://api.github.com/repos/code-corps/code-corps-ember/compare/{base}...{head}","merges_url":"https://api.github.com/repos/code-corps/code-corps-ember/merges","archive_url":"https://api.github.com/repos/code-corps/code-corps-ember/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/code-corps/code-corps-ember/downloads","issues_url":"https://api.github.com/repos/code-corps/code-corps-ember/issues{/number}","pulls_url":"https://api.github.com/repos/code-corps/code-corps-ember/pulls{/number}","milestones_url":"https://api.github.com/repos/code-corps/code-corps-ember/milestones{/number}","notifications_url":"https://api.github.com/repos/code-corps/code-corps-ember/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/code-corps/code-corps-ember/labels{/name}","releases_url":"https://api.github.com/repos/code-corps/code-corps-ember/releases{/id}","deployments_url":"https://api.github.com/repos/code-corps/code-corps-ember/deployments","created_at":"2015-06-23T00:18:45Z","updated_at":"2016-11-01T17:46:27Z","pushed_at":"2016-11-02T13:55:40Z","git_url":"git://github.com/code-corps/code-corps-ember.git","ssh_url":"git@github.com:code-corps/code-corps-ember.git","clone_url":"https://github.com/code-corps/code-corps-ember.git","svn_url":"https://github.com/code-corps/code-corps-ember","homepage":"https://www.codecorps.org","size":2774,"stargazers_count":60,"watchers_count":60,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":42,"mirror_url":null,"open_issues_count":81,"forks":42,"open_issues":81,"watchers":60,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/code-corps/code-corps-ember/pulls/634"},"html":{"href":"https://github.com/code-corps/code-corps-ember/pull/634"},"issue":{"href":"https://api.github.com/repos/code-corps/code-corps-ember/issues/634"},"comments":{"href":"https://api.github.com/repos/code-corps/code-corps-ember/issues/634/comments"},"review_comments":{"href":"https://api.github.com/repos/code-corps/code-corps-ember/pulls/634/comments"},"review_comment":{"href":"https://api.github.com/repos/code-corps/code-corps-ember/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/code-corps/code-corps-ember/pulls/634/commits"},"statuses":{"href":"https://api.github.com/repos/code-corps/code-corps-ember/statuses/8022c450a4a8483b86ecbd5f61161c1b500c2b71"}}}}
{"actor":{"display_login":"sbatson5"}}