11<script setup lang="ts">
22import LogsReport from ' @/components/LogsReport.vue'
33import type { SearchResult } from ' @/services/geonetworkSearch.service'
4- import type { LogDetail } from ' @/services/logs.service'
54import {
65 synchronizeService ,
76 type CopyPreview ,
7+ type CopyResponse ,
88 type SynchronizeParams ,
99} from ' @/services/synchronize.service'
1010import { useConfigStore } from ' @/stores/config.store'
@@ -57,7 +57,7 @@ const copyPreview = ref<CopyPreview>({
5757 geoserver_resources: [],
5858})
5959
60- const logs = ref <LogDetail []>([] )
60+ const copyResponse = ref <CopyResponse >({} )
6161
6262const synchronizeParams = computed (
6363 () =>
@@ -98,14 +98,16 @@ const confirm = async () => {
9898 } as unknown as SynchronizeParams
9999
100100 try {
101- logs .value = await synchronizeService .synchronize (params )
101+ copyResponse .value = await synchronizeService .synchronize (params )
102102 } catch (error ) {
103103 console .error (error )
104104 } finally {
105105 isRunning .value = false
106106 }
107107}
108108
109+ const logs = computed (() => copyPreview .value .operations || copyResponse .value .operations || [])
110+
109111const backToForm = () => {
110112 confirmation .value = false
111113 logs .value = []
@@ -124,12 +126,13 @@ const metaFailed = computed(() => metaLogs.value.some((l) => l.status != 'OK'))
124126const layerFailed = computed (() => layerLogs .value .some ((l ) => l .status != ' OK' ))
125127const styleFailed = computed (() => styleLogs .value .some ((l ) => l .status != ' OK' ))
126128
127- const hasMeta = computed (() => copyPreview .value .geonetwork_resources .some ((gn ) => gn .metadata .length > 0 ))
128- const hasLayers = computed (() => copyPreview .value .geoserver_resources .some ((gs ) => gs .layers .length > 0 ))
129- const hasStyles = computed (() => copyPreview .value .geoserver_resources .some ((gs ) => gs .styles .length > 0 ))
129+ const hasMeta = computed (() => copyPreview .value .geonetwork_resources ? .some ((gn ) => gn .metadata .length > 0 ))
130+ const hasLayers = computed (() => copyPreview .value .geoserver_resources ? .some ((gs ) => gs .layers .length > 0 ))
131+ const hasStyles = computed (() => copyPreview .value .geoserver_resources ? .some ((gs ) => gs .styles .length > 0 ))
130132
131133const success = computed (() => (
132- (! hasMeta .value || metaSuccessful .value )
134+ (metaSuccessful .value || layerSuccessful .value || styleSuccessful .value )
135+ && (! hasMeta .value || metaSuccessful .value )
133136 && (! hasLayers .value || layerSuccessful .value )
134137 && (! hasStyles .value || styleSuccessful .value )
135138))
@@ -220,7 +223,7 @@ const success = computed(() => (
220223
221224 <div
222225 class =" mt-4 p-4 border rounded shadow"
223- v-for =" (geonetwork, index) in copyPreview.geonetwork_resources"
226+ v-for =" (geonetwork, index) in copyPreview.geonetwork_resources || [] "
224227 :key =" index"
225228 >
226229 <div class =" my-1" >{{ $t('Source:') }} {{ geonetwork.src }}</div >
@@ -240,7 +243,7 @@ const success = computed(() => (
240243
241244 <div
242245 class =" mt-4 p-4 border rounded shadow"
243- v-for =" (server, index) in copyPreview.geoserver_resources"
246+ v-for =" (server, index) in copyPreview.geoserver_resources || [] "
244247 :key =" index"
245248 >
246249 <div class =" my-1" >{{ $t('Source:') }} {{ server.src }}</div >
@@ -281,6 +284,16 @@ const success = computed(() => (
281284 <template #header >
282285 <div class =" my-1" >{{ success ? $t('Success') + ' ✅' : $t('Failure') + ' ❌' }}</div >
283286 </template >
287+ <div v-if =" !success" >
288+ <div v-if =" copyPreview.info.err" >
289+ {{ copyPreview.info.err }} [{{ copyPreview.info.status_code }}]<br >
290+ {{ copyPreview.info.server }}
291+ </div >
292+ <div v-else >
293+ {{ copyResponse.info.err }} [{{ copyResponse.info.status_code }}]<br >
294+ {{ copyResponse.info.server }}
295+ </div >
296+ </div >
284297 <LogsReport :logs =" logs" ></LogsReport >
285298 </Panel >
286299 </div >
0 commit comments