Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename Painless Playground -> Painless Lab. #57545

Merged
merged 1 commit into from
Feb 20, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions x-pack/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { security } from './legacy/plugins/security';
import { ml } from './legacy/plugins/ml';
import { tilemap } from './legacy/plugins/tilemap';
import { grokdebugger } from './legacy/plugins/grokdebugger';
import { painlessPlayground } from './legacy/plugins/painless_playground';
import { painlessLab } from './legacy/plugins/painless_lab';
import { dashboardMode } from './legacy/plugins/dashboard_mode';
import { logstash } from './legacy/plugins/logstash';
import { beats } from './legacy/plugins/beats_management';
Expand Down Expand Up @@ -51,7 +51,7 @@ module.exports = function(kibana) {
ml(kibana),
tilemap(kibana),
grokdebugger(kibana),
painlessPlayground(kibana),
painlessLab(kibana),
dashboardMode(kibana),
logstash(kibana),
beats(kibana),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
* you may not use this file except in compliance with the Elastic License.
*/

export const PLUGIN_ID = 'painless_playground';
export const PLUGIN_ID = 'painlessLab';

export const API_ROUTE_EXECUTE = '/api/painless_playground/execute';
export const API_ROUTE_EXECUTE = '/api/painless_lab/execute';

export const ADVANCED_SETTINGS_FLAG_NAME = 'devTools:enablePainlessPlayground';
export const ADVANCED_SETTINGS_FLAG_NAME = 'devTools:enablePainlessLab';
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ import { registerLicenseChecker } from './server/register_license_checker';
import { registerExecuteRoute } from './server/register_execute_route';
import { Legacy } from '../../../../kibana';

export const painlessPlayground = (kibana: any) =>
export const painlessLab = (kibana: any) =>
new kibana.Plugin({
id: PLUGIN_ID,
publicDir: resolve(__dirname, 'public'),
require: ['kibana', 'elasticsearch', 'xpack_main'],
configPrefix: 'xpack.painless_playground',
configPrefix: 'xpack.painless_lab',
config(Joi: any) {
return Joi.object({
enabled: Joi.boolean().default(true),
Expand All @@ -30,15 +30,12 @@ export const painlessPlayground = (kibana: any) =>
// Register feature flag
server.newPlatform.setup.core.uiSettings.register({
[ADVANCED_SETTINGS_FLAG_NAME]: {
name: i18n.translate('xpack.painless_playground.devTools.painlessPlaygroundTitle', {
defaultMessage: 'Painless Playground',
name: i18n.translate('xpack.painlessLab.devTools.painlessLabTitle', {
defaultMessage: 'Painless Lab',
}),
description: i18n.translate('xpack.painlessLab.devTools.painlessLabDescription', {
defaultMessage: 'Enable experimental Painless Lab.',
}),
description: i18n.translate(
'xpack.painless_playground.devTools.painlessPlaygroundDescription',
{
defaultMessage: 'Enable experimental Painless Playground.',
}
),
value: false,
category: ['Dev Tools'],
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ import React from 'react';
import { EuiText } from '@elastic/eui';
import { i18n } from '@kbn/i18n';

const defaultLabel = i18n.translate('xpack.painless_playground.contextDefaultLabel', {
const defaultLabel = i18n.translate('xpack.painlessLab.contextDefaultLabel', {
defaultMessage: 'Basic',
});

const filterLabel = i18n.translate('xpack.painless_playground.contextFilterLabel', {
const filterLabel = i18n.translate('xpack.painlessLab.contextFilterLabel', {
defaultMessage: 'Filter',
});

const scoreLabel = i18n.translate('xpack.painless_playground.contextScoreLabel', {
const scoreLabel = i18n.translate('xpack.painlessLab.contextScoreLabel', {
defaultMessage: 'Score',
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ const submit = async (code, context, contextSetup, executeCode, setResponse, set
setIsLoading(true);

try {
localStorage.setItem('painlessPlaygroundCode', code);
localStorage.setItem('painlessPlaygroundContext', context);
localStorage.setItem('painlessPlaygroundContextSetup', JSON.stringify(contextSetup));
localStorage.setItem('painlessLabCode', code);
localStorage.setItem('painlessLabContext', context);
localStorage.setItem('painlessLabContextSetup', JSON.stringify(contextSetup));
const response = await executeCode(buildRequestPayload(code, context, contextSetup));

if (_mostRecentRequestId === requestId) {
Expand Down Expand Up @@ -118,22 +118,18 @@ for (int y = 0; y < height; y++) {
return result;
`;

export function PainlessPlayground({
executeCode,
}: {
executeCode: (payload: Request) => Promise<Response>;
}) {
const [code, setCode] = useState(getFromLocalStorage('painlessPlaygroundCode', exampleScript));
export function Main({ executeCode }: { executeCode: (payload: Request) => Promise<Response> }) {
const [code, setCode] = useState(getFromLocalStorage('painlessLabCode', exampleScript));
const [response, setResponse] = useState<Response>({ error: undefined, success: undefined });
const [isRequestFlyoutOpen, setRequestFlyoutOpen] = useState(false);
const [isLoading, setIsLoading] = useState(false);

const [context, setContext] = useState(
getFromLocalStorage('painlessPlaygroundContext', 'painless_test_without_params')
getFromLocalStorage('painlessLabContext', 'painless_test_without_params')
);

const [contextSetup, setContextSetup] = useState(
getFromLocalStorage('painlessPlaygroundContextSetup', {}, true)
getFromLocalStorage('painlessLabContextSetup', {}, true)
);

// Live-update the output as the user changes the input code.
Expand All @@ -151,8 +147,8 @@ export function PainlessPlayground({
<EuiFlexItem>
<EuiTitle className="euiScreenReaderOnly">
<h1>
{i18n.translate('xpack.painless_playground.title', {
defaultMessage: 'Painless Playground',
{i18n.translate('xpack.painlessLab.title', {
defaultMessage: 'Painless Lab',
})}
</h1>
</EuiTitle>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export function MainControls({
target="_blank"
onClick={() => setIsHelpOpen(false)}
>
{i18n.translate('xpack.painless_playground.walkthroughButtonLabel', {
{i18n.translate('xpack.painlessLab.walkthroughButtonLabel', {
defaultMessage: 'Walkthrough',
})}
</EuiContextMenuItem>,
Expand All @@ -52,7 +52,7 @@ export function MainControls({
target="_blank"
onClick={() => setIsHelpOpen(false)}
>
{i18n.translate('xpack.painless_playground.apiReferenceButtonLabel', {
{i18n.translate('xpack.painlessLab.apiReferenceButtonLabel', {
defaultMessage: 'API reference',
})}
</EuiContextMenuItem>,
Expand All @@ -64,7 +64,7 @@ export function MainControls({
target="_blank"
onClick={() => setIsHelpOpen(false)}
>
{i18n.translate('xpack.painless_playground.languageSpecButtonLabel', {
{i18n.translate('xpack.painlessLab.languageSpecButtonLabel', {
defaultMessage: 'Language spec',
})}
</EuiContextMenuItem>,
Expand All @@ -77,23 +77,23 @@ export function MainControls({
setIsHelpOpen(false);
}}
>
{i18n.translate('xpack.painless_playground.resetButtonLabel', {
{i18n.translate('xpack.painlessLab.resetButtonLabel', {
defaultMessage: 'Reset script',
})}
</EuiContextMenuItem>,
];

return (
<>
<div className="painlessPlaygroundBottomBarPlaceholder" />
<div className="painlessLabBottomBarPlaceholder" />

<EuiBottomBar paddingSize="none">
<EuiFlexGroup gutterSize="s" justifyContent="spaceBetween">
<EuiFlexItem grow={false}>
<EuiFlexGroup gutterSize="s" justifyContent="flexStart">
<EuiFlexItem grow={false}>
<EuiPopover
id="painlessPlaygroundHelpContextMenu"
id="painlessLabHelpContextMenu"
button={
<EuiButtonEmpty
size="s"
Expand All @@ -102,7 +102,7 @@ export function MainControls({
color="ghost"
onClick={() => setIsHelpOpen(!isHelpOpen)}
>
{i18n.translate('xpack.painless_playground.helpButtonLabel', {
{i18n.translate('xpack.painlessLab.helpButtonLabel', {
defaultMessage: 'Help',
})}
</EuiButtonEmpty>
Expand All @@ -126,10 +126,10 @@ export function MainControls({
data-test-subj="btnViewRequest"
>
{isRequestFlyoutOpen
? i18n.translate('xpack.painless_playground.hideRequestButtonLabel', {
? i18n.translate('xpack.painlessLab.hideRequestButtonLabel', {
defaultMessage: 'Hide API request',
})
: i18n.translate('xpack.painless_playground.showRequestButtonLabel', {
: i18n.translate('xpack.painlessLab.showRequestButtonLabel', {
defaultMessage: 'Show API request',
})}
</EuiButtonEmpty>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ export function ContextTab({ context, contextSetup, setContext, setContextSetup
<EuiFormRow
label={
<EuiToolTip
content={i18n.translate('xpack.painless_playground.contextFieldTooltipText', {
content={i18n.translate('xpack.painlessLab.contextFieldTooltipText', {
defaultMessage: 'Different contexts provide different functions on the ctx object',
})}
>
<span>
<FormattedMessage
id="xpack.painless_playground.contextFieldLabel"
id="xpack.painlessLab.contextFieldLabel"
defaultMessage="Execution context"
/>{' '}
<EuiIcon type="questionInCircle" color="subdued" />
Expand All @@ -56,7 +56,7 @@ export function ContextTab({ context, contextSetup, setContext, setContextSetup
href="https://www.elastic.co/guide/en/elasticsearch/painless/current/painless-execute-api.html"
target="_blank"
>
{i18n.translate('xpack.painless_playground.contextFieldDocLinkText', {
{i18n.translate('xpack.painlessLab.contextFieldDocLinkText', {
defaultMessage: 'Context docs',
})}
</EuiLink>
Expand All @@ -78,16 +78,13 @@ export function ContextTab({ context, contextSetup, setContext, setContextSetup
<EuiFormRow
label={
<EuiToolTip
content={i18n.translate('xpack.painless_playground.indexFieldTooltipText', {
content={i18n.translate('xpack.painlessLab.indexFieldTooltipText', {
defaultMessage:
"Index mappings must be compatible with the sample document's fields",
})}
>
<span>
<FormattedMessage
id="xpack.painless_playground.indexFieldLabel"
defaultMessage="Index"
/>{' '}
<FormattedMessage id="xpack.painlessLab.indexFieldLabel" defaultMessage="Index" />{' '}
<EuiIcon type="questionInCircle" color="subdued" />
</span>
</EuiToolTip>
Expand All @@ -107,13 +104,13 @@ export function ContextTab({ context, contextSetup, setContext, setContextSetup
<EuiFormRow
label={
<EuiToolTip
content={i18n.translate('xpack.painless_playground.documentFieldTooltipText', {
content={i18n.translate('xpack.painlessLab.documentFieldTooltipText', {
defaultMessage: "Your script can access this document's fields",
})}
>
<span>
<FormattedMessage
id="xpack.painless_playground.documentFieldLabel"
id="xpack.painlessLab.documentFieldLabel"
defaultMessage="Sample document"
/>{' '}
<EuiIcon type="questionInCircle" color="subdued" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,17 +44,17 @@ export function OutputPane({
</EuiFlexItem>

<EuiFlexItem grow={false}>
{i18n.translate('xpack.painless_playground.outputTabLabel', {
{i18n.translate('xpack.painlessLab.outputTabLabel', {
defaultMessage: 'Output',
})}
</EuiFlexItem>
</EuiFlexGroup>
);

return (
<EuiPanel className="painlessPlaygroundRightPane">
<EuiPanel className="painlessLabRightPane">
<EuiTabbedContent
className="painlessPlaygroundRightPane__tabs"
className="painlessLabRightPane__tabs"
size="s"
tabs={[
{
Expand All @@ -64,7 +64,7 @@ export function OutputPane({
},
{
id: 'parameters',
name: i18n.translate('xpack.painless_playground.parametersTabLabel', {
name: i18n.translate('xpack.painlessLab.parametersTabLabel', {
defaultMessage: 'Parameters',
}),
content: (
Expand All @@ -78,7 +78,7 @@ export function OutputPane({
},
{
id: 'context',
name: i18n.translate('xpack.painless_playground.contextTabLabel', {
name: i18n.translate('xpack.painlessLab.contextTabLabel', {
defaultMessage: 'Context',
}),
content: (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ export function ParametersTab({ context, contextSetup, setContext, setContextSet
<EuiFormRow
label={
<EuiToolTip
content={i18n.translate('xpack.painless_playground.parametersFieldTooltipText', {
content={i18n.translate('xpack.painlessLab.parametersFieldTooltipText', {
defaultMessage: 'These variables are assigned to the "params" object in your script',
})}
>
<span>
<FormattedMessage
id="xpack.painless_playground.parametersFieldLabel"
id="xpack.painlessLab.parametersFieldLabel"
defaultMessage="Parameters"
/>{' '}
<EuiIcon type="questionInCircle" color="subdued" />
Expand All @@ -53,13 +53,13 @@ export function ParametersTab({ context, contextSetup, setContext, setContextSet
href="https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting-using.html#prefer-params"
target="_blank"
>
{i18n.translate('xpack.painless_playground.parametersFieldDocLinkText', {
{i18n.translate('xpack.painlessLab.parametersFieldDocLinkText', {
defaultMessage: 'Parameters docs',
})}
</EuiLink>
</EuiText>
}
helpText={i18n.translate('xpack.painless_playground.helpIconAriaLabel', {
helpText={i18n.translate('xpack.painlessLab.helpIconAriaLabel', {
defaultMessage: 'Use JSON format',
})}
>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ export function RequestFlyout({
<div>
<EuiTitle size="m">
<h2>
{i18n.translate('xpack.painless_playground.flyoutTitle', {
{i18n.translate('xpack.painlessLab.flyoutTitle', {
defaultMessage: 'API request',
})}
</h2>
Expand All @@ -52,7 +52,7 @@ export function RequestFlyout({
target="_blank"
iconType="help"
>
{i18n.translate('xpack.painless_playground.flyoutDocLink', {
{i18n.translate('xpack.painlessLab.flyoutDocLink', {
defaultMessage: 'API documentation',
})}
</EuiButtonEmpty>
Expand Down Expand Up @@ -86,7 +86,7 @@ export function RequestFlyout({
]}
/>

<div className="painlessPlaygroundBottomBarPlaceholder" />
<div className="painlessLabBottomBarPlaceholder" />
</EuiFlyoutBody>
</EuiFlyout>
);
Expand Down
Loading