feat(forklift): small changes before rebase

Signed-off-by: Marcelo Fukumoto <marcelo.fukumoto@suse.com>
This commit is contained in:
Marcelo Fukumoto
2026-07-07 13:37:14 +02:00
parent fbcc235fa7
commit 77d80051c9
5 changed files with 67 additions and 154 deletions
@@ -1,5 +1,5 @@
<script setup>
import { ref, computed, watch } from 'vue';
import { ref, computed, watch, toRefs } from 'vue';
import { useStore } from 'vuex';
import Loading from '@shell/components/Loading';
import { Banner } from '@components/Banner';
@@ -28,20 +28,12 @@ const { t } = useI18n(store);
const vms = ref([]);
const harvesterNetworks = ref([]);
const storageClasses = ref([]);
const networkEntries = ref([]);
const storageEntries = ref([]);
const allNetworkMaps = ref([]);
const allStorageMaps = ref([]);
const errors = ref([]);
const loading = ref(true);
// Restore from stepData
if (props.stepData.networkEntries.length > 0) {
networkEntries.value = props.stepData.networkEntries;
}
if (props.stepData.storageEntries.length > 0) {
storageEntries.value = props.stepData.storageEntries;
}
const { networkEntries, storageEntries } = toRefs(props.stepData);
const NAMESPACE = FORKLIFT_NAMESPACE;
@@ -152,13 +144,6 @@ if (canSave.value) {
emit('ready', true);
}
// Sync state back to stepData
watch(networkEntries, (val) => {
props.stepData.networkEntries = val;
}, { deep: true });
watch(storageEntries, (val) => {
props.stepData.storageEntries = val;
}, { deep: true });
const buildNetworkEntries = () => {
const networkMap = {};
@@ -1,5 +1,5 @@
<script setup>
import { ref, computed, watch } from 'vue';
import { ref, computed, watch, toRefs } from 'vue';
import { useStore } from 'vuex';
import { LabeledInput } from '@components/Form/LabeledInput';
@@ -28,69 +28,24 @@ const { t } = useI18n(store);
const allProviders = ref([]);
const allSecrets = ref([]);
const selectedProvider = ref(CREATE_NEW);
const providerName = ref('');
const url = ref('');
const username = ref('');
const password = ref('');
const skipTlsVerify = ref(false);
const testResult = ref(null);
const testError = ref(null);
const errors = ref([]);
const testBtnRef = ref(null);
const createdProvider = ref(null);
const createdSecret = ref(null);
const loading = ref(true);
const testPassed = ref(false);
const testing = ref(false);
// Restore state from stepData on mount
selectedProvider.value = props.stepData.selectedProvider;
providerName.value = props.stepData.providerName;
url.value = props.stepData.url;
username.value = props.stepData.username;
password.value = props.stepData.password;
skipTlsVerify.value = props.stepData.skipTlsVerify;
testPassed.value = props.stepData.testPassed;
testResult.value = props.stepData.testResult;
testError.value = props.stepData.testError;
createdProvider.value = props.stepData.createdProvider;
createdSecret.value = props.stepData.createdSecret;
// Sync state back to stepData
watch(selectedProvider, (val) => {
props.stepData.selectedProvider = val;
});
watch(providerName, (val) => {
props.stepData.providerName = val;
});
watch(url, (val) => {
props.stepData.url = val;
});
watch(username, (val) => {
props.stepData.username = val;
});
watch(password, (val) => {
props.stepData.password = val;
});
watch(skipTlsVerify, (val) => {
props.stepData.skipTlsVerify = val;
});
watch(testPassed, (val) => {
props.stepData.testPassed = val;
});
watch(testResult, (val) => {
props.stepData.testResult = val;
});
watch(testError, (val) => {
props.stepData.testError = val;
});
watch(createdProvider, (val) => {
props.stepData.createdProvider = val;
});
watch(createdSecret, (val) => {
props.stepData.createdSecret = val;
});
const {
selectedProvider,
providerName,
url,
username,
password,
skipTlsVerify,
testPassed,
testResult,
testError,
createdProvider,
createdSecret,
} = toRefs(props.stepData);
const isExistingProvider = computed(() => selectedProvider.value !== CREATE_NEW);
const isFormValid = computed(() => !!providerName.value && !!url.value && !!username.value && !!password.value);
@@ -1,6 +1,6 @@
<script setup>
import {
ref, computed, watch, nextTick, onBeforeUnmount
ref, computed, watch, nextTick, onBeforeUnmount, toRefs
} from 'vue';
import { useStore } from 'vuex';
import Loading from '@shell/components/Loading';
@@ -20,15 +20,14 @@ const emit = defineEmits(['complete', 'loading']);
const store = useStore();
const { t } = useI18n(store);
const discoveredVMs = ref([]);
const { discoveredVMs, selectedVMIds, tableRows } = toRefs(props.stepData);
const selectedVMs = ref([]);
const tableRows = ref([]);
const loading = ref(true);
const networkMap = ref({});
const datastoreMap = ref({});
const sortableTableRef = ref(null);
const allVMsSelected = ref(false);
const selectedVMIds = ref(new Set());
const errors = ref([]);
let skipNextSelectionEvent = false;
@@ -67,29 +66,11 @@ onBeforeUnmount(() => {
clearInterval(nowTimer);
});
// Restore from stepData
if (props.stepData.discoveredVMs.length > 0) {
discoveredVMs.value = props.stepData.discoveredVMs;
}
if (props.stepData.selectedVMIds.size > 0) {
selectedVMIds.value = props.stepData.selectedVMIds;
// Restore selection state from stepData
if (selectedVMIds.value.size > 0) {
selectedVMs.value = discoveredVMs.value.filter((vm) => selectedVMIds.value.has(vm.id));
allVMsSelected.value = selectedVMIds.value.size === discoveredVMs.value.length;
}
if (props.stepData.tableRows.length > 0) {
tableRows.value = props.stepData.tableRows;
}
// Sync back to stepData
watch(discoveredVMs, (val) => {
props.stepData.discoveredVMs = val;
});
watch(selectedVMIds, (val) => {
props.stepData.selectedVMIds = val;
});
watch(tableRows, (val) => {
props.stepData.tableRows = val;
});
const vmCount = computed(() => discoveredVMs.value.length);
const selectedCount = computed(() => selectedVMs.value.length);