{"action":"closed","number":775,"pull_request":{"url":"https://api.github.com/repos/kbase/narrative/pulls/775","id":87222334,"html_url":"https://github.com/kbase/narrative/pull/775","diff_url":"https://github.com/kbase/narrative/pull/775.diff","patch_url":"https://github.com/kbase/narrative/pull/775.patch","issue_url":"https://api.github.com/repos/kbase/narrative/issues/775","number":775,"state":"closed","locked":false,"title":"First pass at a semi-generic \"Editor\" class of Apps","user":{"login":"briehl","id":2152243,"avatar_url":"https://avatars.githubusercontent.com/u/2152243?v=3","gravatar_id":"","url":"https://api.github.com/users/briehl","html_url":"https://github.com/briehl","followers_url":"https://api.github.com/users/briehl/followers","following_url":"https://api.github.com/users/briehl/following{/other_user}","gists_url":"https://api.github.com/users/briehl/gists{/gist_id}","starred_url":"https://api.github.com/users/briehl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/briehl/subscriptions","organizations_url":"https://api.github.com/users/briehl/orgs","repos_url":"https://api.github.com/users/briehl/repos","events_url":"https://api.github.com/users/briehl/events{/privacy}","received_events_url":"https://api.github.com/users/briehl/received_events","type":"User","site_admin":false},"body":"Notes for whoever takes a look at this later this week:\r\n\r\nThis is really just a first crack at making an Editor Cell. The goal here is to make the entire input area of the App Cell able to be overridden with a widget representing a new, very specific editor. This trades the flexibility of the spec-driven app cell for something with a specific task that's not likely to be included in other apps - in this case, creating or editing a Reads Set object.\r\n\r\nThis PR has the skeleton code for firing up an editor cell and instantiating the editor widget. It does this in two steps:\r\n\r\n1. The kbaseNarrativeWorkspace (around line 478) is currently HARD-CODED to only represent the NarrativeTest/test_editor app as an editor (it sets kbase.type = 'editor' in the metadata... we need a better way to represent that in the app specs - @msneddon ? This instantiates the editorCell notebook extension.\r\n2. The widgets.input field of the spec is set to 'reads_set_editor'. The Configure tab has changed so that instead of creating an appParamsWidget, it creates a editorConfigurationWidget, which has a mapping to its known editors. All this does is plop the editor widget in place and wire it to listen to messages from the controlling cell.\r\n\r\nThat's pretty much it. It's extremely unfinished, but encapsulated enough to start a PR. Here's a checklist of things that need to get done.\r\n- [ ] Find a way to update method specs to label them as editors.\r\n- [ ] Pop the editor type -> editor path mapping into a configuration (in `nbextension/editorCell/widgets/tabs/editorConfigurationWidget.js`)\r\n- [ ] Finish the editor widget itself. I started more or less from scratch with it, but I think (with a little glue), it can make use of a few of the more standard input types. Right now, it just renders a template and binds some events to the input boxes. The widget is in `kbase-extension/static/kbase/js/appWidgets/editors/readsSetWidget.js`\r\n- [ ] Fix results of execution. Right now the code does execute and run as expected, but it breaks the cell in fun and exciting ways. I suspect that's because the bus messaging isn't entirely glued together right. There's so many messages!\r\n\r\nAgain, right now, it uses the same apparatus and header-area look and feel of the App cell. We can explore changing some behavior, though. For example, turn the 'run' button into a 'save' button? Unwire some of the expected long running behavior? Have it call a different backend function that's just for talking to the SetAPI? Ignore the back end all together and invoke the SetAPI from the front? I think I'd recommend against the latter, in favor of consistency with the other cell types.","created_at":"2016-09-28T23:43:30Z","updated_at":"2016-10-04T20:55:32Z","closed_at":"2016-10-04T20:55:32Z","merged_at":"2016-10-04T20:55:32Z","merge_commit_sha":"70b0abe2b98121c6f78e0cfe8b37f66b6614d98a","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/kbase/narrative/pulls/775/commits","review_comments_url":"https://api.github.com/repos/kbase/narrative/pulls/775/comments","review_comment_url":"https://api.github.com/repos/kbase/narrative/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kbase/narrative/issues/775/comments","statuses_url":"https://api.github.com/repos/kbase/narrative/statuses/b3a92db7ec6ecb2b06054a5aa0653b2c3441e14b","head":{"label":"briehl:develop","ref":"develop","sha":"b3a92db7ec6ecb2b06054a5aa0653b2c3441e14b","user":{"login":"briehl","id":2152243,"avatar_url":"https://avatars.githubusercontent.com/u/2152243?v=3","gravatar_id":"","url":"https://api.github.com/users/briehl","html_url":"https://github.com/briehl","followers_url":"https://api.github.com/users/briehl/followers","following_url":"https://api.github.com/users/briehl/following{/other_user}","gists_url":"https://api.github.com/users/briehl/gists{/gist_id}","starred_url":"https://api.github.com/users/briehl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/briehl/subscriptions","organizations_url":"https://api.github.com/users/briehl/orgs","repos_url":"https://api.github.com/users/briehl/repos","events_url":"https://api.github.com/users/briehl/events{/privacy}","received_events_url":"https://api.github.com/users/briehl/received_events","type":"User","site_admin":false},"repo":{"id":22262489,"name":"narrative","full_name":"briehl/narrative","owner":{"login":"briehl","id":2152243,"avatar_url":"https://avatars.githubusercontent.com/u/2152243?v=3","gravatar_id":"","url":"https://api.github.com/users/briehl","html_url":"https://github.com/briehl","followers_url":"https://api.github.com/users/briehl/followers","following_url":"https://api.github.com/users/briehl/following{/other_user}","gists_url":"https://api.github.com/users/briehl/gists{/gist_id}","starred_url":"https://api.github.com/users/briehl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/briehl/subscriptions","organizations_url":"https://api.github.com/users/briehl/orgs","repos_url":"https://api.github.com/users/briehl/repos","events_url":"https://api.github.com/users/briehl/events{/privacy}","received_events_url":"https://api.github.com/users/briehl/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/briehl/narrative","description":null,"fork":true,"url":"https://api.github.com/repos/briehl/narrative","forks_url":"https://api.github.com/repos/briehl/narrative/forks","keys_url":"https://api.github.com/repos/briehl/narrative/keys{/key_id}","collaborators_url":"https://api.github.com/repos/briehl/narrative/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/briehl/narrative/teams","hooks_url":"https://api.github.com/repos/briehl/narrative/hooks","issue_events_url":"https://api.github.com/repos/briehl/narrative/issues/events{/number}","events_url":"https://api.github.com/repos/briehl/narrative/events","assignees_url":"https://api.github.com/repos/briehl/narrative/assignees{/user}","branches_url":"https://api.github.com/repos/briehl/narrative/branches{/branch}","tags_url":"https://api.github.com/repos/briehl/narrative/tags","blobs_url":"https://api.github.com/repos/briehl/narrative/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/briehl/narrative/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/briehl/narrative/git/refs{/sha}","trees_url":"https://api.github.com/repos/briehl/narrative/git/trees{/sha}","statuses_url":"https://api.github.com/repos/briehl/narrative/statuses/{sha}","languages_url":"https://api.github.com/repos/briehl/narrative/languages","stargazers_url":"https://api.github.com/repos/briehl/narrative/stargazers","contributors_url":"https://api.github.com/repos/briehl/narrative/contributors","subscribers_url":"https://api.github.com/repos/briehl/narrative/subscribers","subscription_url":"https://api.github.com/repos/briehl/narrative/subscription","commits_url":"https://api.github.com/repos/briehl/narrative/commits{/sha}","git_commits_url":"https://api.github.com/repos/briehl/narrative/git/commits{/sha}","comments_url":"https://api.github.com/repos/briehl/narrative/comments{/number}","issue_comment_url":"https://api.github.com/repos/briehl/narrative/issues/comments{/number}","contents_url":"https://api.github.com/repos/briehl/narrative/contents/{+path}","compare_url":"https://api.github.com/repos/briehl/narrative/compare/{base}...{head}","merges_url":"https://api.github.com/repos/briehl/narrative/merges","archive_url":"https://api.github.com/repos/briehl/narrative/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/briehl/narrative/downloads","issues_url":"https://api.github.com/repos/briehl/narrative/issues{/number}","pulls_url":"https://api.github.com/repos/briehl/narrative/pulls{/number}","milestones_url":"https://api.github.com/repos/briehl/narrative/milestones{/number}","notifications_url":"https://api.github.com/repos/briehl/narrative/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/briehl/narrative/labels{/name}","releases_url":"https://api.github.com/repos/briehl/narrative/releases{/id}","deployments_url":"https://api.github.com/repos/briehl/narrative/deployments","created_at":"2014-07-25T15:58:23Z","updated_at":"2016-01-27T20:07:08Z","pushed_at":"2016-10-04T18:35:38Z","git_url":"git://github.com/briehl/narrative.git","ssh_url":"git@github.com:briehl/narrative.git","clone_url":"https://github.com/briehl/narrative.git","svn_url":"https://github.com/briehl/narrative","homepage":null,"size":48395,"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":"kbase:develop","ref":"develop","sha":"a14e7196480f6ae1c45e2a84c9d11cdfb6cb5930","user":{"login":"kbase","id":1263946,"avatar_url":"https://avatars.githubusercontent.com/u/1263946?v=3","gravatar_id":"","url":"https://api.github.com/users/kbase","html_url":"https://github.com/kbase","followers_url":"https://api.github.com/users/kbase/followers","following_url":"https://api.github.com/users/kbase/following{/other_user}","gists_url":"https://api.github.com/users/kbase/gists{/gist_id}","starred_url":"https://api.github.com/users/kbase/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kbase/subscriptions","organizations_url":"https://api.github.com/users/kbase/orgs","repos_url":"https://api.github.com/users/kbase/repos","events_url":"https://api.github.com/users/kbase/events{/privacy}","received_events_url":"https://api.github.com/users/kbase/received_events","type":"Organization","site_admin":false},"repo":{"id":20769520,"name":"narrative","full_name":"kbase/narrative","owner":{"login":"kbase","id":1263946,"avatar_url":"https://avatars.githubusercontent.com/u/1263946?v=3","gravatar_id":"","url":"https://api.github.com/users/kbase","html_url":"https://github.com/kbase","followers_url":"https://api.github.com/users/kbase/followers","following_url":"https://api.github.com/users/kbase/following{/other_user}","gists_url":"https://api.github.com/users/kbase/gists{/gist_id}","starred_url":"https://api.github.com/users/kbase/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kbase/subscriptions","organizations_url":"https://api.github.com/users/kbase/orgs","repos_url":"https://api.github.com/users/kbase/repos","events_url":"https://api.github.com/users/kbase/events{/privacy}","received_events_url":"https://api.github.com/users/kbase/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kbase/narrative","description":null,"fork":false,"url":"https://api.github.com/repos/kbase/narrative","forks_url":"https://api.github.com/repos/kbase/narrative/forks","keys_url":"https://api.github.com/repos/kbase/narrative/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kbase/narrative/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kbase/narrative/teams","hooks_url":"https://api.github.com/repos/kbase/narrative/hooks","issue_events_url":"https://api.github.com/repos/kbase/narrative/issues/events{/number}","events_url":"https://api.github.com/repos/kbase/narrative/events","assignees_url":"https://api.github.com/repos/kbase/narrative/assignees{/user}","branches_url":"https://api.github.com/repos/kbase/narrative/branches{/branch}","tags_url":"https://api.github.com/repos/kbase/narrative/tags","blobs_url":"https://api.github.com/repos/kbase/narrative/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kbase/narrative/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kbase/narrative/git/refs{/sha}","trees_url":"https://api.github.com/repos/kbase/narrative/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kbase/narrative/statuses/{sha}","languages_url":"https://api.github.com/repos/kbase/narrative/languages","stargazers_url":"https://api.github.com/repos/kbase/narrative/stargazers","contributors_url":"https://api.github.com/repos/kbase/narrative/contributors","subscribers_url":"https://api.github.com/repos/kbase/narrative/subscribers","subscription_url":"https://api.github.com/repos/kbase/narrative/subscription","commits_url":"https://api.github.com/repos/kbase/narrative/commits{/sha}","git_commits_url":"https://api.github.com/repos/kbase/narrative/git/commits{/sha}","comments_url":"https://api.github.com/repos/kbase/narrative/comments{/number}","issue_comment_url":"https://api.github.com/repos/kbase/narrative/issues/comments{/number}","contents_url":"https://api.github.com/repos/kbase/narrative/contents/{+path}","compare_url":"https://api.github.com/repos/kbase/narrative/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kbase/narrative/merges","archive_url":"https://api.github.com/repos/kbase/narrative/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kbase/narrative/downloads","issues_url":"https://api.github.com/repos/kbase/narrative/issues{/number}","pulls_url":"https://api.github.com/repos/kbase/narrative/pulls{/number}","milestones_url":"https://api.github.com/repos/kbase/narrative/milestones{/number}","notifications_url":"https://api.github.com/repos/kbase/narrative/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kbase/narrative/labels{/name}","releases_url":"https://api.github.com/repos/kbase/narrative/releases{/id}","deployments_url":"https://api.github.com/repos/kbase/narrative/deployments","created_at":"2014-06-12T14:06:05Z","updated_at":"2016-08-09T02:25:40Z","pushed_at":"2016-10-04T20:55:32Z","git_url":"git://github.com/kbase/narrative.git","ssh_url":"git@github.com:kbase/narrative.git","clone_url":"https://github.com/kbase/narrative.git","svn_url":"https://github.com/kbase/narrative","homepage":null,"size":55162,"stargazers_count":8,"watchers_count":8,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":32,"mirror_url":null,"open_issues_count":25,"forks":32,"open_issues":25,"watchers":8,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/kbase/narrative/pulls/775"},"html":{"href":"https://github.com/kbase/narrative/pull/775"},"issue":{"href":"https://api.github.com/repos/kbase/narrative/issues/775"},"comments":{"href":"https://api.github.com/repos/kbase/narrative/issues/775/comments"},"review_comments":{"href":"https://api.github.com/repos/kbase/narrative/pulls/775/comments"},"review_comment":{"href":"https://api.github.com/repos/kbase/narrative/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kbase/narrative/pulls/775/commits"},"statuses":{"href":"https://api.github.com/repos/kbase/narrative/statuses/b3a92db7ec6ecb2b06054a5aa0653b2c3441e14b"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"briehl","id":2152243,"avatar_url":"https://avatars.githubusercontent.com/u/2152243?v=3","gravatar_id":"","url":"https://api.github.com/users/briehl","html_url":"https://github.com/briehl","followers_url":"https://api.github.com/users/briehl/followers","following_url":"https://api.github.com/users/briehl/following{/other_user}","gists_url":"https://api.github.com/users/briehl/gists{/gist_id}","starred_url":"https://api.github.com/users/briehl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/briehl/subscriptions","organizations_url":"https://api.github.com/users/briehl/orgs","repos_url":"https://api.github.com/users/briehl/repos","events_url":"https://api.github.com/users/briehl/events{/privacy}","received_events_url":"https://api.github.com/users/briehl/received_events","type":"User","site_admin":false},"comments":2,"review_comments":2,"commits":4,"additions":7063,"deletions":99,"changed_files":38}}
{"actor":{"display_login":"briehl"}}