diff --git a/.gitignore b/.gitignore index 49eba67df9..903df63bf4 100755 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,7 @@ dev/*.env user.json .vercel .env*.local + +# Claude +.claude/* +CLAUDE.md \ No newline at end of file diff --git a/apps/web/src/services/asset-inventory/components/ServiceAccountAutoSync.vue b/apps/web/src/services/asset-inventory/components/ServiceAccountAutoSync.vue index 935566cda4..7c25b6b824 100644 --- a/apps/web/src/services/asset-inventory/components/ServiceAccountAutoSync.vue +++ b/apps/web/src/services/asset-inventory/components/ServiceAccountAutoSync.vue @@ -75,8 +75,10 @@ const handleClickSaveButton = async () => { hours: serviceAccountPageFormState.scheduleHours, }, sync_options: { - skip_project_group: serviceAccountPageFormState.skipProjectGroup, + project_group_mapping_type: serviceAccountPageFormState.projectGroupMappingType, single_workspace_id: serviceAccountPageFormState.selectedSingleWorkspace ?? undefined, + custom_depth: serviceAccountPageFormState.customDepth ?? 1, + workspace_mapping_type: serviceAccountPageFormState.workspaceMappingType, }, plugin_options: serviceAccountPageFormState.additionalOptions, }); diff --git a/apps/web/src/services/asset-inventory/components/ServiceAccountAutoSyncForm.vue b/apps/web/src/services/asset-inventory/components/ServiceAccountAutoSyncForm.vue index 57439ec3a4..3a4b526940 100644 --- a/apps/web/src/services/asset-inventory/components/ServiceAccountAutoSyncForm.vue +++ b/apps/web/src/services/asset-inventory/components/ServiceAccountAutoSyncForm.vue @@ -40,9 +40,12 @@ const state = reactive({ additionalOptions: {}, isScheduleHoursValid: computed(() => ((state.isAutoSyncEnabled) ? !!serviceAccountPageFormState.scheduleHours.length : true)), isAdditionalOptionsValid: false, + isMappingMethodValid: false, isAllValid: computed(() => { if (!state.isAutoSyncEnabled) return true; - return state.isScheduleHoursValid && (serviceAccountPageStore.getters.autoSyncAdditionalOptionsSchema ? state.isAdditionalOptionsValid : true); + return state.isScheduleHoursValid + && (serviceAccountPageStore.getters.autoSyncAdditionalOptionsSchema ? state.isAdditionalOptionsValid : true) + && state.isMappingMethodValid; }), }); @@ -76,11 +79,18 @@ const handleAdditionalOptionsValidate = (isValid:boolean) => { state.isAdditionalOptionsValid = state.isAutoSyncEnabled ? isValid : true; }; +const handleMappingMethodValidate = (isValid:boolean) => { + state.isMappingMethodValid = state.isAutoSyncEnabled ? isValid : true; +}; const handleChangeToggle = (e:boolean) => { serviceAccountPageStore.$patch((_state) => { _state.formState.isAutoSyncEnabled = e; }); + // Auto Sync가 비활성화되면 mapping method validation을 즉시 true로 설정 + if (!e) { + state.isMappingMethodValid = true; + } }; watch(() => state.additionalOptions, (additionalOptions) => { @@ -91,7 +101,7 @@ watch(() => state.isAllValid, (isAllValid) => { serviceAccountPageStore.$patch((_state) => { _state.formState.isAutoSyncFormValid = isAllValid; }); -}); +}, { immediate: true });