diff --git a/x-pack/plugins/monitoring/public/components/summary_status/summary_status.js b/x-pack/plugins/monitoring/public/components/summary_status/summary_status.js index 0466d1cff974..268500cb3fa5 100644 --- a/x-pack/plugins/monitoring/public/components/summary_status/summary_status.js +++ b/x-pack/plugins/monitoring/public/components/summary_status/summary_status.js @@ -9,6 +9,8 @@ import PropTypes from 'prop-types'; import { isEmpty, capitalize } from 'lodash'; import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { StatusIcon } from '../status_icon/index.js'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { i18n } from '@kbn/i18n'; const wrapChild = ({ label, value, dataTestSubj }, index) => ( ( const DefaultIconComponent = ({ status }) => ( - Status: {( - - )} + + ) + }} + /> ); @@ -52,7 +68,8 @@ const StatusIndicator = ({ status, isOnline, IconComponent }) => { ); }; -export function SummaryStatus({ metrics, status, isOnline, IconComponent = DefaultIconComponent, ...props }) { +// eslint-disable-next-line no-unused-vars +export function SummaryStatus({ metrics, status, isOnline, IconComponent = DefaultIconComponent, intl, ...props }) { return (
diff --git a/x-pack/plugins/monitoring/public/components/summary_status/summary_status.test.js b/x-pack/plugins/monitoring/public/components/summary_status/summary_status.test.js index f142ed545a99..d66c1dd54619 100644 --- a/x-pack/plugins/monitoring/public/components/summary_status/summary_status.test.js +++ b/x-pack/plugins/monitoring/public/components/summary_status/summary_status.test.js @@ -5,7 +5,7 @@ */ import React from 'react'; -import { render } from 'enzyme'; +import { renderWithIntl } from '../../../../../test_utils/enzyme_helpers'; import { SummaryStatus } from './summary_status'; describe('Summary Status Component', () => { @@ -26,7 +26,7 @@ describe('Summary Status Component', () => { status: 'green' }; - expect(render()).toMatchSnapshot(); + expect(renderWithIntl()).toMatchSnapshot(); }); it('should allow label to be optional', () => { @@ -45,7 +45,7 @@ describe('Summary Status Component', () => { status: 'yellow' }; - expect(render()).toMatchSnapshot(); + expect(renderWithIntl()).toMatchSnapshot(); }); it('should allow status to be optional', () => { @@ -64,6 +64,6 @@ describe('Summary Status Component', () => { ] }; - expect(render()).toMatchSnapshot(); + expect(renderWithIntl()).toMatchSnapshot(); }); }); diff --git a/x-pack/plugins/monitoring/public/components/table/footer.js b/x-pack/plugins/monitoring/public/components/table/footer.js index 19584c1bc6b1..8a54a3782c2b 100644 --- a/x-pack/plugins/monitoring/public/components/table/footer.js +++ b/x-pack/plugins/monitoring/public/components/table/footer.js @@ -10,13 +10,22 @@ import { KuiToolBarFooterSection, KuiToolBarText } from '@kbn/ui-framework/components'; +import { FormattedMessage } from '@kbn/i18n/react'; export function MonitoringTableFooter({ pageIndexFirstRow, pageIndexLastRow, rowsFiltered, paginationControls }) { return ( - { pageIndexFirstRow } – { pageIndexLastRow } of { rowsFiltered } + { paginationControls } diff --git a/x-pack/plugins/monitoring/public/components/table/table.js b/x-pack/plugins/monitoring/public/components/table/table.js index 5f90ce3a7f04..1265cf8c487f 100644 --- a/x-pack/plugins/monitoring/public/components/table/table.js +++ b/x-pack/plugins/monitoring/public/components/table/table.js @@ -22,6 +22,7 @@ import { MonitoringTableToolBar } from './toolbar'; import { MonitoringTableNoData } from './no_data'; import { MonitoringTableFooter } from './footer'; import classNames from 'classnames'; +import { FormattedMessage, injectI18n } from '@kbn/i18n/react'; /* * State and data management for Monitoring Tables @@ -46,7 +47,7 @@ import classNames from 'classnames'; * } * ]; */ -export class MonitoringTable extends React.Component { +class MonitoringTableUI extends React.Component { constructor(props) { super(props); @@ -121,7 +122,13 @@ export class MonitoringTable extends React.Component { this.resetPaging(); break; default: - throw new Error(`Unknown table action type ${action}! This shouldn't happen!`); + throw new Error( + this.props.intl.formatMessage({ + id: 'xpack.monitoring.table.unknownTableActionTypeErrorMessage', + defaultMessage: `Unknown table action type {action}! This shouldn't happen!` }, { + action + }) + ); } } @@ -403,7 +410,14 @@ export class MonitoringTable extends React.Component { if (this.state.rows === null) { // rows are null, show loading message - table = ; + table = ( + )} + />); } else if (numVisibleRows > 0) { // data has some rows, show them const RowComponent = this.props.rowComponent; @@ -450,10 +464,12 @@ const defaultGetNoDataMessage = filterText => { return DEFAULT_NO_DATA_MESSAGE; }; -MonitoringTable.defaultProps = { +MonitoringTableUI.defaultProps = { rows: [], filterFields: [], getNoDataMessage: defaultGetNoDataMessage, alwaysShowPageControls: false, rowsPerPage: 20 }; + +export const MonitoringTable = injectI18n(MonitoringTableUI); diff --git a/x-pack/plugins/monitoring/public/components/table/toolbar.js b/x-pack/plugins/monitoring/public/components/table/toolbar.js index 82b5403599db..5f75a1898f1f 100644 --- a/x-pack/plugins/monitoring/public/components/table/toolbar.js +++ b/x-pack/plugins/monitoring/public/components/table/toolbar.js @@ -12,6 +12,7 @@ import { KuiToolBarSection, KuiToolBarText } from '@kbn/ui-framework/components'; +import { FormattedMessage } from '@kbn/i18n/react'; export function MonitoringTableToolBar(props) { const searchBox = props.showSearchBox @@ -40,7 +41,13 @@ export function MonitoringTableToolBar(props) { const totalRows = Boolean(props.showTotalRows) ? (

- {props.totalRows} in total +

) : null; diff --git a/x-pack/plugins/monitoring/public/directives/alerts/index.js b/x-pack/plugins/monitoring/public/directives/alerts/index.js index c099fc7d6d02..22efffd61dcf 100644 --- a/x-pack/plugins/monitoring/public/directives/alerts/index.js +++ b/x-pack/plugins/monitoring/public/directives/alerts/index.js @@ -17,6 +17,7 @@ import { FormattedAlert } from 'plugins/monitoring/components/alerts/formatted_a import { mapSeverity } from 'plugins/monitoring/components/alerts/map_severity'; import { formatTimestampToDuration } from '../../../common/format_timestamp_to_duration'; import { formatDateTimeLocal } from '../../../common/formatting'; +import { I18nProvider } from '@kbn/i18n/react'; const linkToCategories = { 'elasticsearch/nodes': 'Elasticsearch Nodes', @@ -96,14 +97,16 @@ uiModule.directive('monitoringClusterAlertsListing', kbnUrl => { scope.$watch('alerts', (alerts = []) => { const alertsTable = ( - + + + ); render(alertsTable, $el[0]); }); diff --git a/x-pack/plugins/monitoring/public/directives/beats/listing/index.js b/x-pack/plugins/monitoring/public/directives/beats/listing/index.js index 795c1066401c..f3a49d417e5d 100644 --- a/x-pack/plugins/monitoring/public/directives/beats/listing/index.js +++ b/x-pack/plugins/monitoring/public/directives/beats/listing/index.js @@ -23,6 +23,7 @@ import { MonitoringTable } from 'plugins/monitoring/components/table'; import { EuiLink, } from '@elastic/eui'; +import { I18nProvider } from '@kbn/i18n/react'; const filterFields = [ 'name', 'type', 'version', 'output' ]; const columns = [ @@ -108,24 +109,26 @@ uiModule.directive('monitoringBeatsListing', (kbnUrl) => { scope.$watch('data', (data = {}) => { render(( -
- -
- + +
+ +
+ +
-
+ ), $el[0]); }); diff --git a/x-pack/plugins/monitoring/public/directives/cluster/listing/index.js b/x-pack/plugins/monitoring/public/directives/cluster/listing/index.js index 30f88eb553f2..15e6921ae6a8 100644 --- a/x-pack/plugins/monitoring/public/directives/cluster/listing/index.js +++ b/x-pack/plugins/monitoring/public/directives/cluster/listing/index.js @@ -24,6 +24,7 @@ import { MonitoringTable } from 'plugins/monitoring/components/table'; import { Tooltip } from 'plugins/monitoring/components/tooltip'; import { AlertsIndicator } from 'plugins/monitoring/components/cluster/listing/alerts_indicator'; import { SORT_ASCENDING } from '../../../../common/constants'; +import { I18nProvider } from '@kbn/i18n/react'; const filterFields = [ 'cluster_name', 'status', 'license.type' ]; const columns = [ @@ -285,19 +286,21 @@ uiModule.directive('monitoringClusterListing', ($injector) => { scope.$watch('clusters', (clusters = []) => { const clusterTable = ( - + + + ); render(clusterTable, $el[0]); }); diff --git a/x-pack/plugins/monitoring/public/directives/elasticsearch/ml_job_listing/index.js b/x-pack/plugins/monitoring/public/directives/elasticsearch/ml_job_listing/index.js index 0bfd05102cbb..1de1861b52bf 100644 --- a/x-pack/plugins/monitoring/public/directives/elasticsearch/ml_job_listing/index.js +++ b/x-pack/plugins/monitoring/public/directives/elasticsearch/ml_job_listing/index.js @@ -20,6 +20,7 @@ import { LARGE_ABBREVIATED, LARGE_BYTES } from '../../../../common/formatting'; import { EuiLink, } from '@elastic/eui'; +import { I18nProvider } from '@kbn/i18n/react'; const filterFields = [ 'job_id', 'state', 'node.name' ]; const columns = [ @@ -92,20 +93,22 @@ Try changing the filter or time range.` scope.$watch('jobs', (jobs = []) => { const mlTable = ( - + + + ); render(mlTable, $el[0]); }); diff --git a/x-pack/plugins/monitoring/public/directives/kibana/listing/index.js b/x-pack/plugins/monitoring/public/directives/kibana/listing/index.js index bb38b04a8ca8..62e1f9acc33d 100644 --- a/x-pack/plugins/monitoring/public/directives/kibana/listing/index.js +++ b/x-pack/plugins/monitoring/public/directives/kibana/listing/index.js @@ -22,6 +22,7 @@ import { import { EuiLink, } from '@elastic/eui'; +import { I18nProvider } from '@kbn/i18n/react'; const filterFields = [ 'kibana.name', 'kibana.host', 'kibana.status', 'kibana.transport_address' ]; const columns = [ @@ -103,19 +104,21 @@ uiModule.directive('monitoringKibanaListing', kbnUrl => { scope.$watch('instances', (instances = []) => { const kibanasTable = ( - + + + ); render(kibanasTable, $el[0]); }); diff --git a/x-pack/plugins/monitoring/public/directives/logstash/pipeline_listing/index.js b/x-pack/plugins/monitoring/public/directives/logstash/pipeline_listing/index.js index bcb2fedfacc3..39509eee40f3 100644 --- a/x-pack/plugins/monitoring/public/directives/logstash/pipeline_listing/index.js +++ b/x-pack/plugins/monitoring/public/directives/logstash/pipeline_listing/index.js @@ -24,6 +24,7 @@ import { Sparkline } from 'plugins/monitoring/components/sparkline'; import { SORT_ASCENDING } from '../../../../common/constants'; import { formatMetric } from '../../../lib/format_number'; import { timefilter } from 'ui/timefilter'; +import { I18nProvider } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; const filterFields = [ 'id' ]; @@ -172,19 +173,21 @@ uiModule.directive('monitoringLogstashPipelineListing', ($injector, i18n) => { }); const pipelinesTable = ( - + + + ); render(pipelinesTable, $el[0]); }); diff --git a/x-pack/plugins/monitoring/public/directives/main/index.html b/x-pack/plugins/monitoring/public/directives/main/index.html index 9a1333a3dd57..d21c9cfba59a 100644 --- a/x-pack/plugins/monitoring/public/directives/main/index.html +++ b/x-pack/plugins/monitoring/public/directives/main/index.html @@ -31,11 +31,46 @@
@@ -105,16 +175,18 @@ kbn-href="#/logstash" class="kuiLocalTab" ng-class="{'kuiLocalTab-isSelected': monitoringMain.isActiveTab('overview')}" + i18n-id="xpack.monitoring.logstashNavigation.overviewLinkText" + i18n-default-message="Overview" > - Overview - Nodes - Pipelines + - Overview - Pipelines + - Advanced
- Version active {{ version.relativeLastSeen }} and first seen {{ version.relativeFirstSeen }}
@@ -175,11 +257,20 @@
diff --git a/x-pack/plugins/monitoring/public/views/apm/instances/index.js b/x-pack/plugins/monitoring/public/views/apm/instances/index.js index e928289db61e..9d91d64d2fbe 100644 --- a/x-pack/plugins/monitoring/public/views/apm/instances/index.js +++ b/x-pack/plugins/monitoring/public/views/apm/instances/index.js @@ -11,6 +11,7 @@ import { routeInitProvider } from 'plugins/monitoring/lib/route_init'; import template from './index.html'; import { ApmServerInstances } from '../../../components/apm/instances'; import { MonitoringViewBaseTableController } from '../../base_table_controller'; +import { I18nProvider } from '@kbn/i18n/react'; uiRoutes.when('/apm/instances', { template, @@ -53,16 +54,18 @@ uiRoutes.when('/apm/instances', { } = this; const component = ( - + + + ); super.renderReact(component); } diff --git a/x-pack/plugins/monitoring/public/views/elasticsearch/indices/index.js b/x-pack/plugins/monitoring/public/views/elasticsearch/indices/index.js index b71b8f43814f..07b291dbe020 100644 --- a/x-pack/plugins/monitoring/public/views/elasticsearch/indices/index.js +++ b/x-pack/plugins/monitoring/public/views/elasticsearch/indices/index.js @@ -11,6 +11,7 @@ import { routeInitProvider } from 'plugins/monitoring/lib/route_init'; import { MonitoringViewBaseTableController } from '../../'; import { ElasticsearchIndices } from '../../../components'; import template from './index.html'; +import { I18nProvider } from '@kbn/i18n/react'; uiRoutes.when('/elasticsearch/indices', { template, @@ -60,12 +61,14 @@ uiRoutes.when('/elasticsearch/indices', { this.renderReact = ({ clusterStatus, indices }) => { super.renderReact( - + + + ); }; } diff --git a/x-pack/plugins/monitoring/public/views/elasticsearch/nodes/index.js b/x-pack/plugins/monitoring/public/views/elasticsearch/nodes/index.js index 295ad6d1d36a..20e339aa52b8 100644 --- a/x-pack/plugins/monitoring/public/views/elasticsearch/nodes/index.js +++ b/x-pack/plugins/monitoring/public/views/elasticsearch/nodes/index.js @@ -11,6 +11,7 @@ import template from './index.html'; import { routeInitProvider } from 'plugins/monitoring/lib/route_init'; import { MonitoringViewBaseTableController } from '../../'; import { ElasticsearchNodes } from '../../../components'; +import { I18nProvider } from '@kbn/i18n/react'; uiRoutes.when('/elasticsearch/nodes', { template, @@ -47,11 +48,13 @@ uiRoutes.when('/elasticsearch/nodes', { this.renderReact = ({ clusterStatus, nodes }) => { super.renderReact( - + + + ); }; } diff --git a/x-pack/plugins/monitoring/public/views/elasticsearch/overview/controller.js b/x-pack/plugins/monitoring/public/views/elasticsearch/overview/controller.js index 908a2461d6dd..6eee4e4cec09 100644 --- a/x-pack/plugins/monitoring/public/views/elasticsearch/overview/controller.js +++ b/x-pack/plugins/monitoring/public/views/elasticsearch/overview/controller.js @@ -8,6 +8,7 @@ import React from 'react'; import { find } from 'lodash'; import { MonitoringViewBaseController } from '../../'; import { ElasticsearchOverview } from 'plugins/monitoring/components'; +import { I18nProvider } from '@kbn/i18n/react'; export class ElasticsearchOverviewController extends MonitoringViewBaseController { constructor($injector, $scope) { @@ -70,14 +71,16 @@ export class ElasticsearchOverviewController extends MonitoringViewBaseControlle const { clusterStatus, metrics, shardActivity } = data; const shardActivityData = shardActivity && this.filterShardActivityData(shardActivity); // no filter on data = null const component = ( - + + + ); super.renderReact(component);