#loading required libraries
  #library(remind)
  library(knitr)
  library(flexdashboard)
  # setting global R chunk options (https://yihui.name/knitr/options/#chunk_options)
  knitr::opts_chunk$set(dev='svg', fig.asp = 1 ) # fig.asp = default aspect ratio
  # loading diagnosis results
  diag <- reportDiagnosis(gdx=gdx, statsFile=statsFile, chartType="plotly")
  #loading REMIND results and plots 
  out <- reportCharts(gdx=gdx, regionMapping=regionMapping, hist=hist, reportfile=reportfile, chartType="plotly")
  #data frame with help tooltips
  # helpTooltip_df <- data.frame(
  #   title=c("Convergence Report","Carbon Price","CO2 Emissions per Sector","Main Greenhouse Gases Emissions","F-Gases","Kyoto Gases Emissions","Other Gases"),
  #   placement=c("right","right","top","right","right","left","left"))
  helpTooltip_df <- data.frame(
    title=c("Convergence Report","Execution time","Summary",
            "Carbon Price","CO2 Emissions per Sector","Kyoto Gases Emissions",
            "Total Primary Energy","Primary Energy Prices","Coal production","Gas production","Oil production","Uranium production","Biomass production",
            "Secondary Energy Prices","Total Secondary Energy","Electricity Secondary Energy","Liquids Secondary Energy","Gases Secondary Energy","Heat Secondary Energy","Solids Secondary Energy","Hydrogen Secondary Energy",
            "Final Energy Prices","Total Final Energy","Buildings Final Energy Prices","Buildings Final Energy","Transport Final Energy Prices","Transport Final Energy","Industry Final Energy Prices","Industry Final Energy"),
    placement=c("right","none","top",
                "none","right","left",
                "right","right","left","left","left","left","left",
                "right","right","right","right","right","left","top","top",
                "right","right","right","right","right","right","left","top"))
  legend <- c(diag$legend,out$legend)
  #control region menus appearance
  showMenu <- list()
  for (region in names(out$data$regions))
    showMenu[[region]] <- TRUE
  #aesthetics
  aesthetics <- list(
    color = c(  "Iteration Limit" = "warning",
                # solver status
                "optimal"="success",
                "locally optimal"="success", #theme colors “primary”, “info”, “success”, “warning”, and “danger”
                "unbounded"="danger",
                "infeasible"="danger",
                "locally infeasible"="danger",
                "intermediate infeasible"="danger",
                "intermediate nonoptimal"="warning",
                # solving time
                "solvingTime"="primary"),
    icon  = c(  "Iteration Limit" = "glyphicon glyphicon-exclamation-sign", #fa-exclamation-triangle 
                # solver status
                "optimal"="glyphicon glyphicon-thumbs-up", #fa-thumbs-up
                "locally optimal"="glyphicon glyphicon-thumbs-up", #fa-thumbs-up
                "unbounded"="glyphicon glyphicon-exclamation-sign", #fa-exclamation-triangle
                "infeasible"="glyphicon glyphicon-exclamation-sign", #fa-exclamation-triangle
                "locally infeasible"="glyphicon glyphicon-exclamation-sign", #fa-exclamation-triangle
                "intermediate infeasible"="glyphicon glyphicon-exclamation-sign", #fa-exclamation-triangle
                "intermediate nonoptimal"="glyphicon glyphicon-exclamation-sign", #fa-exclamation-triangle
                # solving time
                "solvingTime"="glyphicon glyphicon-time")
    ) 

Diagnosis {data-orientation=rows data-icon="glyphicon glyphicon-stats"}

Side Navigation {.sidebar .sidebarDiagnosis data-width=60}

{class="glyphicon glyphicon-stats sidebar-button selected"} {class="glyphicon glyphicon-link sidebar-button"}

Row

Iterations number {data-width=200}

  valueBox(diag$summary$status, 
           caption=diag$summary$statusMessage, 
           color = aesthetics$color[[diag$summary$status]],
           icon = aesthetics$icon[[diag$summary$status]])

