skyline/src/pages/network/containers/Network/Detail/index.jsx
Jingwei.Zhang 3f9ca389b8 fix: fix the plural form of the menu words && tab title words
1. Fix the plural form of the menu words
2. Fix the plural form of the tab title
3. Fix the related e2e case

Change-Id: Id37115d9efac341413b401d12049cf0d621e0385
2022-08-01 13:01:15 +08:00

160 lines
3.6 KiB
JavaScript

// Copyright 2021 99cloud
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import { inject, observer } from 'mobx-react';
import Base from 'containers/TabDetail';
import { NetworkStore } from 'stores/neutron/network';
import { networkStatus } from 'resources/neutron/network';
import VirtualAdapter from 'src/pages/network/containers/VirtualAdapter';
import globalRootStore from 'stores/root';
import Subnets from './Subnets';
import Detail from './Detail';
import actionConfigs from '../actions';
export class NetworkDetail extends Base {
get name() {
return t('network');
}
get policy() {
return 'get_network';
}
get listUrl() {
return this.getRoutePath('network');
}
get actionConfigs() {
return actionConfigs;
}
fetchData = (params) => {
if (this.store.fetchDetail) {
const newParams = {
...this.params,
...(params || {}),
all_projects: this.isAdminPage,
};
this.store
.fetchDetailWithAvailabilityAndUsage({
...newParams,
isAdminPage: this.isAdminPage,
currentProjectId: globalRootStore.user.project.id,
})
.catch(this.catch);
}
};
get canAddNetworkIPUsageInfo() {
return (
this.isAdminPage ||
globalRootStore.user.project.id === this.detailData.project_id
);
}
get detailInfos() {
const ret = [
{
title: t('Name'),
dataIndex: 'name',
},
{
title: t('Project ID'),
dataIndex: 'project_id',
},
{
title: t('Status'),
dataIndex: 'status',
render: (data) => networkStatus[data] || '-',
},
{
title: t('Admin State'),
dataIndex: 'admin_state_up',
valueRender: 'yesNo',
},
{
title: t('Shared'),
dataIndex: 'shared',
valueRender: 'yesNo',
},
{
title: t('Created At'),
dataIndex: 'created_at',
valueRender: 'toLocalTime',
},
{
title: t('Update At'),
dataIndex: 'updated_at',
valueRender: 'toLocalTime',
},
{
title: t('Description'),
dataIndex: 'description',
},
];
if (this.isAdminPage) {
ret.splice(2, 0, {
title: t('Project Name'),
dataIndex: 'projectName',
});
ret.splice(7, 0, {
title: t('DHCP Agents'),
dataIndex: 'dhcp_agents',
});
}
if (this.canAddNetworkIPUsageInfo) {
ret.splice(
4,
0,
{
title: t('Total IPs'),
dataIndex: 'total_ips',
},
{
title: t('Used IPs'),
dataIndex: 'used_ips',
}
);
}
return ret;
}
get tabs() {
const tabs = [
{
title: t('Detail'),
key: 'detail',
component: Detail,
},
{
title: t('Subnets'),
key: 'subnets',
component: Subnets,
},
{
title: t('Ports'),
key: 'ports',
component: VirtualAdapter,
},
];
return tabs;
}
init() {
this.store = new NetworkStore();
}
}
export default inject('rootStore')(observer(NetworkDetail));