{"action":"created","comment":{"url":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/comments/24826703","id":24826703,"diff_hunk":"@@ -24,9 +24,14 @@ script(id='templates/habitrpg-tasks.html', type=\"text/ng-template\")\n \n           // Add New\n           form.task-add(name='new{{list.type}}form', ng-hide='obj._locked', ng-submit='addTask(obj[list.type+\"s\"],list)')\n-            input(type='text', ng-model='list.newTask', placeholder='{{list.placeHolder}}', required)\n+            textarea(rows='6', ng-model='list.newTask', placeholder='{{list.placeHolderBulk}}', ng-if='list.bulk', required)\n+            input(type='text', ng-model='list.newTask', placeholder='{{list.placeHolder}}', ng-if='!list.bulk', required)\n             button(type='submit', ng-disabled='new{{list.type}}form.$invalid')\n               span.glyphicon.glyphicon-plus\n+            span.help-block","path":"website/views/shared/tasks/lists.jade","position":9,"original_position":9,"commit_id":"2de3a5dd552976b578dd5aba487a57a6161f5b7d","original_commit_id":"2de3a5dd552976b578dd5aba487a57a6161f5b7d","user":{"login":"crookedneighbor","id":2916945,"avatar_url":"https://avatars.githubusercontent.com/u/2916945?v=3","gravatar_id":"","url":"https://api.github.com/users/crookedneighbor","html_url":"https://github.com/crookedneighbor","followers_url":"https://api.github.com/users/crookedneighbor/followers","following_url":"https://api.github.com/users/crookedneighbor/following{/other_user}","gists_url":"https://api.github.com/users/crookedneighbor/gists{/gist_id}","starred_url":"https://api.github.com/users/crookedneighbor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crookedneighbor/subscriptions","organizations_url":"https://api.github.com/users/crookedneighbor/orgs","repos_url":"https://api.github.com/users/crookedneighbor/repos","events_url":"https://api.github.com/users/crookedneighbor/events{/privacy}","received_events_url":"https://api.github.com/users/crookedneighbor/received_events","type":"User","site_admin":false},"body":"Two things here:\r\n1) Does this need its own `.help-block` class? Couldn't the whole thing be expressed like this:\r\n``` jade\r\n            small.btn-link.pull-right(ng-click='toggleBulk(list)')\r\n              span.add-multiple(ng-if='!list.bulk') Add Multiple\r\n              span.add-single(ng-if='list.bulk') Add Single\r\n```\r\n\r\n2) Let's make \"Add Multiple\" and \"Add Single\" translatable, so add strings to the locales files like you did for the export strings.","created_at":"2015-02-17T16:08:26Z","updated_at":"2015-02-17T16:08:26Z","html_url":"https://github.com/HabitRPG/habitrpg/pull/4699#discussion_r24826703","pull_request_url":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/4699","_links":{"self":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/comments/24826703"},"html":{"href":"https://github.com/HabitRPG/habitrpg/pull/4699#discussion_r24826703"},"pull_request":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/4699"}}},"pull_request":{"url":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/4699","id":29420993,"html_url":"https://github.com/HabitRPG/habitrpg/pull/4699","diff_url":"https://github.com/HabitRPG/habitrpg/pull/4699.diff","patch_url":"https://github.com/HabitRPG/habitrpg/pull/4699.patch","issue_url":"https://api.github.com/repos/HabitRPG/habitrpg/issues/4699","number":4699,"state":"open","locked":false,"title":"Bulk add tasks (first version; seeking review & feedback)","user":{"login":"chimericdream","id":198075,"avatar_url":"https://avatars.githubusercontent.com/u/198075?v=3","gravatar_id":"","url":"https://api.github.com/users/chimericdream","html_url":"https://github.com/chimericdream","followers_url":"https://api.github.com/users/chimericdream/followers","following_url":"https://api.github.com/users/chimericdream/following{/other_user}","gists_url":"https://api.github.com/users/chimericdream/gists{/gist_id}","starred_url":"https://api.github.com/users/chimericdream/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chimericdream/subscriptions","organizations_url":"https://api.github.com/users/chimericdream/orgs","repos_url":"https://api.github.com/users/chimericdream/repos","events_url":"https://api.github.com/users/chimericdream/events{/privacy}","received_events_url":"https://api.github.com/users/chimericdream/received_events","type":"User","site_admin":false},"body":"This is not quite ready for merging, but I would like to get other people's feedback on the basic functionality so far. I have a working basic implementation of bulk adding tasks to a given column. You can toggle between single and bulk-add mode, and internally the bulk add uses the same functions as the single.\r\n\r\nToggle link\r\n\r\n![untitled](https://cloud.githubusercontent.com/assets/198075/6224238/8fe8625e-b63e-11e4-890e-ab9848672fbd.png)\r\n\r\nExpanded text area (_Note:_ the red border is related to the box being \"invalid\" and the browser is adding this... I think. I plan to remove it before the final version.)\r\n\r\n![untitled2](https://cloud.githubusercontent.com/assets/198075/6224239/8fea178e-b63e-11e4-8969-25ec69eacffc.png)\r\n\r\nEntering several tasks on separate lines.\r\n\r\n![untitled3](https://cloud.githubusercontent.com/assets/198075/6224236/8fe6f50e-b63e-11e4-8519-96a3363112ab.png)\r\n\r\nVoila!\r\n\r\n![untitled4](https://cloud.githubusercontent.com/assets/198075/6224237/8fe72fec-b63e-11e4-800d-1ed279ab9ace.png)\r\n\r\nI also added more options to the data export section in preparation for being able to import JSON files containing tasks/habits/etc along with metadata such as tags, due dates, priority, and more.\r\n\r\nNew export options\r\n\r\n![untitled5](https://cloud.githubusercontent.com/assets/198075/6224235/8fe6e686-b63e-11e4-843a-45891c82c4a0.png)\r\n\r\nLet me know what you think and what improvements might be beneficial.\r\n\r\nThanks.","created_at":"2015-02-17T06:33:17Z","updated_at":"2015-02-17T16:08:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ec95f4fd407220309e8064713d0ca53ea9483b47","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/4699/commits","review_comments_url":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/4699/comments","review_comment_url":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/comments/{number}","comments_url":"https://api.github.com/repos/HabitRPG/habitrpg/issues/4699/comments","statuses_url":"https://api.github.com/repos/HabitRPG/habitrpg/statuses/2de3a5dd552976b578dd5aba487a57a6161f5b7d","head":{"label":"chimericdream:bulk-add-tasks","ref":"bulk-add-tasks","sha":"2de3a5dd552976b578dd5aba487a57a6161f5b7d","user":{"login":"chimericdream","id":198075,"avatar_url":"https://avatars.githubusercontent.com/u/198075?v=3","gravatar_id":"","url":"https://api.github.com/users/chimericdream","html_url":"https://github.com/chimericdream","followers_url":"https://api.github.com/users/chimericdream/followers","following_url":"https://api.github.com/users/chimericdream/following{/other_user}","gists_url":"https://api.github.com/users/chimericdream/gists{/gist_id}","starred_url":"https://api.github.com/users/chimericdream/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chimericdream/subscriptions","organizations_url":"https://api.github.com/users/chimericdream/orgs","repos_url":"https://api.github.com/users/chimericdream/repos","events_url":"https://api.github.com/users/chimericdream/events{/privacy}","received_events_url":"https://api.github.com/users/chimericdream/received_events","type":"User","site_admin":false},"repo":{"id":30887412,"name":"habitrpg","full_name":"chimericdream/habitrpg","owner":{"login":"chimericdream","id":198075,"avatar_url":"https://avatars.githubusercontent.com/u/198075?v=3","gravatar_id":"","url":"https://api.github.com/users/chimericdream","html_url":"https://github.com/chimericdream","followers_url":"https://api.github.com/users/chimericdream/followers","following_url":"https://api.github.com/users/chimericdream/following{/other_user}","gists_url":"https://api.github.com/users/chimericdream/gists{/gist_id}","starred_url":"https://api.github.com/users/chimericdream/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chimericdream/subscriptions","organizations_url":"https://api.github.com/users/chimericdream/orgs","repos_url":"https://api.github.com/users/chimericdream/repos","events_url":"https://api.github.com/users/chimericdream/events{/privacy}","received_events_url":"https://api.github.com/users/chimericdream/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/chimericdream/habitrpg","description":"A habit tracker app which treats your goals like a Role Playing Game.","fork":true,"url":"https://api.github.com/repos/chimericdream/habitrpg","forks_url":"https://api.github.com/repos/chimericdream/habitrpg/forks","keys_url":"https://api.github.com/repos/chimericdream/habitrpg/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chimericdream/habitrpg/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chimericdream/habitrpg/teams","hooks_url":"https://api.github.com/repos/chimericdream/habitrpg/hooks","issue_events_url":"https://api.github.com/repos/chimericdream/habitrpg/issues/events{/number}","events_url":"https://api.github.com/repos/chimericdream/habitrpg/events","assignees_url":"https://api.github.com/repos/chimericdream/habitrpg/assignees{/user}","branches_url":"https://api.github.com/repos/chimericdream/habitrpg/branches{/branch}","tags_url":"https://api.github.com/repos/chimericdream/habitrpg/tags","blobs_url":"https://api.github.com/repos/chimericdream/habitrpg/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chimericdream/habitrpg/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chimericdream/habitrpg/git/refs{/sha}","trees_url":"https://api.github.com/repos/chimericdream/habitrpg/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chimericdream/habitrpg/statuses/{sha}","languages_url":"https://api.github.com/repos/chimericdream/habitrpg/languages","stargazers_url":"https://api.github.com/repos/chimericdream/habitrpg/stargazers","contributors_url":"https://api.github.com/repos/chimericdream/habitrpg/contributors","subscribers_url":"https://api.github.com/repos/chimericdream/habitrpg/subscribers","subscription_url":"https://api.github.com/repos/chimericdream/habitrpg/subscription","commits_url":"https://api.github.com/repos/chimericdream/habitrpg/commits{/sha}","git_commits_url":"https://api.github.com/repos/chimericdream/habitrpg/git/commits{/sha}","comments_url":"https://api.github.com/repos/chimericdream/habitrpg/comments{/number}","issue_comment_url":"https://api.github.com/repos/chimericdream/habitrpg/issues/comments/{number}","contents_url":"https://api.github.com/repos/chimericdream/habitrpg/contents/{+path}","compare_url":"https://api.github.com/repos/chimericdream/habitrpg/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chimericdream/habitrpg/merges","archive_url":"https://api.github.com/repos/chimericdream/habitrpg/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chimericdream/habitrpg/downloads","issues_url":"https://api.github.com/repos/chimericdream/habitrpg/issues{/number}","pulls_url":"https://api.github.com/repos/chimericdream/habitrpg/pulls{/number}","milestones_url":"https://api.github.com/repos/chimericdream/habitrpg/milestones{/number}","notifications_url":"https://api.github.com/repos/chimericdream/habitrpg/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chimericdream/habitrpg/labels{/name}","releases_url":"https://api.github.com/repos/chimericdream/habitrpg/releases{/id}","created_at":"2015-02-16T20:44:48Z","updated_at":"2015-02-16T20:44:54Z","pushed_at":"2015-02-17T06:24:04Z","git_url":"git://github.com/chimericdream/habitrpg.git","ssh_url":"git@github.com:chimericdream/habitrpg.git","clone_url":"https://github.com/chimericdream/habitrpg.git","svn_url":"https://github.com/chimericdream/habitrpg","homepage":"habitrpg.com","size":161371,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"HabitRPG:develop","ref":"develop","sha":"a2772e843caf2992bfe56cec2a5ab880a1029416","user":{"login":"HabitRPG","id":3834775,"avatar_url":"https://avatars.githubusercontent.com/u/3834775?v=3","gravatar_id":"","url":"https://api.github.com/users/HabitRPG","html_url":"https://github.com/HabitRPG","followers_url":"https://api.github.com/users/HabitRPG/followers","following_url":"https://api.github.com/users/HabitRPG/following{/other_user}","gists_url":"https://api.github.com/users/HabitRPG/gists{/gist_id}","starred_url":"https://api.github.com/users/HabitRPG/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HabitRPG/subscriptions","organizations_url":"https://api.github.com/users/HabitRPG/orgs","repos_url":"https://api.github.com/users/HabitRPG/repos","events_url":"https://api.github.com/users/HabitRPG/events{/privacy}","received_events_url":"https://api.github.com/users/HabitRPG/received_events","type":"Organization","site_admin":false},"repo":{"id":4578898,"name":"habitrpg","full_name":"HabitRPG/habitrpg","owner":{"login":"HabitRPG","id":3834775,"avatar_url":"https://avatars.githubusercontent.com/u/3834775?v=3","gravatar_id":"","url":"https://api.github.com/users/HabitRPG","html_url":"https://github.com/HabitRPG","followers_url":"https://api.github.com/users/HabitRPG/followers","following_url":"https://api.github.com/users/HabitRPG/following{/other_user}","gists_url":"https://api.github.com/users/HabitRPG/gists{/gist_id}","starred_url":"https://api.github.com/users/HabitRPG/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HabitRPG/subscriptions","organizations_url":"https://api.github.com/users/HabitRPG/orgs","repos_url":"https://api.github.com/users/HabitRPG/repos","events_url":"https://api.github.com/users/HabitRPG/events{/privacy}","received_events_url":"https://api.github.com/users/HabitRPG/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/HabitRPG/habitrpg","description":"A habit tracker app which treats your goals like a Role Playing Game.","fork":false,"url":"https://api.github.com/repos/HabitRPG/habitrpg","forks_url":"https://api.github.com/repos/HabitRPG/habitrpg/forks","keys_url":"https://api.github.com/repos/HabitRPG/habitrpg/keys{/key_id}","collaborators_url":"https://api.github.com/repos/HabitRPG/habitrpg/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/HabitRPG/habitrpg/teams","hooks_url":"https://api.github.com/repos/HabitRPG/habitrpg/hooks","issue_events_url":"https://api.github.com/repos/HabitRPG/habitrpg/issues/events{/number}","events_url":"https://api.github.com/repos/HabitRPG/habitrpg/events","assignees_url":"https://api.github.com/repos/HabitRPG/habitrpg/assignees{/user}","branches_url":"https://api.github.com/repos/HabitRPG/habitrpg/branches{/branch}","tags_url":"https://api.github.com/repos/HabitRPG/habitrpg/tags","blobs_url":"https://api.github.com/repos/HabitRPG/habitrpg/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/HabitRPG/habitrpg/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/HabitRPG/habitrpg/git/refs{/sha}","trees_url":"https://api.github.com/repos/HabitRPG/habitrpg/git/trees{/sha}","statuses_url":"https://api.github.com/repos/HabitRPG/habitrpg/statuses/{sha}","languages_url":"https://api.github.com/repos/HabitRPG/habitrpg/languages","stargazers_url":"https://api.github.com/repos/HabitRPG/habitrpg/stargazers","contributors_url":"https://api.github.com/repos/HabitRPG/habitrpg/contributors","subscribers_url":"https://api.github.com/repos/HabitRPG/habitrpg/subscribers","subscription_url":"https://api.github.com/repos/HabitRPG/habitrpg/subscription","commits_url":"https://api.github.com/repos/HabitRPG/habitrpg/commits{/sha}","git_commits_url":"https://api.github.com/repos/HabitRPG/habitrpg/git/commits{/sha}","comments_url":"https://api.github.com/repos/HabitRPG/habitrpg/comments{/number}","issue_comment_url":"https://api.github.com/repos/HabitRPG/habitrpg/issues/comments/{number}","contents_url":"https://api.github.com/repos/HabitRPG/habitrpg/contents/{+path}","compare_url":"https://api.github.com/repos/HabitRPG/habitrpg/compare/{base}...{head}","merges_url":"https://api.github.com/repos/HabitRPG/habitrpg/merges","archive_url":"https://api.github.com/repos/HabitRPG/habitrpg/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/HabitRPG/habitrpg/downloads","issues_url":"https://api.github.com/repos/HabitRPG/habitrpg/issues{/number}","pulls_url":"https://api.github.com/repos/HabitRPG/habitrpg/pulls{/number}","milestones_url":"https://api.github.com/repos/HabitRPG/habitrpg/milestones{/number}","notifications_url":"https://api.github.com/repos/HabitRPG/habitrpg/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/HabitRPG/habitrpg/labels{/name}","releases_url":"https://api.github.com/repos/HabitRPG/habitrpg/releases{/id}","created_at":"2012-06-06T22:49:48Z","updated_at":"2015-02-17T14:43:20Z","pushed_at":"2015-02-17T14:43:20Z","git_url":"git://github.com/HabitRPG/habitrpg.git","ssh_url":"git@github.com:HabitRPG/habitrpg.git","clone_url":"https://github.com/HabitRPG/habitrpg.git","svn_url":"https://github.com/HabitRPG/habitrpg","homepage":"habitrpg.com","size":161371,"stargazers_count":2486,"watchers_count":2486,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":950,"mirror_url":null,"open_issues_count":631,"forks":950,"open_issues":631,"watchers":2486,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/4699"},"html":{"href":"https://github.com/HabitRPG/habitrpg/pull/4699"},"issue":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/issues/4699"},"comments":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/issues/4699/comments"},"review_comments":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/4699/comments"},"review_comment":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/4699/commits"},"statuses":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/statuses/2de3a5dd552976b578dd5aba487a57a6161f5b7d"}}}}