From 0c2dd87601f0fe0dfe2e3ae35596f25ae7fc080e Mon Sep 17 00:00:00 2001 From: Elastic Jasper Date: Fri, 9 Sep 2016 18:05:22 -0400 Subject: [PATCH] Backport PR #8207 --------- **Commit 1:** Provide method to render without sending .kibana/config * Original sha: 8fdcb8340b7cfb9f858cc9cf7baf68f0b9f008ee * Authored by Jonathan Budzenski on 2016-09-09T19:05:07Z **Commit 2:** Provide explicit render methods for including and excluding settings * Original sha: b680ba2f497fc0a3e21e10fe22df8087049f70a3 * Authored by Jonathan Budzenski on 2016-09-09T20:41:11Z --- src/ui/index.js | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/src/ui/index.js b/src/ui/index.js index ada8fa2a0f069..7fba5eaef9ccc 100644 --- a/src/ui/index.js +++ b/src/ui/index.js @@ -60,10 +60,8 @@ export default async (kbnServer, server, config) => { } }); - server.decorate('reply', 'renderApp', async function (app) { - const isElasticsearchPluginRed = server.plugins.elasticsearch.status.state === 'red'; - const uiSettings = server.uiSettings(); - const payload = { + async function getPayload(app) { + return { app: app, nav: uiExports.navLinks.inOrder, version: kbnServer.version, @@ -72,17 +70,36 @@ export default async (kbnServer, server, config) => { basePath: config.get('server.basePath'), serverName: config.get('server.name'), uiSettings: { - defaults: await uiSettings.getDefaults(), - user: isElasticsearchPluginRed ? {} : await uiSettings.getUserProvided() + defaults: await server.uiSettings().getDefaults(), + user: {} }, vars: defaults(app.getInjectedVars() || {}, uiExports.defaultInjectedVars), }; + } + function viewAppWithPayload(app, payload) { return this.view(app.templateName, { app: app, loadingGif: loadingGif, kibanaPayload: payload, bundlePath: `${config.get('server.basePath')}/bundles`, }); - }); + } + + async function renderApp(app) { + const isElasticsearchPluginRed = server.plugins.elasticsearch.status.state === 'red'; + const payload = await getPayload(app); + if (!isElasticsearchPluginRed) { + payload.uiSettings.user = await server.uiSettings().getUserProvided(); + } + return viewAppWithPayload.call(this, app, payload); + } + + async function renderAppWithDefaultConfig(app) { + const payload = await getPayload(app); + return viewAppWithPayload.call(this, app, payload); + } + + server.decorate('reply', 'renderApp', renderApp); + server.decorate('reply', 'renderAppWithDefaultConfig', renderAppWithDefaultConfig); };