# Global UI Elements
Global UI elements are displayed on every page of a Bento application. These are the (a) Web Browser tab, (b) Global Footer, (c) Navigation Bar and (d) Global Footer. The "Stats" bar, that displays the high-level statistics is a semi-global element as it is displayed only in the Program Listing, Program Detail, Dashboard and Case Detail pages. See below for details.

**Global User Interface Elements**. Displayed are the global elements that are displayed on all pages of a Bento-based data sharing platform. These are: the web browser tab, the global header, global footer, the navigation bar and the stats bar. The Stats Bar is semi-global in scope as it is displayed in only a subset of the application's pages.
### Prerequisites
1. The files that specify the configuration parameters of the Bento UI are stored in the GitHub `https://github.com/CBIIT/bento-frontend` (representing your GitHub username as `YOUR-USERNAME`). Create a local clone of your fork into a local directory, represented in these instructions as `$(src)`.
2. All images and icons that you use in your Bento instance should be accessible via a public URL.
3. Please review the list of [GraphQL queries](https://github.com/CBIIT/bento-backend/blob/master/src/main/resources/graphql/bento-extended-doc.graphql) to select query type(s) that return your data of interest.
4. Here is a mapping of each Global UI element to it's configuration file:
Global UI Element | Configuration File
---------------------|------------------------------------------------------
Web Browser Tab |`$(src)/bento-frontend/public/index.html`
Global Header |`$(src)/bento-frontend/src/bento/globalHeaderData.js`
Global Footer |`$(src)/bento-frontend/src/bento/globalFooterData.js`
Global Navigation Bar|`$(src)/bento-frontend/src/bento/navigationBarData.js`
Stats Bar |`$(src)/bento-frontend/src/bento/globalStatsData.js`
## Web Browser Tab
Web browser tabs allow you to have multiple web pages open at the same time. An application-specific icon and text allows an end user to keep track of the tab running a Bento application.
### Configuring the Favicon
The favorite icon (or favicon) that appears in the web browser tab can be configured in two ways:
Option A: Using a web-based location:
1. Open `$(src)/bento-frontend/public/index.html`.
2. Replace line `` with ``
Option B: Using a local file in your repo:
1. The location is specified in the git repo and is in the file: `$(src)/bento-frontend/public/`
2. Replace line `` with ``
### Configuring the Tab Title
The HTML Title element `
` defines the document's title that is shown in a browser's title bar or a page's tab.
The Title, or tab text, can be specified as follows:
1. Open `$(src)/bento-frontend/public/index.html`.
2. Replace line `Bento` with `{ title you want}`
## Global Header
The Global header appears at the top of all Bento-based applications. It displays a platform-specific logo and image.
### Configuring the Global Header Logo
1. Open `$(src)/bento-frontend/src/bento/globalHeaderData.js`.
2. Set field `globalHeaderLogo` with stored image URL.
3. An optional embedded link can be specified in the field `globalHeaderLogoLink`.
3. Set field `globalHeaderLogoAltText` to the ALT tags for the Global Header Logo.
4. Example:
```javascript
export default {
globalHeaderLogo: '',
globalHeaderLogoLink: '',
globalHeaderLogoAltText: ''
...
}
```
### Configuring the Global Header Image
1. Open `$(src)/bento-frontend/src/bento/globalHeaderData.js`.
2. Set field `globalHeaderImage` with a stored image URL.
3. Example:
```javascript
export default {
...
globalHeaderImage: '',
};
```
## Global Footer
The Global Footer appears at the bottom of every page in a Bento-based application. The Global Footer may be used to display an organization logo and additional links, that may be helpful for the end user, such as documentation, support email and social media platforms.

**The Global Footer.** Displayed are the elements of the Global Footer.
### Configuring the Organization Logo
1. Open `$(src)/bento-frontend/src/bento/globalFooterData.js`.
2. Set field `footerLogoImage` with stored image URL.
3. Example:
```javascript
export default {
footerLogoImage: '',
...
};
```
### Configuring Static Footer Text
1. Open `$(src)/bento-frontend/src/bento/footer.js`.
2. Set the field `footerStaticText` to the text of your choice.
3. Example:
```javascript
export default {
...
footerStaticText: '',
...
};
```
### Configuring the Footer Subsections
A Footer subsection may be defined as a column of anchor links along with a column header. These are optional components; if no footer subsections are specified, none will be displayed. Bento allows a maximum of *3* footer subsections to be displayed. If you specify more than 3 footer subsections, **Bento will display the first three without any error or warning messages**.
Each Footer Subsection has several components: Header, Links, Link Text, Link Types, Link Icons. Given below are instructions on how to configure each of these components.
1. Open `$(src)/bento-frontend/src/bento/footer.js`.
2. Each Footer Subsection is configured by one element in the `links_sections` list.
3. Set the field `title` to the Footer Subsection Title.
4. Footer subsection links provide an entry point to both internal and external pages. Bento allows a maximum of **4** links per Footer Subsection. Footer subsection links can be specified with the `items` dictionary of a `link_sections` list element.
If you specify more than 4 links, **Bento will display only the first 4 links without any warning or error message.**
* Set the field `text` to the display text for your link.
* Set the field `link` to the link of your choice. Valid links (a) an internal link to a Bento page (b) an external link (c) a valid email address.
* A Footer Subsection Link can also be displayed as an icon. For example, you can embed the icon and link of a social media platform in your Footer Subsection.
5. Here is an example of a Footer Subsection with four types Footer Subsection links:
```javascript
export default {
...
link_sections: [
{
title: '