NIH | National Cancer Institute | NCI Wiki  

Error rendering macro 'rw-search'

null

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 27 Next »

Contents of this page

Branding NBIA Classic

In order to brand NBIA, the developer will need to download the code from GitHub https://github.com/CBIIT/national-biomedical-image-archive and build the application using the ant target build:all.

Branding in NBIA is accomplished by editing and or replacing the objects in the branding folders found in /software/common/resources/branding. The nbia folder contained within is the default branding for NBIA. The sub folder images contains the customizable images for the application, they include:

NameDimensions
FNLfCR-LOGO.png 200 x 39
footer_usagov.gif127 x 31
Logo-NCIA.jpg500 x  53
nci-header.png300 x 38
nci-link.png300 x 38
NCI-logo-white.png54 x 32
NCICBLOGO.gif126 x 43
white-ncilogo.gif263 x 39
white-nciurl.gif99 x 39
white-nihtext.gif208 x 39

To use your own images simply replace the image while keeping the same name as the original one in your new folder, and the build will update it accordingly.  At the base level of the folder are the XHTML/properties files that allow customization, they include:

  • appFooter.xhtml - The footer of the application
  • appHeader.xhtml - The header of the application
  • branding.properties - Contains the application name property
  • ccHeader.xhtml - Legacy file for cancer center logos, to be removed
  • footer.xhtml- Legacy file for footers, to me removed
  • legalRules.xhtml - Legal rules when signing up
  • mainLayout.xhtml - Layout with session timer
  • mainLayoutTemplate.xhtml - Overall layout of the application
  • mainLayoutWithoutSessionTimeout.xhtml- Layout without session timer
  • mainMenu.xhtml - Top menu bar
  • ncia_messages.properties - Various messages used in the application
  • nciHeader.xhtml - Application header
  • quickLinks.xhtml - External links
  • sessionExpired.jsp - Page shown when session expires
  • siteMap.xhtml - Site map at bottom of page
  • slideshow.css - CSS for the slideshow page
  • styleSheet.css - Main CSS for the application
  • subMenu.xhtml - Sub menus in the menu bar
  • welcome.xhtml - Main login page
  • welcomeText.xhtml - Legacy welcome page, to be removed

Building a Branded Version

To create and build a branded version copy the example nbia folder to a new folder. As an example assume the copied folder is ncia and you plan to make a version named NCIA.  Copy and name the folder and edit accordingly. Note the ncia_messages.properties contains much of the applications textual information and branding.properties contains the application names.  Once you have edited the files the edit install.properties and the defaultAHP3.properties in the /software/build directory.  Specifically the branding properties need to be specified, here is an example for naming an application NCIA

##############################################
### New Branding Properties ###
##############################################
branding.appname=NCIA
branding.folder=ncia

Once that is complete, execute the build:all ant target and the new war files in the directory (nbia-source-directory)/software/target/dist/exploded/nbia-wars/ will be properly branded.  Replace the war files in tomcat\webapps with the branded ones, delete the nbia-api, ncia, and nbia-download and restart tomcat.

For the JNLP Download Manager to work correctly a Java signing certificate must be used to sign the jar files used by Download Manager.  If you do not have a signing certificate you can pull the following jar files from the NBIA install files ncia.war: ncia.war\NBIADownloadManager.jar and the folder ncia.war\download-mgr-dependencies and replace the files in your generated ncia.war.

XHTML/Facelets Basics

For all of the XHTML files that can be specified through the branding process, they MUST start with:

<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets">

and they MUST finish up with:

</ui:composition>

Within the composition, almost any XHTML can be specified. 

Entities

The one exception to watch out for are entities such as non-breaking spaces. Including these directly will cause the rendering of the page to fail, and users will see a big mess in their browser. In other words &nbsp; will break rendering. Instead, the entity must be enclosed in a "verbatim" tag. Please note that another namespace is defined in the composition tag (in red below).

<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:f="http://java.sun.com/jsf/core">
  <f:verbatim>&amp;nbsp;</f:verbatim>
</ui:composition>

Quick Links XHTML

The Quick Links XHTML is imported into the scope of an XHTML table. Any XHTML specified here should be wrapped in a <tr> and at least one <td> element.
For an example see: https://github.com/CBIIT/national-biomedical-image-archive/blob/master/software/common/resources/branding/niams/quickLinks.xhtml

Other XHTML

There are no restrictions on XHTML for the welcome title/text or the footer.

Branding NBIA Client

Branding files are in directories within the assets/brand directory. Each subdirectory represents one brand.

Which brand directory to be used is determined by the content of the text file assets/brand/currentBrand, it should contain the name of a directory within assets/brand.

If there is no assets/brand/currentBrand file, or its contents don't point to a valid directory, the default brand "nbia" will be used.

If there are any files missing from the brand directory named in assets/brand/currentBrand, the file from the default directory will be used.

If you only want to change one aspect of a brand, only include that file, the default directory versions will be used for the others.

Branding consists of the following files.

  • logo.png:  A logo (41 pixels high)
  • footer.html: a snippet of html that is at the bottom. If included, %VERSION% will be replaced with the client version number (see #6).
  • newAccountUrl.txt: URL for "New account" button on login screen.
  • accountHelpUrl.txt: URL for "Account help" button on login screen.
  • downloaderUrl.txt: URL for "Get Data Retriever" button in Download popup.
  • versionSuffix.txt: An optional string that will be appended to the version number, if the version number is included in the footer.
  • customMenu.json: This is the top horizontal menu. Look at the default (nbia) for an example.

    It is a JSON array, each top level object represents one top-level menu item:

  •  "entryTitle": The text of the top level menu item.
  •  "menuData": "target" within "menuData" is the URL of the top level menu item if you don't use a dropdown menu for this top level item.
  •  "menuDataDropdown": an array of dropdown menu items:
  •  "menuText": the text for the dropdown menu item.
  •  "target": the URL for the dropdown menu item.

Example

[
    {
        "entryTitle": "Home",
        "menuData": {
            "target": "http://www.cancerimagingarchive.net"
        }
    },
    {
        "entryTitle": "News",
        "menuData": {
            "target": "http://www.cancerimagingarchive.net/news/"
        }
    },
    {
        "entryTitle": "About Us",
        "menuDataDropdown": [
            {
                "menuText": "About The Cancer Imaging Archive (TCIA)",
                "target": "http://www.cancerimagingarchive.net/about-the-cancer-imaging-archive-tcia"
            },
            {
                "menuText": "About the Cancer Imaging Program (CIP)",
                "target": "http://www.cancerimagingarchive.net/about-the-cancer-imaging-program-cip/"
            },
            {
                "menuText": "About the University of Arkansas for Medical Sciences (UAMS)",
                "target": "http://www.cancerimagingarchive.net/about-the-university-of-arkansas-for-medical-sciences-uams/"
            }
        ]
    },
...
  • No labels