@geode/opengeodeweb-front 2.0.0-rc.15 → 2.0.0-rc.17

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.
@@ -1,7 +1,16 @@
1
1
  <template>
2
2
  <v-row class="justify-left">
3
- <v-col v-for="file_extension in file_extensions" :key="file_extension" cols="2">
4
- <v-card class="card ma-2" hover elevation="5" @click="set_output_extension(file_extension)">
3
+ <v-col
4
+ v-for="file_extension in file_extensions"
5
+ :key="file_extension"
6
+ cols="2"
7
+ >
8
+ <v-card
9
+ class="card ma-2"
10
+ hover
11
+ elevation="5"
12
+ @click="set_output_extension(file_extension)"
13
+ >
5
14
  <v-card-title align="center">
6
15
  {{ file_extension }}
7
16
  </v-card-title>
@@ -11,43 +20,43 @@
11
20
  </template>
12
21
 
13
22
  <script setup>
14
- const stepper_tree = inject('stepper_tree')
15
- const { geode_object, route_prefix } = stepper_tree
16
-
17
- const props = defineProps({
18
- variable_to_update: { type: String, required: true },
19
- variable_to_increment: { type: String, required: true },
20
- })
21
- const { variable_to_update, variable_to_increment } = props
22
-
23
- const file_extensions = ref([])
24
-
25
-
26
- async function get_output_file_extensions () {
27
- const params = new FormData()
28
- params.append('geode_object', geode_object)
29
- await api_fetch(`${route_prefix}/output_file_extensions`, { method: 'POST', body: params },
30
- {
31
- 'response_function': (response) => {
32
- file_extensions.value = response._data.output_file_extensions
23
+ const stepper_tree = inject("stepper_tree")
24
+ const { geode_object, route_prefix } = stepper_tree
25
+
26
+ const props = defineProps({
27
+ variable_to_update: { type: String, required: true },
28
+ variable_to_increment: { type: String, required: true },
29
+ })
30
+ const { variable_to_update, variable_to_increment } = props
31
+
32
+ const file_extensions = ref([])
33
+
34
+ async function get_output_file_extensions() {
35
+ const params = new FormData()
36
+ params.append("geode_object", geode_object)
37
+ await api_fetch(
38
+ `${route_prefix}/output_file_extensions`,
39
+ { method: "POST", body: params },
40
+ {
41
+ response_function: (response) => {
42
+ file_extensions.value = response._data.output_file_extensions
43
+ },
33
44
  },
34
- }
35
- )
36
- }
37
-
38
- function set_output_extension (extension) {
39
- stepper_tree[variable_to_update] = extension
40
- stepper_tree[variable_to_increment]++
41
- }
45
+ )
46
+ }
42
47
 
43
- onMounted(() => {
44
- get_output_file_extensions()
45
- })
48
+ function set_output_extension(extension) {
49
+ stepper_tree[variable_to_update] = extension
50
+ stepper_tree[variable_to_increment]++
51
+ }
46
52
 
53
+ onMounted(() => {
54
+ get_output_file_extensions()
55
+ })
47
56
  </script>
48
57
 
49
58
  <style scoped>
50
- .card {
51
- border-radius: 15px;
52
- }
53
- </style>
59
+ .card {
60
+ border-radius: 15px;
61
+ }
62
+ </style>
@@ -1,46 +1,59 @@
1
1
  <template>
2
- <v-file-input v-model="files" :multiple="multiple" :label="label" :accept="accept"
3
- :rules="[(value) => !!value || 'The file is mandatory']" color="primary" chips counter show-size
4
- @click:clear="stepper_tree.files = []" />
2
+ <v-file-input
3
+ v-model="files"
4
+ :multiple="multiple"
5
+ :label="label"
6
+ :accept="accept"
7
+ :rules="[(value) => !!value || 'The file is mandatory']"
8
+ color="primary"
9
+ chips
10
+ counter
11
+ show-size
12
+ @click:clear="stepper_tree.files = []"
13
+ />
5
14
  </template>
6
15
 
7
16
  <script setup>
8
- const stepper_tree = inject('stepper_tree')
9
- const { route_prefix } = stepper_tree
10
-
11
- const props = defineProps({
12
- multiple: { type: Boolean, required: true },
13
- label: { type: String, required: true },
14
- variable_to_update: { type: String, required: true },
15
- variable_to_increment: { type: String, required: true },
16
- })
17
- const { multiple, label, variable_to_update, variable_to_increment } = props
18
-
19
- const accept = ref('')
20
- const files = ref([])
21
-
22
- watch(files, (value) => {
23
- stepper_tree[variable_to_update] = value
24
- stepper_tree[variable_to_increment]++
25
- })
26
-
27
- function fill_extensions (response) {
28
- const extensions = response._data.extensions.map((extension) => '.' + extension).join(',')
29
- accept.value = extensions
30
- }
31
-
32
- async function get_allowed_files () {
33
- const route = `${route_prefix}/allowed_files`
34
- await api_fetch(route, { method: 'GET' },
35
- {
36
- 'response_function': (response) => {
37
- fill_extensions(response)
38
- }
39
- })
40
- }
41
-
42
- onMounted(async () => {
43
- await get_allowed_files()
44
- })
45
-
46
- </script>
17
+ const stepper_tree = inject("stepper_tree")
18
+ const { route_prefix } = stepper_tree
19
+
20
+ const props = defineProps({
21
+ multiple: { type: Boolean, required: true },
22
+ label: { type: String, required: true },
23
+ variable_to_update: { type: String, required: true },
24
+ variable_to_increment: { type: String, required: true },
25
+ })
26
+ const { multiple, label, variable_to_update, variable_to_increment } = props
27
+
28
+ const accept = ref("")
29
+ const files = ref([])
30
+
31
+ watch(files, (value) => {
32
+ stepper_tree[variable_to_update] = value
33
+ stepper_tree[variable_to_increment]++
34
+ })
35
+
36
+ function fill_extensions(response) {
37
+ const extensions = response._data.extensions
38
+ .map((extension) => "." + extension)
39
+ .join(",")
40
+ accept.value = extensions
41
+ }
42
+
43
+ async function get_allowed_files() {
44
+ const route = `${route_prefix}/allowed_files`
45
+ await api_fetch(
46
+ route,
47
+ { method: "GET" },
48
+ {
49
+ response_function: (response) => {
50
+ fill_extensions(response)
51
+ },
52
+ },
53
+ )
54
+ }
55
+
56
+ onMounted(async () => {
57
+ await get_allowed_files()
58
+ })
59
+ </script>
@@ -6,13 +6,29 @@
6
6
  <v-col>
7
7
  <v-row class="justify-center">
8
8
  <v-col v-for="(card, i) in cards_list" :key="i" cols="11" md="5">
9
- <v-card class="card" hover elevation="5" :href="card.href" rounded target="_blank">
10
- <v-card-title primary-title class="justify-center text-h6" align="center">
9
+ <v-card
10
+ class="card"
11
+ hover
12
+ elevation="5"
13
+ :href="card.href"
14
+ rounded
15
+ target="_blank"
16
+ >
17
+ <v-card-title
18
+ primary-title
19
+ class="justify-center text-h6"
20
+ align="center"
21
+ >
11
22
  {{ card.title }}
12
23
  </v-card-title>
13
24
  <v-row class="justify-center pa-2">
14
25
  <v-col cols="auto">
15
- <v-icon :icon="card.icon" color="primary" size="70" class="justify-center" />
26
+ <v-icon
27
+ :icon="card.icon"
28
+ color="primary"
29
+ size="70"
30
+ class="justify-center"
31
+ />
16
32
  </v-col>
17
33
  </v-row>
18
34
  </v-card>
@@ -23,8 +39,8 @@
23
39
  </template>
24
40
 
25
41
  <script setup>
26
- const props = defineProps({
27
- tool_name: { type: String, required: true },
28
- cards_list: { type: Object, required: true }
29
- })
30
- </script>
42
+ const props = defineProps({
43
+ tool_name: { type: String, required: true },
44
+ cards_list: { type: Object, required: true },
45
+ })
46
+ </script>
@@ -1,14 +1,18 @@
1
1
  <template>
2
2
  <v-container justify="space-around">
3
3
  <v-row align-content="center" align="center">
4
- <v-col v-if="!is_captcha_validated" cols="12" align-self="center" align="center">
5
- <h4 class="pb-3">
6
- Please complete the recaptcha to launch the app
7
- </h4>
8
- <vue-recaptcha ref="recaptcha" :sitekey="site_key" :loadRecaptchaScript="true"
9
- @expired="is_captcha_validated = false" @verify="submit_recaptcha" align-self="center" />
4
+ <v-col
5
+ v-if="!is_captcha_validated"
6
+ cols="12"
7
+ align-self="center"
8
+ align="center"
9
+ >
10
+ <h4 class="pb-3">Please complete the recaptcha to launch the app</h4>
11
+ <Recaptcha />
10
12
  </v-col>
11
- <v-col v-else-if="!cloud_store.is_running && cloud_store.is_connexion_launched">
13
+ <v-col
14
+ v-else-if="!cloud_store.is_running && cloud_store.is_connexion_launched"
15
+ >
12
16
  <Loading />
13
17
  </v-col>
14
18
  </v-row>
@@ -16,39 +20,14 @@
16
20
  </template>
17
21
 
18
22
  <script setup>
19
- import { VueRecaptcha } from "vue-recaptcha"
23
+ const websocket_store = use_websocket_store()
24
+ const cloud_store = use_cloud_store()
25
+ const { is_captcha_validated } = storeToRefs(cloud_store)
20
26
 
21
- const websocket_store = use_websocket_store()
22
- const cloud_store = use_cloud_store()
23
- const { is_captcha_validated } = storeToRefs(cloud_store)
24
-
25
- const props = defineProps({
26
- site_key: { type: String, required: true }
27
- })
28
-
29
- watch(is_captcha_validated, async (value) => {
30
- if (value === true && process.client) {
31
- await cloud_store.create_connexion()
32
- await websocket_store.ws_connect()
33
- }
34
- })
35
-
36
- onMounted(() => {
37
- if (process.client) {
38
- const config = useRuntimeConfig()
39
- if (config.public.NODE_ENV !== 'production') {
40
- cloud_store.$patch({ is_captcha_validated: true })
27
+ watch(is_captcha_validated, async (value) => {
28
+ if (value === true && process.client) {
29
+ await cloud_store.create_connexion()
30
+ await websocket_store.ws_connect()
41
31
  }
42
- }
43
- })
44
-
45
- async function submit_recaptcha (token) {
46
- try {
47
- const response = await $fetch.raw(`/.netlify/functions/recaptcha?token=${token}`)
48
- cloud_store.$patch({ is_captcha_validated: response.status == 200 })
49
- recaptcha.reset()
50
- } catch (error) {
51
- console.error(error)
52
- }
53
- }
32
+ })
54
33
  </script>
@@ -9,16 +9,16 @@
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 before
13
- you can use our free app.
14
- <br>
12
+ We start our server only on demand... and this takes a few minutes
13
+ before you can use our free app.
14
+ <br />
15
15
  This is aligned with our energy sobriety policy. So be patient
16
16
  <v-icon color="primary" size="20">
17
17
  mdi-emoticon-excited-outline
18
18
  </v-icon>
19
- <br>
19
+ <br />
20
20
  </v-card-text>
21
21
  </v-card>
22
22
  </v-col>
23
23
  </v-row>
24
- </template>
24
+ </template>
@@ -2,7 +2,11 @@
2
2
  <v-row v-if="allowed_objects.length" class="justify-left">
3
3
  <v-col v-for="object in allowed_objects" :key="object" cols="2" md="2">
4
4
  <v-card v-ripple class="card ma-2" hover elevation="5" rounded>
5
- <v-img :src="geode_objects[object].image" cover @click="set_geode_object(object)" />
5
+ <v-img
6
+ :src="geode_objects[object].image"
7
+ cover
8
+ @click="set_geode_object(object)"
9
+ />
6
10
  <v-tooltip activator="parent" location="bottom">
7
11
  {{ geode_objects[object].tooltip }}
8
12
  </v-tooltip>
@@ -12,55 +16,58 @@
12
16
  <v-row v-else class="pa-5">
13
17
  <v-card class="card" variant="tonal" elevation="5" rounded>
14
18
  <v-card-text>
15
- This file format isn't supported! Please check the <a href="https://docs.geode-solutions.com/formats/"
16
- target="_blank">
17
- supported file formats documentation</a> for more information
19
+ This file format isn't supported! Please check the
20
+ <a href="https://docs.geode-solutions.com/formats/" target="_blank">
21
+ supported file formats documentation</a
22
+ >
23
+ for more information
18
24
  </v-card-text>
19
25
  </v-card>
20
26
  </v-row>
21
27
  </template>
22
28
 
23
29
  <script setup>
24
- import geode_objects from '@/assets/geode_objects'
30
+ import geode_objects from "@/assets/geode_objects"
25
31
 
26
- const stepper_tree = inject('stepper_tree')
27
- const { files, route_prefix } = stepper_tree
32
+ const stepper_tree = inject("stepper_tree")
33
+ const { files, route_prefix } = stepper_tree
28
34
 
29
- const props = defineProps({
30
- variable_to_update: { type: String, required: true },
31
- variable_to_increment: { type: String, required: true },
32
- })
35
+ const props = defineProps({
36
+ variable_to_update: { type: String, required: true },
37
+ variable_to_increment: { type: String, required: true },
38
+ })
33
39
 
34
- const { variable_to_update, variable_to_increment } = props
40
+ const { variable_to_update, variable_to_increment } = props
35
41
 
36
- const allowed_objects = ref([])
42
+ const allowed_objects = ref([])
37
43
 
38
- async function get_allowed_objects () {
44
+ async function get_allowed_objects() {
45
+ const params = new FormData()
46
+ params.append("filename", files[0].name)
39
47
 
40
- const params = new FormData()
41
- params.append('filename', files[0].name)
42
-
43
- await api_fetch(`${route_prefix}/allowed_objects`,
44
- { method: 'POST', body: params },
45
- {
46
- 'response_function': (response) => { allowed_objects.value = response._data.allowed_objects }
47
- })
48
- }
49
-
50
- function set_geode_object (geode_object) {
51
- stepper_tree[variable_to_update] = geode_object
52
- stepper_tree[variable_to_increment]++
53
- }
54
-
55
- onMounted(() => {
56
- get_allowed_objects()
57
- })
48
+ await api_fetch(
49
+ `${route_prefix}/allowed_objects`,
50
+ { method: "POST", body: params },
51
+ {
52
+ response_function: (response) => {
53
+ allowed_objects.value = response._data.allowed_objects
54
+ },
55
+ },
56
+ )
57
+ }
58
58
 
59
+ function set_geode_object(geode_object) {
60
+ stepper_tree[variable_to_update] = geode_object
61
+ stepper_tree[variable_to_increment]++
62
+ }
59
63
 
64
+ onMounted(() => {
65
+ get_allowed_objects()
66
+ })
60
67
  </script>
61
68
 
62
69
  <style scoped>
63
- .card {
64
- border-radius: 15px;
65
- }
66
- </style>
70
+ .card {
71
+ border-radius: 15px;
72
+ }
73
+ </style>
@@ -2,9 +2,12 @@
2
2
  <v-container>
3
3
  This tool uses our Open-Source codes
4
4
  <v-tooltip location="end">
5
- <span v-for="package_version in packages_versions" :key="package_version.package">
5
+ <span
6
+ v-for="package_version in packages_versions"
7
+ :key="package_version.package"
8
+ >
6
9
  {{ package_version.package }} v{{ package_version.version }}
7
- <br>
10
+ <br />
8
11
  </span>
9
12
  <template #activator="{ props }">
10
13
  <v-icon v-bind="props" color="primary" class="justify-right">
@@ -16,38 +19,42 @@
16
19
  </template>
17
20
 
18
21
  <script setup>
19
- const props = defineProps({
20
- route_prefix: { type: String, required: true }
21
- })
22
- const { route_prefix } = props
22
+ const props = defineProps({
23
+ route_prefix: { type: String, required: true },
24
+ })
25
+ const { route_prefix } = props
26
+
27
+ const cloud_store = use_cloud_store()
23
28
 
24
- const cloud_store = use_cloud_store()
29
+ const packages_versions = ref([])
25
30
 
26
- const packages_versions = ref([])
31
+ async function get_packages_versions() {
32
+ await api_fetch(
33
+ `${route_prefix}/versions`,
34
+ { method: "GET" },
35
+ {
36
+ response_function: (response) => {
37
+ packages_versions.value = response._data.versions
38
+ },
39
+ },
40
+ )
41
+ }
27
42
 
28
- async function get_packages_versions () {
29
- await api_fetch(`${route_prefix}/versions`, { method: 'GET' }, {
30
- 'response_function': (response) => {
31
- packages_versions.value = response._data.versions
43
+ watch(cloud_store.is_running, (value) => {
44
+ if (value === true) {
45
+ get_packages_versions()
32
46
  }
33
47
  })
34
- }
35
48
 
36
- watch(cloud_store.is_running, (value) => {
37
- if (value === true) {
38
- get_packages_versions()
39
- }
40
- })
41
-
42
- onMounted(() => {
43
- if (cloud_store.is_running === true) {
44
- get_packages_versions()
45
- }
46
- })
49
+ onMounted(() => {
50
+ if (cloud_store.is_running === true) {
51
+ get_packages_versions()
52
+ }
53
+ })
47
54
 
48
- onActivated(() => {
49
- if (cloud_store.is_running === true) {
50
- get_packages_versions()
51
- }
52
- })
55
+ onActivated(() => {
56
+ if (cloud_store.is_running === true) {
57
+ get_packages_versions()
58
+ }
59
+ })
53
60
  </script>
@@ -0,0 +1,41 @@
1
+ <template>
2
+ <vue-recaptcha
3
+ ref="recaptcha"
4
+ :sitekey="site_key"
5
+ :loadRecaptchaScript="true"
6
+ @expired="is_captcha_validated = false"
7
+ @verify="submit_recaptcha"
8
+ align-self="center"
9
+ />
10
+ </template>
11
+
12
+ <script setup>
13
+ import { VueRecaptcha } from "vue-recaptcha"
14
+
15
+ const websocket_store = use_websocket_store()
16
+ const cloud_store = use_cloud_store()
17
+ const { is_captcha_validated } = storeToRefs(cloud_store)
18
+
19
+ const site_key = useRuntimeConfig().public.RECAPTCHA_SITE_KEY
20
+
21
+ onMounted(() => {
22
+ if (process.client) {
23
+ const config = useRuntimeConfig()
24
+ if (config.public.NODE_ENV !== "production") {
25
+ cloud_store.$patch({ is_captcha_validated: true })
26
+ }
27
+ }
28
+ })
29
+
30
+ async function submit_recaptcha(token) {
31
+ try {
32
+ const response = await $fetch.raw(
33
+ `/.netlify/functions/recaptcha?token=${token}`,
34
+ )
35
+ cloud_store.$patch({ is_captcha_validated: response.status == 200 })
36
+ recaptcha.reset()
37
+ } catch (error) {
38
+ console.error(error)
39
+ }
40
+ }
41
+ </script>