Settings pages

  Written by The Jahia Team
   Estimated reading time:

Declaration of settings

Administration panels are declared by adding an adminRoute entry in the registry : 

window.jahia.uiExtender.registry.add('adminRoute', 'test', {
    targets: ['jcontent:10'],
    label: 'ns:label.title',
    icon: <DefaultEntry/>,
    isSelectable: true,
    render: <MyComponent/>
});

 

  • targets: the locations where the link should appear. See locations below.
  • label: the label for the link.  The key must be prefixed by a namespace (ns:label.key)
  • icon : the icon displayed in the tree. For consistency, we advise you to use an icon only for entries at the first level. Subentries should not have icons. The icon must be a component, but you can use  the helper function toIconComponent() (from @jahia/moonstone, or window.jahia.moonstone) to transform a path or an inline SVG to an icon component, for instance : icon: toIconComponent('<svg style="width:24px;height:24px" viewBox="0 0 24 24"><path fill="currentColor" d="M19 6V5A2 2 0 0 0 17 3H15A2 2 0 0 0 13 5V6H11V5A2 2 0 0 0 9 3H7A2 2 0 0 0 5 5V6H3V20H21V6M19 18H5V8H19Z" /></svg>') or toIconComponent('https://image.flaticon.com/icons/svg/1973/1973617.svg')
  • isSelectable : is the entry a selectable link, or just an entry in the tree
  • render : the component that will be rendered in the route
  • iframeUrl : a simple replacement for render, if you just want to display a dedicated url in an iframe, and do not need to write a React component. The url must contain the context path (available at window.contextJsParameters.contextPath). You can use $site-key and $lang placeholder. This is equivalent to the following : 
render: function () {
    return window.jahia.uiExtender.getIframeRenderer(window.contextJsParameters.contextPath + '/cms/adminframe/default/sites/$site-key.linkChecker.html');
}
  • requiredPermission : a permission required to access thie entry
  • requireModuleInstalledOnSite : a module that must be deployed on the site. This is usually the module which contains the extension.

Locations

The target defines where the item will be added.

Settings can be added in :

  • Administration>Server accordion
    The location for your Server Settings. The target must start with administration-server.  See here for an example of a server administration panel declaration.
  • Administration>Site accordion
    The location for your Site Settings that relate to administration functionality. Users require the Site administration access permission to see these panels. The target must start with administration-sites. See here for an example of a site administration panel declaration.
  • jContent>Additional accordion
    The location for your Site Settings that fill functional purposes, for example, that are used by editors. The target must start with jcontent. See here for an example of the declaration of a panel in the additional accordion.
  • Dashboard>My workspace
    The location for the User Dashboard panels, which are settings panels that belong to a user. The target must start with dashboard. See here for an example of a dashboard panel declaration.

If you want to add under an existing item, you can use <main-target>-<parent-item-key> - for example, administration-server-usersAndRole A tree item will be created in the administratation accordion, under the usersAndRole entry.