UNPKG

@bennerinformatics/ember-fw-gc

Version:

A set of components, controllers, routes, and helpers used in all Group-Control managed FW App System applications

977 lines 120 kB
{ "project": { "name": "Ember-FW-GC", "url": "https://bitbucket.org/linformatics/ember-fw-gc", "description": "A set of components, controllers, routes, and helpers used in all FW Kit applications.", "indexModule": "Introduction", "logo": "./assets/img/fw-logo.png", "primaryColor": "#7E3DB7", "version": "2.1.16.5e99b10c" }, "files": { "addon\\adapters\\fw-app.js": { "name": "addon\\adapters\\fw-app.js", "modules": {}, "classes": { "FwAppAdapter": 1 }, "fors": {}, "namespaces": {} }, "addon\\adapters\\fw-optional-app.js": { "name": "addon\\adapters\\fw-optional-app.js", "modules": {}, "classes": { "OptionalAppAdapter": 1 }, "fors": {}, "namespaces": {} }, "addon\\authenticators\\group-control.js": { "name": "addon\\authenticators\\group-control.js", "modules": {}, "classes": { "GroupControlAuthenticator": 1 }, "fors": {}, "namespaces": {} }, "addon\\components\\modals\\about-app.js": { "name": "addon\\components\\modals\\about-app.js", "modules": {}, "classes": { "AboutAppModal": 1 }, "fors": {}, "namespaces": {} }, "addon\\components\\modals\\app-switch.js": { "name": "addon\\components\\modals\\app-switch.js", "modules": {}, "classes": { "AppSwitchModal": 1 }, "fors": {}, "namespaces": {} }, "addon\\components\\modals\\change-password.js": { "name": "addon\\components\\modals\\change-password.js", "modules": {}, "classes": { "ChangePasswordModal": 1 }, "fors": {}, "namespaces": {} }, "addon\\components\\modals\\re-login.js": { "name": "addon\\components\\modals\\re-login.js", "modules": {}, "classes": { "ReLoginModal": 1 }, "fors": {}, "namespaces": {} }, "addon\\components\\auth-block.js": { "name": "addon\\components\\auth-block.js", "modules": {}, "classes": { "AuthBlock": 1 }, "fors": {}, "namespaces": {} }, "addon\\components\\auth-button.js": { "name": "addon\\components\\auth-button.js", "modules": {}, "classes": { "AuthButton": 1 }, "fors": {}, "namespaces": {} }, "addon\\components\\fw-app-link.js": { "name": "addon\\components\\fw-app-link.js", "modules": {}, "classes": { "FwAppLink": 1 }, "fors": {}, "namespaces": {} }, "addon\\components\\fw-doc-link.js": { "name": "addon\\components\\fw-doc-link.js", "modules": {}, "classes": { "FwDocLink": 1 }, "fors": {}, "namespaces": {} }, "addon\\components\\fw-gc-nav.js": { "name": "addon\\components\\fw-gc-nav.js", "modules": {}, "classes": { "FwGcNav": 1 }, "fors": {}, "namespaces": {} }, "addon\\components\\fw-header.js": { "name": "addon\\components\\fw-header.js", "modules": {}, "classes": { "FwHeaderGc": 1 }, "fors": {}, "namespaces": {} }, "addon\\controllers\\forgot.js": { "name": "addon\\controllers\\forgot.js", "modules": {}, "classes": { "ForgotPage": 1 }, "fors": {}, "namespaces": {} }, "addon\\controllers\\login.js": { "name": "addon\\controllers\\login.js", "modules": {}, "classes": { "LoginPage": 1 }, "fors": {}, "namespaces": {} }, "addon\\controllers\\profile.js": { "name": "addon\\controllers\\profile.js", "modules": {}, "classes": { "ProfilePage": 1 }, "fors": {}, "namespaces": {} }, "addon\\controllers\\reset.js": { "name": "addon\\controllers\\reset.js", "modules": {}, "classes": { "ResetPage": 1 }, "fors": {}, "namespaces": {} }, "addon\\helpers\\has-app.js": { "name": "addon\\helpers\\has-app.js", "modules": {}, "classes": { "HasApp": 1 }, "fors": {}, "namespaces": {} }, "addon\\helpers\\has-department.js": { "name": "addon\\helpers\\has-department.js", "modules": {}, "classes": { "HasDepartment": 1 }, "fors": {}, "namespaces": {} }, "addon\\helpers\\has-role.js": { "name": "addon\\helpers\\has-role.js", "modules": {}, "classes": { "HasRole": 1 }, "fors": {}, "namespaces": {} }, "addon\\mixins\\application-controller.js": { "name": "addon\\mixins\\application-controller.js", "modules": {}, "classes": { "ApplicationControllerMixin": 1 }, "fors": {}, "namespaces": {} }, "addon\\mixins\\auth-check.js": { "name": "addon\\mixins\\auth-check.js", "modules": {}, "classes": { "AuthCheckMixin": 1 }, "fors": {}, "namespaces": {} }, "addon\\mixins\\auth-component.js": { "name": "addon\\mixins\\auth-component.js", "modules": {}, "classes": { "AuthComponentMixin": 1 }, "fors": {}, "namespaces": {} }, "addon\\mixins\\auth-route.js": { "name": "addon\\mixins\\auth-route.js", "modules": {}, "classes": { "AuthRouteMixin": 1 }, "fors": {}, "namespaces": {} }, "addon\\mixins\\department-transition.js": { "name": "addon\\mixins\\department-transition.js", "modules": {}, "classes": { "DepartmentTransitionMixin": 1 }, "fors": {}, "namespaces": {} }, "addon\\mixins\\index-route.js": { "name": "addon\\mixins\\index-route.js", "modules": {}, "classes": { "MixinIndexRoute": 1 }, "fors": {}, "namespaces": {} }, "addon\\mixins\\permissions.js": { "name": "addon\\mixins\\permissions.js", "modules": {}, "classes": { "PermissionsMixin": 1 }, "fors": {}, "namespaces": {} }, "addon\\mixins\\restricted-route.js": { "name": "addon\\mixins\\restricted-route.js", "modules": {}, "classes": { "RestrictedRouteMixin": 1 }, "fors": {}, "namespaces": {} }, "addon\\models\\user.js": { "name": "addon\\models\\user.js", "modules": {}, "classes": { "UserModel": 1 }, "fors": {}, "namespaces": {} }, "addon\\objects\\app-meta.js": { "name": "addon\\objects\\app-meta.js", "modules": {}, "classes": { "AppMeta": 1 }, "fors": {}, "namespaces": {} }, "addon\\routes\\auth.js": { "name": "addon\\routes\\auth.js", "modules": {}, "classes": { "AuthRoute-Addon": 1 }, "fors": {}, "namespaces": {} }, "addon\\services\\ajax.js": { "name": "addon\\services\\ajax.js", "modules": {}, "classes": { "AjaxService": 1 }, "fors": {}, "namespaces": {} }, "addon\\services\\app-meta.js": { "name": "addon\\services\\app-meta.js", "modules": {}, "classes": { "AppMetaService": 1 }, "fors": {}, "namespaces": {} }, "addon\\services\\config.js": { "name": "addon\\services\\config.js", "modules": {}, "classes": { "ConfigService": 1 }, "fors": {}, "namespaces": {} }, "addon\\services\\current-user.js": { "name": "addon\\services\\current-user.js", "modules": {}, "classes": { "CurrentUserService": 1 }, "fors": {}, "namespaces": {} }, "addon\\services\\jokes.js": { "name": "addon\\services\\jokes.js", "modules": {}, "classes": { "JokesService": 1 }, "fors": {}, "namespaces": {} }, "addon\\utils\\match.js": { "name": "addon\\utils\\match.js", "modules": {}, "classes": { "MatchUtil": 1 }, "fors": {}, "namespaces": {} }, "addon\\documentation.js": { "name": "addon\\documentation.js", "modules": { "Miscellaneous": 1, "Components": 1, "Pages": 1, "Helpers": 1, "Mixins": 1, "Models": 1, "Services": 1, "Utils": 1, "Introduction": 1 }, "classes": {}, "fors": {}, "namespaces": {} }, "app\\routes\\auth.js": { "name": "app\\routes\\auth.js", "modules": {}, "classes": { "AuthRoute": 1 }, "fors": {}, "namespaces": {} }, "app\\routes\\restricted.js": { "name": "app\\routes\\restricted.js", "modules": {}, "classes": { "RestrictedRoute": 1 }, "fors": {}, "namespaces": {} }, "app\\session-stores\\application.js": { "name": "app\\session-stores\\application.js", "modules": {}, "classes": {}, "fors": {}, "namespaces": {} } }, "modules": { "Miscellaneous": { "name": "Miscellaneous", "submodules": {}, "elements": {}, "classes": { "AppMeta": 1, "FwAppAdapter": 1, "OptionalAppAdapter": 1, "GroupControlAuthenticator": 1, "AuthRoute-Addon": 1, "AuthRoute": 1, "RestrictedRoute": 1 }, "fors": {}, "namespaces": {}, "tag": "main", "file": "app\\routes\\restricted.js", "line": 4, "description": "Miscellaneous catch-all module for things which don't neetly fit into the other modules.", "itemtype": "main" }, "Components": { "name": "Components", "submodules": {}, "elements": {}, "classes": { "AboutAppModal": 1, "AppSwitchModal": 1, "ChangePasswordModal": 1, "ReLoginModal": 1, "AuthBlock": 1, "AuthButton": 1, "FwAppLink": 1, "FwDocLink": 1, "FwGcNav": 1, "FwHeaderGc": 1 }, "fors": {}, "namespaces": {}, "tag": "main", "file": "addon\\components\\fw-header.js", "line": 10, "description": "Components defined by Ember FW GC.", "itemtype": "main" }, "Pages": { "name": "Pages", "submodules": {}, "elements": {}, "classes": { "ForgotPage": 1, "LoginPage": 1, "ProfilePage": 1, "ResetPage": 1 }, "fors": {}, "namespaces": {}, "tag": "main", "file": "addon\\controllers\\reset.js", "line": 26, "description": "Pages defined by Ember FW GC.", "itemtype": "main" }, "Helpers": { "name": "Helpers", "submodules": {}, "elements": {}, "classes": { "HasApp": 1, "HasDepartment": 1, "HasRole": 1 }, "fors": {}, "namespaces": {}, "tag": "main", "file": "addon\\helpers\\has-role.js", "line": 4, "description": "Helpers defined by Ember FW GC.", "itemtype": "main" }, "Mixins": { "name": "Mixins", "submodules": {}, "elements": {}, "classes": { "ApplicationControllerMixin": 1, "AuthCheckMixin": 1, "AuthComponentMixin": 1, "AuthRouteMixin": 1, "DepartmentTransitionMixin": 1, "MixinIndexRoute": 1, "PermissionsMixin": 1, "RestrictedRouteMixin": 1 }, "fors": {}, "namespaces": {}, "tag": "main", "file": "addon\\mixins\\restricted-route.js", "line": 4, "description": "Mixins defined by Ember FW GC.", "itemtype": "main" }, "Models": { "name": "Models", "submodules": {}, "elements": {}, "classes": { "UserModel": 1 }, "fors": {}, "namespaces": {}, "tag": "main", "file": "addon\\models\\user.js", "line": 6, "description": "Models defined by Ember FW GC.", "itemtype": "main" }, "Services": { "name": "Services", "submodules": {}, "elements": {}, "classes": { "AjaxService": 1, "AppMetaService": 1, "ConfigService": 1, "CurrentUserService": 1, "JokesService": 1 }, "fors": {}, "namespaces": {}, "tag": "main", "file": "addon\\services\\jokes.js", "line": 3, "description": "Services defined by Ember FW GC.", "itemtype": "main" }, "Utils": { "name": "Utils", "submodules": {}, "elements": {}, "classes": { "MatchUtil": 1 }, "fors": {}, "namespaces": {}, "tag": "main", "file": "addon\\utils\\match.js", "line": 3, "description": "Utils defined by Ember FW GC.", "itemtype": "main" }, "Introduction": { "name": "Introduction", "submodules": {}, "elements": {}, "classes": {}, "fors": {}, "namespaces": {}, "tag": "main", "file": "addon\\documentation.js", "line": 2, "description": "The primary purpose of ember-fw-gc is to integrate Group Control Elements into a Group Control dependent app.\nThis documentation is designed just to be the API docs, which can aid in developers. For a more comprehensive\nguide to Ember FW GC, see our [Ember FW GC](https://linformatics.bitbucket.io/docs/addons/client/ember-fw-gc) docs.", "itemtype": "main" } }, "classes": { "FwAppAdapter": { "name": "FwAppAdapter", "shortname": "FwAppAdapter", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Miscellaneous", "file": "addon\\adapters\\fw-app.js", "line": 3, "description": "Extension of the [base FW adapter](https://linformatics.bitbucket.io/docs/addons/client-api/ember-fw/classes/FwAdapter.html) for models that need to be fetched from a dependency app. Currently, this app adapter should only be used for Group Control models,\nsince that is the only app that is a dependency app, thus the appId is automatically set to `gc`. Most often this will be used for the GC user model, so you need to make an adapter file, `adapters/user.js`,\nand then that file is merely set to:\n\n```js\nexport {default} from '@bennerinformatics/ember-fw-gc/adapters/fw-app';\n```\n\nProvided you have the model file setup right (as documented in the [user model](UserModel.html)), it should now pull the data from GC app instead of your base app.", "extends": "FwAdapter" }, "OptionalAppAdapter": { "name": "OptionalAppAdapter", "shortname": "OptionalAppAdapter", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Miscellaneous", "namespace": "", "file": "addon\\adapters\\fw-optional-app.js", "line": 6, "description": "Extension of the [base FW adapter](https://linformatics.bitbucket.io/docs/addons/client-api/ember-fw/classes/FwAdapter.html) for models that need to be fetched from a\nnon-dependency app. The reason for the difference is that if it is a non-dependency app, you need to handle the possibility that that app is not currently installed on\nyour current system, and use the model accordingly. This also means that you will need to define specifically the `appId` for the app this is the model of. This is used much\nless commonly than the FwAppAdapter, so it will have varied use cases (ie using Tally models in Substitutions or EmployeeDb models in Message Center). Again, your file will need to\nbe named identically as the model you are copying, then you set up that adapter like this:\n\n```js\nimport OptionalAppAdapter from '@bennerinformatics/ember-fw-gc/adapters/fw-optional-app';\n\nexport default OptionalAppAdapter.extend({\n appId: 'empdb'\n});\n```\n\nProvided you have the model file setup right, it should now pull the data from the optional app instead of your base app.", "extends": "FWAdapter" }, "GroupControlAuthenticator": { "name": "GroupControlAuthenticator", "shortname": "GroupControlAuthenticator", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Miscellaneous", "namespace": "", "file": "addon\\authenticators\\group-control.js", "line": 4, "description": "This authenticator is used by Ember-Simple-Auth to authenticate\na user on the client.\n\nExample Usage:\n\n```javascript\nimport Ember from 'ember';\n\nexport default Ember.Object.extend({\n session: Ember.inject.service(),\n\n login(username, password) {\n let session = this.get('session');\n\n session.authenticate('authenticator:group-control', username, password);\n }\n});\n```\n\nTo extend in an application:\n\n```javascript\nimport GCAuthenticator from '@bennerinformatics/ember-fw-gc/authenticators/group-control';\n\nexport default GCAuthenticator.extend({\n // ... your custom code here\n});\n```\n\nFor more example on using this in an application or extending it,\nvisit Ember Simple Auth's [website](http://ember-simple-auth.com/).", "access": "public", "tagname": "", "extends": "EmberSimpleAuth.BaseAuthenticator" }, "AboutAppModal": { "name": "AboutAppModal", "shortname": "AboutAppModal", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Components", "namespace": "", "file": "addon\\components\\modals\\about-app.js", "line": 8, "description": "The About Modal is a modal which gives very basic information about your app. This does not need to be called by you, as it is called for you by the `FwHeader`. The About Modal can be called from the dropdown to the right of the header.\nNothing displayed in the modal can be configured by passing information into the model attribute, but the information is all dynamic and can be configured by looking at two places: Group Control or `fw.json`.\n\n Some of the information is pulled directly from Group Control, namely, the App Name, App Description and More Information Link (Link field on App model). This can hypothetically be changed per database, though\n it is not advised that you would change the defaults set by the initial database migration. The More Information Link is the one of these three values which is not set by default in the database migration, so that\n each database must edit the link field on the app to cause this link to show up.\n\nThe rest of the information is set by the values of `fw.json`, including:\n\n- `version` will display under the title, and this is the current version of the app.\n- `authors`, `maintainers`, and `previousMaintainers` should all be set as arrays in `fw.json`, and they will be displayed in the About modal under these names as a string separated by a '|' between each value" }, "AppSwitchModal": { "name": "AppSwitchModal", "shortname": "AppSwitchModal", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Components", "namespace": "", "file": "addon\\components\\modals\\app-switch.js", "line": 6, "description": "The App Switcher Modal is a modal that allows you to switch your current app. It loads the logos and names of each app, downloaded to the server, which the current user has any role in, and clicking\none of those apps will open a new tab in the browser and load that app. There is no configuration for this modal, and you do not need to call it yourself, as it is automatically built into the `FwHeader`\ncomponent (no way to turn it off from that component either) that has no configuration necessary. The only way to configure this modal would be to change a certain users roles for certain apps in Group Control." }, "ChangePasswordModal": { "name": "ChangePasswordModal", "shortname": "ChangePasswordModal", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Components", "namespace": "", "file": "addon\\components\\modals\\change-password.js", "line": 32, "description": "A modal which allows you to change your current password. It has three textfields: Current Password, New Password, and Confirm Password. It will invalidate if current password is not\npassed in or if it is the wrong password, or if new password and confirm password do not match. This modal is called from the FwHeader component (if they have a GC generated\npassword, they will be forced to select a \"secure\" password) and the Profile page. There is no configuration needed for this modal, and you do not need to call it, since it is handled by\ncomponents within Ember FW GC." }, "ReLoginModal": { "name": "ReLoginModal", "shortname": "ReLoginModal", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Components", "namespace": "", "file": "addon\\components\\modals\\re-login.js", "line": 13, "description": "The re-login modal is a modal which will appear any time the session expires, and will allow you to simply put in your password to relogin, rather than taking you to\nthe login page. Each app needs to call it in the `application.hbs` file, so that it can be called on any page. It should be set to be the `sm` modal size, per our\nInformatics modal policies, [here](https://apps.bennerlibrary.com/kb/#/entry/1205). This is what it should look like:\n\n```handlebars\n<FwFullscreenModal @modal=\"re-login\" @size=\"sm\" @model={{hash attemptedTransition=attemptedTransition}} @close={{action \"closeLoginModal\"}} />\n```\n\nThe `shouldRender` boolean should be `showLoginModal`, which is the boolean which is changed by the `ApplicationControllerMixin`, so the if statement should look like:\n```handlebars\n{{#if showLoginModal}}\n {{!-- Fullscreen Modal Re-Login information here --}}\n{{/if}}\n```\nThen, so long as you use the [ApplicationControllerMixin](../classes/ApplicationControllerMixin.html) as directed on your `application.js` controller, everything should work properly.\nThis should be set up for you by the Generator FW, so you should already have these things set up for you in your app, but it is important to note that the re-login modal is the one\nmodal which needs to be called in the application template by each app." }, "AuthBlock": { "name": "AuthBlock", "shortname": "AuthBlock", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Components", "namespace": "", "file": "addon\\components\\auth-block.js", "line": 4, "description": "For Ember deprecation notice, [click here](https://deprecations.emberjs.com/id/ember-component-is-visible/). This component is used to show or hide various behavior\nbased on a certain permission level or department. It is a more robust way of\ndoing the same thing that is accomplished by the [has-role](../classes/HasRole.html)\nor the [has-department](../classes/HasDepartment.html) helpers.\n\nBasic Usage:\n\n```handlebars\n<AuthBlock @perm=\"admin\">\n {{!-- block of handlebars which will be displayed based on permissions given--}}\n</AuthBlock>\n```\n\nSee the docs for [AuthComponentMixin](../classes/AuthComponentMixin.html)\nfor more details on how you can use this component.", "access": "public", "tagname": "", "uses": [ "AuthComponentMixin" ], "deprecated": true, "deprecationMessage": "Ember Component isVisible has been deprecated by Ember. Use has-role or has-department helper instead." }, "AuthButton": { "name": "AuthButton", "shortname": "AuthButton", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Components", "namespace": "", "file": "addon\\components\\auth-button.js", "line": 5, "description": "For Ember deprecation notice, [click here](https://deprecations.emberjs.com/id/ember-component-is-visible/). This component is used to show or hide a button\nbased on a certain permission level or department. It is similar to the same\nfunction as [has-role](../classes/HasRole.html) or [has-department](../classes/HasDepartment.html) helpers,\nexcept more robust, and designed only for a button itself.\n\nBasic Usage:\n\n```handlebars\n<AuthButton @perm=\"admin\" @type=\"button\" @class=\"btn btn-sm btn-default\" @click={{action \"click\"}}>\n Click me if you're an admin!\n</AuthBlock>\n```\n\nSee the docs for [AuthComponentMixin](../classes/AuthComponentMixin.html)\nfor more details on how you can use this component.", "access": "public", "tagname": "", "extends": "Ember.Component", "uses": [ "AuthComponentMixin" ], "deprecated": true, "deprecationMessage": "Ember Component isVisible has been deprecated by Ember. Use has-role or has-department helper instead." }, "FwAppLink": { "name": "FwAppLink", "shortname": "FwAppLink", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Components", "namespace": "", "file": "addon\\components\\fw-app-link.js", "line": 8, "description": "This component is used to create a link to another FW app. It is used similarly to the Ember `LinkTo` helper.\n\nTo use inline, parameters must be provided for the link name, the app ID, and the route name.\nAn optional query parameters object can be added at the end. See the [Ember docs](https://guides.emberjs.com/v3.12.0/templates/links/#toc_setting-query-params) for more information on query params\n\n```handlebars\n<FwAppLink @title='Link Text' @appId='appId' @route='route.name' />\n<FwAppLink @title='Link Text' @appId='appId' @route='route.name' @query={{hash key=value}} />\n```\n\nWhen used in block format, the block contents are used in place of link text, so the first parameter is the app ID.\nAn optional block parameter is passed containing the app metadata:\n\n```handlebars\n<FwAppLink @appId='appId' @route='route.name' as |app|>\n <i>{{app.name}}</i>\n</FwAppLink>\n<FwAppLink @appId='appId' @route='route.name' @query={{hash key=value}}>\n <i>Block text</i>\n</FwAppLink>\n```\n\nIf the app is missing or the user does not have access to the app, no HTML will be rendered.\nUse the `has-app` helper to show content when the app is missing.", "access": "public", "tagname": "", "extends": "Ember.Component" }, "FwDocLink": { "name": "FwDocLink", "shortname": "FwDocLink", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Components", "namespace": "", "file": "addon\\components\\fw-doc-link.js", "line": 6, "description": "Documentation Link Component. This component simply links to the documentation set in GC for the current app.\n\nJust call the component, there is no configuration:\n```handlebars\n<FwDocLink />\n```", "access": "public", "tagname": "" }, "FwGcNav": { "name": "FwGcNav", "shortname": "FwGcNav", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Components", "namespace": "", "file": "addon\\components\\fw-gc-nav.js", "line": 5, "description": "This component extends [FwNav](https://linformatics.bitbucket.io/docs/addons/client-api/ember-fw/classes/FwNav.html). It retains all the basic features of the navigation implemented by `FwNav`, but it also changes depending upon whether the user is authenticated\nor not. If the session is authenticated and the user has roles within the app, `FwGcNav` will yield what is passed into it into the `FwNav` component. If however, the session is authenticated and the user has no roles, the only page which will be displayed\nin the navigation is Index. If the session has not been authenticated, the Login page will be the only page displayed in the navigation bar. For more information about the login page, [click here](../classes/LoginPage.html).\n\nThe usage of `FwGcNav` is identical to `FwNav`:\n```handlebars\n<FwGcNav>\n <ul>\n <li>\n <LinkTo @route=\"myPage\">My Page</LinkTo>\n </ul>\n</FwGcNav>\n```", "extends": "FwNav" }, "FwHeaderGc": { "name": "FwHeaderGc", "shortname": "FwHeaderGc", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Components", "namespace": "", "file": "addon\\components\\fw-header.js", "line": 10, "description": "Page Header Component. This extends [Ember FW's FwHeader](https://linformatics.bitbucket.io/docs/addons/client-api/ember-fw/classes/FwHeader.html).\nIn addition to the logo and App Name rendered by Ember FW's FwHeader, Ember FW GC also adds information about the user, such as the app switcher,\ncurrent department and dropdown on the right side of the header. It also is responsible for calling the following modals: about, app-switch, and change-password.\n\nIt is called in an identical way as Ember FW's `FwHeader`:\n```handlebars\n<FwHeader />\n```\n\nThere is no configuration for this component, so everything is documented as private.", "access": "public", "tagname": "", "extends": "FwHeader" }, "ForgotPage": { "name": "ForgotPage", "shortname": "ForgotPage", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Pages", "namespace": "", "file": "addon\\controllers\\forgot.js", "line": 21, "description": "The Forgot Page is the page which will be displayed when you click on the forgot button on the login page. It is a page with a single textbox, email and two buttons: back and\nSend Reset Email. It will simply send a reset email button with a link to the email put in the textbox if there is a user set up for that email.\n\nEverything is set up for you, from the route to the controller to the template. There is nothing you need to do to configure this (so long as you already imported the router as instructed\nin the setup instructions for [Ember FW GC](https://linformatics.bitbucket.io/docs/addons/client/ember-fw-gc/setup))." }, "LoginPage": { "name": "LoginPage", "shortname": "LoginPage", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Pages", "namespace": "", "file": "addon\\controllers\\login.js", "line": 5, "description": "The Login Page is the page which loads in to every app when the user has not been authenticated. It is a very simple looking page which has a username and password textbox, with a\nlogin button and a \"forgot password\" button. The only other thing on this page is the \"Joke of the Day\", which if there are jokes set up in the database appears underneath the\npassword text field. The very simple function of this page is just to login, so it implements the group-control authenticator and properly authenticates the user.\n\nEverything is set up for you, from the route to the controller to the template. There is nothing you need to do to configure this (so long as you already imported the router as instructed\nin the setup instructions for [Ember FW GC](https://linformatics.bitbucket.io/docs/addons/client/ember-fw-gc/setup))." }, "ProfilePage": { "name": "ProfilePage", "shortname": "ProfilePage", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Pages", "namespace": "", "file": "addon\\controllers\\profile.js", "line": 5, "description": "The Profile Page is a page which is designed for a user, who does not have access to Group Control to change aspects about their Group Control user.\nIt allows you to change `nameFirst`, `namePref`, `nameLast`, and `email` for the currently authenticated user. It is able to be accessed through the\n`FwGcNav` component by clicking the name in the right and then clicking \"profile\" in the dropdown that appears.\n\nEverything is set up for you, from the route to the controller to the template to even the link to click in the dropdown to call it.\nThere is nothing you need to do to configure this (so long as you already imported the router as instructed in the setup instructions for\n[Ember FW GC](https://linformatics.bitbucket.io/docs/addons/client/ember-fw-gc/setup))." }, "ResetPage": { "name": "ResetPage", "shortname": "ResetPage", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Pages", "namespace": "", "file": "addon\\controllers\\reset.js", "line": 26, "description": "The Reset Page is the page which will only be displayed if you sent yourself a reset email and click the link in the email. The page loads with two textfields\npassword and confirm password. If you type both of them in and they match (even if it is the same password as the last password), your password will be reset,\nand then the user will be automatically authenticated. It uses a randomly generated \"token\" query parameter to distinguish which user's password you are attempting to\nreset. The only way to make this token is to use the forgot password page.\n\nEverything is set up for you, from the route to the controller to the template. There is nothing you need to do to configure this (so long as you already imported the router as instructed\nin the setup instructions for [Ember FW GC](https://linformatics.bitbucket.io/docs/addons/client/ember-fw-gc/setup))." }, "HasApp": { "name": "HasApp", "shortname": "HasApp", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Helpers", "namespace": "", "file": "addon\\helpers\\has-app.js", "line": 5, "description": "Checks if a user has access to a specific app. Uses the [match](../classes/MatchUtil.html)\nutility, so anything passed in for the app will be passed to the match function. The `needle`\nis a flat list of all user apps, and the `haystack` is what you pass into the component. You are\nable to check one or multiple apps, as in the example below.\n\nUsage:\n```handlebars\n{{has-app 'appId'}} <!-- if the user has access to the \"appId\" app, this returns true -->\n{{has-app (array 'appId1' 'appId2')}} <!-- if the user has access to both apps, this returns true -->\n{{has-app (array (array 'appId1' 'appId2'))}} <!-- if the user has access to either of the apps, this returns true -->\n```", "access": "public", "tagname": "", "extends": "Ember.Helper" }, "HasDepartment": { "name": "HasDepartment", "shortname": "HasDepartment", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Helpers", "namespace": "", "file": "addon\\helpers\\has-department.js", "line": 4, "description": "This helper can be used to determine if the user is part of a specific department.\nIt does *not* extend match, so it will not take an either/or array. It will only take\na single string. Then the helper returns a boolean value based on whether or not the\nuser is in the department.\n\nUsage:\n```handlebars\n{{has-department 'test'}} <!-- if the user is in the \"test\" department, this returns true -->\n```", "access": "public", "tagname": "", "extends": "Ember.Helper" }, "HasRole": { "name": "HasRole", "shortname": "HasRole", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Helpers", "namespace": "", "file": "addon\\helpers\\has-role.js", "line": 4, "description": "Checks if a user has a specific role. Uses the [match](../classes/MatchUtil.html)\nutility, so anything passed in for the role will be passed to the match function. The `needle`\nis a flat list of all user roles, and the `haystack` is what you pass into the component. Thus,\nyou are able to pass an and/or array into the this for more complicated role checks.\n\nUsage:\n```handlebars\n<!-- if the match function returns true this will return true -->\n{{has-role 'admin'}} <!-- Checks for 'admin' role -->\n{{has-role (array 'admin' 'stats')}} <!-- Checks for 'admin' OR 'stats' role -->\n{{has-role (array (array 'admin' 'stats'))}} <!-- Checks for 'admin' AND 'stats' role -->\n```", "access": "public", "tagname": "", "extends": "Ember.Helper" }, "ApplicationControllerMixin": { "name": "ApplicationControllerMixin", "shortname": "ApplicationControllerMixin", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Mixins", "namespace": "", "file": "addon\\mixins\\application-controller.js", "line": 4, "description": "Mixin that the application controller needs to use in order\nto be able to use certain things like the login modal functionality\n\nUsage: (in controllers/application.js)\n```javascript\nimport Ember from 'ember';\nimport ApplicationControllerMixin from '@bennerinformatics/ember-fw-gc/mixins/application-controller';\n\nexport default Ember.Controller.extend(ApplicationControllerMixin, {\n // more code here\n});\n```\n\nThis should be already added for you in the application controller, as this is added by default by the Generator FW.", "access": "public", "tagname": "", "extends": "Ember.Mixin" }, "AuthCheckMixin": { "name": "AuthCheckMixin", "shortname": "AuthCheckMixin", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [ "AuthRoute-Addon" ], "module": "Mixins", "namespace": "", "file": "addon\\mixins\\auth-check.js", "line": 4, "description": "A mixin designed to be used by routes that wish to check if the user\nis still logged in before transitioning to a new route.\n\nUsage: (in a routes/*.js file)\n```javascript\nimport Ember from 'ember';\nimport AuthCheckMixin from '@bennerinformatics/ember-fw-gc/mixin/auth-check';\n\nexport default Ember.Route.extend(AuthCheckMixin, {\n // route code here\n});\n```\nThis mixin is used by the addon AuthRoute, which is extended by both [AuthRoute](AuthRoute.html) and [RestrictedRoute](RestrictedRoute.html), so then, this mixin\nis incorporated behind the scenes into all the routes used in the Informatics Apps.", "access": "public", "tagname": "", "extends": "Ember.Mixin" }, "AuthComponentMixin": { "name": "AuthComponentMixin", "shortname": "AuthComponentMixin", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [ "AuthBlock", "AuthButton" ], "module": "Mixins", "namespace": "", "file": "addon\\mixins\\auth-component.js", "line": 6, "description": "For Ember deprecation notice, [click here](https://deprecations.emberjs.com/id/ember-component-is-visible/). Basic mixin to be implemented in various components\nthat enables showing or hiding it based on auth permissions\n\nTo use in a component:\n```javascript\n// app/components/some-component.js\nimport Ember from 'ember';\nimport AuthComponentMixin from '@bennerinformatics/ember-fw-gc/mixins/auth-component';\n\nexport default Ember.Component.extend(AuthComponentMixin, {\n // your code here....\n});\n```\nThis is used in the [AuthBlock](AuthBlock.html) and [AuthButton](AuthButton.html) components. You are able to\nuse this in your own components too, but it is likely that you will never call this component directly.", "access": "public", "tagname": "", "deprecated": true, "deprecationMessage": "Ember Component isVisible has been deprecated by Ember. Use has-role or has-department helper instead." }, "AuthRouteMixin": { "name": "AuthRouteMixin", "shortname": "AuthRouteMixin", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [ "AuthRoute" ], "module": "Mixins", "namespace": "", "file": "addon\\mixins\\auth-route.js", "line": 4, "description": "Mixin that encapsulates some of the route authentication behavior.\n\nIf the user is logged into an app, but has no app roles, this will redirect them to index.\nThis is as opposed to the default ember-simple-auth logic which only checks logged in, not roles\n\nUsage: (in a routes file)\n```javascript\nimport Route from '@ember/routing/route';\nimport AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';\nimport AuthCheckMixin from '@bennerinformatics/ember-fw-gc/mixins/auth-check';\nimport AuthRouteMixin from '@bennerinformatics/ember-fw-gc/mixins/auth-route';\n\nexport default Route.extend(AuthenticatedRouteMixin, AuthCheckMixin, AuthRouteMixin, {\n // your code here\n});\n```\nThis mixin is used by the [AuthRoute](AuthRoute.html) in your app, which means that any route which extends `AuthRoute` in the\nInformatics Apps incorporates this mixin.", "access": "public", "tagname": "", "extends": "Ember.Mixin" }, "DepartmentTransitionMixin": { "name": "DepartmentTransitionMixin", "shortname": "DepartmentTransitionMixin", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Mixins", "namespace": "", "file": "addon\\mixins\\department-transition.js", "line": 6, "description": "A mixin designed to be used by the application route to change the user's department based on the query parameter `setdept` if they have access to that department.\nIn practice, this means that after this mixin is properly set up in application route, passing `?setdept=info` to the end of any url in any app, will change the department\nto Informatics before loading the page.\n\nThis is how it would be set up in `routes/application.js`:\n\n```javascript\nimport Ember from 'ember';\nimport DepartmentTransitionMixin from '@bennerinformatics/ember-fw-gc/mixins/department-transition';\n\nexport default Ember.Route.extend(DepartmentTransitionMixin, {\n // route code here\n});\n```\n\nThis mixin is incorporated into the application route by default in the Generator FW, so it should already be in your app. If it is not, please add it to `routes/application.js`\nas described.", "access": "public", "tagname": "", "extends": "Ember.Mixin" }, "MixinIndexRoute": { "name": "MixinIndexRoute", "shortname": "MixinIndexRoute", "classitems": [], "plugins": [], "extensions": [], "plugin_for": [], "extension_for": [], "module": "Mixins", "namespace": "", "file": "addon\\mixins\\index-route.js", "line": 5, "description": "Mixing to ha