Francesco Torchia ea12a81174
Vue migration - remove Vuew.set & this.$set; add vue-migrate script
Signed-off-by: Francesco Torchia <francesco.torchia@suse.com>
2024-10-23 17:00:48 +02:00

118 lines
3.0 KiB
Vue

<script>
import CreateEditView from '@shell/mixins/create-edit-view';
import FileSelector from '@shell/components/form/FileSelector';
export default {
name: 'HarvesterSSLCertificates',
components: { FileSelector },
mixins: [CreateEditView],
data() {
let parseDefaultValue = {};
try {
parseDefaultValue = JSON.parse(this.value.value);
} catch (error) {
parseDefaultValue = JSON.parse(this.value.default);
}
return {
parseDefaultValue,
caFileName: '',
publicCertificateFileName: '',
privateKeyFileName: ''
};
},
methods: {
onKeySelectedCa(type, file) {
const { name, value } = file;
this.parseDefaultValue[type] = value;
this[`${ type }FileName`] = name;
const _value = JSON.stringify(this.parseDefaultValue);
this.value['value'] = _value;
}
},
watch: {
value: {
handler(neu) {
const parseDefaultValue = JSON.parse(neu.value);
this['parseDefaultValue'] = parseDefaultValue;
},
deep: true
}
}
};
</script>
<template>
<div>
<div class="row mb-20">
<div class="col span-12">
<div class="mb-10">
{{ t('harvester.setting.sslCertificates.publicCertificate') }}
</div>
<div class="chooseFile">
<FileSelector
:include-file-name="true"
class="btn btn-sm bg-primary mr-20"
label="Choose File"
@selected="onKeySelectedCa('publicCertificate', $event)"
/>
<span :class="{ 'text-muted': !publicCertificateFileName }">{{ publicCertificateFileName ? publicCertificateFileName : t('harvester.generic.noFileChosen') }}</span>
</div>
</div>
</div>
<div class="row mb-20">
<div class="col span-12">
<div class="mb-10">
{{ t('harvester.setting.sslCertificates.privateKey') }}
</div>
<div class="chooseFile">
<FileSelector
:include-file-name="true"
class="btn btn-sm bg-primary mr-20"
label="Choose File"
@selected="onKeySelectedCa('privateKey', $event)"
/>
<span :class="{ 'text-muted': !privateKeyFileName }">{{ privateKeyFileName ? privateKeyFileName : t('harvester.generic.noFileChosen') }}</span>
</div>
</div>
</div>
<div class="row mb-20">
<div class="col span-12">
<div class="mb-10">
{{ t('harvester.setting.sslCertificates.ca') }}
</div>
<div class="chooseFile">
<FileSelector
:include-file-name="true"
class="btn btn-sm bg-primary mr-20"
label="Choose File"
@selected="onKeySelectedCa('ca', $event)"
/>
<span :class="{ 'text-muted': !caFileName }">{{ caFileName ? caFileName : t('harvester.generic.noFileChosen') }}</span>
</div>
</div>
</div>
</div>
</template>
<style lang="scss" scoped>
.chooseFile {
display: flex;
align-items: center;
}
</style>