Files
skyline-console/src/pages/storage/containers/Volume/Detail/BaseDetail.jsx
Jingwei.Zhang 482e4ba321 fix: update the time display
1. FIx the created time column title in the backup tab in the database instance detail page
2. Fix created time/updated time label and value in detail pages

Change-Id: I656b1b195d08374949ad319d3b71d2dd97d946d2
2023-05-06 17:24:45 +08:00

132 lines
3.1 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 React from 'react';
import { inject, observer } from 'mobx-react';
import Base from 'containers/BaseDetail';
export class BaseDetail extends Base {
get leftCards() {
const cards = [this.attachmentsCard];
const { snapshot_id, volume_image_metadata, transfer } = this.detailData;
if (snapshot_id) {
cards.push(this.snapshotCard);
}
if (volume_image_metadata) {
cards.push(this.imageCard);
}
if (transfer) {
cards.push(this.transferCard);
}
return cards;
}
get attachmentsCard() {
const options = [
{
label: t('Attached To'),
dataIndex: 'attachmentsContrib',
render: (value) => {
if (!value || value.length === 0) {
return '-';
}
return value.map((it) => (
<div key={it.server_id}>
{it.device} on{' '}
{this.getLinkRender(
'instanceDetail',
it.server_name || it.server_id,
{ id: it.server_id },
{ tab: 'volumes' }
)}
</div>
));
},
},
];
return {
title: t('Attachments Info'),
options,
};
}
get imageCard() {
const {
volume_image_metadata: { image_id, image_name },
snapshot_id,
} = this.detailData;
const options = [
{
label: t('Image'),
dataIndex: 'volume_image_metadata.image_name',
render: () =>
this.getLinkRender('imageDetail', image_name, { id: image_id }, null),
},
];
const title = snapshot_id ? t('Image Info') : t('Volume Source');
return {
title,
options,
};
}
get snapshotCard() {
const { snapshot_id } = this.detailData;
const options = [
{
label: t('Volume Snapshot'),
dataIndex: 'snapshot.name',
render: (value) =>
this.getLinkRender(
'snapshotDetail',
value || snapshot_id,
{ id: snapshot_id },
null
),
},
];
return {
title: t('Volume Source'),
options,
};
}
get transferCard() {
const options = [
{
label: t('ID'),
dataIndex: 'transfer.id',
},
{
label: t('Name'),
dataIndex: 'transfer.name',
},
{
label: t('Created At'),
dataIndex: 'transfer.created_at',
valueRender: 'toLocalTime',
},
];
return {
title: t('Volume Transfer'),
options,
};
}
}
export default inject('rootStore')(observer(BaseDetail));