{"action":"created","comment":{"url":"https://api.github.com/repos/openshift/origin/pulls/comments/37791450","id":37791450,"diff_hunk":"@@ -0,0 +1,49 @@\n+<div>\n+  <a\n+    name=\"logTop\"\n+    id=\"logTop\"></a>\n+\n+  <div class=\"log-view\">\n+    <div\n+      ng-show=\"logList.length > 40\"\n+      class=\"log-scroll log-scroll-top\"\n+      affix\n+      offset-top=\"285\"\n+      offset-bottom=\"90\">\n+      <a ng-click=\"scrollBottom()\">\n+        Go to end of log\n+      </a>\n+    </div>\n+    <div layout flex column class=\"log-view-output\">\n+      <div class=\"spinner spinner-inverse\" ng-show=\"!ready\"></div>\n+      <div\n+        layout row\n+        class=\"log-line\"\n+        ng-repeat=\"logLine in logList  | filter:logSearch\"\n+        ng-class-odd=\"'odd'\"\n+        ng-class-even=\"'even'\">\n+        <a\n+          name=\"line_{{::$index+1}}\"\n+          id=\"line_{{::$index+1}}\"></a>\n+\n+        <a class=\"log-line-number\"\n+          ng-click=\"scrollTo('line_'+($index+1), $event)\">\n+          <span layout flex main-axis=\"end\">\n+          {{:: $index+1 }}\n+          </span>\n+        </a>\n+        <span flex class=\"log-line-text\">\n+        {{::logLine.text}}\n+        </span>\n+      </div>\n+    </div>","path":"assets/app/views/logs/_log_formatted.html","position":39,"original_position":39,"commit_id":"b45dcd75d0f284032d67d64ba79ae67257e2d0e9","original_commit_id":"b45dcd75d0f284032d67d64ba79ae67257e2d0e9","user":{"login":"benjaminapetersen","id":280512,"avatar_url":"https://avatars.githubusercontent.com/u/280512?v=3","gravatar_id":"","url":"https://api.github.com/users/benjaminapetersen","html_url":"https://github.com/benjaminapetersen","followers_url":"https://api.github.com/users/benjaminapetersen/followers","following_url":"https://api.github.com/users/benjaminapetersen/following{/other_user}","gists_url":"https://api.github.com/users/benjaminapetersen/gists{/gist_id}","starred_url":"https://api.github.com/users/benjaminapetersen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benjaminapetersen/subscriptions","organizations_url":"https://api.github.com/users/benjaminapetersen/orgs","repos_url":"https://api.github.com/users/benjaminapetersen/repos","events_url":"https://api.github.com/users/benjaminapetersen/events{/privacy}","received_events_url":"https://api.github.com/users/benjaminapetersen/received_events","type":"User","site_admin":false},"body":"Here is where the rendering and filtering has the potential to get a little ugly. \r\n\r\nThe current impl works fine for up to 15,000 lines (that I've tested).  There is a delay in render at that point, but we have a loading spinner that makes this clear.  Once rendered with one way binding `{{::var}}` the page does not seem to have issues. Links to top, bottom & individual line #'s work.\r\n\r\n I've got an experimental branch off of this branch where I have tried a couple different angular methods, then a jQuery raw DOM string method and an _.template() method.  There does not seem to be much of a performance improvement, with enough lines each one become sluggish.  \r\n\r\n@jwforres @spadgett @sg00dwin ","created_at":"2015-08-24T19:10:16Z","updated_at":"2015-08-24T19:10:16Z","html_url":"https://github.com/openshift/origin/pull/4322#discussion_r37791450","pull_request_url":"https://api.github.com/repos/openshift/origin/pulls/4322","_links":{"self":{"href":"https://api.github.com/repos/openshift/origin/pulls/comments/37791450"},"html":{"href":"https://github.com/openshift/origin/pull/4322#discussion_r37791450"},"pull_request":{"href":"https://api.github.com/repos/openshift/origin/pulls/4322"}}},"pull_request":{"url":"https://api.github.com/repos/openshift/origin/pulls/4322","id":43082069,"html_url":"https://github.com/openshift/origin/pull/4322","diff_url":"https://github.com/openshift/origin/pull/4322.diff","patch_url":"https://github.com/openshift/origin/pull/4322.patch","issue_url":"https://api.github.com/repos/openshift/origin/issues/4322","number":4322,"state":"open","locked":false,"title":"[WIP] logs in web console","user":{"login":"benjaminapetersen","id":280512,"avatar_url":"https://avatars.githubusercontent.com/u/280512?v=3","gravatar_id":"","url":"https://api.github.com/users/benjaminapetersen","html_url":"https://github.com/benjaminapetersen","followers_url":"https://api.github.com/users/benjaminapetersen/followers","following_url":"https://api.github.com/users/benjaminapetersen/following{/other_user}","gists_url":"https://api.github.com/users/benjaminapetersen/gists{/gist_id}","starred_url":"https://api.github.com/users/benjaminapetersen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benjaminapetersen/subscriptions","organizations_url":"https://api.github.com/users/benjaminapetersen/orgs","repos_url":"https://api.github.com/users/benjaminapetersen/repos","events_url":"https://api.github.com/users/benjaminapetersen/events{/privacy}","received_events_url":"https://api.github.com/users/benjaminapetersen/received_events","type":"User","site_admin":false},"body":"This is a work in progress, but I want to get it out here just in case I end up being out the next couple of weeks.  \r\n\r\n@jwforres @spadgett @sg00dwin feel free to comment, thanks!","created_at":"2015-08-21T21:17:53Z","updated_at":"2015-08-24T19:10:16Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/openshift/origin/pulls/4322/commits","review_comments_url":"https://api.github.com/repos/openshift/origin/pulls/4322/comments","review_comment_url":"https://api.github.com/repos/openshift/origin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/openshift/origin/issues/4322/comments","statuses_url":"https://api.github.com/repos/openshift/origin/statuses/b45dcd75d0f284032d67d64ba79ae67257e2d0e9","head":{"label":"benjaminapetersen:bpeterse/console-logs","ref":"bpeterse/console-logs","sha":"b45dcd75d0f284032d67d64ba79ae67257e2d0e9","user":{"login":"benjaminapetersen","id":280512,"avatar_url":"https://avatars.githubusercontent.com/u/280512?v=3","gravatar_id":"","url":"https://api.github.com/users/benjaminapetersen","html_url":"https://github.com/benjaminapetersen","followers_url":"https://api.github.com/users/benjaminapetersen/followers","following_url":"https://api.github.com/users/benjaminapetersen/following{/other_user}","gists_url":"https://api.github.com/users/benjaminapetersen/gists{/gist_id}","starred_url":"https://api.github.com/users/benjaminapetersen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benjaminapetersen/subscriptions","organizations_url":"https://api.github.com/users/benjaminapetersen/orgs","repos_url":"https://api.github.com/users/benjaminapetersen/repos","events_url":"https://api.github.com/users/benjaminapetersen/events{/privacy}","received_events_url":"https://api.github.com/users/benjaminapetersen/received_events","type":"User","site_admin":false},"repo":{"id":37674696,"name":"origin","full_name":"benjaminapetersen/origin","owner":{"login":"benjaminapetersen","id":280512,"avatar_url":"https://avatars.githubusercontent.com/u/280512?v=3","gravatar_id":"","url":"https://api.github.com/users/benjaminapetersen","html_url":"https://github.com/benjaminapetersen","followers_url":"https://api.github.com/users/benjaminapetersen/followers","following_url":"https://api.github.com/users/benjaminapetersen/following{/other_user}","gists_url":"https://api.github.com/users/benjaminapetersen/gists{/gist_id}","starred_url":"https://api.github.com/users/benjaminapetersen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benjaminapetersen/subscriptions","organizations_url":"https://api.github.com/users/benjaminapetersen/orgs","repos_url":"https://api.github.com/users/benjaminapetersen/repos","events_url":"https://api.github.com/users/benjaminapetersen/events{/privacy}","received_events_url":"https://api.github.com/users/benjaminapetersen/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/benjaminapetersen/origin","description":"OpenShift 3 - build, deploy, and manage your applications with Docker and Kubernetes","fork":true,"url":"https://api.github.com/repos/benjaminapetersen/origin","forks_url":"https://api.github.com/repos/benjaminapetersen/origin/forks","keys_url":"https://api.github.com/repos/benjaminapetersen/origin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/benjaminapetersen/origin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/benjaminapetersen/origin/teams","hooks_url":"https://api.github.com/repos/benjaminapetersen/origin/hooks","issue_events_url":"https://api.github.com/repos/benjaminapetersen/origin/issues/events{/number}","events_url":"https://api.github.com/repos/benjaminapetersen/origin/events","assignees_url":"https://api.github.com/repos/benjaminapetersen/origin/assignees{/user}","branches_url":"https://api.github.com/repos/benjaminapetersen/origin/branches{/branch}","tags_url":"https://api.github.com/repos/benjaminapetersen/origin/tags","blobs_url":"https://api.github.com/repos/benjaminapetersen/origin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/benjaminapetersen/origin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/benjaminapetersen/origin/git/refs{/sha}","trees_url":"https://api.github.com/repos/benjaminapetersen/origin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/benjaminapetersen/origin/statuses/{sha}","languages_url":"https://api.github.com/repos/benjaminapetersen/origin/languages","stargazers_url":"https://api.github.com/repos/benjaminapetersen/origin/stargazers","contributors_url":"https://api.github.com/repos/benjaminapetersen/origin/contributors","subscribers_url":"https://api.github.com/repos/benjaminapetersen/origin/subscribers","subscription_url":"https://api.github.com/repos/benjaminapetersen/origin/subscription","commits_url":"https://api.github.com/repos/benjaminapetersen/origin/commits{/sha}","git_commits_url":"https://api.github.com/repos/benjaminapetersen/origin/git/commits{/sha}","comments_url":"https://api.github.com/repos/benjaminapetersen/origin/comments{/number}","issue_comment_url":"https://api.github.com/repos/benjaminapetersen/origin/issues/comments{/number}","contents_url":"https://api.github.com/repos/benjaminapetersen/origin/contents/{+path}","compare_url":"https://api.github.com/repos/benjaminapetersen/origin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/benjaminapetersen/origin/merges","archive_url":"https://api.github.com/repos/benjaminapetersen/origin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/benjaminapetersen/origin/downloads","issues_url":"https://api.github.com/repos/benjaminapetersen/origin/issues{/number}","pulls_url":"https://api.github.com/repos/benjaminapetersen/origin/pulls{/number}","milestones_url":"https://api.github.com/repos/benjaminapetersen/origin/milestones{/number}","notifications_url":"https://api.github.com/repos/benjaminapetersen/origin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/benjaminapetersen/origin/labels{/name}","releases_url":"https://api.github.com/repos/benjaminapetersen/origin/releases{/id}","created_at":"2015-06-18T17:38:49Z","updated_at":"2015-06-18T17:38:52Z","pushed_at":"2015-08-21T21:15:44Z","git_url":"git://github.com/benjaminapetersen/origin.git","ssh_url":"git@github.com:benjaminapetersen/origin.git","clone_url":"https://github.com/benjaminapetersen/origin.git","svn_url":"https://github.com/benjaminapetersen/origin","homepage":"http://www.openshift.org","size":132446,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"openshift:master","ref":"master","sha":"44fc10586a52a65bc0365fef1f62b3965e2cc200","user":{"login":"openshift","id":792337,"avatar_url":"https://avatars.githubusercontent.com/u/792337?v=3","gravatar_id":"","url":"https://api.github.com/users/openshift","html_url":"https://github.com/openshift","followers_url":"https://api.github.com/users/openshift/followers","following_url":"https://api.github.com/users/openshift/following{/other_user}","gists_url":"https://api.github.com/users/openshift/gists{/gist_id}","starred_url":"https://api.github.com/users/openshift/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openshift/subscriptions","organizations_url":"https://api.github.com/users/openshift/orgs","repos_url":"https://api.github.com/users/openshift/repos","events_url":"https://api.github.com/users/openshift/events{/privacy}","received_events_url":"https://api.github.com/users/openshift/received_events","type":"Organization","site_admin":false},"repo":{"id":22442668,"name":"origin","full_name":"openshift/origin","owner":{"login":"openshift","id":792337,"avatar_url":"https://avatars.githubusercontent.com/u/792337?v=3","gravatar_id":"","url":"https://api.github.com/users/openshift","html_url":"https://github.com/openshift","followers_url":"https://api.github.com/users/openshift/followers","following_url":"https://api.github.com/users/openshift/following{/other_user}","gists_url":"https://api.github.com/users/openshift/gists{/gist_id}","starred_url":"https://api.github.com/users/openshift/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openshift/subscriptions","organizations_url":"https://api.github.com/users/openshift/orgs","repos_url":"https://api.github.com/users/openshift/repos","events_url":"https://api.github.com/users/openshift/events{/privacy}","received_events_url":"https://api.github.com/users/openshift/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/openshift/origin","description":"OpenShift 3 - build, deploy, and manage your applications with Docker and Kubernetes","fork":false,"url":"https://api.github.com/repos/openshift/origin","forks_url":"https://api.github.com/repos/openshift/origin/forks","keys_url":"https://api.github.com/repos/openshift/origin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/openshift/origin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/openshift/origin/teams","hooks_url":"https://api.github.com/repos/openshift/origin/hooks","issue_events_url":"https://api.github.com/repos/openshift/origin/issues/events{/number}","events_url":"https://api.github.com/repos/openshift/origin/events","assignees_url":"https://api.github.com/repos/openshift/origin/assignees{/user}","branches_url":"https://api.github.com/repos/openshift/origin/branches{/branch}","tags_url":"https://api.github.com/repos/openshift/origin/tags","blobs_url":"https://api.github.com/repos/openshift/origin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/openshift/origin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/openshift/origin/git/refs{/sha}","trees_url":"https://api.github.com/repos/openshift/origin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/openshift/origin/statuses/{sha}","languages_url":"https://api.github.com/repos/openshift/origin/languages","stargazers_url":"https://api.github.com/repos/openshift/origin/stargazers","contributors_url":"https://api.github.com/repos/openshift/origin/contributors","subscribers_url":"https://api.github.com/repos/openshift/origin/subscribers","subscription_url":"https://api.github.com/repos/openshift/origin/subscription","commits_url":"https://api.github.com/repos/openshift/origin/commits{/sha}","git_commits_url":"https://api.github.com/repos/openshift/origin/git/commits{/sha}","comments_url":"https://api.github.com/repos/openshift/origin/comments{/number}","issue_comment_url":"https://api.github.com/repos/openshift/origin/issues/comments{/number}","contents_url":"https://api.github.com/repos/openshift/origin/contents/{+path}","compare_url":"https://api.github.com/repos/openshift/origin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/openshift/origin/merges","archive_url":"https://api.github.com/repos/openshift/origin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/openshift/origin/downloads","issues_url":"https://api.github.com/repos/openshift/origin/issues{/number}","pulls_url":"https://api.github.com/repos/openshift/origin/pulls{/number}","milestones_url":"https://api.github.com/repos/openshift/origin/milestones{/number}","notifications_url":"https://api.github.com/repos/openshift/origin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/openshift/origin/labels{/name}","releases_url":"https://api.github.com/repos/openshift/origin/releases{/id}","created_at":"2014-07-30T20:04:05Z","updated_at":"2015-08-24T18:03:27Z","pushed_at":"2015-08-24T19:01:55Z","git_url":"git://github.com/openshift/origin.git","ssh_url":"git@github.com:openshift/origin.git","clone_url":"https://github.com/openshift/origin.git","svn_url":"https://github.com/openshift/origin","homepage":"http://www.openshift.org","size":214523,"stargazers_count":640,"watchers_count":640,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":362,"mirror_url":null,"open_issues_count":549,"forks":362,"open_issues":549,"watchers":640,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/openshift/origin/pulls/4322"},"html":{"href":"https://github.com/openshift/origin/pull/4322"},"issue":{"href":"https://api.github.com/repos/openshift/origin/issues/4322"},"comments":{"href":"https://api.github.com/repos/openshift/origin/issues/4322/comments"},"review_comments":{"href":"https://api.github.com/repos/openshift/origin/pulls/4322/comments"},"review_comment":{"href":"https://api.github.com/repos/openshift/origin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/openshift/origin/pulls/4322/commits"},"statuses":{"href":"https://api.github.com/repos/openshift/origin/statuses/b45dcd75d0f284032d67d64ba79ae67257e2d0e9"}}}}