{"action":"opened","number":3,"pull_request":{"url":"https://api.github.com/repos/DataConservancy/osf.io/pulls/3","id":78342968,"html_url":"https://github.com/DataConservancy/osf.io/pull/3","diff_url":"https://github.com/DataConservancy/osf.io/pull/3.diff","patch_url":"https://github.com/DataConservancy/osf.io/pull/3.patch","issue_url":"https://api.github.com/repos/DataConservancy/osf.io/issues/3","number":3,"state":"open","locked":false,"title":"Widget and button","user":{"login":"Trumbore","id":6631710,"avatar_url":"https://avatars.githubusercontent.com/u/6631710?v=3","gravatar_id":"","url":"https://api.github.com/users/Trumbore","html_url":"https://github.com/Trumbore","followers_url":"https://api.github.com/users/Trumbore/followers","following_url":"https://api.github.com/users/Trumbore/following{/other_user}","gists_url":"https://api.github.com/users/Trumbore/gists{/gist_id}","starred_url":"https://api.github.com/users/Trumbore/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Trumbore/subscriptions","organizations_url":"https://api.github.com/users/Trumbore/orgs","repos_url":"https://api.github.com/users/Trumbore/repos","events_url":"https://api.github.com/users/Trumbore/events{/privacy}","received_events_url":"https://api.github.com/users/Trumbore/received_events","type":"User","site_admin":false},"body":"## Purpose\r\n\r\nThis submission adds a \"Create RMap DiSCO\" button to the title bar of the RMap widget\r\nthat was introduced to the OSF web site in the prevous submission.  Clicking the button\r\nraises a modal dialog warning the users of the consequences of this action and asking\r\nthem to confirm the decision.  Confirmation causes a server request to be made that\r\nwill create the DiSCO and displays the resulting graph in the widget.\r\n\r\n## Changes\r\n\r\nThe profile.mako and project.mako files now pass arguments to the widget template\r\nthat indicate whether the current node is for a user, a registration, or a private\r\nproject/component.  The node's unique ID is also determined during the Mako\r\npre-processing and is passed to the widget.\r\n\r\nWhen a DiSCO is to be created, the JavaScript code calls a new local server, run on\r\nport 7000.  This server provides the necessary credentials when calling the RMap\r\nserver to request the DiSCO creation.  That call returns the new DiSCO's ID, which in\r\nturn is returned to JavaScript for use when displaying the graph.  The new server\r\nmust be started along with all the other servers and processes required by the OSF\r\nsite.  On Linux, it is started simply with:\r\n```\r\ncd osf.io/rmap\r\n./rmap_cgi_server.py &\r\n```\r\nIn order for the RMap server to call back to the OSF API server, it was changed to\r\nlisten to requests from all IP addresses.  The OSF web server was changed to listen\r\nto the local IP address 127.0.0.1.  It is likely that these values could be modified\r\nto provide a more secure site.\r\n\r\nThe modal confirmation dialog was derived from similar Bootstrap code found elsewhere\r\nin the OSF site.  To overcome a zooming problem in the widget when it was collapsed\r\nand expanded again, event handlers were added to hide the widget during the animated\r\ncollapse/expand operations.\r\n\r\n## Side effects\r\n\r\nAdditional development would be needed to make this functionality robust enough\r\nfor deployment. In particular, only minimal effort is made to ensure that the call to\r\nthe RMap server succeeds, and no error messages are reported. Numerous issues\r\ncould arise in this area, from the server being down to the OSF server credentials or\r\nauthorization being incorrect, to the OSF server being unreachable from the RMap\r\nserver.\r\n\r\n## Ticket\r\n\r\n[JIRA Ticket DC-2363](https://scm.dataconservancy.org/issues/browse/DC-2363)\r\n","created_at":"2016-07-21T16:02:39Z","updated_at":"2016-07-21T16:02:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/DataConservancy/osf.io/pulls/3/commits","review_comments_url":"https://api.github.com/repos/DataConservancy/osf.io/pulls/3/comments","review_comment_url":"https://api.github.com/repos/DataConservancy/osf.io/pulls/comments{/number}","comments_url":"https://api.github.com/repos/DataConservancy/osf.io/issues/3/comments","statuses_url":"https://api.github.com/repos/DataConservancy/osf.io/statuses/4e4253e693f6a1681e9070466d9b89d1dc9c121a","head":{"label":"Trumbore:widget-and-button","ref":"widget-and-button","sha":"4e4253e693f6a1681e9070466d9b89d1dc9c121a","user":{"login":"Trumbore","id":6631710,"avatar_url":"https://avatars.githubusercontent.com/u/6631710?v=3","gravatar_id":"","url":"https://api.github.com/users/Trumbore","html_url":"https://github.com/Trumbore","followers_url":"https://api.github.com/users/Trumbore/followers","following_url":"https://api.github.com/users/Trumbore/following{/other_user}","gists_url":"https://api.github.com/users/Trumbore/gists{/gist_id}","starred_url":"https://api.github.com/users/Trumbore/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Trumbore/subscriptions","organizations_url":"https://api.github.com/users/Trumbore/orgs","repos_url":"https://api.github.com/users/Trumbore/repos","events_url":"https://api.github.com/users/Trumbore/events{/privacy}","received_events_url":"https://api.github.com/users/Trumbore/received_events","type":"User","site_admin":false},"repo":{"id":61661569,"name":"osf.io","full_name":"Trumbore/osf.io","owner":{"login":"Trumbore","id":6631710,"avatar_url":"https://avatars.githubusercontent.com/u/6631710?v=3","gravatar_id":"","url":"https://api.github.com/users/Trumbore","html_url":"https://github.com/Trumbore","followers_url":"https://api.github.com/users/Trumbore/followers","following_url":"https://api.github.com/users/Trumbore/following{/other_user}","gists_url":"https://api.github.com/users/Trumbore/gists{/gist_id}","starred_url":"https://api.github.com/users/Trumbore/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Trumbore/subscriptions","organizations_url":"https://api.github.com/users/Trumbore/orgs","repos_url":"https://api.github.com/users/Trumbore/repos","events_url":"https://api.github.com/users/Trumbore/events{/privacy}","received_events_url":"https://api.github.com/users/Trumbore/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Trumbore/osf.io","description":"Facilitating Open Science","fork":true,"url":"https://api.github.com/repos/Trumbore/osf.io","forks_url":"https://api.github.com/repos/Trumbore/osf.io/forks","keys_url":"https://api.github.com/repos/Trumbore/osf.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Trumbore/osf.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Trumbore/osf.io/teams","hooks_url":"https://api.github.com/repos/Trumbore/osf.io/hooks","issue_events_url":"https://api.github.com/repos/Trumbore/osf.io/issues/events{/number}","events_url":"https://api.github.com/repos/Trumbore/osf.io/events","assignees_url":"https://api.github.com/repos/Trumbore/osf.io/assignees{/user}","branches_url":"https://api.github.com/repos/Trumbore/osf.io/branches{/branch}","tags_url":"https://api.github.com/repos/Trumbore/osf.io/tags","blobs_url":"https://api.github.com/repos/Trumbore/osf.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Trumbore/osf.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Trumbore/osf.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/Trumbore/osf.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Trumbore/osf.io/statuses/{sha}","languages_url":"https://api.github.com/repos/Trumbore/osf.io/languages","stargazers_url":"https://api.github.com/repos/Trumbore/osf.io/stargazers","contributors_url":"https://api.github.com/repos/Trumbore/osf.io/contributors","subscribers_url":"https://api.github.com/repos/Trumbore/osf.io/subscribers","subscription_url":"https://api.github.com/repos/Trumbore/osf.io/subscription","commits_url":"https://api.github.com/repos/Trumbore/osf.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/Trumbore/osf.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/Trumbore/osf.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/Trumbore/osf.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/Trumbore/osf.io/contents/{+path}","compare_url":"https://api.github.com/repos/Trumbore/osf.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Trumbore/osf.io/merges","archive_url":"https://api.github.com/repos/Trumbore/osf.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Trumbore/osf.io/downloads","issues_url":"https://api.github.com/repos/Trumbore/osf.io/issues{/number}","pulls_url":"https://api.github.com/repos/Trumbore/osf.io/pulls{/number}","milestones_url":"https://api.github.com/repos/Trumbore/osf.io/milestones{/number}","notifications_url":"https://api.github.com/repos/Trumbore/osf.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Trumbore/osf.io/labels{/name}","releases_url":"https://api.github.com/repos/Trumbore/osf.io/releases{/id}","deployments_url":"https://api.github.com/repos/Trumbore/osf.io/deployments","created_at":"2016-06-21T19:34:26Z","updated_at":"2016-06-21T19:34:34Z","pushed_at":"2016-07-18T21:07:37Z","git_url":"git://github.com/Trumbore/osf.io.git","ssh_url":"git@github.com:Trumbore/osf.io.git","clone_url":"https://github.com/Trumbore/osf.io.git","svn_url":"https://github.com/Trumbore/osf.io","homepage":"http://osf.io","size":131023,"stargazers_count":0,"watchers_count":0,"language":"Python","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":"DataConservancy:feature/rmap-widget","ref":"feature/rmap-widget","sha":"0e5f538f580f22d803903f1a1d687272a7f92298","user":{"login":"DataConservancy","id":11050174,"avatar_url":"https://avatars.githubusercontent.com/u/11050174?v=3","gravatar_id":"","url":"https://api.github.com/users/DataConservancy","html_url":"https://github.com/DataConservancy","followers_url":"https://api.github.com/users/DataConservancy/followers","following_url":"https://api.github.com/users/DataConservancy/following{/other_user}","gists_url":"https://api.github.com/users/DataConservancy/gists{/gist_id}","starred_url":"https://api.github.com/users/DataConservancy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DataConservancy/subscriptions","organizations_url":"https://api.github.com/users/DataConservancy/orgs","repos_url":"https://api.github.com/users/DataConservancy/repos","events_url":"https://api.github.com/users/DataConservancy/events{/privacy}","received_events_url":"https://api.github.com/users/DataConservancy/received_events","type":"Organization","site_admin":false},"repo":{"id":59231801,"name":"osf.io","full_name":"DataConservancy/osf.io","owner":{"login":"DataConservancy","id":11050174,"avatar_url":"https://avatars.githubusercontent.com/u/11050174?v=3","gravatar_id":"","url":"https://api.github.com/users/DataConservancy","html_url":"https://github.com/DataConservancy","followers_url":"https://api.github.com/users/DataConservancy/followers","following_url":"https://api.github.com/users/DataConservancy/following{/other_user}","gists_url":"https://api.github.com/users/DataConservancy/gists{/gist_id}","starred_url":"https://api.github.com/users/DataConservancy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DataConservancy/subscriptions","organizations_url":"https://api.github.com/users/DataConservancy/orgs","repos_url":"https://api.github.com/users/DataConservancy/repos","events_url":"https://api.github.com/users/DataConservancy/events{/privacy}","received_events_url":"https://api.github.com/users/DataConservancy/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/DataConservancy/osf.io","description":"Facilitating Open Science","fork":true,"url":"https://api.github.com/repos/DataConservancy/osf.io","forks_url":"https://api.github.com/repos/DataConservancy/osf.io/forks","keys_url":"https://api.github.com/repos/DataConservancy/osf.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DataConservancy/osf.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DataConservancy/osf.io/teams","hooks_url":"https://api.github.com/repos/DataConservancy/osf.io/hooks","issue_events_url":"https://api.github.com/repos/DataConservancy/osf.io/issues/events{/number}","events_url":"https://api.github.com/repos/DataConservancy/osf.io/events","assignees_url":"https://api.github.com/repos/DataConservancy/osf.io/assignees{/user}","branches_url":"https://api.github.com/repos/DataConservancy/osf.io/branches{/branch}","tags_url":"https://api.github.com/repos/DataConservancy/osf.io/tags","blobs_url":"https://api.github.com/repos/DataConservancy/osf.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DataConservancy/osf.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DataConservancy/osf.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/DataConservancy/osf.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DataConservancy/osf.io/statuses/{sha}","languages_url":"https://api.github.com/repos/DataConservancy/osf.io/languages","stargazers_url":"https://api.github.com/repos/DataConservancy/osf.io/stargazers","contributors_url":"https://api.github.com/repos/DataConservancy/osf.io/contributors","subscribers_url":"https://api.github.com/repos/DataConservancy/osf.io/subscribers","subscription_url":"https://api.github.com/repos/DataConservancy/osf.io/subscription","commits_url":"https://api.github.com/repos/DataConservancy/osf.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/DataConservancy/osf.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/DataConservancy/osf.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/DataConservancy/osf.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/DataConservancy/osf.io/contents/{+path}","compare_url":"https://api.github.com/repos/DataConservancy/osf.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DataConservancy/osf.io/merges","archive_url":"https://api.github.com/repos/DataConservancy/osf.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DataConservancy/osf.io/downloads","issues_url":"https://api.github.com/repos/DataConservancy/osf.io/issues{/number}","pulls_url":"https://api.github.com/repos/DataConservancy/osf.io/pulls{/number}","milestones_url":"https://api.github.com/repos/DataConservancy/osf.io/milestones{/number}","notifications_url":"https://api.github.com/repos/DataConservancy/osf.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DataConservancy/osf.io/labels{/name}","releases_url":"https://api.github.com/repos/DataConservancy/osf.io/releases{/id}","deployments_url":"https://api.github.com/repos/DataConservancy/osf.io/deployments","created_at":"2016-05-19T18:29:35Z","updated_at":"2016-05-19T18:29:43Z","pushed_at":"2016-07-21T15:47:36Z","git_url":"git://github.com/DataConservancy/osf.io.git","ssh_url":"git@github.com:DataConservancy/osf.io.git","clone_url":"https://github.com/DataConservancy/osf.io.git","svn_url":"https://github.com/DataConservancy/osf.io","homepage":"http://osf.io","size":130994,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":2,"forks":1,"open_issues":2,"watchers":0,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/DataConservancy/osf.io/pulls/3"},"html":{"href":"https://github.com/DataConservancy/osf.io/pull/3"},"issue":{"href":"https://api.github.com/repos/DataConservancy/osf.io/issues/3"},"comments":{"href":"https://api.github.com/repos/DataConservancy/osf.io/issues/3/comments"},"review_comments":{"href":"https://api.github.com/repos/DataConservancy/osf.io/pulls/3/comments"},"review_comment":{"href":"https://api.github.com/repos/DataConservancy/osf.io/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/DataConservancy/osf.io/pulls/3/commits"},"statuses":{"href":"https://api.github.com/repos/DataConservancy/osf.io/statuses/4e4253e693f6a1681e9070466d9b89d1dc9c121a"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":2,"additions":292,"deletions":20,"changed_files":6}}
{"actor":{"display_login":"Trumbore"}}