@geode/opengeodeweb-front 9.7.0-rc.1 → 9.7.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/components/Launcher.vue
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<v-container class="justify">
|
|
3
3
|
<v-row align-content="center" align="center">
|
|
4
4
|
<v-col
|
|
5
|
-
v-if="!is_captcha_validated"
|
|
5
|
+
v-if="!infra_store.is_captcha_validated"
|
|
6
6
|
class="align"
|
|
7
7
|
cols="12"
|
|
8
8
|
align-self="center"
|
|
@@ -21,16 +21,21 @@
|
|
|
21
21
|
<script setup>
|
|
22
22
|
import Status from "@/utils/status.js"
|
|
23
23
|
|
|
24
|
-
const viewer_store = use_viewer_store()
|
|
25
24
|
const infra_store = use_infra_store()
|
|
26
|
-
const { is_captcha_validated } = storeToRefs(infra_store)
|
|
27
|
-
|
|
28
25
|
const site_key = useRuntimeConfig().public.RECAPTCHA_SITE_KEY
|
|
29
26
|
|
|
30
|
-
watch(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
watch(
|
|
28
|
+
() => infra_store.is_captcha_validated,
|
|
29
|
+
(value, oldValue) => {
|
|
30
|
+
if (value && !oldValue && process.client) {
|
|
31
|
+
infra_store.create_backend()
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
onMounted(() => {
|
|
37
|
+
if (infra_store.is_captcha_validated) {
|
|
38
|
+
infra_store.create_backend()
|
|
34
39
|
}
|
|
35
40
|
})
|
|
36
41
|
</script>
|
package/components/Loading.vue
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
<v-col cols="12" class="ma-3">
|
|
4
4
|
<v-card loading>
|
|
5
5
|
<v-card-title class="text-center">
|
|
6
|
-
|
|
6
|
+
Microservices are starting...
|
|
7
7
|
</v-card-title>
|
|
8
8
|
<v-card-subtitle class="text-center">
|
|
9
9
|
Why do you have to wait?
|
|
10
10
|
</v-card-subtitle>
|
|
11
11
|
<v-card-text class="text-center">
|
|
12
|
-
We start our
|
|
13
|
-
before you can use our free app.
|
|
12
|
+
We start our microservices only on demand... and this takes a few
|
|
13
|
+
minutes before you can use our free app.
|
|
14
14
|
<br />
|
|
15
15
|
This is aligned with our energy sobriety policy. So be patient
|
|
16
16
|
<v-icon color="primary" size="20">
|
|
@@ -52,9 +52,12 @@
|
|
|
52
52
|
await Promise.all(array_promise)
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
watch(
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
watch(
|
|
56
|
+
() => geode_store.status,
|
|
57
|
+
(value) => {
|
|
58
|
+
if (value == Status.CONNECTED) get_packages_versions()
|
|
59
|
+
},
|
|
60
|
+
)
|
|
58
61
|
|
|
59
62
|
await get_packages_versions()
|
|
60
63
|
</script>
|
package/components/Recaptcha.vue
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
<ClientOnly>
|
|
3
3
|
<vue-recaptcha
|
|
4
4
|
ref="recaptcha"
|
|
5
|
-
:sitekey="site_key"
|
|
5
|
+
:sitekey="props.site_key"
|
|
6
6
|
:load-recaptcha-script="true"
|
|
7
7
|
align-self="center"
|
|
8
|
-
@expired="is_captcha_validated = false"
|
|
8
|
+
@expired="infra_store.is_captcha_validated = false"
|
|
9
9
|
@verify="submit_recaptcha"
|
|
10
10
|
/>
|
|
11
11
|
</ClientOnly>
|
|
@@ -14,12 +14,10 @@
|
|
|
14
14
|
<script setup>
|
|
15
15
|
import { VueRecaptcha } from "vue-recaptcha"
|
|
16
16
|
const infra_store = use_infra_store()
|
|
17
|
-
const { is_captcha_validated } = storeToRefs(infra_store)
|
|
18
17
|
|
|
19
18
|
const props = defineProps({
|
|
20
19
|
site_key: { type: String, required: true },
|
|
21
20
|
})
|
|
22
|
-
const { site_key } = props
|
|
23
21
|
|
|
24
22
|
onMounted(() => {
|
|
25
23
|
if (process.client) {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"
|
|
15
15
|
class="pa-0"
|
|
16
16
|
@click="get_x_y"
|
|
17
|
-
@keydown.esc="
|
|
17
|
+
@keydown.esc="viewer_store.toggle_picking_mode(false)"
|
|
18
18
|
/>
|
|
19
19
|
</div>
|
|
20
20
|
</ClientOnly>
|
|
@@ -26,8 +26,12 @@
|
|
|
26
26
|
import viewer_schemas from "@geode/opengeodeweb-viewer/schemas.json"
|
|
27
27
|
import Status from "@/utils/status.js"
|
|
28
28
|
|
|
29
|
+
const props = defineProps({
|
|
30
|
+
viewId: { type: String, default: "-1" },
|
|
31
|
+
})
|
|
32
|
+
|
|
29
33
|
const viewer_store = use_viewer_store()
|
|
30
|
-
const viewer =
|
|
34
|
+
const viewer = useTemplateRef("viewer")
|
|
31
35
|
const { width, height } = useElementSize(viewer)
|
|
32
36
|
|
|
33
37
|
const { width: windowWidth, height: windowHeight } = useWindowSize()
|
|
@@ -43,13 +47,7 @@
|
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
49
|
|
|
46
|
-
const props = defineProps({
|
|
47
|
-
viewId: { type: String, default: "-1" },
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
const { viewId } = toRefs(props)
|
|
51
50
|
const connected = ref(false)
|
|
52
|
-
|
|
53
51
|
const view = vtkRemoteView.newInstance({
|
|
54
52
|
rpcWheelEvent: "viewport.mouse.zoom.wheel",
|
|
55
53
|
})
|
|
@@ -69,33 +67,42 @@
|
|
|
69
67
|
resize()
|
|
70
68
|
})
|
|
71
69
|
|
|
72
|
-
watch(
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
70
|
+
watch(
|
|
71
|
+
() => viewer_store.picking_mode,
|
|
72
|
+
(value) => {
|
|
73
|
+
const cursor = value ? "crosshair" : "pointer"
|
|
74
|
+
view.getCanvasView().setCursor(cursor)
|
|
75
|
+
},
|
|
76
|
+
)
|
|
76
77
|
|
|
77
78
|
watch([width, height], () => {
|
|
78
79
|
resize()
|
|
79
80
|
})
|
|
80
81
|
|
|
81
|
-
watch(
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
82
|
+
watch(
|
|
83
|
+
() => viewer_store.client,
|
|
84
|
+
() => {
|
|
85
|
+
connect()
|
|
86
|
+
},
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
watch(
|
|
90
|
+
() => props.viewId,
|
|
91
|
+
(id) => {
|
|
92
|
+
if (connected.value) {
|
|
93
|
+
view.setViewId(id)
|
|
94
|
+
view.render()
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
)
|
|
91
98
|
|
|
92
99
|
function connect() {
|
|
93
|
-
if (
|
|
100
|
+
if (viewer_store.status !== Status.CONNECTED) {
|
|
94
101
|
return
|
|
95
102
|
}
|
|
96
103
|
const session = viewer_store.client.value.getConnection().getSession()
|
|
97
104
|
view.setSession(session)
|
|
98
|
-
view.setViewId(viewId
|
|
105
|
+
view.setViewId(props.viewId)
|
|
99
106
|
connected.value = true
|
|
100
107
|
view.render()
|
|
101
108
|
}
|
package/package.json
CHANGED
package/stores/viewer.js
CHANGED
|
@@ -72,12 +72,17 @@ export const use_viewer_store = defineStore("viewer", {
|
|
|
72
72
|
|
|
73
73
|
const { client } = this
|
|
74
74
|
console.log("client", client)
|
|
75
|
+
console.log("status", this.status)
|
|
75
76
|
if (this.status === Status.CONNECTED && client.isConnected()) {
|
|
77
|
+
console.log("disconnect")
|
|
78
|
+
|
|
76
79
|
client.disconnect(-1)
|
|
77
80
|
this.status = Status.NOT_CONNECTED
|
|
78
81
|
}
|
|
79
82
|
let clientToConnect = client
|
|
80
83
|
if (_.isEmpty(clientToConnect)) {
|
|
84
|
+
console.log("isEmpty")
|
|
85
|
+
|
|
81
86
|
clientToConnect = vtkWSLinkClient.newInstance()
|
|
82
87
|
}
|
|
83
88
|
|
|
@@ -107,24 +112,27 @@ export const use_viewer_store = defineStore("viewer", {
|
|
|
107
112
|
const { connectImageStream } = await import(
|
|
108
113
|
"@kitware/vtk.js/Rendering/Misc/RemoteView"
|
|
109
114
|
)
|
|
115
|
+
console.log("before connect")
|
|
116
|
+
const viewer_store = this
|
|
110
117
|
return new Promise((resolve, reject) => {
|
|
111
118
|
clientToConnect
|
|
112
119
|
.connect(config)
|
|
113
120
|
.then((validClient) => {
|
|
121
|
+
console.log("validClient", validClient)
|
|
114
122
|
connectImageStream(validClient.getConnection().getSession())
|
|
115
|
-
|
|
123
|
+
viewer_store.client = validClient
|
|
116
124
|
clientToConnect.endBusy()
|
|
117
125
|
|
|
118
126
|
// Now that the client is ready let's setup the server for us
|
|
119
127
|
viewer_call({
|
|
120
128
|
schema: schemas.opengeodeweb_viewer.viewer.reset_visualization,
|
|
121
129
|
})
|
|
122
|
-
|
|
130
|
+
viewer_store.status = Status.CONNECTED
|
|
123
131
|
resolve()
|
|
124
132
|
})
|
|
125
133
|
.catch((error) => {
|
|
126
134
|
console.error(error)
|
|
127
|
-
|
|
135
|
+
viewer_store.status = Status.NOT_CONNECTED
|
|
128
136
|
reject(error)
|
|
129
137
|
})
|
|
130
138
|
})
|