{"action":"created","comment":{"url":"https://api.github.com/repos/rackerlabs/encore-ui/pulls/comments/40254760","id":40254760,"diff_hunk":"@@ -4,7 +4,662 @@\n  * @description\n  * # rxApp Component\n  *\n- * [TBD]\n+ * This component is responsible for creating the HTML necessary for a common\n+ * Encore layout. It builds out the main navigation, plus breadcrumbs and page\n+ * titles.\n+ *\n+ * # Usage\n+ *\n+ * For apps that want to use the default Encore navigation, usage is pretty simple.\n+ * In your index.html file, add the `rx-app` directive inside your app:\n+ *\n+ * <pre>\n+ * <body ng-app=\"myApp\">\n+ *     <rx-app>\n+ *         <ng-view></ng-view>\n+ *     </rx-app>\n+ * </body>\n+ * </pre>\n+ *\n+ * By including `ng-view`, your view content will be added inside the directive.\n+ * This makes setting up views for each page much simpler, since you don't have\n+ * to include `rx-app` in each view.\n+ *\n+ * Inside your view, you'll likely want to use `rx-page` to wrap your content.\n+ * See the `rx-page` docs for more information on this.\n+ *\n+ * # rxApp Navigation\n+ *\n+ * By default, the EncoreUI left-hand navigation is loaded at runtime from a\n+ * separate resource. This source can be changed, and there are many options to\n+ * control the navigation from an app level.\n+ *\n+ * ## Accessing route information\n+ *\n+ * Sometimes it's helpful to have the current route information available for\n+ * menu items. For example, re-using the current params for path building.\n+ *\n+ * To help with this, $route is exposed on the scope of all menu items.\n+ * [`$route` provides many details on the current view](http://goo.gl/IsIscD),\n+ * including the ability to access the current controller and scope for the view.\n+ *\n+ * To see this in action, check out the 'childVisibility' property for\n+ * Account-level Tool in `encoreNav`.\n+ *\n+ * ## Accessing properties on $rootScope\n+ *\n+ * If you have a property available on the `$rootScope` of your app that the\n+ * menu data needs to access,\n+ * [you can reference `$rootScope` via `$root`](http://goo.gl/8vHlsN).\n+ * See the demo for an example of this.\n+ *\n+ * ## Dynamically updating the menu\n+ *\n+ * By default, rxApp will create the navigation menu based on the routes defined\n+ * in the 'encoreNav' value. This menu is built using the rxAppRoutes service.\n+ *\n+ * To update a route, use the `setRouteByKey` function on the rxAppRoutes service:\n+ *\n+ * <pre>\n+ * rxAppRoutes.setRouteByKey('myKey', {\n+ *     linkText: 'myUpdatedRoute'\n+ * });\n+ * </pre>\n+ *\n+ * You would normally either set this in your app's `.run` function, or in a\n+ * specific controller.\n+ *\n+ * ## Custom Menus\n+ *\n+ * If you'd like to create an entirely custom menu, you can pass that data in to\n+ * the `rx-app` directive via the `menu` attribute. View the demo for an example\n+ * of this.\n+ *\n+ * # Sub-directives\n+ *\n+ * ## rx-page\n+ *\n+ * You'll likely want to use `rx-page` inside your template view. For example,\n+ * inside a 'myView.html' file:\n+ *\n+ * <pre>\n+ * <rx-page title=\"'Example Page'\">\n+ *    Here is my content\n+ * </rx-page>\n+ * </pre>\n+ *\n+ * `rx-page` is used to create a common wrapper for specific page views. It\n+ * automatically adds the breadcrumbs and page title/subtitle (if specified),\n+ * along with the correct styling.\n+ *\n+ * Both the `title` and `subtitle` attributes accept an Angular expression,\n+ * which can be a string (shown in the previous example) or a scope property.\n+ * This string/property can accept other expressions, enabling you to build custom\n+ * titles. The demo has an example of this usage.\n+ *\n+ * If you wish to use arbitrary HTML in your title, you can use the\n+ * `unsafe-html-title` attribute instead of `title`. This is considered \"unsafe\"\n+ * because it is capable of executing arbitrary Javascript, so you must ensure\n+ * that you trust the source of the title. The \"Customized Page Title\" in the\n+ * demo shows the use of HTML tags.\n+ *\n+ * In either case (`title` or `unsafe-html-title`), the document title\n+ * (i.e. visible in the browser tab) will be set to your chosen title. If you use\n+ * `unsafe-html-title`, all HTML tags will be stripped before setting the document\n+ * title.\n+ *\n+ * ### Account Info below Breadcrumbs\n+ *\n+ * `rxPage` integrates the [rxAccountInfo](/#/components/rxAccountInfo) component,\n+ * to draw the Account Info box directly underneath the `rxBreadcrumbs`.\n+ * This is opt-in. By default, it will not appear. To enable it, pass the\n+ * `account-number=\"...\"` attribute to `<rx-page>` in your template, i.e\n+ *\n+ * <pre>\n+ * <rx-page account-number=\"{{ accountNumber }}\">\n+ * </pre>\n+ *\n+ * As noted on the [rxAccountInfo](/#/components/rxAccountInfo) demo page, this\n+ * directive requires that `SupportAccount`, `Encore` and `Teams` services are\n+ * available to the Angular Dependency Injection system. These are *not* provided\n+ * by EncoreUI, but are available in an internal Rackspace repository.\n+ *\n+ *\n+ * ### Status tags\n+ *\n+ * A final attribute that `rx-page` accepts is `status`. This takes a string,\n+ * and has the effect of drawing a status \"tag\" beside the page title.\n+ * The \"Customized rxApp\" demo shows the use of this with the `\"alpha\"` tag.\n+ *\n+ * The framework currently provides `\"alpha\"` and `\"beta\"` tags, but any product\n+ * can specify their own custom tags using the `rxStatusTagsProvider`. It currently\n+ * has one method, `addStatus`, which takes an unique `key` for the new tag, the\n+ * `class` it should use in the HTML, and the `text` that will be drawn. All custom\n+ * tags are drawn inside of a `<span>`, essentially as:\n+ *\n+ * <pre>\n+ * <span class=\"status-tag {{ class }}\">{{ text }}</span>\n+ * </pre>\n+ *\n+ * To use this, do the following in your application's `.config()` method:\n+ *\n+ * <pre>\n+ * rxStatusTagsProvider.addStatus({ key: 'gamma', class: 'alpha-status', text: 'Hello World!' });","path":"src/rxApp/rxApp.js","position":145,"original_position":145,"commit_id":"e472af9f7e510597d0d7503b637c2ee2887e3ccf","original_commit_id":"e472af9f7e510597d0d7503b637c2ee2887e3ccf","user":{"login":"CITguy","id":545605,"avatar_url":"https://avatars.githubusercontent.com/u/545605?v=3","gravatar_id":"","url":"https://api.github.com/users/CITguy","html_url":"https://github.com/CITguy","followers_url":"https://api.github.com/users/CITguy/followers","following_url":"https://api.github.com/users/CITguy/following{/other_user}","gists_url":"https://api.github.com/users/CITguy/gists{/gist_id}","starred_url":"https://api.github.com/users/CITguy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CITguy/subscriptions","organizations_url":"https://api.github.com/users/CITguy/orgs","repos_url":"https://api.github.com/users/CITguy/repos","events_url":"https://api.github.com/users/CITguy/events{/privacy}","received_events_url":"https://api.github.com/users/CITguy/received_events","type":"User","site_admin":false},"body":"This is challenging to skim when generated...\r\n\r\n![screen shot 2015-09-23 at 3 40 12 pm](https://cloud.githubusercontent.com/assets/545605/10058114/647c1d5a-6209-11e5-9fc6-0717d22b362d.png)\r\n\r\n\r\nPlease place key/value pairs on separate lines.\r\n\r\n```javascript\r\nrxStatusTagsProvider.addStatus({\r\n    key: 'gamma',\r\n    class: 'alpha-status',\r\n    text: 'Hello World!'\r\n});\r\n```","created_at":"2015-09-23T20:40:25Z","updated_at":"2015-09-23T20:40:25Z","html_url":"https://github.com/rackerlabs/encore-ui/pull/1218#discussion_r40254760","pull_request_url":"https://api.github.com/repos/rackerlabs/encore-ui/pulls/1218","_links":{"self":{"href":"https://api.github.com/repos/rackerlabs/encore-ui/pulls/comments/40254760"},"html":{"href":"https://github.com/rackerlabs/encore-ui/pull/1218#discussion_r40254760"},"pull_request":{"href":"https://api.github.com/repos/rackerlabs/encore-ui/pulls/1218"}}},"pull_request":{"url":"https://api.github.com/repos/rackerlabs/encore-ui/pulls/1218","id":45604297,"html_url":"https://github.com/rackerlabs/encore-ui/pull/1218","diff_url":"https://github.com/rackerlabs/encore-ui/pull/1218.diff","patch_url":"https://github.com/rackerlabs/encore-ui/pull/1218.patch","issue_url":"https://api.github.com/repos/rackerlabs/encore-ui/issues/1218","number":1218,"state":"open","locked":false,"title":"feat(docs): FRMW-160 - Migrate rxApp docs in README to ngdocs","user":{"login":"bry4n","id":73400,"avatar_url":"https://avatars.githubusercontent.com/u/73400?v=3","gravatar_id":"","url":"https://api.github.com/users/bry4n","html_url":"https://github.com/bry4n","followers_url":"https://api.github.com/users/bry4n/followers","following_url":"https://api.github.com/users/bry4n/following{/other_user}","gists_url":"https://api.github.com/users/bry4n/gists{/gist_id}","starred_url":"https://api.github.com/users/bry4n/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bry4n/subscriptions","organizations_url":"https://api.github.com/users/bry4n/orgs","repos_url":"https://api.github.com/users/bry4n/repos","events_url":"https://api.github.com/users/bry4n/events{/privacy}","received_events_url":"https://api.github.com/users/bry4n/received_events","type":"User","site_admin":false},"body":"JIRA: https://jira.rax.io/browse/FRMW-160\r\n\r\n* [ ] Dev LGTM\r\n* [ ] Dev LGTM","created_at":"2015-09-21T21:45:32Z","updated_at":"2015-09-23T20:40:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b840427fb1b93886ebd0b6b19b461490a0841439","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/rackerlabs/encore-ui/pulls/1218/commits","review_comments_url":"https://api.github.com/repos/rackerlabs/encore-ui/pulls/1218/comments","review_comment_url":"https://api.github.com/repos/rackerlabs/encore-ui/pulls/comments{/number}","comments_url":"https://api.github.com/repos/rackerlabs/encore-ui/issues/1218/comments","statuses_url":"https://api.github.com/repos/rackerlabs/encore-ui/statuses/e472af9f7e510597d0d7503b637c2ee2887e3ccf","head":{"label":"bry4n:FRMW-160-migrate-rxapp-docs","ref":"FRMW-160-migrate-rxapp-docs","sha":"e472af9f7e510597d0d7503b637c2ee2887e3ccf","user":{"login":"bry4n","id":73400,"avatar_url":"https://avatars.githubusercontent.com/u/73400?v=3","gravatar_id":"","url":"https://api.github.com/users/bry4n","html_url":"https://github.com/bry4n","followers_url":"https://api.github.com/users/bry4n/followers","following_url":"https://api.github.com/users/bry4n/following{/other_user}","gists_url":"https://api.github.com/users/bry4n/gists{/gist_id}","starred_url":"https://api.github.com/users/bry4n/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bry4n/subscriptions","organizations_url":"https://api.github.com/users/bry4n/orgs","repos_url":"https://api.github.com/users/bry4n/repos","events_url":"https://api.github.com/users/bry4n/events{/privacy}","received_events_url":"https://api.github.com/users/bry4n/received_events","type":"User","site_admin":false},"repo":{"id":41702853,"name":"encore-ui","full_name":"bry4n/encore-ui","owner":{"login":"bry4n","id":73400,"avatar_url":"https://avatars.githubusercontent.com/u/73400?v=3","gravatar_id":"","url":"https://api.github.com/users/bry4n","html_url":"https://github.com/bry4n","followers_url":"https://api.github.com/users/bry4n/followers","following_url":"https://api.github.com/users/bry4n/following{/other_user}","gists_url":"https://api.github.com/users/bry4n/gists{/gist_id}","starred_url":"https://api.github.com/users/bry4n/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bry4n/subscriptions","organizations_url":"https://api.github.com/users/bry4n/orgs","repos_url":"https://api.github.com/users/bry4n/repos","events_url":"https://api.github.com/users/bry4n/events{/privacy}","received_events_url":"https://api.github.com/users/bry4n/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bry4n/encore-ui","description":"UI Framework for Encore","fork":true,"url":"https://api.github.com/repos/bry4n/encore-ui","forks_url":"https://api.github.com/repos/bry4n/encore-ui/forks","keys_url":"https://api.github.com/repos/bry4n/encore-ui/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bry4n/encore-ui/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bry4n/encore-ui/teams","hooks_url":"https://api.github.com/repos/bry4n/encore-ui/hooks","issue_events_url":"https://api.github.com/repos/bry4n/encore-ui/issues/events{/number}","events_url":"https://api.github.com/repos/bry4n/encore-ui/events","assignees_url":"https://api.github.com/repos/bry4n/encore-ui/assignees{/user}","branches_url":"https://api.github.com/repos/bry4n/encore-ui/branches{/branch}","tags_url":"https://api.github.com/repos/bry4n/encore-ui/tags","blobs_url":"https://api.github.com/repos/bry4n/encore-ui/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bry4n/encore-ui/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bry4n/encore-ui/git/refs{/sha}","trees_url":"https://api.github.com/repos/bry4n/encore-ui/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bry4n/encore-ui/statuses/{sha}","languages_url":"https://api.github.com/repos/bry4n/encore-ui/languages","stargazers_url":"https://api.github.com/repos/bry4n/encore-ui/stargazers","contributors_url":"https://api.github.com/repos/bry4n/encore-ui/contributors","subscribers_url":"https://api.github.com/repos/bry4n/encore-ui/subscribers","subscription_url":"https://api.github.com/repos/bry4n/encore-ui/subscription","commits_url":"https://api.github.com/repos/bry4n/encore-ui/commits{/sha}","git_commits_url":"https://api.github.com/repos/bry4n/encore-ui/git/commits{/sha}","comments_url":"https://api.github.com/repos/bry4n/encore-ui/comments{/number}","issue_comment_url":"https://api.github.com/repos/bry4n/encore-ui/issues/comments{/number}","contents_url":"https://api.github.com/repos/bry4n/encore-ui/contents/{+path}","compare_url":"https://api.github.com/repos/bry4n/encore-ui/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bry4n/encore-ui/merges","archive_url":"https://api.github.com/repos/bry4n/encore-ui/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bry4n/encore-ui/downloads","issues_url":"https://api.github.com/repos/bry4n/encore-ui/issues{/number}","pulls_url":"https://api.github.com/repos/bry4n/encore-ui/pulls{/number}","milestones_url":"https://api.github.com/repos/bry4n/encore-ui/milestones{/number}","notifications_url":"https://api.github.com/repos/bry4n/encore-ui/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bry4n/encore-ui/labels{/name}","releases_url":"https://api.github.com/repos/bry4n/encore-ui/releases{/id}","created_at":"2015-08-31T22:02:16Z","updated_at":"2015-08-31T22:02:18Z","pushed_at":"2015-09-23T20:12:24Z","git_url":"git://github.com/bry4n/encore-ui.git","ssh_url":"git@github.com:bry4n/encore-ui.git","clone_url":"https://github.com/bry4n/encore-ui.git","svn_url":"https://github.com/bry4n/encore-ui","homepage":"http://rackerlabs.github.io/encore-ui/","size":24405,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"rackerlabs:master","ref":"master","sha":"e9671eef64490477023f986a5d6f4103f74aa962","user":{"login":"rackerlabs","id":84293,"avatar_url":"https://avatars.githubusercontent.com/u/84293?v=3","gravatar_id":"","url":"https://api.github.com/users/rackerlabs","html_url":"https://github.com/rackerlabs","followers_url":"https://api.github.com/users/rackerlabs/followers","following_url":"https://api.github.com/users/rackerlabs/following{/other_user}","gists_url":"https://api.github.com/users/rackerlabs/gists{/gist_id}","starred_url":"https://api.github.com/users/rackerlabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rackerlabs/subscriptions","organizations_url":"https://api.github.com/users/rackerlabs/orgs","repos_url":"https://api.github.com/users/rackerlabs/repos","events_url":"https://api.github.com/users/rackerlabs/events{/privacy}","received_events_url":"https://api.github.com/users/rackerlabs/received_events","type":"Organization","site_admin":false},"repo":{"id":11432401,"name":"encore-ui","full_name":"rackerlabs/encore-ui","owner":{"login":"rackerlabs","id":84293,"avatar_url":"https://avatars.githubusercontent.com/u/84293?v=3","gravatar_id":"","url":"https://api.github.com/users/rackerlabs","html_url":"https://github.com/rackerlabs","followers_url":"https://api.github.com/users/rackerlabs/followers","following_url":"https://api.github.com/users/rackerlabs/following{/other_user}","gists_url":"https://api.github.com/users/rackerlabs/gists{/gist_id}","starred_url":"https://api.github.com/users/rackerlabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rackerlabs/subscriptions","organizations_url":"https://api.github.com/users/rackerlabs/orgs","repos_url":"https://api.github.com/users/rackerlabs/repos","events_url":"https://api.github.com/users/rackerlabs/events{/privacy}","received_events_url":"https://api.github.com/users/rackerlabs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/rackerlabs/encore-ui","description":"UI Framework for Encore","fork":false,"url":"https://api.github.com/repos/rackerlabs/encore-ui","forks_url":"https://api.github.com/repos/rackerlabs/encore-ui/forks","keys_url":"https://api.github.com/repos/rackerlabs/encore-ui/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rackerlabs/encore-ui/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rackerlabs/encore-ui/teams","hooks_url":"https://api.github.com/repos/rackerlabs/encore-ui/hooks","issue_events_url":"https://api.github.com/repos/rackerlabs/encore-ui/issues/events{/number}","events_url":"https://api.github.com/repos/rackerlabs/encore-ui/events","assignees_url":"https://api.github.com/repos/rackerlabs/encore-ui/assignees{/user}","branches_url":"https://api.github.com/repos/rackerlabs/encore-ui/branches{/branch}","tags_url":"https://api.github.com/repos/rackerlabs/encore-ui/tags","blobs_url":"https://api.github.com/repos/rackerlabs/encore-ui/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rackerlabs/encore-ui/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rackerlabs/encore-ui/git/refs{/sha}","trees_url":"https://api.github.com/repos/rackerlabs/encore-ui/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rackerlabs/encore-ui/statuses/{sha}","languages_url":"https://api.github.com/repos/rackerlabs/encore-ui/languages","stargazers_url":"https://api.github.com/repos/rackerlabs/encore-ui/stargazers","contributors_url":"https://api.github.com/repos/rackerlabs/encore-ui/contributors","subscribers_url":"https://api.github.com/repos/rackerlabs/encore-ui/subscribers","subscription_url":"https://api.github.com/repos/rackerlabs/encore-ui/subscription","commits_url":"https://api.github.com/repos/rackerlabs/encore-ui/commits{/sha}","git_commits_url":"https://api.github.com/repos/rackerlabs/encore-ui/git/commits{/sha}","comments_url":"https://api.github.com/repos/rackerlabs/encore-ui/comments{/number}","issue_comment_url":"https://api.github.com/repos/rackerlabs/encore-ui/issues/comments{/number}","contents_url":"https://api.github.com/repos/rackerlabs/encore-ui/contents/{+path}","compare_url":"https://api.github.com/repos/rackerlabs/encore-ui/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rackerlabs/encore-ui/merges","archive_url":"https://api.github.com/repos/rackerlabs/encore-ui/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rackerlabs/encore-ui/downloads","issues_url":"https://api.github.com/repos/rackerlabs/encore-ui/issues{/number}","pulls_url":"https://api.github.com/repos/rackerlabs/encore-ui/pulls{/number}","milestones_url":"https://api.github.com/repos/rackerlabs/encore-ui/milestones{/number}","notifications_url":"https://api.github.com/repos/rackerlabs/encore-ui/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rackerlabs/encore-ui/labels{/name}","releases_url":"https://api.github.com/repos/rackerlabs/encore-ui/releases{/id}","created_at":"2013-07-15T20:06:52Z","updated_at":"2015-09-10T15:50:43Z","pushed_at":"2015-09-23T20:38:21Z","git_url":"git://github.com/rackerlabs/encore-ui.git","ssh_url":"git@github.com:rackerlabs/encore-ui.git","clone_url":"https://github.com/rackerlabs/encore-ui.git","svn_url":"https://github.com/rackerlabs/encore-ui","homepage":"http://rackerlabs.github.io/encore-ui/","size":33685,"stargazers_count":37,"watchers_count":37,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":44,"mirror_url":null,"open_issues_count":77,"forks":44,"open_issues":77,"watchers":37,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rackerlabs/encore-ui/pulls/1218"},"html":{"href":"https://github.com/rackerlabs/encore-ui/pull/1218"},"issue":{"href":"https://api.github.com/repos/rackerlabs/encore-ui/issues/1218"},"comments":{"href":"https://api.github.com/repos/rackerlabs/encore-ui/issues/1218/comments"},"review_comments":{"href":"https://api.github.com/repos/rackerlabs/encore-ui/pulls/1218/comments"},"review_comment":{"href":"https://api.github.com/repos/rackerlabs/encore-ui/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/rackerlabs/encore-ui/pulls/1218/commits"},"statuses":{"href":"https://api.github.com/repos/rackerlabs/encore-ui/statuses/e472af9f7e510597d0d7503b637c2ee2887e3ccf"}}}}