Solving time {data-width=200}

  valueBox(diag$data$runTime$formated,
           caption=paste0("The runtime was ", diag$data$runTime$longFormat), 
           color = aesthetics$color[["solvingTime"]],
           icon = aesthetics$icon[["solvingTime"]])

Additional info {data-width=400}

Execution type = r diag$data$runStatistics$config$gms$optimization

Row {data-height=300}

Convergence Report {.hasModal data-width=300 data-target=".surplusConvergence"}

  diag$plotly$'Convergence Report' 

{data-width=100}

# regions mapping
  out$maps$world

Row {data-height=400}

Execution time

  diag$plotly$'Execution time'

Summary {.hasModal data-target=".iterationDetails"}

  diag$plotly$'Summary'

Coupled Models Report {data-orientation=rows .hidden data-icon="glyphicon glyphicon-link"}

Side Navigation {.sidebar .sidebarDiagnosis data-width=60}

{class="glyphicon glyphicon-stats sidebar-button"} {class="glyphicon glyphicon-link sidebar-button selected"}

Row

Electricity

Transport

Row

Air Polution

Damages

Emissions {data-orientation=columns data-icon="glyphicon glyphicon-cloud"}

Side Navigation {.sidebar .sidebarEmissions data-width=60}

{class="ico-GLO selected sidebar-button"} {class="ico-regions sidebar-button"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#emissions---eur){class="ico-EUR sidebar-button"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#emissions---neu){class="ico-NEU sidebar-button"}')

Column {data-width=600}

Carbon Price

  out$plotly$emissions$'Carbon Price'$world

CO2 Emissions per Sector

  out$plotly$emissions$'CO2 Emissions per Sector'$world

Column {data-width=300}

Main Greenhouse Gases Emissions

  out$plotly$emissions$'Main Greenhouse Gases Emissions'$world

F-Gases

  out$plotly$emissions$'F-Gases'$world

Column {data-width=300}

Kyoto Gases Emissions {data-height=200}

  out$plotly$emissions$'Kyoto Gases Emissions'$world

Other Gases {data-height=400}

  out$plotly$emissions$'Other Gases'$world

Emissions - Regional {data-orientation=columns .hidden data-icon="glyphicon glyphicon-th"}

Side Navigation {.sidebar .sidebarEmissions data-width=60}

{class="ico-GLO sidebar-button"} {class="ico-regions sidebar-button selected"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#emissions---eur){class="ico-EUR sidebar-button"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#emissions---neu){class="ico-NEU sidebar-button"}')

Column {data-width=600}

Carbon Price

  out$plotly$emissions$'Carbon Price'$regions

CO2 Emissions per Sector

  out$plotly$emissions$'CO2 Emissions per Sector'$regions

Column {data-width=300}

Main Greenhouse Gases Emissions

  out$plotly$emissions$'Main Greenhouse Gases Emissions'$regions

F-Gases

  out$plotly$emissions$'F-Gases'$regions

Column {data-width=300}

Kyoto Gases Emissions {data-height=200}

  out$plotly$emissions$'Kyoto Gases Emissions'$regions

Other Gases {data-height=400}

  out$plotly$emissions$'Other Gases'$regions

Emissions - EUR {data-orientation=columns .hidden data-icon="glyphicon glyphicon-th"}

Side Navigation {.sidebar .sidebarEmissions data-width=60}

{class="ico-GLO sidebar-button"} {class="ico-regions sidebar-button"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#emissions---eur){class="ico-EUR sidebar-button selected"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#emissions---neu){class="ico-NEU sidebar-button"}')

Column {data-width=600}

Carbon Price

  out$plotly$emissions$'Carbon Price'$EUR

CO2 Emissions per Sector

  out$plotly$emissions$'CO2 Emissions per Sector'$EUR

Column {data-width=300}

Main Greenhouse Gases Emissions

  out$plotly$emissions$'Main Greenhouse Gases Emissions'$EUR

F-Gases

  out$plotly$emissions$'F-Gases'$EUR

Column {data-width=300}

Kyoto Gases Emissions {data-height=200}

  out$plotly$emissions$'Kyoto Gases Emissions'$EUR

Other Gases {data-height=400}

  out$plotly$emissions$'Other Gases'$EUR

Emissions - NEU {data-orientation=columns .hidden data-icon="glyphicon glyphicon-th"}

Side Navigation {.sidebar .sidebarEmissions data-width=60}

{class="ico-GLO sidebar-button"} {class="ico-regions sidebar-button"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#emissions---eur){class="ico-EUR sidebar-button"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#emissions---neu){class="ico-NEU sidebar-button selected"}')

Column {data-width=600}

Carbon Price

  out$plotly$emissions$'Carbon Price'$NEU

CO2 Emissions per Sector

  out$plotly$emissions$'CO2 Emissions per Sector'$NEU

Column {data-width=300}

Main Greenhouse Gases Emissions

  out$plotly$emissions$'Main Greenhouse Gases Emissions'$NEU

F-Gases

  out$plotly$emissions$'F-Gases'$NEU

Column {data-width=300}

Kyoto Gases Emissions {data-height=200}

  out$plotly$emissions$'Kyoto Gases Emissions'$NEU

Other Gases {data-height=400}

  out$plotly$emissions$'Other Gases'$NEU

Primary Energy {data-orientation=columns}

Side Navigation {.sidebar .sidebarPrimaryEnergy data-width=60}

{class="ico-GLO sidebar-button selected"} {class="ico-regions sidebar-button"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#primary-energy---eur){class="ico-EUR sidebar-button"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#primary-energy---neu){class="ico-NEU sidebar-button"}')

Column {data-width=600}

Primary Energy Prices

  out$plotly$PE$'Primary Energy Prices'$world

Total Primary Energy

  out$plotly$PE$'Total Primary Energy'$world$abs
  out$plotly$PE$'Total Primary Energy'$world$perc
  out$plotly$PE$'Total Primary Energy'$world$percapita

Column {data-width=300}

Coal production

  out$plotly$PE$'Coal production'$world

Gas production

  out$plotly$PE$'Gas production'$world

Column {data-width=300}

Oil production

  out$plotly$PE$'Oil production'$world

Uranium production

  out$plotly$PE$'Uranium production'$world

Biomass production

  out$plotly$PE$'Biomass production'$world

Primary Energy - Regional {data-orientation=columns .hidden data-icon="glyphicon glyphicon-th"}

Side Navigation {.sidebar .sidebarPrimaryEnergy data-width=60}

{class="ico-GLO sidebar-button"} {class="ico-regions sidebar-button selected"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#primary-energy---eur){class="ico-EUR sidebar-button"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#primary-energy---neu){class="ico-NEU sidebar-button"}')

Column {data-width=600}

Total Primary Energy

  out$plotly$PE$'Total Primary Energy'$regions$abs
  out$plotly$PE$'Total Primary Energy'$regions$perc
  out$plotly$PE$'Total Primary Energy'$regions$percapita

Column {data-width=300}

Coal production

  out$plotly$PE$'Coal production'$regions

Gas production

  out$plotly$PE$'Gas production'$regions

Column {data-width=300}

Oil production

  out$plotly$PE$'Oil production'$regions

Uranium production

  out$plotly$PE$'Uranium production'$regions

Biomass production

  out$plotly$PE$'Biomass production'$regions

Primary Energy - EUR {data-orientation=columns .hidden data-icon="glyphicon glyphicon-th"}

Side Navigation {.sidebar .sidebarPrimaryEnergy data-width=60}

{class="ico-GLO sidebar-button"} {class="ico-regions sidebar-button"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#primary-energy---eur){class="ico-EUR sidebar-button selected"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#primary-energy---neu){class="ico-NEU sidebar-button"}')

Column {data-width=600}

Total Primary Energy

  out$plotly$PE$'Total Primary Energy'$EUR$abs
  out$plotly$PE$'Total Primary Energy'$EUR$perc
  out$plotly$PE$'Total Primary Energy'$EUR$percapita

Column {data-width=300}

Coal production

  out$plotly$PE$'Coal production'$EUR

Gas production

  out$plotly$PE$'Gas production'$EUR

Column {data-width=300}

Oil production

  out$plotly$PE$'Oil production'$EUR

Uranium production

  out$plotly$PE$'Uranium production'$EUR

Biomass production

  out$plotly$PE$'Biomass production'$EUR

Primary Energy - NEU {data-orientation=columns .hidden data-icon="glyphicon glyphicon-th"}

Side Navigation {.sidebar .sidebarPrimaryEnergy data-width=60}

{class="ico-GLO sidebar-button"} {class="ico-regions sidebar-button"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#primary-energy---eur){class="ico-EUR sidebar-button"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#primary-energy---neu){class="ico-NEU sidebar-button selected"}')

Column {data-width=600}

Total Primary Energy

  out$plotly$PE$'Total Primary Energy'$NEU$abs
  out$plotly$PE$'Total Primary Energy'$NEU$perc
  out$plotly$PE$'Total Primary Energy'$NEU$percapita

Column {data-width=300}

Coal production

  out$plotly$PE$'Coal production'$NEU

Gas production

  out$plotly$PE$'Gas production'$NEU

Column {data-width=300}

Oil production

  out$plotly$PE$'Oil production'$NEU

Uranium production

  out$plotly$PE$'Uranium production'$NEU

Biomass production

  out$plotly$PE$'Biomass production'$NEU

Secondary Energy {data-orientation=columns}

Side Navigation {.sidebar .sidebarSecondaryEnergy data-width=60}

{class="ico-GLO sidebar-button selected"} {class="ico-regions sidebar-button"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#secondary-energy---eur){class="ico-EUR sidebar-button"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#secondary-energy---neu){class="ico-NEU sidebar-button"}')

Column {data-width=600}

Secondary Energy Prices

  out$plotly$SE$'Secondary Energy Prices'$world

Total Secondary Energy

  out$plotly$SE$'Total Secondary Energy'$world

Column {data-width=300}

Electricity Secondary Energy

  out$plotly$SE$'Electricity Secondary Energy'$world

Liquids Secondary Energy

  out$plotly$SE$'Liquids Secondary Energy'$world

Gases Secondary Energy

  out$plotly$SE$'Gases Secondary Energy'$world

Column {data-width=300}

Heat Secondary Energy

  out$plotly$SE$'Heat Secondary Energy'$world

Solids Secondary Energy

  out$plotly$SE$'Solids Secondary Energy'$world

Hydrogen Secondary Energy

  out$plotly$SE$'Hydrogen Secondary Energy'$world

Secondary Energy - Regional {data-orientation=columns .hidden data-icon="glyphicon glyphicon-th"}

Side Navigation {.sidebar .sidebarSecondaryEnergy data-width=60}

{class="ico-GLO sidebar-button"} {class="ico-regions sidebar-button selected"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#secondary-energy---eur){class="ico-EUR sidebar-button"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#secondary-energy---neu){class="ico-NEU sidebar-button"}')

Column {data-width=600}

Secondary Energy Prices

  out$plotly$SE$'Secondary Energy Prices'$regions

Total Secondary Energy

  out$plotly$SE$'Total Secondary Energy'$regions

Column {data-width=300}

Electricity Secondary Energy

  out$plotly$SE$'Electricity Secondary Energy'$regions

Liquids Secondary Energy

  out$plotly$SE$'Liquids Secondary Energy'$regions

Gases Secondary Energy

  out$plotly$SE$'Gases Secondary Energy'$regions

Column {data-width=300}

Heat Secondary Energy

  out$plotly$SE$'Heat Secondary Energy'$regions

Solids Secondary Energy

  out$plotly$SE$'Solids Secondary Energy'$regions

Hydrogen Secondary Energy

  out$plotly$SE$'Hydrogen Secondary Energy'$regions

Secondary Energy - EUR {data-orientation=columns .hidden data-icon="glyphicon glyphicon-th"}

Side Navigation {.sidebar .sidebarSecondaryEnergy data-width=60}

{class="ico-GLO sidebar-button"} {class="ico-regions sidebar-button"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#secondary-energy---eur){class="ico-EUR sidebar-button selected"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#secondary-energy---neu){class="ico-NEU sidebar-button"}')

Column {data-width=600}

Secondary Energy Prices

  out$plotly$SE$'Secondary Energy Prices'$EUR

Total Secondary Energy

  out$plotly$SE$'Total Secondary Energy'$EUR

Column {data-width=300}

Electricity Secondary Energy

  out$plotly$SE$'Electricity Secondary Energy'$EUR

Liquids Secondary Energy

  out$plotly$SE$'Liquids Secondary Energy'$EUR

Gases Secondary Energy

  out$plotly$SE$'Gases Secondary Energy'$EUR

Column {data-width=300}

Heat Secondary Energy

  out$plotly$SE$'Heat Secondary Energy'$EUR

Solids Secondary Energy

  out$plotly$SE$'Solids Secondary Energy'$EUR

Hydrogen Secondary Energy

  out$plotly$SE$'Hydrogen Secondary Energy'$EUR

Secondary Energy - NEU {data-orientation=columns .hidden data-icon="glyphicon glyphicon-th"}

Side Navigation {.sidebar .sidebarSecondaryEnergy data-width=60}

{class="ico-GLO sidebar-button"} {class="ico-regions sidebar-button"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#secondary-energy---eur){class="ico-EUR sidebar-button"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#secondary-energy---neu){class="ico-NEU sidebar-button selected"}')

Column {data-width=600}

Secondary Energy Prices

  out$plotly$SE$'Secondary Energy Prices'$NEU

Total Secondary Energy

  out$plotly$SE$'Total Secondary Energy'$NEU

Column {data-width=300}

Electricity Secondary Energy

  out$plotly$SE$'Electricity Secondary Energy'$NEU

Liquids Secondary Energy

  out$plotly$SE$'Liquids Secondary Energy'$NEU

Gases Secondary Energy

  out$plotly$SE$'Gases Secondary Energy'$NEU

Column {data-width=300}

Heat Secondary Energy

  out$plotly$SE$'Heat Secondary Energy'$NEU

Solids Secondary Energy

  out$plotly$SE$'Solids Secondary Energy'$NEU

Hydrogen Secondary Energy

  out$plotly$SE$'Hydrogen Secondary Energy'$NEU

Final Energy {data-orientation=columns}

Side Navigation {.sidebar .sidebarFinalEnergy data-width=60}

{class="ico-GLO sidebar-button selected"} {class="ico-regions sidebar-button"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#final-energy---eur){class="ico-EUR sidebar-button"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#final-energy---neu){class="ico-NEU sidebar-button"}')

Column

Final Energy Prices

  out$plotly$FE$'Final Energy Prices'$world

Total Final Energy

  out$plotly$FE$'Total Final Energy'$world

Column

Buildings Final Energy Prices

  out$plotly$FE$'Buildings Final Energy Prices'$world

Buildings Final Energy

  out$plotly$FE$'Buildings Final Energy'$world

Column

Transport Final Energy Prices

  out$plotly$FE$'Transport Final Energy Prices'$world

Transport Final Energy

  out$plotly$FE$'Transport Final Energy'$world

Column

Industry Final Energy Prices

  out$plotly$FE$'Industry Final Energy Prices'$world

Industry Final Energy

  out$plotly$FE$'Industry Final Energy'$world

Final Energy - Regional {data-orientation=columns .hidden data-icon="glyphicon glyphicon-th"}

Side Navigation {.sidebar .sidebarFinalEnergy data-width=60}

{class="ico-GLO sidebar-button"} {class="ico-regions sidebar-button selected"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#final-energy---eur){class="ico-EUR sidebar-button"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#final-energy---neu){class="ico-NEU sidebar-button"}')

Column

Final Energy Prices

  out$plotly$FE$'Final Energy Prices'$regions

Total Final Energy

  out$plotly$FE$'Total Final Energy'$regions

Column

Buildings Final Energy Prices

  out$plotly$FE$'Buildings Final Energy Prices'$regions

Buildings Final Energy

  out$plotly$FE$'Buildings Final Energy'$regions

Column

Transport Final Energy Prices

  out$plotly$FE$'Transport Final Energy Prices'$regions

Transport Final Energy

  out$plotly$FE$'Transport Final Energy'$regions

Column

Industry Final Energy Prices

  out$plotly$FE$'Industry Final Energy Prices'$regions

Industry Final Energy

  out$plotly$FE$'Industry Final Energy'$regions

Final Energy - EUR {data-orientation=columns .hidden data-icon="glyphicon glyphicon-th"}

Side Navigation {.sidebar .sidebarFinalEnergy data-width=60}

{class="ico-GLO sidebar-button"} {class="ico-regions sidebar-button"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#final-energy---eur){class="ico-EUR sidebar-button selected"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#final-energy---neu){class="ico-NEU sidebar-button"}')

Column

Final Energy Prices

  out$plotly$FE$'Final Energy Prices'$EUR

Total Final Energy

  out$plotly$FE$'Total Final Energy'$EUR

Column

Buildings Final Energy Prices

  out$plotly$FE$'Buildings Final Energy Prices'$EUR

Buildings Final Energy

  out$plotly$FE$'Buildings Final Energy'$EUR

Column

Transport Final Energy Prices

  out$plotly$FE$'Transport Final Energy Prices'$EUR

Transport Final Energy

  out$plotly$FE$'Transport Final Energy'$EUR

Column

Industry Final Energy Prices

  out$plotly$FE$'Industry Final Energy Prices'$EUR

Industry Final Energy

  out$plotly$FE$'Industry Final Energy'$EUR

Final Energy - NEU {data-orientation=columns .hidden data-icon="glyphicon glyphicon-th"}

Side Navigation {.sidebar .sidebarFinalEnergy data-width=60}

{class="ico-GLO sidebar-button"} {class="ico-regions sidebar-button"}

  if (!is.null(showMenu$EUR))
    cat('\n[](#final-energy---eur){class="ico-EUR sidebar-button"}')
  if (!is.null(showMenu$NEU))
    cat('\n[](#final-energy---neu){class="ico-NEU sidebar-button selected"}')

Column

Final Energy Prices

  out$plotly$FE$'Final Energy Prices'$NEU

Total Final Energy

  out$plotly$FE$'Total Final Energy'$NEU

Column

Buildings Final Energy Prices

  out$plotly$FE$'Buildings Final Energy Prices'$NEU

Buildings Final Energy

  out$plotly$FE$'Buildings Final Energy'$NEU

Column

Transport Final Energy Prices

  out$plotly$FE$'Transport Final Energy Prices'$NEU

Transport Final Energy

  out$plotly$FE$'Transport Final Energy'$NEU

Column

Industry Final Energy Prices

  out$plotly$FE$'Industry Final Energy Prices'$NEU

Industry Final Energy

  out$plotly$FE$'Industry Final Energy'$NEU
navBarMemory = function(topMenuLabel, sideBarClass){
  result = ""
  result = paste0(result,"<script type='text/javascript'>\n");
  result = paste0(result,"$(document).ready(function () {\n");
  result = paste0(result,"  $(\"",sideBarClass," a\").click(function(){\n");
  result = paste0(result,"  console.log($(this).attr('href'));\n");  
  result = paste0(result,"  console.log($(\".nav.navbar-nav.navbar-left a:contains('",topMenuLabel,"')\").attr('href'));\n"); 
  result = paste0(result,"    $(\".nav.navbar-nav.navbar-left a:contains('",topMenuLabel,"')\").attr('href', $(this).attr('href'));\n");
  result = paste0(result,"    if(!is_chrome){\n");
  result = paste0(result,"      window.FlexDashboardUtils.showPage($(this).attr('href'));\n");
  result = paste0(result,"    }\n"); 
  result = paste0(result,"  })\n");
  result = paste0(result,"})\n");
  result = paste0(result,"</script>");
  return(result)
}
  cat(navBarMemory("Diagnosis",".sidebarDiagnosis"))
  cat(navBarMemory("Emissions",".sidebarEmissions"))
  cat(navBarMemory("Primary Energy",".sidebarPrimaryEnergy"))
  cat(navBarMemory("Secondary Energy",".sidebarSecondaryEnergy"))
  cat(navBarMemory("Final Energy",".sidebarFinalEnergy"))
# function to add html element with unit information
unitDiv = function(tooltipdf){
  title <- as.character(tooltipdf$title) 
  if (!(is.null(legend[[title]]$units))){
    unit <- as.vector(NULL)
    for(i in 1:length(legend[[title]]$units)) 
      unit <- c(unit,paste0("data-unit-", i-1, "=\"", legend[[title]]$units[i], "\""))
    unit <- paste(as.vector(unit),collapse=" ")
    result = ""
    result = paste0(result,"<script type='text/javascript'>\n");
    result = paste0(result,"$(window).load(function () {\n");
    result = paste0(result,"  $('.chart-title').filter(function() { return $(this).clone().children().remove().end().text() == '", title, "' }).each(function(){\n");
    result = paste0(result,"    $(this).append('<i class=\"units\" ", unit, ">",legend[[title]]$units[1],"</i>');\n");
    result = paste0(result,"    })\n");
    result = paste0(result,"})\n");
    result = paste0(result,"</script>");
    return(result)
  }
}
# function to add tooltips
helpTooltip = function(tooltipdf){

  title <- as.character(tooltipdf$title) 
  placement <- as.character(tooltipdf$placement) 

  contents <- gsub('\n', '',gsub('"', '&quot;',paste0('
<div class="tooltipContainer">
  <div class="tooltipDescription">',
    legend[[title]]$description,'
  </div>
  <div class="legendContainer">
    <table class="legendTable">
        <tbody>
            <tr>',
          do.call(paste,lapply(names(legend[[title]]$contents),function(x){
        paste0('<tr><td>',
          ifelse(is.null(legend[[title]]$contents[[x]]$linetype),
                  paste0('<div class="square"><div class="circle" style="background-color:',legend[[title]]$contents[[x]]$fill,';"></div></div>'),
                        paste0('<div class="line" style="border-color:',legend[[title]]$contents[[x]]$fill,'; border-style: ',legend[[title]]$contents[[x]]$linetype,';"></div>')
                        ),'
            </td><td class="legendText">',x,'</td></tr>'
           )
        })),'
        </tbody>
    </table>
  </div>
</div>')))

  result = ""
  result = paste0(result,"<script type='text/javascript'>\n");
  result = paste0(result,"$(window).load(function () {\n");
  result = paste0(result,"  $('.chart-title').filter(function() { return $(this).clone().children().remove().end().text() == '", title, "' }).each(function(){\n");
  if(!(placement == "none"))
    result = paste0(result,"    $(this).append('<i class=\"glyphicon glyphicon-info-sign infoIcon\" data-toggle=\"tooltip\" data-html=\"true\" data-placement=\"right\" title=\"",contents,"\"></i>');\n");
  result = paste0(result,"      $(this).find('[data-toggle=\"tooltip\"]').tooltip({ placement:'",placement,"'});\n");
  result = paste0(result,"  })\n");
  result = paste0(result,"})\n");
  result = paste0(result,"</script>");

  return(result)
}
for(i in 1:nrow(helpTooltip_df)){
  cat(helpTooltip(helpTooltip_df[i,]))
}
for(i in 1:nrow(helpTooltip_df)){
  cat(unitDiv(helpTooltip_df[i,]))
}


pik-piam/remind documentation built on Sept. 9, 2021, 1:09 p.m.