diff --git a/src/components/DetailCard/index.jsx b/src/components/DetailCard/index.jsx
index ef503fc9..f1b8ce75 100644
--- a/src/components/DetailCard/index.jsx
+++ b/src/components/DetailCard/index.jsx
@@ -19,6 +19,7 @@ import { has, get, isNumber } from 'lodash';
import PropTypes from 'prop-types';
import classnames from 'classnames';
import { renderFilterMap } from 'utils/index';
+import { getValueMapRender } from 'utils/table';
import Status from 'components/Status';
import styles from './index.less';
@@ -46,7 +47,8 @@ const getContentValue = (value, dataIndex, data, copyable) => {
};
const getContent = (data, option) => {
- const { content, dataIndex, render, valueRender, copyable } = option;
+ const { content, dataIndex, render, valueRender, copyable, valueMap } =
+ option;
if (has(option, 'content')) {
return copyable ? (
{content}
@@ -59,6 +61,8 @@ const getContent = (data, option) => {
if (valueRender) {
const renderFunc = renderFilterMap[valueRender];
value = renderFunc && renderFunc(value);
+ } else if (valueMap) {
+ value = getValueMapRender(option)(value);
}
} else {
value = render(value, data);
diff --git a/src/components/Tables/Base/index.jsx b/src/components/Tables/Base/index.jsx
index 7c9821de..16f751d7 100644
--- a/src/components/Tables/Base/index.jsx
+++ b/src/components/Tables/Base/index.jsx
@@ -41,6 +41,7 @@ import {
getNameRenderByRouter,
getNameRender,
columnRender,
+ getValueMapRender,
} from 'utils/table';
import { getNoValue } from 'utils/index';
import { getLocalStorageItem, setLocalStorageItem } from 'utils/local-storage';
@@ -416,12 +417,16 @@ export class BaseTable extends React.Component {
routeName,
linkPrefix,
isPrice,
+ valueMap,
...rest
} = column;
const newSorter = getColumnSorter(column, this.props);
const newSortOrder =
sortOrder || newSorter ? getSortOrder(dataIndex, this.props) : null;
let newRender = render || getRender(valueRender);
+ if (valueMap) {
+ newRender = getValueMapRender(column);
+ }
if (checkIsStatusColumn(dataIndex, isStatus)) {
newRender = getStatusRender(newRender);
}
diff --git a/src/components/Tables/SimpleTable/index.jsx b/src/components/Tables/SimpleTable/index.jsx
index ca802cf0..ff63d6b2 100644
--- a/src/components/Tables/SimpleTable/index.jsx
+++ b/src/components/Tables/SimpleTable/index.jsx
@@ -26,6 +26,7 @@ import {
getRender,
getNameRender,
getNameRenderByRouter,
+ getValueMapRender,
} from 'utils/table';
import { Link } from 'react-router-dom';
import { getNoValue } from 'utils/index';
@@ -85,6 +86,7 @@ export default class SimpleTable extends React.Component {
isLink,
routeName,
linkPrefix,
+ valueMap,
...rest
} = column;
if (column.key === 'operation') {
@@ -94,6 +96,9 @@ export default class SimpleTable extends React.Component {
const newSortOrder =
sortOrder || newSorter ? getSortOrder(dataIndex, this.props) : null;
let newRender = render || getRender(valueRender);
+ if (valueMap) {
+ newRender = getValueMapRender(column);
+ }
if (checkIsStatusColumn(dataIndex, isStatus)) {
newRender = getStatusRender(newRender);
}
diff --git a/src/containers/TabDetail/index.jsx b/src/containers/TabDetail/index.jsx
index 9a8b984d..3301d4a5 100644
--- a/src/containers/TabDetail/index.jsx
+++ b/src/containers/TabDetail/index.jsx
@@ -27,6 +27,7 @@ import checkItemPolicy from 'resources/skyline/policy';
import ItemActionButtons from 'components/Tables/Base/ItemActionButtons';
import { emptyActionConfig } from 'utils/constants';
import { getPath, getLinkRender } from 'utils/route-map';
+import { getValueMapRender } from 'utils/table';
import styles from './index.less';
export default class DetailBase extends React.Component {
@@ -230,19 +231,22 @@ export default class DetailBase extends React.Component {
};
getDesc = (data, dataConf) => {
- const { dataIndex, render, valueRender } = dataConf;
+ const { dataIndex, render, valueRender, valueMap } = dataConf;
+ const value = get(data, dataIndex);
if (render) {
- return render(data[dataIndex], data);
+ return render(value, data);
}
if (valueRender) {
const renderFunc = renderFilterMap[valueRender];
- return renderFunc && renderFunc(data[dataIndex]);
+ return renderFunc && renderFunc(value);
}
- const desc = get(data, dataIndex);
- if (desc === undefined || desc === '') {
+ if (valueMap) {
+ return getValueMapRender(dataConf)(value);
+ }
+ if (value === undefined || value === '') {
return '-';
}
- return desc;
+ return value;
};
getActionData() {
diff --git a/src/pages/compute/containers/BareMetalNode/Detail/index.jsx b/src/pages/compute/containers/BareMetalNode/Detail/index.jsx
index 64fdf85e..2b73eabf 100644
--- a/src/pages/compute/containers/BareMetalNode/Detail/index.jsx
+++ b/src/pages/compute/containers/BareMetalNode/Detail/index.jsx
@@ -52,12 +52,12 @@ export class Detail extends Base {
{
title: t('Power State'),
dataIndex: 'power_state',
- render: (value) => powerState[value] || value,
+ valueMap: powerState,
},
{
title: t('Provision State'),
dataIndex: 'provision_state',
- render: (value) => provisioningState[value] || value,
+ valueMap: provisioningState,
},
{
title: t('Maintained'),
diff --git a/src/pages/compute/containers/BareMetalNode/index.jsx b/src/pages/compute/containers/BareMetalNode/index.jsx
index f42e8847..55b84942 100644
--- a/src/pages/compute/containers/BareMetalNode/index.jsx
+++ b/src/pages/compute/containers/BareMetalNode/index.jsx
@@ -66,12 +66,12 @@ export class BareMetalNode extends Base {
{
title: t('Power State'),
dataIndex: 'power_state',
- render: (value) => powerState[value] || value,
+ valueMap: powerState,
},
{
title: t('Provision State'),
dataIndex: 'provision_state',
- render: (value) => provisioningState[value] || value,
+ valueMap: provisioningState,
},
{
title: t('Maintained'),
diff --git a/src/pages/compute/containers/Flavor/Detail/BaseDetail.jsx b/src/pages/compute/containers/Flavor/Detail/BaseDetail.jsx
index 73552cd0..0a39bf25 100644
--- a/src/pages/compute/containers/Flavor/Detail/BaseDetail.jsx
+++ b/src/pages/compute/containers/Flavor/Detail/BaseDetail.jsx
@@ -227,17 +227,17 @@ export class BaseDetail extends Base {
{
label: t('CPU Policy'),
dataIndex: 'hw:cpu_policy',
- render: (value) => cpuPolicyList[value] || value,
+ valueMap: cpuPolicyList,
},
{
label: t('CPU Thread Policy'),
dataIndex: 'hw:cpu_thread_policy',
- render: (value) => cpuThreadPolicyMap[value] || value,
+ valueMap: cpuThreadPolicyMap,
},
{
label: t('Memory Page Size'),
dataIndex: 'hw:mem_page_size',
- render: (value) => pageTypeMap[value] || value,
+ valueMap: pageTypeMap,
},
];
const options = [...numa, ...others];
diff --git a/src/pages/compute/containers/Flavor/Detail/index.jsx b/src/pages/compute/containers/Flavor/Detail/index.jsx
index e9c25a78..a5d27ba6 100644
--- a/src/pages/compute/containers/Flavor/Detail/index.jsx
+++ b/src/pages/compute/containers/Flavor/Detail/index.jsx
@@ -48,12 +48,12 @@ export class Detail extends Base {
{
title: t('Architecture'),
dataIndex: 'architecture',
- render: (value) => flavorArchitectures[value] || value,
+ valueMap: flavorArchitectures,
},
{
title: t('Category'),
dataIndex: 'category',
- render: (value) => flavorCategoryList[value] || value,
+ valueMap: flavorCategoryList,
},
{
title: t('CPU'),
diff --git a/src/pages/compute/containers/HostAggregate/Aggregate/actions/ManageHost.jsx b/src/pages/compute/containers/HostAggregate/Aggregate/actions/ManageHost.jsx
index 48a5b427..54673f01 100644
--- a/src/pages/compute/containers/HostAggregate/Aggregate/actions/ManageHost.jsx
+++ b/src/pages/compute/containers/HostAggregate/Aggregate/actions/ManageHost.jsx
@@ -109,7 +109,7 @@ export class ManageHost extends ModalAction {
title: t('Admin Status'),
dataIndex: 'status',
isHideable: true,
- render: (value) => serviceStatus[value] || value,
+ valueMap: serviceStatus,
tip: (value, record) => {
const { disabled_reason } = record || {};
if (disabled_reason) {
@@ -122,7 +122,7 @@ export class ManageHost extends ModalAction {
title: t('State'),
dataIndex: 'state',
isHideable: true,
- render: (value) => serviceState[value] || value,
+ valueMap: serviceState,
},
{
title: t('Last Updated'),
diff --git a/src/pages/compute/containers/Hypervisors/ComputeHost/index.jsx b/src/pages/compute/containers/Hypervisors/ComputeHost/index.jsx
index 47bc48b8..8fdf1e8e 100644
--- a/src/pages/compute/containers/Hypervisors/ComputeHost/index.jsx
+++ b/src/pages/compute/containers/Hypervisors/ComputeHost/index.jsx
@@ -61,7 +61,7 @@ export class ComputeHost extends Base {
{
title: t('Service Status'),
dataIndex: 'status',
- render: (value) => serviceStatus[value] || value,
+ valueMap: serviceStatus,
tip: (value, record) => {
const { disabled_reason } = record || {};
if (disabled_reason) {
@@ -73,7 +73,7 @@ export class ComputeHost extends Base {
{
title: t('Service State'),
dataIndex: 'state',
- render: (value) => serviceState[value] || value,
+ valueMap: serviceState,
},
{
title: t('Last Updated'),
diff --git a/src/pages/compute/containers/Image/Detail/BaseDetail.jsx b/src/pages/compute/containers/Image/Detail/BaseDetail.jsx
index 4767d2cd..de50f979 100644
--- a/src/pages/compute/containers/Image/Detail/BaseDetail.jsx
+++ b/src/pages/compute/containers/Image/Detail/BaseDetail.jsx
@@ -60,7 +60,7 @@ export class BaseDetail extends Base {
{
label: t('OS'),
dataIndex: 'os_distro',
- render: (value) => imageOS[value] || value,
+ valueMap: imageOS,
},
{
label: t('OS Version'),
@@ -93,7 +93,7 @@ export class BaseDetail extends Base {
{
label: t('Visibility'),
dataIndex: 'visibility',
- render: (value) => imageVisibility[value] || value,
+ valueMap: imageVisibility,
},
{
label: t('Protected'),
diff --git a/src/pages/compute/containers/Image/Detail/index.jsx b/src/pages/compute/containers/Image/Detail/index.jsx
index 957f1c46..a4fa5f8b 100644
--- a/src/pages/compute/containers/Image/Detail/index.jsx
+++ b/src/pages/compute/containers/Image/Detail/index.jsx
@@ -61,7 +61,7 @@ export class ImageDetail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (data) => imageStatus[data] || '-',
+ valueMap: imageStatus,
},
{
title: t('Project ID'),
diff --git a/src/pages/compute/containers/Image/Image.jsx b/src/pages/compute/containers/Image/Image.jsx
index b50b8a46..ae02458b 100644
--- a/src/pages/compute/containers/Image/Image.jsx
+++ b/src/pages/compute/containers/Image/Image.jsx
@@ -138,7 +138,7 @@ export class Image extends Base {
title: t('Use Type'),
dataIndex: 'usage_type',
isHideable: true,
- render: (value) => imageUsage[value] || value,
+ valueMap: imageUsage,
sorter: false,
},
{
@@ -152,19 +152,19 @@ export class Image extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => imageStatus[value] || value,
+ valueMap: imageStatus,
},
{
title: t('Visibility'),
dataIndex: 'visibility',
- render: (value) => imageVisibility[value] || value,
+ valueMap: imageVisibility,
sorter: false,
},
{
title: t('Disk Format'),
dataIndex: 'disk_format',
isHideable: true,
- render: (value) => imageFormats[value] || value,
+ valueMap: imageFormats,
},
{
title: t('Size'),
diff --git a/src/pages/compute/containers/Instance/Detail/index.jsx b/src/pages/compute/containers/Instance/Detail/index.jsx
index c230fff6..56b4d3af 100644
--- a/src/pages/compute/containers/Instance/Detail/index.jsx
+++ b/src/pages/compute/containers/Instance/Detail/index.jsx
@@ -91,7 +91,7 @@ export class InstanceDetail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (data) => instanceStatus[data] || data,
+ valueMap: instanceStatus,
},
{
title: t('Lock Status'),
diff --git a/src/pages/compute/containers/Instance/actions/DetachInterface.jsx b/src/pages/compute/containers/Instance/actions/DetachInterface.jsx
index 503bb59e..6b583c2d 100644
--- a/src/pages/compute/containers/Instance/actions/DetachInterface.jsx
+++ b/src/pages/compute/containers/Instance/actions/DetachInterface.jsx
@@ -118,7 +118,7 @@ export class DetachInterface extends ModalAction {
{
title: t('State'),
dataIndex: 'port_state',
- render: (value) => portStatus[value] || value,
+ valueMap: portStatus,
},
{
title: t('Mac Address'),
diff --git a/src/pages/compute/containers/Instance/actions/DetachVolume.jsx b/src/pages/compute/containers/Instance/actions/DetachVolume.jsx
index e04f5773..d3273e1a 100644
--- a/src/pages/compute/containers/Instance/actions/DetachVolume.jsx
+++ b/src/pages/compute/containers/Instance/actions/DetachVolume.jsx
@@ -105,7 +105,7 @@ export class DetachVolume extends ModalAction {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => volumeStatus[value] || value,
+ valueMap: volumeStatus,
},
{
title: t('Type'),
diff --git a/src/pages/compute/containers/Instance/actions/StepCreate/BaseStep/index.jsx b/src/pages/compute/containers/Instance/actions/StepCreate/BaseStep/index.jsx
index db31adc5..4a603431 100644
--- a/src/pages/compute/containers/Instance/actions/StepCreate/BaseStep/index.jsx
+++ b/src/pages/compute/containers/Instance/actions/StepCreate/BaseStep/index.jsx
@@ -483,7 +483,7 @@ export class BaseStep extends Base {
{
title: t('Disk Format'),
dataIndex: 'disk_format',
- render: (value) => imageFormats[value] || value,
+ valueMap: imageFormats,
},
{
title: t('Min System Disk'),
@@ -498,7 +498,7 @@ export class BaseStep extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => imageStatus[value] || value,
+ valueMap: imageStatus,
},
{
title: t('Created At'),
@@ -524,7 +524,7 @@ export class BaseStep extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => volumeStatus[value] || value,
+ valueMap: volumeStatus,
width: 80,
},
{
diff --git a/src/pages/compute/containers/Instance/actions/StepCreate/SystemStep/index.jsx b/src/pages/compute/containers/Instance/actions/StepCreate/SystemStep/index.jsx
index 311fe39a..1d748971 100644
--- a/src/pages/compute/containers/Instance/actions/StepCreate/SystemStep/index.jsx
+++ b/src/pages/compute/containers/Instance/actions/StepCreate/SystemStep/index.jsx
@@ -408,7 +408,7 @@ export class SystemStep extends Base {
{
title: t('Policy'),
dataIndex: 'policy',
- render: (value) => policyType[value] || value,
+ valueMap: policyType,
},
],
filterParams: [
diff --git a/src/pages/compute/containers/ServerGroup/Detail/index.jsx b/src/pages/compute/containers/ServerGroup/Detail/index.jsx
index eabd69b0..e34abb87 100644
--- a/src/pages/compute/containers/ServerGroup/Detail/index.jsx
+++ b/src/pages/compute/containers/ServerGroup/Detail/index.jsx
@@ -52,7 +52,7 @@ export class ServerGroupDetail extends Base {
{
title: t('Policy'),
dataIndex: 'policy',
- render: (value) => policyType[value] || value,
+ valueMap: policyType,
},
{
title: t('Member Count'),
diff --git a/src/pages/compute/containers/ServerGroup/index.jsx b/src/pages/compute/containers/ServerGroup/index.jsx
index eac07ef0..feaa9b1a 100644
--- a/src/pages/compute/containers/ServerGroup/index.jsx
+++ b/src/pages/compute/containers/ServerGroup/index.jsx
@@ -60,7 +60,7 @@ export class ServerGroup extends Base {
{
title: t('Policy'),
dataIndex: 'policy',
- render: (value) => policyType[value] || value,
+ valueMap: policyType,
},
];
diff --git a/src/pages/configuration/containers/SystemInfo/CinderService/index.jsx b/src/pages/configuration/containers/SystemInfo/CinderService/index.jsx
index 00111770..aa1bf574 100644
--- a/src/pages/configuration/containers/SystemInfo/CinderService/index.jsx
+++ b/src/pages/configuration/containers/SystemInfo/CinderService/index.jsx
@@ -62,7 +62,7 @@ export class CinderService extends Base {
{
title: t('Service Status'),
dataIndex: 'status',
- render: (value) => serviceStatus[value] || value,
+ valueMap: serviceStatus,
tip: (value, record) => {
if (value === 'enabled') {
return '';
@@ -77,7 +77,7 @@ export class CinderService extends Base {
{
title: t('Service State'),
dataIndex: 'state',
- render: (value) => serviceState[value] || value,
+ valueMap: serviceState,
},
{
title: t('Last Updated'),
diff --git a/src/pages/configuration/containers/SystemInfo/ComputeService/index.jsx b/src/pages/configuration/containers/SystemInfo/ComputeService/index.jsx
index aa08c1bf..0a0e95e1 100644
--- a/src/pages/configuration/containers/SystemInfo/ComputeService/index.jsx
+++ b/src/pages/configuration/containers/SystemInfo/ComputeService/index.jsx
@@ -62,7 +62,7 @@ export class ComputeService extends Base {
{
title: t('Service Status'),
dataIndex: 'status',
- render: (value) => serviceStatus[value] || value,
+ valueMap: serviceStatus,
tip: (value, record) => {
const { disabled_reason } = record || {};
if (disabled_reason) {
@@ -74,7 +74,7 @@ export class ComputeService extends Base {
{
title: t('Service State'),
dataIndex: 'state',
- render: (value) => serviceState[value] || value,
+ valueMap: serviceState,
},
{
title: t('Last Updated'),
diff --git a/src/pages/configuration/containers/SystemInfo/HeatService.jsx b/src/pages/configuration/containers/SystemInfo/HeatService.jsx
index 8d86adab..3c876e18 100644
--- a/src/pages/configuration/containers/SystemInfo/HeatService.jsx
+++ b/src/pages/configuration/containers/SystemInfo/HeatService.jsx
@@ -57,7 +57,7 @@ export class HeatService extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => serviceState[value] || value,
+ valueMap: serviceState,
},
{
title: t('Last Updated'),
diff --git a/src/pages/container-infra/containers/Clusters/Detail/index.jsx b/src/pages/container-infra/containers/Clusters/Detail/index.jsx
index 26461895..8de0680e 100644
--- a/src/pages/container-infra/containers/Clusters/Detail/index.jsx
+++ b/src/pages/container-infra/containers/Clusters/Detail/index.jsx
@@ -60,7 +60,7 @@ export class ClustersDetail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => clusterStatus[value] || value,
+ valueMap: clusterStatus,
},
{
title: t('Status Reason'),
@@ -69,7 +69,7 @@ export class ClustersDetail extends Base {
{
title: t('Health Status'),
dataIndex: 'health_status',
- render: (value) => healthStatus[value] || value || '-',
+ valueMap: healthStatus,
},
{
title: t('Health Status Reason'),
diff --git a/src/pages/container-infra/containers/Clusters/index.jsx b/src/pages/container-infra/containers/Clusters/index.jsx
index bd367137..8e015366 100644
--- a/src/pages/container-infra/containers/Clusters/index.jsx
+++ b/src/pages/container-infra/containers/Clusters/index.jsx
@@ -46,13 +46,13 @@ export class Clusters extends Base {
title: t('Status'),
isHideable: true,
dataIndex: 'status',
- render: (value) => clusterStatus[value] || value,
+ valueMap: clusterStatus,
},
{
title: t('Health Status'),
isHideable: true,
dataIndex: 'health_status',
- render: (value) => healthStatus[value] || value || '-',
+ valueMap: healthStatus,
},
{
title: t('Keypair'),
diff --git a/src/pages/container-service/containers/Capsules/Detail/index.jsx b/src/pages/container-service/containers/Capsules/Detail/index.jsx
index b746e6f4..1bbb6127 100644
--- a/src/pages/container-service/containers/Capsules/Detail/index.jsx
+++ b/src/pages/container-service/containers/Capsules/Detail/index.jsx
@@ -44,7 +44,7 @@ export class CapsulesDetail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => capsuleStatus[value] || value,
+ valueMap: capsuleStatus,
},
{
title: t('Created At'),
diff --git a/src/pages/container-service/containers/Capsules/index.jsx b/src/pages/container-service/containers/Capsules/index.jsx
index 62d43879..c4920623 100644
--- a/src/pages/container-service/containers/Capsules/index.jsx
+++ b/src/pages/container-service/containers/Capsules/index.jsx
@@ -48,7 +48,7 @@ export class Capsules extends Base {
title: t('Status'),
isHideable: true,
dataIndex: 'status',
- render: (value) => capsuleStatus[value] || value,
+ valueMap: capsuleStatus,
},
{
title: t('CPU'),
diff --git a/src/pages/container-service/containers/Containers/Detail/BaseDetail.jsx b/src/pages/container-service/containers/Containers/Detail/BaseDetail.jsx
index 3c9f1eda..beb99197 100644
--- a/src/pages/container-service/containers/Containers/Detail/BaseDetail.jsx
+++ b/src/pages/container-service/containers/Containers/Detail/BaseDetail.jsx
@@ -38,7 +38,7 @@ export class BaseDetail extends Base {
{
label: t('Status Detail'),
dataIndex: 'status_detail',
- render: (value) => containerStatus[value] || value,
+ valueMap: containerStatus,
},
{
label: t('Status Reason'),
diff --git a/src/pages/container-service/containers/Containers/Detail/index.jsx b/src/pages/container-service/containers/Containers/Detail/index.jsx
index 8b348f6d..45a08c50 100644
--- a/src/pages/container-service/containers/Containers/Detail/index.jsx
+++ b/src/pages/container-service/containers/Containers/Detail/index.jsx
@@ -53,7 +53,7 @@ export class ContainerDetail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => containerStatus[value] || value,
+ valueMap: containerStatus,
},
];
}
diff --git a/src/pages/container-service/containers/Containers/index.jsx b/src/pages/container-service/containers/Containers/index.jsx
index 364b928f..c6227d90 100644
--- a/src/pages/container-service/containers/Containers/index.jsx
+++ b/src/pages/container-service/containers/Containers/index.jsx
@@ -55,7 +55,7 @@ export class Containers extends Base {
title: t('Status'),
isHideable: true,
dataIndex: 'status',
- render: (value) => containerStatus[value] || value,
+ valueMap: containerStatus,
},
{
title: t('Image'),
@@ -66,7 +66,7 @@ export class Containers extends Base {
title: t('Task State'),
isHideable: true,
dataIndex: 'task_state',
- render: (value) => containerTaskStatus[value] || value,
+ valueMap: containerTaskStatus,
},
];
}
diff --git a/src/pages/container-service/containers/Services/index.jsx b/src/pages/container-service/containers/Services/index.jsx
index 673d670f..4d94fd72 100644
--- a/src/pages/container-service/containers/Services/index.jsx
+++ b/src/pages/container-service/containers/Services/index.jsx
@@ -67,7 +67,7 @@ export class Services extends Base {
{
title: t('Service State'),
dataIndex: 'state',
- render: (value) => serviceState[value] || value,
+ valueMap: serviceState,
},
{
title: t('Last Updated'),
diff --git a/src/pages/database/containers/Instances/Detail/BaseDetail.jsx b/src/pages/database/containers/Instances/Detail/BaseDetail.jsx
index 5b89ece4..d2f995ef 100644
--- a/src/pages/database/containers/Instances/Detail/BaseDetail.jsx
+++ b/src/pages/database/containers/Instances/Detail/BaseDetail.jsx
@@ -43,12 +43,12 @@ export class BaseDetail extends Base {
{
label: t('Status'),
dataIndex: 'status',
- render: (value) => InstanceStatus[value] || value,
+ valueMap: InstanceStatus,
},
{
label: t('Locality'),
dataIndex: 'locality',
- render: (value) => policyType[value] || value,
+ valueMap: policyType,
},
];
diff --git a/src/pages/database/containers/Instances/Detail/index.jsx b/src/pages/database/containers/Instances/Detail/index.jsx
index 88471917..ac2a1fdc 100644
--- a/src/pages/database/containers/Instances/Detail/index.jsx
+++ b/src/pages/database/containers/Instances/Detail/index.jsx
@@ -58,7 +58,7 @@ export class InstancesDetail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => InstanceStatus[value] || value,
+ valueMap: InstanceStatus,
},
{
title: t('Project ID'),
diff --git a/src/pages/database/containers/Instances/index.jsx b/src/pages/database/containers/Instances/index.jsx
index 1a1431d7..c5c6474a 100644
--- a/src/pages/database/containers/Instances/index.jsx
+++ b/src/pages/database/containers/Instances/index.jsx
@@ -109,7 +109,7 @@ export class Instances extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => InstanceStatus[value] || value,
+ valueMap: InstanceStatus,
},
];
}
diff --git a/src/pages/heat/containers/Stack/Detail/Event.jsx b/src/pages/heat/containers/Stack/Detail/Event.jsx
index e9df8d67..ec9c2bbe 100644
--- a/src/pages/heat/containers/Stack/Detail/Event.jsx
+++ b/src/pages/heat/containers/Stack/Detail/Event.jsx
@@ -67,7 +67,7 @@ export class Event extends Base {
title: t('Resource Status'),
dataIndex: 'resource_status',
isHideable: true,
- render: (value) => stackStatus[value] || value,
+ valueMap: stackStatus,
},
{
title: t('Resource Status Reason'),
diff --git a/src/pages/heat/containers/Stack/Detail/Resource.jsx b/src/pages/heat/containers/Stack/Detail/Resource.jsx
index e4e83c0e..b7dee372 100644
--- a/src/pages/heat/containers/Stack/Detail/Resource.jsx
+++ b/src/pages/heat/containers/Stack/Detail/Resource.jsx
@@ -193,7 +193,7 @@ export class Resource extends Base {
title: t('Resource Status'),
dataIndex: 'resource_status',
isHideable: true,
- render: (value) => stackStatus[value] || value,
+ valueMap: stackStatus,
},
{
title: t('Resource Status Reason'),
diff --git a/src/pages/heat/containers/Stack/Detail/index.jsx b/src/pages/heat/containers/Stack/Detail/index.jsx
index 015badad..48f1fb1a 100644
--- a/src/pages/heat/containers/Stack/Detail/index.jsx
+++ b/src/pages/heat/containers/Stack/Detail/index.jsx
@@ -52,7 +52,7 @@ export class StackDetail extends Base {
{
title: t('Stack Status'),
dataIndex: 'stack_status',
- render: (value) => stackStatus[value] || value,
+ valueMap: stackStatus,
},
{
title: t('Description'),
diff --git a/src/pages/heat/containers/Stack/index.jsx b/src/pages/heat/containers/Stack/index.jsx
index aedcad4d..304991fb 100644
--- a/src/pages/heat/containers/Stack/index.jsx
+++ b/src/pages/heat/containers/Stack/index.jsx
@@ -79,7 +79,7 @@ export class Stack extends Base {
title: t('Stack Status'),
dataIndex: 'stack_status',
isHideable: true,
- render: (value) => stackStatus[value] || value,
+ valueMap: stackStatus,
},
{
title: t('Created At'),
diff --git a/src/pages/network/containers/Certificate/Certificate.jsx b/src/pages/network/containers/Certificate/Certificate.jsx
index ac86909c..93d54c1b 100644
--- a/src/pages/network/containers/Certificate/Certificate.jsx
+++ b/src/pages/network/containers/Certificate/Certificate.jsx
@@ -88,7 +88,7 @@ export class Certificate extends Base {
{
title: t('Certificate Type'),
dataIndex: 'mode',
- render: (value) => certificateMode[value] || value,
+ valueMap: certificateMode,
isHideable: true,
},
{
@@ -130,7 +130,7 @@ export class Certificate extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => certificateStatus[value] || value,
+ valueMap: certificateStatus,
},
{
title: t('Created At'),
diff --git a/src/pages/network/containers/FloatingIp/Detail/PortForwarding/index.jsx b/src/pages/network/containers/FloatingIp/Detail/PortForwarding/index.jsx
index 76a6d03c..ca45d369 100644
--- a/src/pages/network/containers/FloatingIp/Detail/PortForwarding/index.jsx
+++ b/src/pages/network/containers/FloatingIp/Detail/PortForwarding/index.jsx
@@ -95,7 +95,7 @@ export class PortForwarding extends Base {
title: t('Protocol'),
dataIndex: 'protocol',
isHideable: true,
- render: (value) => portForwardingProtocols[value] || value,
+ valueMap: portForwardingProtocols,
},
{
title: t('Description'),
diff --git a/src/pages/network/containers/FloatingIp/Detail/index.jsx b/src/pages/network/containers/FloatingIp/Detail/index.jsx
index 7d528bb1..ebff6266 100644
--- a/src/pages/network/containers/FloatingIp/Detail/index.jsx
+++ b/src/pages/network/containers/FloatingIp/Detail/index.jsx
@@ -50,7 +50,7 @@ export class FloatingIpDetail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (data) => floatingIpStatus[data] || '-',
+ valueMap: floatingIpStatus,
},
{
title: t('Project ID'),
diff --git a/src/pages/network/containers/FloatingIp/index.jsx b/src/pages/network/containers/FloatingIp/index.jsx
index 42078acf..b8f20059 100644
--- a/src/pages/network/containers/FloatingIp/index.jsx
+++ b/src/pages/network/containers/FloatingIp/index.jsx
@@ -297,7 +297,7 @@ export class FloatingIps extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => floatingIpStatus[value] || value,
+ valueMap: floatingIpStatus,
},
{
title: t('Created At'),
diff --git a/src/pages/network/containers/LoadBalancers/Listener/Detail/Member/index.jsx b/src/pages/network/containers/LoadBalancers/Listener/Detail/Member/index.jsx
index e831d03e..19e46422 100644
--- a/src/pages/network/containers/LoadBalancers/Listener/Detail/Member/index.jsx
+++ b/src/pages/network/containers/LoadBalancers/Listener/Detail/Member/index.jsx
@@ -75,7 +75,7 @@ export class Members extends Base {
{
title: t('Status'),
dataIndex: 'provisioning_status',
- render: (data) => provisioningStatusCodes[data],
+ valueMap: provisioningStatusCodes,
isHideable: true,
},
{
diff --git a/src/pages/network/containers/LoadBalancers/Listener/Detail/index.jsx b/src/pages/network/containers/LoadBalancers/Listener/Detail/index.jsx
index 67e8486d..656a1753 100644
--- a/src/pages/network/containers/LoadBalancers/Listener/Detail/index.jsx
+++ b/src/pages/network/containers/LoadBalancers/Listener/Detail/index.jsx
@@ -60,7 +60,7 @@ export class ListenerDetail extends Base {
{
title: t('Status'),
dataIndex: 'provisioning_status',
- render: (t) => provisioningStatusCodes[t],
+ valueMap: provisioningStatusCodes,
},
{
title: t('Max connect'),
diff --git a/src/pages/network/containers/LoadBalancers/Listener/index.jsx b/src/pages/network/containers/LoadBalancers/Listener/index.jsx
index 3fbe7737..2d2bbdd7 100644
--- a/src/pages/network/containers/LoadBalancers/Listener/index.jsx
+++ b/src/pages/network/containers/LoadBalancers/Listener/index.jsx
@@ -74,7 +74,7 @@ export class Listeners extends Base {
{
title: t('Status'),
dataIndex: 'provisioning_status',
- render: (t) => provisioningStatusCodes[t],
+ valueMap: provisioningStatusCodes,
isHideable: true,
},
{
diff --git a/src/pages/network/containers/LoadBalancers/LoadBalancerInstance/Detail/index.jsx b/src/pages/network/containers/LoadBalancers/LoadBalancerInstance/Detail/index.jsx
index e021afb1..1937bc59 100644
--- a/src/pages/network/containers/LoadBalancers/LoadBalancerInstance/Detail/index.jsx
+++ b/src/pages/network/containers/LoadBalancers/LoadBalancerInstance/Detail/index.jsx
@@ -60,7 +60,7 @@ export class LoadBalancerDetail extends Base {
{
title: t('Status'),
dataIndex: 'provisioning_status',
- render: (data) => provisioningStatusCodes[data],
+ valueMap: provisioningStatusCodes,
},
{
title: t('Network'),
diff --git a/src/pages/network/containers/LoadBalancers/LoadBalancerInstance/index.jsx b/src/pages/network/containers/LoadBalancers/LoadBalancerInstance/index.jsx
index 56744774..1ae27bdc 100644
--- a/src/pages/network/containers/LoadBalancers/LoadBalancerInstance/index.jsx
+++ b/src/pages/network/containers/LoadBalancers/LoadBalancerInstance/index.jsx
@@ -118,7 +118,7 @@ export class LoadBalancerInstance extends Base {
{
title: t('Operating Status'),
dataIndex: 'operating_status',
- render: (t) => operatingStatusCodes[t],
+ valueMap: operatingStatusCodes,
titleTip: (
@@ -135,7 +135,7 @@ export class LoadBalancerInstance extends Base {
{
title: t('Provisioning Status'),
dataIndex: 'provisioning_status',
- render: (t) => provisioningStatusCodes[t],
+ valueMap: provisioningStatusCodes,
},
{
title: t('Listener Number'),
diff --git a/src/pages/network/containers/Network/Detail/index.jsx b/src/pages/network/containers/Network/Detail/index.jsx
index 3961b04b..89269497 100644
--- a/src/pages/network/containers/Network/Detail/index.jsx
+++ b/src/pages/network/containers/Network/Detail/index.jsx
@@ -76,7 +76,7 @@ export class NetworkDetail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (data) => networkStatus[data] || '-',
+ valueMap: networkStatus,
},
{
title: t('Admin State'),
diff --git a/src/pages/network/containers/Port/Detail/BaseDetail/index.jsx b/src/pages/network/containers/Port/Detail/BaseDetail/index.jsx
index 856e97ff..3cd71a19 100644
--- a/src/pages/network/containers/Port/Detail/BaseDetail/index.jsx
+++ b/src/pages/network/containers/Port/Detail/BaseDetail/index.jsx
@@ -57,7 +57,7 @@ export class BaseDetail extends Base {
{
label: t('VNIC Type'),
dataIndex: 'binding:vnic_type',
- render: (value) => bindingTypes[value] || value,
+ valueMap: bindingTypes,
},
];
if (this.qosEndpoint) {
diff --git a/src/pages/network/containers/Port/Detail/index.jsx b/src/pages/network/containers/Port/Detail/index.jsx
index da902583..f483e37e 100644
--- a/src/pages/network/containers/Port/Detail/index.jsx
+++ b/src/pages/network/containers/Port/Detail/index.jsx
@@ -95,7 +95,7 @@ export class PortDetail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (data) => networkStatus[data] || '-',
+ valueMap: networkStatus,
},
{
title: t('Owned Network'),
diff --git a/src/pages/network/containers/Port/index.jsx b/src/pages/network/containers/Port/index.jsx
index 8c2faa29..dbf61cd7 100644
--- a/src/pages/network/containers/Port/index.jsx
+++ b/src/pages/network/containers/Port/index.jsx
@@ -250,7 +250,7 @@ export class Port extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => portStatus[value] || value,
+ valueMap: portStatus,
},
];
if (this.isInstanceDetail) {
diff --git a/src/pages/network/containers/Router/Detail/index.jsx b/src/pages/network/containers/Router/Detail/index.jsx
index 4ee96020..b8e5fcb7 100644
--- a/src/pages/network/containers/Router/Detail/index.jsx
+++ b/src/pages/network/containers/Router/Detail/index.jsx
@@ -49,7 +49,7 @@ export class RouterDetail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (data) => routerStatus[data] || '-',
+ valueMap: routerStatus,
},
{
title: t('Admin State'),
diff --git a/src/pages/network/containers/Router/Port/Detail/BaseDetail.jsx b/src/pages/network/containers/Router/Port/Detail/BaseDetail.jsx
index 7d51b917..120f8207 100644
--- a/src/pages/network/containers/Router/Port/Detail/BaseDetail.jsx
+++ b/src/pages/network/containers/Router/Port/Detail/BaseDetail.jsx
@@ -146,7 +146,7 @@ export class BaseDetail extends Base {
{
label: t('VNIC Type'),
dataIndex: 'binding__vnic_type',
- render: (value) => bindingTypes[value] || value,
+ valueMap: bindingTypes,
},
];
if (this.detailData.binding__host_id) {
diff --git a/src/pages/network/containers/Router/Port/Detail/index.jsx b/src/pages/network/containers/Router/Port/Detail/index.jsx
index db406b79..26c1547c 100644
--- a/src/pages/network/containers/Router/Port/Detail/index.jsx
+++ b/src/pages/network/containers/Router/Port/Detail/index.jsx
@@ -45,7 +45,7 @@ export class PortDetail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (data) => portStatus[data] || '-',
+ valueMap: portStatus,
},
{
title: t('Project ID'),
diff --git a/src/pages/network/containers/Router/Port/index.jsx b/src/pages/network/containers/Router/Port/index.jsx
index ce253960..5569e23e 100644
--- a/src/pages/network/containers/Router/Port/index.jsx
+++ b/src/pages/network/containers/Router/Port/index.jsx
@@ -89,7 +89,7 @@ export class Ports extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => portStatus[value] || value,
+ valueMap: portStatus,
},
{
title: t('Created At'),
diff --git a/src/pages/network/containers/Router/actions/Create.jsx b/src/pages/network/containers/Router/actions/Create.jsx
index af729cb4..41004f30 100644
--- a/src/pages/network/containers/Router/actions/Create.jsx
+++ b/src/pages/network/containers/Router/actions/Create.jsx
@@ -181,12 +181,12 @@ export class Create extends ModalAction {
{
title: t('State'),
dataIndex: 'state',
- render: (value) => availabilityZoneState[value] || value,
+ valueMap: availabilityZoneState,
},
{
title: t('Resource Type'),
dataIndex: 'resource',
- render: (value) => availabilityZoneResource[value] || value,
+ valueMap: availabilityZoneResource,
},
],
},
@@ -218,7 +218,7 @@ export class Create extends ModalAction {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => networkStatus[value] || value,
+ valueMap: networkStatus,
},
{
title: t('Created At'),
diff --git a/src/pages/network/containers/Router/actions/SetGateway.jsx b/src/pages/network/containers/Router/actions/SetGateway.jsx
index 9bbbf204..bb12217c 100644
--- a/src/pages/network/containers/Router/actions/SetGateway.jsx
+++ b/src/pages/network/containers/Router/actions/SetGateway.jsx
@@ -73,7 +73,7 @@ export class SetGateway extends ModalAction {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => networkStatus[value] || value,
+ valueMap: networkStatus,
},
{
title: t('Created At'),
diff --git a/src/pages/network/containers/VPN/IPsecSiteConnection/index.jsx b/src/pages/network/containers/VPN/IPsecSiteConnection/index.jsx
index 1885fb4c..f3db69d5 100644
--- a/src/pages/network/containers/VPN/IPsecSiteConnection/index.jsx
+++ b/src/pages/network/containers/VPN/IPsecSiteConnection/index.jsx
@@ -87,7 +87,7 @@ export class IPsecSiteConnection extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (v) => vpnStatus[v],
+ valueMap: vpnStatus,
},
];
diff --git a/src/pages/network/containers/VPN/VPNGateway/index.jsx b/src/pages/network/containers/VPN/VPNGateway/index.jsx
index 7cefbd39..57cb727d 100644
--- a/src/pages/network/containers/VPN/VPNGateway/index.jsx
+++ b/src/pages/network/containers/VPN/VPNGateway/index.jsx
@@ -88,7 +88,7 @@ export class VPNGateway extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (v) => vpnStatus[v],
+ valueMap: vpnStatus,
},
];
diff --git a/src/pages/share/containers/Share/Detail/AccessRule/index.jsx b/src/pages/share/containers/Share/Detail/AccessRule/index.jsx
index b652c5fb..0466304e 100644
--- a/src/pages/share/containers/Share/Detail/AccessRule/index.jsx
+++ b/src/pages/share/containers/Share/Detail/AccessRule/index.jsx
@@ -59,12 +59,12 @@ export class ShareAccessRule extends Base {
{
title: t('Access Level'),
dataIndex: 'access_level',
- render: (value) => shareAccessLevel[value] || value,
+ valueMap: shareAccessLevel,
},
{
title: t('State'),
dataIndex: 'state',
- render: (value) => shareAccessRuleState[value] || value,
+ valueMap: shareAccessRuleState,
},
{
title: t('Access Key'),
diff --git a/src/pages/share/containers/Share/Detail/BaseDetail.jsx b/src/pages/share/containers/Share/Detail/BaseDetail.jsx
index 1600c518..94eef8a2 100644
--- a/src/pages/share/containers/Share/Detail/BaseDetail.jsx
+++ b/src/pages/share/containers/Share/Detail/BaseDetail.jsx
@@ -57,7 +57,7 @@ export class BaseDetail extends Base {
{
label: t('Protocol'),
dataIndex: 'share_proto',
- render: (value) => shareProtocol[value] || value,
+ valueMap: shareProtocol,
},
{
label: t('Public'),
diff --git a/src/pages/share/containers/Share/Detail/index.jsx b/src/pages/share/containers/Share/Detail/index.jsx
index 6af23646..2ae9e381 100644
--- a/src/pages/share/containers/Share/Detail/index.jsx
+++ b/src/pages/share/containers/Share/Detail/index.jsx
@@ -53,7 +53,7 @@ export class Detail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => shareStatus[value] || value,
+ valueMap: shareStatus,
},
{
title: t('Created At'),
diff --git a/src/pages/share/containers/Share/index.jsx b/src/pages/share/containers/Share/index.jsx
index f25943ea..e3f3df87 100644
--- a/src/pages/share/containers/Share/index.jsx
+++ b/src/pages/share/containers/Share/index.jsx
@@ -123,7 +123,7 @@ export class Share extends Base {
{
title: t('Protocol'),
dataIndex: 'share_proto',
- render: (value) => shareProtocol[value] || value,
+ valueMap: shareProtocol,
},
{
title: t('Public'),
@@ -135,7 +135,7 @@ export class Share extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => shareStatus[value] || value,
+ valueMap: shareStatus,
},
{
title: t('Share Network'),
diff --git a/src/pages/share/containers/ShareGroup/Detail/index.jsx b/src/pages/share/containers/ShareGroup/Detail/index.jsx
index 86218d4f..2d4fd228 100644
--- a/src/pages/share/containers/ShareGroup/Detail/index.jsx
+++ b/src/pages/share/containers/ShareGroup/Detail/index.jsx
@@ -52,7 +52,7 @@ export class Detail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => shareGroupStatus[value] || value,
+ valueMap: shareGroupStatus,
},
{
title: t('Created At'),
diff --git a/src/pages/share/containers/ShareInstance/Detail/BaseDetail.jsx b/src/pages/share/containers/ShareInstance/Detail/BaseDetail.jsx
index b1cbe177..a638a0e1 100644
--- a/src/pages/share/containers/ShareInstance/Detail/BaseDetail.jsx
+++ b/src/pages/share/containers/ShareInstance/Detail/BaseDetail.jsx
@@ -52,7 +52,7 @@ export class BaseDetail extends Base {
{
label: t('Access Rules Status'),
dataIndex: 'access_rules_status',
- render: (value) => accessRuleStatus[value] || value,
+ valueMap: accessRuleStatus,
},
{
label: t('Progress'),
diff --git a/src/pages/share/containers/ShareInstance/Detail/index.jsx b/src/pages/share/containers/ShareInstance/Detail/index.jsx
index 74ac31cb..ba29c2ad 100644
--- a/src/pages/share/containers/ShareInstance/Detail/index.jsx
+++ b/src/pages/share/containers/ShareInstance/Detail/index.jsx
@@ -45,7 +45,7 @@ export class Detail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => shareStatus[value] || value,
+ valueMap: shareStatus,
},
{
title: t('Created'),
diff --git a/src/pages/share/containers/ShareInstance/index.jsx b/src/pages/share/containers/ShareInstance/index.jsx
index 59dc9259..f8e7f627 100644
--- a/src/pages/share/containers/ShareInstance/index.jsx
+++ b/src/pages/share/containers/ShareInstance/index.jsx
@@ -55,7 +55,7 @@ export class ShareInstance extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => shareStatus[value] || value,
+ valueMap: shareStatus,
},
{
title: t('Availability Zone'),
diff --git a/src/pages/share/containers/ShareServer/Detail/index.jsx b/src/pages/share/containers/ShareServer/Detail/index.jsx
index fd1c9d1f..c5626d1c 100644
--- a/src/pages/share/containers/ShareServer/Detail/index.jsx
+++ b/src/pages/share/containers/ShareServer/Detail/index.jsx
@@ -46,7 +46,7 @@ export class Detail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => shareServerStatus[value] || value,
+ valueMap: shareServerStatus,
},
{
title: t('Created'),
diff --git a/src/pages/share/containers/ShareServer/index.jsx b/src/pages/share/containers/ShareServer/index.jsx
index 9976072e..ebfff450 100644
--- a/src/pages/share/containers/ShareServer/index.jsx
+++ b/src/pages/share/containers/ShareServer/index.jsx
@@ -56,7 +56,7 @@ export class ShareServer extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => shareServerStatus[value] || value,
+ valueMap: shareServerStatus,
},
{
title: t('Share Network'),
diff --git a/src/pages/storage/containers/Backup/Detail/index.jsx b/src/pages/storage/containers/Backup/Detail/index.jsx
index 30e98856..dfe9a5f0 100644
--- a/src/pages/storage/containers/Backup/Detail/index.jsx
+++ b/src/pages/storage/containers/Backup/Detail/index.jsx
@@ -66,7 +66,7 @@ export class Detail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => backupStatus[value] || value,
+ valueMap: backupStatus,
},
{
title: t('Project ID'),
diff --git a/src/pages/storage/containers/Backup/index.jsx b/src/pages/storage/containers/Backup/index.jsx
index bc2ce729..8e4c8e19 100644
--- a/src/pages/storage/containers/Backup/index.jsx
+++ b/src/pages/storage/containers/Backup/index.jsx
@@ -105,7 +105,7 @@ export class Backup extends Base {
title: t('Status'),
dataIndex: 'status',
isHideable: true,
- render: (value) => backupStatus[value] || value,
+ valueMap: backupStatus,
},
{
title: t('Created At'),
diff --git a/src/pages/storage/containers/Snapshot/Detail/index.jsx b/src/pages/storage/containers/Snapshot/Detail/index.jsx
index 3496838a..953be6d9 100644
--- a/src/pages/storage/containers/Snapshot/Detail/index.jsx
+++ b/src/pages/storage/containers/Snapshot/Detail/index.jsx
@@ -52,7 +52,7 @@ export class Detail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (data) => volumeStatus[data] || '-',
+ valueMap: volumeStatus,
},
{
title: t('Size'),
diff --git a/src/pages/storage/containers/Snapshot/index.jsx b/src/pages/storage/containers/Snapshot/index.jsx
index eacc8748..59d2654e 100644
--- a/src/pages/storage/containers/Snapshot/index.jsx
+++ b/src/pages/storage/containers/Snapshot/index.jsx
@@ -112,7 +112,7 @@ export class Snapshots extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => volumeStatus[value] || value,
+ valueMap: volumeStatus,
},
{
title: t('Volume ID/Name'),
diff --git a/src/pages/storage/containers/Volume/Detail/index.jsx b/src/pages/storage/containers/Volume/Detail/index.jsx
index 0b24bb0b..02dc9e8c 100644
--- a/src/pages/storage/containers/Volume/Detail/index.jsx
+++ b/src/pages/storage/containers/Volume/Detail/index.jsx
@@ -63,7 +63,7 @@ export class VolumeDetail extends Base {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => volumeStatus[value] || value,
+ valueMap: volumeStatus,
},
{
title: t('Size'),
diff --git a/src/pages/storage/containers/Volume/actions/Create/index.jsx b/src/pages/storage/containers/Volume/actions/Create/index.jsx
index ba79ffb0..d5b91d21 100644
--- a/src/pages/storage/containers/Volume/actions/Create/index.jsx
+++ b/src/pages/storage/containers/Volume/actions/Create/index.jsx
@@ -468,7 +468,7 @@ export class Create extends FormAction {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => volumeStatus[value] || value,
+ valueMap: volumeStatus,
},
{
title: t('Description'),
diff --git a/src/pages/storage/containers/Volume/actions/Restore.jsx b/src/pages/storage/containers/Volume/actions/Restore.jsx
index 8af97e31..4d9af9dd 100644
--- a/src/pages/storage/containers/Volume/actions/Restore.jsx
+++ b/src/pages/storage/containers/Volume/actions/Restore.jsx
@@ -84,7 +84,7 @@ export class RestoreAction extends ModalAction {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => volumeStatus[value] || value,
+ valueMap: volumeStatus,
},
{
title: t('Created At'),
diff --git a/src/pages/storage/containers/VolumeType/QosSpec/Detail/index.jsx b/src/pages/storage/containers/VolumeType/QosSpec/Detail/index.jsx
index 977a4067..0a0b48ab 100644
--- a/src/pages/storage/containers/VolumeType/QosSpec/Detail/index.jsx
+++ b/src/pages/storage/containers/VolumeType/QosSpec/Detail/index.jsx
@@ -49,7 +49,7 @@ export class Detail extends Base {
{
title: t('Consumer'),
dataIndex: 'consumer',
- render: (value) => consumerTypes[value] || value,
+ valueMap: consumerTypes,
},
];
}
diff --git a/src/pages/storage/containers/VolumeType/QosSpec/index.jsx b/src/pages/storage/containers/VolumeType/QosSpec/index.jsx
index 980fe38e..6d8c0e24 100644
--- a/src/pages/storage/containers/VolumeType/QosSpec/index.jsx
+++ b/src/pages/storage/containers/VolumeType/QosSpec/index.jsx
@@ -50,7 +50,7 @@ export class QosSpecs extends Base {
title: t('Consumer'),
dataIndex: 'consumer',
isHideable: true,
- render: (value) => consumerTypes[value] || value,
+ valueMap: consumerTypes,
},
{
title: t('Specs'),
diff --git a/src/pages/storage/containers/VolumeType/VolumeType/Detail/BaseDetail.jsx b/src/pages/storage/containers/VolumeType/VolumeType/Detail/BaseDetail.jsx
index 2780449d..eab69c03 100644
--- a/src/pages/storage/containers/VolumeType/VolumeType/Detail/BaseDetail.jsx
+++ b/src/pages/storage/containers/VolumeType/VolumeType/Detail/BaseDetail.jsx
@@ -30,7 +30,7 @@ export class BaseDetail extends Base {
{
label: t('Control Location'),
dataIndex: 'encryption.control_location',
- render: (value) => controls[value] || value,
+ valueMap: controls,
},
{
label: t('Cipher'),
diff --git a/src/pages/storage/containers/VolumeType/VolumeType/actions/ManageQos.jsx b/src/pages/storage/containers/VolumeType/VolumeType/actions/ManageQos.jsx
index a6d18ece..65de7ae8 100644
--- a/src/pages/storage/containers/VolumeType/VolumeType/actions/ManageQos.jsx
+++ b/src/pages/storage/containers/VolumeType/VolumeType/actions/ManageQos.jsx
@@ -93,7 +93,7 @@ export class ManageQos extends ModalAction {
{
title: t('Consumer'),
dataIndex: 'consumer',
- render: (value) => consumerTypes[value] || value,
+ valueMap: consumerTypes,
},
{
title: t('Specs'),
diff --git a/src/resources/cinder/backup.jsx b/src/resources/cinder/backup.jsx
index 1405bc75..fecbc681 100644
--- a/src/resources/cinder/backup.jsx
+++ b/src/resources/cinder/backup.jsx
@@ -74,7 +74,7 @@ export const backupPointColumns = [
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => backupStatus[value] || value,
+ valueMap: backupStatus,
},
{
title: t('Backup Mode'),
diff --git a/src/resources/cinder/volume.jsx b/src/resources/cinder/volume.jsx
index 88436b11..b4ac56d5 100644
--- a/src/resources/cinder/volume.jsx
+++ b/src/resources/cinder/volume.jsx
@@ -167,7 +167,7 @@ export const volumeColumns = [
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => volumeStatus[value] || value,
+ valueMap: volumeStatus,
},
{
title: t('Shared'),
@@ -277,7 +277,7 @@ export const getVolumeColumnsList = (self) => {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => volumeStatus[value] || value,
+ valueMap: volumeStatus,
},
{
title: t('Type'),
@@ -290,7 +290,7 @@ export const getVolumeColumnsList = (self) => {
title: t('Disk Tag'),
dataIndex: 'disk_tag',
isHideable: true,
- render: (value) => diskTag[value] || value,
+ valueMap: diskTag,
sorter: false,
},
{
@@ -333,7 +333,7 @@ export const getVolumeColumnsList = (self) => {
),
dataIndex: 'bootable',
isHideable: true,
- render: (value) => bootableType[value] || value,
+ valueMap: bootableType,
},
{
title: t('Shared'),
diff --git a/src/resources/glance/image.jsx b/src/resources/glance/image.jsx
index a806d0a2..8d4bb2e6 100644
--- a/src/resources/glance/image.jsx
+++ b/src/resources/glance/image.jsx
@@ -189,7 +189,7 @@ export const getImageColumns = (self) => [
{
title: t('System'),
dataIndex: 'os_distro',
- render: (value) => imageOS[value] || value,
+ valueMap: imageOS,
},
{
title: t('OS Version'),
@@ -208,12 +208,12 @@ export const getImageColumns = (self) => [
{
title: t('Access Control'),
dataIndex: 'visibility',
- render: (value) => imageVisibility[value] || value,
+ valueMap: imageVisibility,
},
{
title: t('Format'),
dataIndex: 'disk_format',
- render: (value) => imageFormats[value] || value,
+ valueMap: imageFormats,
},
{
title: t('Image Size'),
diff --git a/src/resources/glance/instance-snapshot.js b/src/resources/glance/instance-snapshot.js
index aa6b9766..9fdd77e1 100644
--- a/src/resources/glance/instance-snapshot.js
+++ b/src/resources/glance/instance-snapshot.js
@@ -37,12 +37,12 @@ export const getBaseSnapshotColumns = (self) => [
title: t('Disk Format'),
dataIndex: 'disk_format',
isHideable: true,
- render: (value) => imageFormats[value] || value,
+ valueMap: imageFormats,
},
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => imageStatus[value] || value,
+ valueMap: imageStatus,
},
{
title: t('Created At'),
diff --git a/src/resources/manila/share-group.js b/src/resources/manila/share-group.js
index d5ba601c..1b50389e 100644
--- a/src/resources/manila/share-group.js
+++ b/src/resources/manila/share-group.js
@@ -46,7 +46,7 @@ export const getShareGroupColumns = (self) => {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => shareGroupStatus[value] || value,
+ valueMap: shareGroupStatus,
},
{
title: t('Created At'),
diff --git a/src/resources/neutron/network.jsx b/src/resources/neutron/network.jsx
index 89aab161..66a270c2 100644
--- a/src/resources/neutron/network.jsx
+++ b/src/resources/neutron/network.jsx
@@ -55,7 +55,7 @@ export const networkColumns = (self) => [
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => networkStatus[value] || value,
+ valueMap: networkStatus,
},
{
title: t('Subnet Count'),
diff --git a/src/resources/neutron/port.jsx b/src/resources/neutron/port.jsx
index bb6c320c..d5a5dbf6 100644
--- a/src/resources/neutron/port.jsx
+++ b/src/resources/neutron/port.jsx
@@ -152,7 +152,7 @@ export function getPortFormItem(withResourceNameAndStatusFilter = true) {
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => portStatus[value] || value,
+ valueMap: portStatus,
},
{
title: t('Bind Resource'),
@@ -268,7 +268,7 @@ export const portColumns = [
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => portStatus[value] || value,
+ valueMap: portStatus,
sorter: false,
},
];
diff --git a/src/resources/neutron/router.jsx b/src/resources/neutron/router.jsx
index c0ee3670..30e0e370 100644
--- a/src/resources/neutron/router.jsx
+++ b/src/resources/neutron/router.jsx
@@ -48,7 +48,7 @@ export const getRouterColumns = (self) => [
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => routerStatus[value] || value,
+ valueMap: routerStatus,
},
{
title: t('Open External Gateway'),
diff --git a/src/resources/nova/flavor.js b/src/resources/nova/flavor.js
index 9b3d2cbb..c347df78 100644
--- a/src/resources/nova/flavor.js
+++ b/src/resources/nova/flavor.js
@@ -146,7 +146,7 @@ export const getBaseColumns = (self) => [
{
title: t('Category'),
dataIndex: 'category',
- render: (value) => flavorCategoryList[value] || value,
+ valueMap: flavorCategoryList,
},
{
title: t('CPU'),
@@ -224,19 +224,19 @@ export const gpuColumns = [
title: t('CPU Policy'),
dataIndex: 'hw:cpu_policy',
isHideable: true,
- render: (value) => cpuPolicyList[value] || value,
+ valueMap: cpuPolicyList,
},
{
title: t('CPU Thread Policy'),
dataIndex: 'hw:cpu_thread_policy',
isHideable: true,
- render: (value) => cpuThreadPolicyMap[value] || value,
+ valueMap: cpuThreadPolicyMap,
},
{
title: t('Memory Page'),
dataIndex: 'hw:mem_page_size',
isHideable: true,
- render: (value) => pageTypeMap[value] || value,
+ valueMap: pageTypeMap,
},
];
diff --git a/src/resources/nova/instance.jsx b/src/resources/nova/instance.jsx
index 0ad19037..471b5c22 100644
--- a/src/resources/nova/instance.jsx
+++ b/src/resources/nova/instance.jsx
@@ -510,7 +510,7 @@ export const actionColumn = (self) => {
{
title: t('Operation Name'),
dataIndex: 'action',
- render: (value) => actionMap[value],
+ valueMap: actionMap,
},
{
title: t('Project ID/Name'),
diff --git a/src/resources/octavia/lb.jsx b/src/resources/octavia/lb.jsx
index 3ac1698d..5eae1a6e 100644
--- a/src/resources/octavia/lb.jsx
+++ b/src/resources/octavia/lb.jsx
@@ -50,7 +50,7 @@ export const getCertificateColumns = (self) => [
{
title: t('Certificate Type'),
dataIndex: 'mode',
- render: (value) => certificateMode[value] || value,
+ valueMap: certificateMode,
},
{
title: t('Expires At'),
@@ -86,7 +86,7 @@ export const getCertificateColumns = (self) => [
{
title: t('Status'),
dataIndex: 'status',
- render: (value) => certificateStatus[value] || value,
+ valueMap: certificateStatus,
},
{
title: t('Created At'),
diff --git a/src/resources/zun/actions.jsx b/src/resources/zun/actions.jsx
index e8de4291..95744bf6 100644
--- a/src/resources/zun/actions.jsx
+++ b/src/resources/zun/actions.jsx
@@ -48,7 +48,7 @@ export const actionColumn = (self) => {
{
title: t('Operation Name'),
dataIndex: 'action',
- render: (value) => actionMap[value] || value,
+ valueMap: actionMap,
},
{
title: t('Project ID/Name'),
diff --git a/src/utils/table.jsx b/src/utils/table.jsx
index f4f6c015..2b40c5e6 100644
--- a/src/utils/table.jsx
+++ b/src/utils/table.jsx
@@ -14,7 +14,15 @@
import React from 'react';
import { Link } from 'react-router-dom';
-import { isArray, get, isString, isBoolean, isNil, isObjectLike } from 'lodash';
+import {
+ isArray,
+ get,
+ isString,
+ isBoolean,
+ isNil,
+ isObjectLike,
+ isObject,
+} from 'lodash';
import Status from 'components/Status';
import { renderFilterMap } from 'utils/index';
import { getLinkRender } from 'utils/route-map';
@@ -235,3 +243,14 @@ export const idNameColumn = {
);
},
};
+
+export const getValueMapRender = (column) => {
+ const { valueMap, render } = column;
+ if (render) {
+ return render;
+ }
+ if (valueMap && isObject(valueMap)) {
+ return (value) => valueMap[value] || value;
+ }
+ return null;
+};