From 1aaff3bab3d1b901556ca20a4b301cc2e007d603 Mon Sep 17 00:00:00 2001 From: zhangjingwei Date: Thu, 5 Aug 2021 18:25:27 +0800 Subject: [PATCH] fix: Fix volume type quota of project in administrator 1. Fix volume type quota in project detail page 2. Fix volume type quota in manage quota action 3. Update module export Change-Id: I17795422508e5a61e6f12903808586e1f940030b --- .../identity/containers/Project/Detail/Quota.jsx | 15 +++++++-------- .../containers/Project/actions/QuotaManager.jsx | 11 +++++------ .../network/containers/Network/AdminNetwork.jsx | 6 +++--- .../network/containers/Network/Detail/index.jsx | 6 +++--- .../network/containers/Network/ExtNetwork.jsx | 6 +++--- .../network/containers/Network/ProjectNetwork.jsx | 6 +++--- .../network/containers/Network/SharedNetwork.jsx | 6 +++--- .../containers/Network/actions/CreateNetwork.jsx | 6 +++--- .../containers/VirtualAdapter/actions/Edit.jsx | 6 +++--- 9 files changed, 33 insertions(+), 35 deletions(-) diff --git a/src/pages/identity/containers/Project/Detail/Quota.jsx b/src/pages/identity/containers/Project/Detail/Quota.jsx index ca2e2314..ee9895b0 100644 --- a/src/pages/identity/containers/Project/Detail/Quota.jsx +++ b/src/pages/identity/containers/Project/Detail/Quota.jsx @@ -19,14 +19,10 @@ import globalProjectStore from 'stores/keystone/project'; import { Card, Col, Row, List } from 'antd'; import Progress from 'components/ProjectProgress'; import classnames from 'classnames'; -import globalVolumeTypeStore from 'stores/cinder/volume-type'; +import { VolumeTypeStore } from 'stores/cinder/volume-type'; import styles from './index.less'; -// const { Panel } = Collapse; - -@inject('rootStore') -@observer -export default class Quota extends React.Component { +export class Quota extends React.Component { constructor(props) { super(props); this.state = {}; @@ -42,7 +38,7 @@ export default class Quota extends React.Component { await this.store.fetchProjectQuota({ project_id, }); - await globalVolumeTypeStore.fetchList(); + await this.volumeTypeStore.fetchProjectVolumeTypes(project_id); }; getItemInfo = (i) => { @@ -53,6 +49,7 @@ export default class Quota extends React.Component { init() { this.store = globalProjectStore; + this.volumeTypeStore = new VolumeTypeStore(); } renderVolumeTypes = (listData) => ( @@ -80,7 +77,7 @@ export default class Quota extends React.Component { render() { const { quota } = this.store; const volumeTypes = []; - globalVolumeTypeStore.list.data.forEach((item, index) => { + this.volumeTypeStore.projectVolumeTypes.forEach((item, index) => { volumeTypes.push({ index, value: [ @@ -193,3 +190,5 @@ export default class Quota extends React.Component { ); } } + +export default inject('rootStore')(observer(Quota)); diff --git a/src/pages/identity/containers/Project/actions/QuotaManager.jsx b/src/pages/identity/containers/Project/actions/QuotaManager.jsx index d524cf2a..93e4b018 100644 --- a/src/pages/identity/containers/Project/actions/QuotaManager.jsx +++ b/src/pages/identity/containers/Project/actions/QuotaManager.jsx @@ -16,7 +16,7 @@ import { inject, observer } from 'mobx-react'; import globalProjectStore from 'stores/keystone/project'; import React from 'react'; import { ModalAction } from 'containers/Action'; -import globalVolumeTypeStore from 'stores/cinder/volume-type'; +import { VolumeTypeStore } from 'stores/cinder/volume-type'; export class QuotaManager extends ModalAction { static id = 'quota-management'; @@ -25,6 +25,7 @@ export class QuotaManager extends ModalAction { init() { this.store = globalProjectStore; + this.volumeTypeStore = new VolumeTypeStore(); // this.getQuota(); } @@ -41,7 +42,7 @@ export class QuotaManager extends ModalAction { await this.store.fetchProjectQuota({ project_id, }); - await globalVolumeTypeStore.fetchList(); + await this.volumeTypeStore.fetchProjectVolumeTypes(project_id); }; get tips() { @@ -63,9 +64,7 @@ export class QuotaManager extends ModalAction { get volumeTypesData() { const volumeTypes = []; - const { - list: { data }, - } = globalVolumeTypeStore; + const { projectVolumeTypes: data = [] } = this.volumeTypeStore; if (data[0] && this.formRef.current) { data.forEach((item) => { volumeTypes.push.apply(volumeTypes, [ @@ -365,7 +364,7 @@ export class QuotaManager extends ModalAction { const { id: project_id } = this.item; const { more, cinder, networks, cinder_types, nova, security, ...others } = values; - const results = globalProjectStore.updateProjectQuota({ + const results = this.store.updateProjectQuota({ project_id, data: others, }); diff --git a/src/pages/network/containers/Network/AdminNetwork.jsx b/src/pages/network/containers/Network/AdminNetwork.jsx index e19e4ecf..d6c9dc90 100644 --- a/src/pages/network/containers/Network/AdminNetwork.jsx +++ b/src/pages/network/containers/Network/AdminNetwork.jsx @@ -19,9 +19,7 @@ import { NetworkStore } from 'stores/neutron/network'; import { yesNoOptions } from 'utils/constants'; import actionConfigs from './actions'; -@inject('rootStore') -@observer -export default class Networks extends Base { +export class Networks extends Base { init() { this.store = new NetworkStore(); this.downloadStore = new NetworkStore(); @@ -97,3 +95,5 @@ export default class Networks extends Base { ]; } } + +export default inject('rootStore')(observer(Networks)); diff --git a/src/pages/network/containers/Network/Detail/index.jsx b/src/pages/network/containers/Network/Detail/index.jsx index 9a246353..a8da05a2 100644 --- a/src/pages/network/containers/Network/Detail/index.jsx +++ b/src/pages/network/containers/Network/Detail/index.jsx @@ -22,9 +22,7 @@ import Subnets from './Subnets'; import Detail from './Detail'; import actionConfigs from '../actions'; -@inject('rootStore') -@observer -export default class NetworkDetail extends Base { +export class NetworkDetail extends Base { get name() { return t('network'); } @@ -157,3 +155,5 @@ export default class NetworkDetail extends Base { this.store = new NetworkStore(); } } + +export default inject('rootStore')(observer(NetworkDetail)); diff --git a/src/pages/network/containers/Network/ExtNetwork.jsx b/src/pages/network/containers/Network/ExtNetwork.jsx index 3d15d2fa..0d847563 100644 --- a/src/pages/network/containers/Network/ExtNetwork.jsx +++ b/src/pages/network/containers/Network/ExtNetwork.jsx @@ -19,9 +19,7 @@ import { NetworkStore } from 'stores/neutron/network'; import { yesNoOptions } from 'utils/constants'; import actionConfigs from './actions'; -@inject('rootStore') -@observer -export default class ExtNetwork extends Base { +export class ExtNetwork extends Base { init() { this.store = new NetworkStore(); this.downloadStore = new NetworkStore(); @@ -88,3 +86,5 @@ export default class ExtNetwork extends Base { return filters; } } + +export default inject('rootStore')(observer(ExtNetwork)); diff --git a/src/pages/network/containers/Network/ProjectNetwork.jsx b/src/pages/network/containers/Network/ProjectNetwork.jsx index 59a903e0..7efd8a90 100644 --- a/src/pages/network/containers/Network/ProjectNetwork.jsx +++ b/src/pages/network/containers/Network/ProjectNetwork.jsx @@ -19,9 +19,7 @@ import { NetworkStore } from 'stores/neutron/network'; import { yesNoOptions } from 'utils/constants'; import actionConfigs from './actions'; -@inject('rootStore') -@observer -export default class ProjectNetwork extends Base { +export class ProjectNetwork extends Base { init() { this.store = new NetworkStore(); this.downloadStore = new NetworkStore(); @@ -85,3 +83,5 @@ export default class ProjectNetwork extends Base { return filters; } } + +export default inject('rootStore')(observer(ProjectNetwork)); diff --git a/src/pages/network/containers/Network/SharedNetwork.jsx b/src/pages/network/containers/Network/SharedNetwork.jsx index 48a6e17d..25683d9b 100644 --- a/src/pages/network/containers/Network/SharedNetwork.jsx +++ b/src/pages/network/containers/Network/SharedNetwork.jsx @@ -19,9 +19,7 @@ import { NetworkStore } from 'stores/neutron/network'; import { yesNoOptions } from 'utils/constants'; import actionConfigs from './actions'; -@inject('rootStore') -@observer -export default class SharedNetwork extends Base { +export class SharedNetwork extends Base { init() { this.store = new NetworkStore(); this.downloadStore = new NetworkStore(); @@ -88,3 +86,5 @@ export default class SharedNetwork extends Base { return filters; } } + +export default inject('rootStore')(observer(SharedNetwork)); diff --git a/src/pages/network/containers/Network/actions/CreateNetwork.jsx b/src/pages/network/containers/Network/actions/CreateNetwork.jsx index fa19dca9..9ca26d81 100644 --- a/src/pages/network/containers/Network/actions/CreateNetwork.jsx +++ b/src/pages/network/containers/Network/actions/CreateNetwork.jsx @@ -40,9 +40,7 @@ const { isIpCidr, isIPv6Cidr, isIpv6 } = ipValidate; const { nameValidateWithoutChinese } = nameTypeValidate; -@inject('rootStore') -@observer -export default class CreateNetwork extends ModalAction { +export class CreateNetwork extends ModalAction { static id = 'create-network'; static title = t('Create Network'); @@ -566,3 +564,5 @@ export default class CreateNetwork extends ModalAction { ]; } } + +export default inject('rootStore')(observer(CreateNetwork)); diff --git a/src/pages/network/containers/VirtualAdapter/actions/Edit.jsx b/src/pages/network/containers/VirtualAdapter/actions/Edit.jsx index 6d9a96c6..b0ce6580 100644 --- a/src/pages/network/containers/VirtualAdapter/actions/Edit.jsx +++ b/src/pages/network/containers/VirtualAdapter/actions/Edit.jsx @@ -24,9 +24,7 @@ const portTypeItems = portTypes.split(',').map((item) => ({ value: item, })); -@inject('rootStore') -@observer -export default class Edit extends ModalAction { +export class Edit extends ModalAction { static id = 'edit-virtual-adapter'; static title = t('Edit'); @@ -112,3 +110,5 @@ export default class Edit extends ModalAction { ]; } } + +export default inject('rootStore')(observer(Edit));