mirror of https://github.com/rancher/dashboard.git
77 lines
1.5 KiB
Vue
77 lines
1.5 KiB
Vue
<script>
|
|
import ResourceTabs from '@shell/components/form/ResourceTabs';
|
|
import DetailText from '@shell/components/DetailText';
|
|
import Tab from '@shell/components/Tabbed/Tab';
|
|
import { base64Decode } from '@shell/utils/crypto';
|
|
|
|
export default {
|
|
components: {
|
|
ResourceTabs,
|
|
DetailText,
|
|
Tab,
|
|
},
|
|
|
|
props: {
|
|
value: {
|
|
type: Object,
|
|
default: () => {
|
|
return {};
|
|
}
|
|
}
|
|
},
|
|
|
|
computed: {
|
|
parsedRows() {
|
|
const rows = [];
|
|
const { data = {}, binaryData = {} } = this.value;
|
|
|
|
Object.keys(data).forEach((key) => {
|
|
rows.push({
|
|
key,
|
|
value: data[key],
|
|
binary: false
|
|
});
|
|
});
|
|
|
|
// we define the binary as false so that the ui doesn't display the size of the binary instead of the actual data...
|
|
Object.keys(binaryData).forEach((key) => {
|
|
rows.push({
|
|
key,
|
|
value: base64Decode(binaryData[key]),
|
|
binary: false
|
|
});
|
|
});
|
|
|
|
return rows;
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<template>
|
|
<ResourceTabs v-model="value">
|
|
<Tab
|
|
name="data"
|
|
label-key="secret.data"
|
|
>
|
|
<div
|
|
v-for="(row,idx) in parsedRows"
|
|
:key="idx"
|
|
class="mb-20"
|
|
>
|
|
<DetailText
|
|
:value="row.value"
|
|
:label="row.key"
|
|
:binary="row.binary"
|
|
/>
|
|
</div>
|
|
<div v-if="!parsedRows.length">
|
|
<div
|
|
v-t="'sortableTable.noRows'"
|
|
class="m-20 text-center"
|
|
/>
|
|
</div>
|
|
</Tab>
|
|
</ResourceTabs>
|
|
</template>
|