|  | = Gerrit Code Review - Dashboards | 
|  |  | 
|  | [[custom-dashboards]] | 
|  | == Custom Dashboards | 
|  |  | 
|  | A custom dashboard is shown in a layout similar to the per-user | 
|  | dashboard, but the sections are entirely configured from the URL. | 
|  | Because of this custom dashboards are stateless on the server side. | 
|  | Users or projects can simply trade URLs using an external system like | 
|  | a project wiki, or site administrators can put the links into the | 
|  | site's `GerritHeader.html` or `GerritFooter.html`. | 
|  |  | 
|  | Dashboards are available via URLs like: | 
|  | ---- | 
|  | /dashboard/?title=Custom+View&To+Review=reviewer:john.doe@example.com&Pending+In+myproject=project:myproject+is:open | 
|  | ---- | 
|  | This opens a view showing the title "Custom View" with two sections, | 
|  | "To Review" and "Pending in myproject": | 
|  | ---- | 
|  | Custom View | 
|  |  | 
|  | To Review | 
|  |  | 
|  | Results of `reviewer:john.doe@example.com` | 
|  |  | 
|  | Pending In myproject | 
|  |  | 
|  | Results of `project:myproject is:open` | 
|  | ---- | 
|  |  | 
|  | The dashboard URLs are easy to configure. All keys and values in the | 
|  | URL are encoded as query parameters. Set the page and window title | 
|  | using an optional `title=Text` parameter. | 
|  |  | 
|  | Each section's title is defined by the parameter name, the section | 
|  | display order is defined by the order the parameters appear in the | 
|  | URL, and the query results are defined by the parameter value. To | 
|  | limit the number of rows in a query use `limit:N`, otherwise the | 
|  | entire result set will be shown (up to the user's query limit). | 
|  |  | 
|  | Parameters may be separated from each other using any of the following | 
|  | characters, as some users may find one more readable than another: | 
|  | `&` or `;` or `,` | 
|  |  | 
|  | The special `foreach=...` parameter is designed to facilitate | 
|  | more easily writing similar queries in a dashboard.  The value of the | 
|  | foreach parameter will be used in every query in the dashboard by | 
|  | appending it to their ends with a space (ANDing it with the queries). | 
|  |  | 
|  | Example custom dashboard using foreach to constrain a dashboard | 
|  | to changes for the current user: | 
|  |  | 
|  | ---- | 
|  | /dashboard/?title=Mine&foreach=owner:self&My+Pending=is:open&My+Merged=is:merged | 
|  | ---- | 
|  |  | 
|  |  | 
|  | [[project-dashboards]] | 
|  | == Project Dashboards | 
|  |  | 
|  | It is possible to share custom dashboards at a project level. To do | 
|  | this define the dashboards in a `+refs/meta/dashboards/*+` branch of the | 
|  | project. For each dashboard create a config file. The file path/name | 
|  | will be used as name (equivalent to a title in a custom dashboard) for | 
|  | the dashboard. | 
|  |  | 
|  | Example of a dashboard config file: | 
|  |  | 
|  | ---- | 
|  | [dashboard] | 
|  | description = Most recent open and merged changes. | 
|  | [section "Open Changes"] | 
|  | query = status:open project:myProject limit:15 | 
|  | [section "Merged Changes"] | 
|  | query = status:merged project:myProject limit:15 | 
|  | ---- | 
|  |  | 
|  | Once defined, project dashboards are accessible using stable URLs by | 
|  | using the project name, refname and pathname of the dashboard via URLs | 
|  | , e.g. create a dashboard config file named `Main` and push it | 
|  | to `refs/meta/dashboards/Site` branch of All-Projects, then access it | 
|  | like: | 
|  | ---- | 
|  | /#/projects/All-Projects,dashboards/Site:Main | 
|  | ---- | 
|  |  | 
|  | Project dashboards are inherited from ancestor projects unless | 
|  | overridden by dashboards with the same ref and name.  This makes | 
|  | it easy to define common dashboards for every project by simply | 
|  | defining project dashboards on the All-Projects project. | 
|  |  | 
|  | === Token `${project}` | 
|  |  | 
|  | Project dashboard queries may contain the special `${project}` token | 
|  | which will be replaced with the name of the project to which the | 
|  | dashboard is being applied.  This is useful for defining dashboards | 
|  | designed to be inherited.  With this token, it is possible to cause a | 
|  | query in a project dashboard to be restricted to only changes for the | 
|  | project in which an inherited dashboard is being applied by simply | 
|  | adding `project:${project}` to the query in the dashboard. | 
|  |  | 
|  | The `${project}` token can also be used in the link:#dashboard.title[ | 
|  | dashboard title] and in the link:#dashboard.description[dashboard | 
|  | description]. | 
|  |  | 
|  | === Section `dashboard` | 
|  |  | 
|  | [[dashboard.title]]dashboard.title:: | 
|  | + | 
|  | The title of the dashboard. | 
|  | + | 
|  | If not specified the path of the dashboard config file is used as | 
|  | title. | 
|  |  | 
|  | [[dashboard.description]]dashboard.description:: | 
|  | + | 
|  | The description of the dashboard. | 
|  |  | 
|  | dashboard.foreach:: | 
|  | + | 
|  | The value of the foreach parameter gets appended to every query in the | 
|  | dashboard. | 
|  | + | 
|  | Example dashboard config section to constrain the entire dashboard to | 
|  | the project to which it is applied: | 
|  | + | 
|  | ---- | 
|  | [dashboard] | 
|  | foreach = project:${project} | 
|  | ---- | 
|  |  | 
|  |  | 
|  | === Section `section` | 
|  |  | 
|  | section.<name>.query:: | 
|  | + | 
|  | The change query that should be used to populate the section with the | 
|  | given name. | 
|  |  | 
|  | [[project-default-dashboard]] | 
|  | == Project Default Dashboard | 
|  |  | 
|  | It is possible to define a default dashboard for a project in the | 
|  | projects `project.config` file in the `refs/meta/config` branch: | 
|  |  | 
|  | ---- | 
|  | [dashboard] | 
|  | default = refs/meta/dashboards/main:default | 
|  | ---- | 
|  |  | 
|  | The dashboard set as the default dashboard will be inherited as the | 
|  | default dashboard by child projects if they do not define their own | 
|  | default dashboard. The `local-default` entry makes it possible to | 
|  | define a different default dashboard that is only used by this project | 
|  | but not inherited to the child projects. | 
|  |  | 
|  | ---- | 
|  | [dashboard] | 
|  | default = refs/meta/dashboards/main:default | 
|  | local-default = refs/meta/dashboards/main:local | 
|  | ---- | 
|  |  | 
|  | GERRIT | 
|  | ------ | 
|  | Part of link:index.html[Gerrit Code Review] | 
|  |  | 
|  | SEARCHBOX | 
|  | --------- |