From 8864fb6a8e5b1587037c954dc42a35a34ecd6422 Mon Sep 17 00:00:00 2001 From: Jeroen Ooms Date: Sun, 7 Jul 2024 11:03:34 +0200 Subject: [PATCH] support x-forwarded-for for multiverse --- app.js | 1 + static/pkginfo.js | 3 ++- views/pkginfo.pug | 8 +++----- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app.js b/app.js index 8c2087a..1efe0ea 100644 --- a/app.js +++ b/app.js @@ -37,6 +37,7 @@ app.use(function(req, res, next){ req.universe = process.env.UNIVERSE; } else if(req.app.get('env') === 'production'){ req.universe = req.hostname.replace('.r-universe.dev', ''); + res.locals.vhost = req.headers['r-universe-vhost']; } res.locals.universe = req.universe || 'ropensci'; res.locals.node_env = req.app.get('env'); diff --git a/static/pkginfo.js b/static/pkginfo.js index 1be4ca3..4cc099f 100644 --- a/static/pkginfo.js +++ b/static/pkginfo.js @@ -7,9 +7,10 @@ function update_copy_gist(){ var link = $('#copy-code-button').unbind("click"); var tooltip_text = 'Copy to clipboard'; link.click(function(e){ + var vhost = $(".universe-vhost-url").text(); var txt = (universe == 'cran') ? `install.packages("${package}", repos = "https://cloud.r-project.org")` : - `install.packages("${package}", repos = c("https://${universe}.r-universe.dev", "https://cloud.r-project.org"))`; + `install.packages("${package}", repos = c("${vhost}", "https://cloud.r-project.org"))`; navigator.clipboard.writeText(txt).then(function(e){ link.attr('data-bs-original-title', 'Copied!').tooltip('dispose').tooltip('show'); link.attr('data-bs-original-title', tooltip_text); diff --git a/views/pkginfo.pug b/views/pkginfo.pug index a02dfe6..6cc982a 100644 --- a/views/pkginfo.pug +++ b/views/pkginfo.pug @@ -101,15 +101,13 @@ block content span.package-details-gist-name #{Package} span.pl-pds ' | , - span.pl-v repos + span.pl-v repos span.pl-k = span.nocran | c( span.pl-s span.pl-pds ' - | https:// - span.title-universe-name #{universe} - | .r-universe.dev + span.universe-vhost-url https://#{vhost || `${universe}.r-universe.dev`} span.pl-pds ' | , span.pl-s @@ -360,4 +358,4 @@ block after_scripts script(src='https://cdnjs.cloudflare.com/ajax/libs/chartjs-plugin-annotation/3.0.1/chartjs-plugin-annotation.min.js') script(src='https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.30.1/moment.min.js') script(src='https://cdnjs.cloudflare.com/ajax/libs/chartjs-adapter-moment/1.0.1/chartjs-adapter-moment.min.js') - script(src='pkginfo.js?nocache=2') + script(src='pkginfo.js?nocache=3')