Skip to content

Commit

Permalink
address ux review comments
Browse files Browse the repository at this point in the history
Signed-off-by: Hailong Cui <ihailong@amazon.com>
  • Loading branch information
Hailong-am committed Apr 18, 2024
1 parent 4ae41ee commit 50b4ace
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 62 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,131 +9,162 @@ import { GetStartCard } from './types';
export const getStartCards: GetStartCard[] = [
// getStarted
{
title: 'explore sample data before adding your own',
description: 'with sample data',
appId: 'home',
featureDescription: 'Discover pre-loaded datasets before adding your own.',
featureName: 'Sample Datasets',
link: '/app/home#/tutorial_directory',
category: DEFAULT_APP_CATEGORIES.getStarted,
},
{
appId: 'workspace_create',
featureDescription: 'Build a collaborative hub for your team.',
featureName: 'Workspaces',
link: '/app/workspace_create',
category: DEFAULT_APP_CATEGORIES.getStarted,
},
{
appId: 'datasources',
title: 'connect to a data source to ingest data',
description: 'with AWS console',
featureDescription: 'Seamlessly integrate your data sources.',
featureName: 'Data Sources',
link: '/app/datasources',
category: DEFAULT_APP_CATEGORIES.getStarted,
},
{
appId: 'management',
featureDescription: 'Unlock seamless data access.',
featureName: 'Index Patterns',
link: '/app/management/opensearch-dashboards/indexPatterns',
category: DEFAULT_APP_CATEGORIES.getStarted,
},
{
appId: 'integrations',
title: 'set up pre-built dashbaords for your logs',
description: 'with Integrations',
featureDescription: 'Gain instant insights with pre-configured log dashboards.',
featureName: 'Integrations',
link: '/app/integrations',
category: DEFAULT_APP_CATEGORIES.getStarted,
},
// dashboardAndReport
{
appId: 'dashboards',
title: 'display and share a collection of vis and searches',
description: 'with dashboards',
featureDescription: 'Gain clarity and visibility with dynamic data visualization tools.',
featureName: 'Dashboards',
link: '/app/dashboards',
category: DEFAULT_APP_CATEGORIES.dashboardAndReport,
},
{
appId: 'visualize',
title: 'unlock insightful data exploration with powerful visualization and aggregation tools.',
description: 'with visualizations',
featureDescription:
'Unlock insightful data exploration with powerful visualization and aggregation tools.',
featureName: 'Visualizations',
link: '/app/visualize',
category: DEFAULT_APP_CATEGORIES.dashboardAndReport,
},
{
appId: 'maps-dashboards',
featureDescription: 'Unlock spatial insights with multi-layer map visualizations.',
featureName: 'Maps',
link: '/app/maps-dashboards',
category: DEFAULT_APP_CATEGORIES.dashboardAndReport,
},
{
appId: 'observability-notebooks',
title: 'develop reports backed by live date',
description: 'with notebooks',
featureDescription: 'Gain real-time visibility with dynamic, data-powered report generation.',
featureName: 'Notebooks',
link: '/app/observability-notebooks',
category: DEFAULT_APP_CATEGORIES.dashboardAndReport,
},
{
appId: 'reports-dashboards',
title: 'create PNG,PDF and csv reports to share',
description: 'with reports',
featureDescription: 'Collaborate effectively with multi-format report sharing.',
featureName: 'Reports',
link: '/app/reports-dashboards',
category: DEFAULT_APP_CATEGORIES.dashboardAndReport,
},
// investigate
{
appId: 'discover',
title: 'explore data and events by querying raw documents.',
description: 'with discover',
featureDescription: 'Uncover insights with raw data exploration.',
featureName: 'Discover',
link: '/app/data-explorer/discover',
category: DEFAULT_APP_CATEGORIES.investigate,
},
{
appId: 'observability-metrics',
title: 'transfrom logs into actionable visualizations with metric extraction.',
description: 'with metrics',
link: '/app/observability-metrics',
category: DEFAULT_APP_CATEGORIES.investigate,
},
{
appId: 'observability-traces',
title: 'Unveil performance bottlenecks with event flow visualization.',
description: 'with traces',
featureDescription: 'Unveil performance bottlenecks with event flow visualization.',
featureName: 'Traces',
link: '/app/observability-traces',
category: DEFAULT_APP_CATEGORIES.investigate,
},
{
appId: 'observability-applications',
title: 'combine log events with traces and metrics for a view of overall system',
description: 'with applications',
link: '/app/observability-applications',
category: DEFAULT_APP_CATEGORIES.investigate,
},
{
appId: 'opensearch_security_analytics_dashboards',
title: 'isoate an event of interest any time a threat detector matches a rule',
description: 'with findings',
link: '/app/opensearch_security_analytics_dashboards#/findings',
appId: 'observability-metrics',
featureDescription: 'Transform logs into actionable visualizations with metric extraction.',
featureName: 'Metrics',
link: '/app/observability-metrics',
category: DEFAULT_APP_CATEGORIES.investigate,
},
{
appId: 'opensearch_security_analytics_dashboards',
title: 'understand the relationships between findings from different',
description: 'with correlations',
link: '/app/opensearch_security_analytics_dashboards#/correlations',
appId: 'observability-applications',
featureDescription:
'Gain comprehensive system visibility with unified log, trace, and metric analysis.',
featureName: 'Applications',
link: '/app/observability-applications',
category: DEFAULT_APP_CATEGORIES.investigate,
},
// detect
{
appId: 'alerting',
title: 'monitor data and trigger alerts when specific conditions are met',
description: 'with alerts',
featureDescription: 'Proactively identify risks with customizable alter triggers.',
featureName: 'Alerts',
link: '/app/alerting',
category: DEFAULT_APP_CATEGORIES.detect,
},
{
appId: 'anomaly-detection-dashboards',
title: 'proactively safeguard your systems with customizable detection rules.',
description: 'with anomaly detectors',
featureDescription: 'Unveil anomalies with real-time data monitoring.',
featureName: 'Anomaly Detectors',
link: '/app/anomaly-detection-dashboards#/detectors',
category: DEFAULT_APP_CATEGORIES.detect,
},
{
appId: 'opensearch_security_analytics_dashboards',
title: 'receive timely notifications with detector-driven alert configuration.',
description: 'with threat alerts',
featureDescription: 'Receive timely notifications with detector-driven alert configuration.',
featureName: 'Threat Alerts',
link: '/app/opensearch_security_analytics_dashboards#/alerts',
category: DEFAULT_APP_CATEGORIES.detect,
},
{
appId: 'opensearch_security_analytics_dashboards',
title: 'evaluate events in a system and identify a range of cybersecurity',
description: 'with threat detectors',
featureDescription: 'Proactively safeguard your systems with customizable detection rules.',
featureName: 'Threat Detectors',
link: '/app/opensearch_security_analytics_dashboards#/detectors',
category: DEFAULT_APP_CATEGORIES.detect,
},
{
appId: 'opensearch_security_analytics_dashboards',
featureDescription: 'Tailor detection capabilities with flexible rule management.',
featureName: 'Detection Rules',
link: '/app/opensearch_security_analytics_dashboards#/rules',
category: DEFAULT_APP_CATEGORIES.detect,
},
{
appId: 'opensearch_security_analytics_dashboards',
featureDescription: 'Detect multi-system threats with correlation rule builder.',
featureName: 'Correlations',
link: '/app/opensearch_security_analytics_dashboards#/correlations',
category: DEFAULT_APP_CATEGORIES.detect,
},
{
appId: 'opensearch_security_analytics_dashboards',
featureDescription: 'Uncover hidden patterns and trends with detector finding analysis.',
featureName: 'Findings',
link: '/app/opensearch_security_analytics_dashboards#/findings',
category: DEFAULT_APP_CATEGORIES.investigate,
},
// build search solutions
{
appId: 'searchRelevance',
title: 'compare search results from different queries',
description: 'with search comparsion',
featureDescription: 'Optimize query performance with side-by-side comparison.',
featureName: 'Compare Search Results',
link: '/app/searchRelevance',
category: DEFAULT_APP_CATEGORIES.searchSolution,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export const WorkspaceOverviewCard = ({
textAlign="left"
title={
<EuiText size="s">
<p>{card.title}</p>
<p>{card.featureDescription}</p>
</EuiText>
}
description={''}
Expand All @@ -37,7 +37,7 @@ export const WorkspaceOverviewCard = ({
<EuiFlexGroup justifyContent="flexStart">
<EuiFlexItem grow={false}>
<EuiTextColor color="subdued">
<EuiText size="s">{card.description}</EuiText>
<EuiText size="s">with {card.featureName}</EuiText>
</EuiTextColor>
</EuiFlexItem>
</EuiFlexGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ export const WorkspaceOverview = () => {
<EuiFlexGroup>
{availableCards.slice(0, 5).map((card, i) => {
return (
<EuiFlexItem key={card.title}>
<EuiFlexItem key={card.featureName}>
<WorkspaceOverviewCard
card={card}
workspaceId={currentWorkspace?.id}
Expand All @@ -183,13 +183,13 @@ export const WorkspaceOverview = () => {
);
})}
{availableCards.length > 5 ? (
<EuiFlexItem key="see_more">
<EuiFlexItem key="seeMore">
<EuiPanel
onClick={() => {
setIsModalVisible(true);
}}
>
<EuiText size="s">see more ways to get started</EuiText>
<EuiText size="s">See more ways to get started</EuiText>
</EuiPanel>
</EuiFlexItem>
) : null}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ import { AppCategory } from '../../../../../core/types';

export interface GetStartCard {
/**
* application id that used for filter, if app id is not speicified, that means it will always display
* application id that used for filter, if app id is not specified, that means it will always display
*/
appId?: string;
/**
* card title
* feature Name
*/
title: string;
featureName: string;
/**
* card description
*/
description: string;
featureDescription: string;
/**
* redirect destination when the card been clickedf
* redirect destination when the card been clicked
*/
link?: string;
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,15 @@ export const WorkspaceOverviewContent = () => {
<EuiFlexItem grow={2}>
<EuiCard
layout="horizontal"
title="about"
title="About"
titleSize="xs"
description={currentWorkspace?.description || ''}
/>
</EuiFlexItem>
<EuiFlexItem grow={8}>
<EuiPanel>
<EuiTitle size="xs">
<span>recent items</span>
<span>Recent items</span>
</EuiTitle>
</EuiPanel>
</EuiFlexItem>
Expand Down

0 comments on commit 50b4ace

Please sign in to comment.