@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.
@@ -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(is_captcha_validated, async (value) => {
31
- if (value === true && process.client) {
32
- await infra_store.create_backend()
33
- await viewer_store.ws_connect()
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>
@@ -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
- Cloud instance is starting...
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 server only on demand... and this takes a few minutes
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(geode_store.status, (value) => {
56
- if (value == Status.CONNECTED) get_packages_versions()
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>
@@ -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="app_store.toggle_picking_mode(false)"
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 = ref(null)
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(viewer_store.picking_mode, (value) => {
73
- const cursor = value ? "crosshair" : "pointer"
74
- view.getCanvasView().setCursor(cursor)
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(viewer_store.client, () => {
82
- connect()
83
- })
84
-
85
- watch(viewId, (id) => {
86
- if (connected.value) {
87
- view.setViewId(id)
88
- view.render()
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 (!viewer_store.status !== Status.CONNECTED) {
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.value)
105
+ view.setViewId(props.viewId)
99
106
  connected.value = true
100
107
  view.render()
101
108
  }
package/package.json CHANGED
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "description": "OpenSource Vue/Vuetify framework for web applications",
39
39
  "type": "module",
40
- "version": "9.7.0-rc.1",
40
+ "version": "9.7.0-rc.3",
41
41
  "main": "./nuxt.config.js",
42
42
  "dependencies": {
43
43
  "@geode/opengeodeweb-back": "5.6.3",
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
- this.client = validClient
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
- this.status = Status.CONNECTED
130
+ viewer_store.status = Status.CONNECTED
123
131
  resolve()
124
132
  })
125
133
  .catch((error) => {
126
134
  console.error(error)
127
- this.status = Status.NOT_CONNECTED
135
+ viewer_store.status = Status.NOT_CONNECTED
128
136
  reject(error)
129
137
  })
130
138
  })