mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 09:19:04 -04:00
This commit is contained in:
parent
1f4edc5301
commit
c4c439ab35
4 changed files with 63 additions and 36 deletions
|
@ -4,6 +4,7 @@
|
|||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
import { Server } from 'hapi';
|
||||
import JoiNamespace from 'joi';
|
||||
import moment from 'moment';
|
||||
import { resolve } from 'path';
|
||||
|
@ -24,9 +25,19 @@ export const code = (kibana: any) =>
|
|||
euiIconType: 'codeApp',
|
||||
},
|
||||
styleSheetPaths: resolve(__dirname, 'public/index.scss'),
|
||||
injectDefaultVars(server: Server) {
|
||||
const config = server.config();
|
||||
return {
|
||||
codeUiEnabled: config.get('xpack.code.ui.enabled'),
|
||||
};
|
||||
},
|
||||
hacks: ['plugins/code/hacks/toggle_app_link_in_nav'],
|
||||
},
|
||||
config(Joi: typeof JoiNamespace) {
|
||||
return Joi.object({
|
||||
ui: Joi.object({
|
||||
enabled: Joi.boolean().default(true),
|
||||
}).default(),
|
||||
enabled: Joi.boolean().default(true),
|
||||
queueIndex: Joi.string().default('.code_internal-worker-queue'),
|
||||
// 1 hour by default.
|
||||
|
|
|
@ -16,45 +16,47 @@ import { App } from './components/app';
|
|||
import { HelpMenu } from './components/help_menu';
|
||||
import { store } from './stores';
|
||||
|
||||
const app = uiModules.get('apps/code');
|
||||
if (chrome.getInjected('codeUiEnabled')) {
|
||||
const app = uiModules.get('apps/code');
|
||||
|
||||
app.config(($locationProvider: any) => {
|
||||
$locationProvider.html5Mode({
|
||||
enabled: false,
|
||||
requireBase: false,
|
||||
rewriteLinks: false,
|
||||
app.config(($locationProvider: any) => {
|
||||
$locationProvider.html5Mode({
|
||||
enabled: false,
|
||||
requireBase: false,
|
||||
rewriteLinks: false,
|
||||
});
|
||||
});
|
||||
});
|
||||
app.config((stateManagementConfigProvider: any) => stateManagementConfigProvider.disable());
|
||||
app.config((stateManagementConfigProvider: any) => stateManagementConfigProvider.disable());
|
||||
|
||||
function RootController($scope: any, $element: any, $http: any) {
|
||||
const domNode = $element[0];
|
||||
function RootController($scope: any, $element: any, $http: any) {
|
||||
const domNode = $element[0];
|
||||
|
||||
// render react to DOM
|
||||
render(
|
||||
<Provider store={store}>
|
||||
<App />
|
||||
</Provider>,
|
||||
domNode
|
||||
);
|
||||
// render react to DOM
|
||||
render(
|
||||
<Provider store={store}>
|
||||
<App />
|
||||
</Provider>,
|
||||
domNode
|
||||
);
|
||||
|
||||
// unmount react on controller destroy
|
||||
$scope.$on('$destroy', () => {
|
||||
unmountComponentAtNode(domNode);
|
||||
// unmount react on controller destroy
|
||||
$scope.$on('$destroy', () => {
|
||||
unmountComponentAtNode(domNode);
|
||||
});
|
||||
}
|
||||
|
||||
chrome.setRootController('code', RootController);
|
||||
chrome.breadcrumbs.set([
|
||||
{
|
||||
text: 'Code (Beta)',
|
||||
href: '#/',
|
||||
},
|
||||
]);
|
||||
|
||||
chrome.helpExtension.set(domNode => {
|
||||
render(<HelpMenu />, domNode);
|
||||
return () => {
|
||||
unmountComponentAtNode(domNode);
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
chrome.setRootController('code', RootController);
|
||||
chrome.breadcrumbs.set([
|
||||
{
|
||||
text: 'Code (Beta)',
|
||||
href: '#/',
|
||||
},
|
||||
]);
|
||||
|
||||
chrome.helpExtension.set(domNode => {
|
||||
render(<HelpMenu />, domNode);
|
||||
return () => {
|
||||
unmountComponentAtNode(domNode);
|
||||
};
|
||||
});
|
||||
|
|
14
x-pack/plugins/code/public/hacks/toggle_app_link_in_nav.ts
Normal file
14
x-pack/plugins/code/public/hacks/toggle_app_link_in_nav.ts
Normal file
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License;
|
||||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
import { onStart } from 'ui/new_platform';
|
||||
|
||||
onStart(({ core }) => {
|
||||
const codeUiEnabled = core.injectedMetadata.getInjectedVar('codeUiEnabled');
|
||||
if (codeUiEnabled === false) {
|
||||
core.chrome.navLinks.update('code', { hidden: true });
|
||||
}
|
||||
});
|
|
@ -79,7 +79,7 @@ async function getCodeNodeUuid(url: string, log: Logger) {
|
|||
}
|
||||
|
||||
export function init(server: Server, options: any) {
|
||||
if (!options.enabled) {
|
||||
if (!options.ui.enabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue