mirror of https://github.com/rancher/dashboard.git
110 lines
2.8 KiB
Vue
110 lines
2.8 KiB
Vue
<script>
|
|
import CreateEditView from '@/mixins/create-edit-view';
|
|
import Footer from '@/components/form/Footer';
|
|
import LabeledInput from '@/components/form/LabeledInput';
|
|
import RadioGroup from '@/components/form/RadioGroup';
|
|
import NameNsDescription from '@/components/form/NameNsDescription';
|
|
import Labels from '@/components/form/Labels';
|
|
import SelectOrCreateAuthSecret from '@/components/form/SelectOrCreateAuthSecret';
|
|
import { NAMESPACE } from '@/config/types';
|
|
|
|
export default {
|
|
name: 'CruCatalogRepo',
|
|
|
|
components: {
|
|
Footer,
|
|
RadioGroup,
|
|
LabeledInput,
|
|
NameNsDescription,
|
|
Labels,
|
|
SelectOrCreateAuthSecret,
|
|
},
|
|
|
|
mixins: [CreateEditView],
|
|
|
|
data() {
|
|
return { isGit: !!this.value.spec.gitRepo };
|
|
},
|
|
|
|
computed: {
|
|
secretNamespace() {
|
|
const tryNames = ['cattle-system', 'default'];
|
|
|
|
for ( const name of tryNames ) {
|
|
if ( this.$store.getters['cluster/byId'](NAMESPACE, name) ) {
|
|
return name;
|
|
}
|
|
}
|
|
|
|
return this.$store.getters['cluster/all'](NAMESPACE)[0]?.id;
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<template>
|
|
<form>
|
|
<NameNsDescription v-model="value" :mode="mode" :namespaced="isNamespaced" />
|
|
|
|
<h2>{{ t('catalog.repo.target.label') }}</h2>
|
|
<div class="row mb-10">
|
|
<div class="col span-6">
|
|
<RadioGroup
|
|
v-model="isGit"
|
|
name="isGit"
|
|
:options="[false, true]"
|
|
:labels="[t('catalog.repo.target.http'), t('catalog.repo.target.git')]"
|
|
:mode="mode"
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div v-if="isGit" class="row mb-10">
|
|
<div class="col span-6">
|
|
<LabeledInput
|
|
v-model="value.spec.gitRepo"
|
|
:required="true"
|
|
:label="t('catalog.repo.gitRepo.label')"
|
|
:placeholder="t('catalog.repo.gitRepo.placeholder', null, true)"
|
|
:mode="mode"
|
|
/>
|
|
</div>
|
|
<div class="col span-6">
|
|
<LabeledInput
|
|
v-model="value.spec.gitBranch"
|
|
:required="true"
|
|
:label="t('catalog.repo.gitBranch.label')"
|
|
:placeholder="t('catalog.repo.gitBranch.placeholder', null, true)"
|
|
:mode="mode"
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<LabeledInput
|
|
v-else
|
|
v-model="value.spec.url"
|
|
:required="true"
|
|
:label="t('catalog.repo.url.label')"
|
|
:placeholder="t('catalog.repo.url.placeholder', null, true)"
|
|
:mode="mode"
|
|
/>
|
|
|
|
<SelectOrCreateAuthSecret
|
|
v-model="value.spec.clientSecret"
|
|
:register-before-hook="registerBeforeHook"
|
|
:namespace="secretNamespace"
|
|
:limit-to-namespace="false"
|
|
generate-name="clusterrepo-auth-"
|
|
/>
|
|
|
|
<Labels
|
|
default-section-class="mt-20"
|
|
:value="value"
|
|
:mode="mode"
|
|
:display-side-by-side="false"
|
|
/>
|
|
|
|
<Footer :mode="mode" :errors="errors" @save="save" @done="done" />
|
|
</form>
|
|
</template>
|