Skip to content

Commit 5440c98

Browse files
authored
Improve text on onboarding welcome page. (#26834)
* Improve descriptions on onboarding welcome page. * Add temporary link to community pages. * Improve button alignment * Update test.
1 parent 6fd9966 commit 5440c98

3 files changed

Lines changed: 57 additions & 42 deletions

File tree

graylog2-web-interface/src/components/welcome/FirstUseWelcome.test.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ beforeEach(() => {
3636
});
3737

3838
describe('FirstUseWelcome', () => {
39-
it('links the "Set up Collector" button to the collectors overview', async () => {
39+
it('links the "Enroll Collector" button to the collectors overview', async () => {
4040
render(<FirstUseWelcome />);
4141

42-
const link = await screen.findByRole('link', { name: /Set up Collector/i });
42+
const link = await screen.findByRole('link', { name: /Enroll Collector/i });
4343

4444
expect(link).toHaveAttribute('href', '/system/collectors');
4545
});
@@ -71,7 +71,7 @@ describe('FirstUseWelcome', () => {
7171

7272
const links = screen.getAllByRole('link', { name: /continue/i });
7373

74-
expect(links[0]).toHaveAttribute('href', 'https://www.graylog.org');
74+
expect(links[0]).toHaveAttribute('href', 'https://community.graylog.org/');
7575
expect(links[0]).toHaveAttribute('target', '_blank');
7676
});
7777

@@ -93,16 +93,16 @@ describe('FirstUseWelcome', () => {
9393
expect(mockDismiss).toHaveBeenCalledTimes(1);
9494
});
9595

96-
it('shows the "Set up Other Sources" section when not on cloud', () => {
96+
it('shows the "Set up Input" section when not on cloud', () => {
9797
render(<FirstUseWelcome />);
9898

99-
expect(screen.getByRole('heading', { name: /set up other sources/i })).toBeInTheDocument();
99+
expect(screen.getByRole('heading', { name: /set up input/i })).toBeInTheDocument();
100100
});
101101

102-
it('hides the "Set up Other Sources" section on cloud', () => {
102+
it('hides the "Set up Input" section on cloud', () => {
103103
asMock(AppConfig.isCloud).mockReturnValue(true);
104104
render(<FirstUseWelcome />);
105105

106-
expect(screen.queryByRole('heading', { name: /set up other sources/i })).not.toBeInTheDocument();
106+
expect(screen.queryByRole('heading', { name: /set up input/i })).not.toBeInTheDocument();
107107
});
108108
});

graylog2-web-interface/src/components/welcome/FirstUseWelcome.tsx

Lines changed: 49 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,17 @@ const Container = styled.div(
5050
const ResourceTile = styled.div`
5151
margin: 0;
5252
flex: 1;
53+
display: flex;
54+
`;
55+
56+
const StyledResourceCol = styled(Col)`
57+
display: flex;
58+
`;
59+
60+
const ResourceTileBody = styled.div`
61+
display: flex;
62+
flex-direction: column;
63+
align-self: stretch;
5364
`;
5465

5566
const DismissButton = styled(Button)`
@@ -78,19 +89,19 @@ const resources: Resource[] = [
7889
{
7990
title: 'Quickstart Guide',
8091
description: 'End-to-end walkthrough to your first search in 10 minutes.',
81-
link: 'https://www.graylog.org',
92+
link: 'https://community.graylog.org/',
8293
iconName: 'acute',
8394
},
8495
{
85-
title: 'Video: Sidecar',
86-
description: 'Setup Install and configure your first collector agent.',
87-
link: 'https://www.graylog.org',
96+
title: 'Video: Collector',
97+
description: 'Enroll and configure your first collector agent.',
98+
link: 'https://community.graylog.org/',
8899
iconName: 'arrow_or_edge',
89100
},
90101
{
91102
title: 'Community Forum',
92103
description: 'Ask questions and browse solutions from other Graylog users.',
93-
link: 'https://www.graylog.org',
104+
link: 'https://community.graylog.org/',
94105
iconName: 'chat',
95106
},
96107
];
@@ -141,11 +152,12 @@ const ResourceTileContent = styled.div(
141152
`,
142153
);
143154

144-
const ActionsSection = styled(Section)``;
155+
const BoxActions = styled.div`
156+
margin-top: auto;
157+
`;
145158

146-
const BoxActions = styled.div(
159+
const SourcesBoxActions = styled(BoxActions)(
147160
({ theme }) => css`
148-
margin-top: auto;
149161
padding-top: ${theme.spacings.lg};
150162
`,
151163
);
@@ -191,21 +203,21 @@ const FirstUseWelcome = () => {
191203
<Row className={'content'}>
192204
<Col xs={12}>
193205
<ActionsHeadline>Where would you like to start?</ActionsHeadline>
194-
<ActionsSection>
206+
<Section>
195207
<StyledSectionBox
196-
title="Set up Collectors"
208+
title="Enroll Collector"
197209
titleAs="h3"
198210
header={
199211
<>
200-
Set up Collectors <PreviewBadge />
212+
Enroll Collector <PreviewBadge />
201213
</>
202214
}>
203215
<Description>
204-
Install a lightweight agent on your servers, VMs, or containers. {productName} Sidecar manages the
205-
configuration automatically.
216+
The {productName} Collector simplifies getting data from your servers. Enroll this lightweight agent
217+
once, then manage its configuration centrally from {productName}.
206218
</Description>
207219
<PlatformIcons />
208-
<BoxActions>
220+
<SourcesBoxActions>
209221
<LinkContainer to={Routes.SYSTEM.COLLECTORS.OVERVIEW}>
210222
<Button
211223
bsStyle="primary"
@@ -215,15 +227,16 @@ const FirstUseWelcome = () => {
215227
app_action_value: 'setup-collector-button',
216228
})
217229
}>
218-
Set up Collector
230+
Enroll Collector
219231
</Button>
220232
</LinkContainer>
221-
</BoxActions>
233+
</SourcesBoxActions>
222234
</StyledSectionBox>
223235
<HideOnCloud>
224-
<StyledSectionBox title="Set up Other Sources" titleAs="h3">
236+
<StyledSectionBox title="Set up Input" titleAs="h3">
225237
<Description>
226-
Open a network listener that accepts logs directly over GELF, Syslog, Beats, or other protocols.
238+
Inputs are network listeners on your {productName} nodes that receive logs directly from your
239+
infrastructure over protocols like Syslog or GELF.
227240
</Description>
228241
<DataSourceIcons />
229242
<BoxActions>
@@ -242,7 +255,7 @@ const FirstUseWelcome = () => {
242255
</BoxActions>
243256
</StyledSectionBox>
244257
</HideOnCloud>
245-
</ActionsSection>
258+
</Section>
246259
</Col>
247260
</Row>
248261

@@ -251,28 +264,30 @@ const FirstUseWelcome = () => {
251264
<Container>
252265
{resources.map((resource) => (
253266
<ResourceTile className="content" key={resource.title}>
254-
<Col>
267+
<StyledResourceCol>
255268
<ResourceTileContent>
256269
<IconCard>
257270
<Icon name={resource.iconName} />
258271
</IconCard>
259-
<div>
272+
<ResourceTileBody>
260273
<ResourceTitle>{resource.title}</ResourceTitle>
261274
<ResourceDescription>{resource.description}</ResourceDescription>
262-
<ExternalLinkButton
263-
href={resource.link}
264-
bsSize="xs"
265-
onClick={() =>
266-
sendTelemetry(TELEMETRY_EVENT_TYPE.WELCOME.RESOURCE_CONTINUE_CLICKED, {
267-
app_section: 'welcome',
268-
app_action_value: resource.title,
269-
})
270-
}>
271-
Continue
272-
</ExternalLinkButton>
273-
</div>
275+
<BoxActions>
276+
<ExternalLinkButton
277+
href={resource.link}
278+
bsSize="xs"
279+
onClick={() =>
280+
sendTelemetry(TELEMETRY_EVENT_TYPE.WELCOME.RESOURCE_CONTINUE_CLICKED, {
281+
app_section: 'welcome',
282+
app_action_value: resource.title,
283+
})
284+
}>
285+
Continue
286+
</ExternalLinkButton>
287+
</BoxActions>
288+
</ResourceTileBody>
274289
</ResourceTileContent>
275-
</Col>
290+
</StyledResourceCol>
276291
</ResourceTile>
277292
))}
278293
</Container>

graylog2-web-interface/src/logic/telemetry/Constants.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,7 @@ export const TELEMETRY_EVENT_TYPE = {
492492
NAVIGATED_FORWARD: 'Right Sidebar Navigated Forward',
493493
},
494494
WELCOME: {
495-
SETUP_COLLECTOR_CLICKED: 'Welcome Setup Collector Clicked',
495+
SETUP_COLLECTOR_CLICKED: 'Welcome Enroll Collector Clicked',
496496
CONFIGURE_INPUT_CLICKED: 'Welcome Configure Input Clicked',
497497
RESOURCE_CONTINUE_CLICKED: 'Welcome Resource Continue Clicked',
498498
DISMISS_CLICKED: 'Welcome Dismiss Clicked',

0 commit comments

Comments
 (0)