in console-ui/src/pages/ServiceManagement/ServiceDetail/ServiceDetail.js [129:221]
render() {
const { locale = {} } = this.props;
const { serviceName, groupName, loading, service = {}, clusters, instanceFilters } = this.state;
const { metadata = {}, selector = {} } = service;
let metadataText = '';
if (Object.keys(metadata).length) {
metadataText = JSON.stringify(metadata, null, '\t');
}
return (
<div className="main-container service-detail">
<Loading
shape={'flower'}
tip={'Loading...'}
className="loading"
visible={loading}
color={'#333'}
>
<h1
style={{
position: 'relative',
width: '100%',
}}
>
{locale.serviceDetails}
<Button
type="primary"
className="header-btn"
onClick={() => this.props.history.goBack()}
>
{locale.back}
</Button>
<Button
type="normal"
className="header-btn"
onClick={() => this.openEditServiceDialog()}
>
{locale.editService}
</Button>
</h1>
<Form {...pageFormLayout}>
<FormItem label={`${locale.serviceName}`}>
<Input value={service.serviceName} readOnly />
</FormItem>
<FormItem label={`${locale.groupName}`}>
<Input value={service.groupName} readOnly />
</FormItem>
<FormItem label={`${locale.protectThreshold}`}>
<Input value={service.protectThreshold} readOnly />
</FormItem>
<FormItem label={`${locale.metadata}`}>
<MonacoEditor
language="json"
width={'100%'}
height={200}
value={metadataText}
options={MONACO_READONLY_OPTIONS}
/>
</FormItem>
<FormItem label={`${locale.type}`}>
<Input value={selector.type} readOnly />
</FormItem>
{selector.type !== 'none' && (
<FormItem label={`${locale.selector}`}>
<Input value={selector.expression} readOnly />
</FormItem>
)}
</Form>
{clusters.map(cluster => (
<Card
key={cluster.clusterName}
className="cluster-card"
title={`${locale.cluster}`}
subTitle={cluster.clusterName}
contentHeight="auto"
extra={
<Button type="normal" onClick={() => this.openClusterDialog(cluster)}>
{locale.editCluster}
</Button>
}
>
<InstanceFilter
setFilters={this.setFilters(cluster.clusterName)}
locale={locale.InstanceFilter}
/>
<InstanceTable
clusterName={cluster.clusterName}
serviceName={serviceName}
groupName={groupName}
filters={instanceFilters.get(cluster.clusterName)}
/>
</Card>
))}