Skip to content

Commit

Permalink
Rename Painless Playground -> Painless Lab. (#57545)
Browse files Browse the repository at this point in the history
  • Loading branch information
cjcenizal committed Feb 20, 2020
1 parent 455ce24 commit b8bd2e6
Show file tree
Hide file tree
Showing 24 changed files with 75 additions and 85 deletions.
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 @@ -52,7 +52,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

0 comments on commit b8bd2e6

Please sign in to comment.