/**
  * Display the "site detail" page.
  *
  * @param siteToken
  * @param request
  * @return
  */
 @RequestMapping("/sites/{siteToken}")
 public ModelAndView siteDetail(
     @PathVariable("siteToken") String siteToken, HttpServletRequest request) {
   Tracer.start(TracerCategory.AdminUserInterface, "siteDetail", LOGGER);
   try {
     Map<String, Object> data = createBaseData(request);
     ITenant tenant = (ITenant) data.get(DATA_TENANT);
     IDeviceManagement management = SiteWhere.getServer().getDeviceManagement(tenant);
     ISite site = management.getSiteByToken(siteToken);
     if (site != null) {
       data.put("site", site);
       return new ModelAndView("sites/detail", data);
     }
     return showError("Site for token '" + siteToken + "' not found.");
   } catch (NoTenantException e) {
     return showTenantChoices(getUrl(request), request);
   } catch (SiteWhereException e) {
     return showError(e);
   } finally {
     Tracer.stop(LOGGER);
   }
 }