Skip to content

Commit aa2a957

Browse files
feat(ObjectSelector): disable v-card
1 parent 7b211d6 commit aa2a957

File tree

1 file changed

+83
-50
lines changed

1 file changed

+83
-50
lines changed

components/ObjectSelector.vue

Lines changed: 83 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,35 @@
11
<template>
22
<FetchingData v-if="loading" />
3-
<v-row v-else-if="allowed_objects.length" class="justify-left">
4-
<v-col v-for="object in allowed_objects" :key="object" cols="2" md="2">
5-
<v-card v-ripple class="card ma-2" hover rounded>
6-
<v-img
7-
:src="geode_objects[object].image"
8-
cover
9-
@click="set_geode_object(object)"
10-
/>
11-
<v-tooltip activator="parent" location="bottom">
12-
{{ geode_objects[object].tooltip }}
13-
</v-tooltip>
14-
</v-card>
3+
<v-row v-else-if="Object.keys(allowed_objects).length" class="justify-left">
4+
<v-col v-for="(value, key) in allowed_objects" :key="key" cols="2" md="2">
5+
<v-tooltip
6+
:disabled="value.is_saveable"
7+
text="Data not loadable with this class"
8+
location="bottom"
9+
>
10+
<template v-slot:activator="{ props }">
11+
<span v-bind="props">
12+
<v-card
13+
v-ripple
14+
class="card ma-2"
15+
hover
16+
rounded
17+
:disabled="!value['is_saveable']"
18+
:elevation="value['is_saveable'] ? 5 : 3"
19+
>
20+
<v-img
21+
:src="geode_objects[key].image"
22+
cover
23+
@click="set_geode_object(key)"
24+
:class="!value['is_saveable'] ? 'disabled' : ''"
25+
/>
26+
<v-tooltip activator="parent" location="bottom">
27+
{{ geode_objects[key].tooltip }}
28+
</v-tooltip>
29+
</v-card>
30+
</span>
31+
</template>
32+
</v-tooltip>
1533
</v-col>
1634
</v-row>
1735
<v-row v-else class="pa-5">
@@ -45,44 +63,49 @@
4563
const { filenames, key } = props
4664
4765
const loading = ref(false)
48-
const allowed_objects = ref([])
66+
// const allowed_objects = ref([])
67+
68+
const allowed_objects = {
69+
BRep: { is_saveable: false },
70+
StructuralModel: { is_saveable: true },
71+
}
4972
5073
const toggle_loading = useToggle(loading)
5174
52-
async function get_allowed_objects() {
53-
toggle_loading()
54-
allowed_objects.value = []
55-
var promise_array = []
56-
for (const filename of filenames) {
57-
const params = { filename, key }
58-
const promise = new Promise((resolve, reject) => {
59-
api_fetch(
60-
{ schema, params },
61-
{
62-
request_error_function: () => {
63-
reject()
64-
},
65-
response_function: (response) => {
66-
if (allowed_objects.value.length == 0) {
67-
allowed_objects.value = response._data.allowed_objects
68-
} else {
69-
allowed_objects.value = toRaw(allowed_objects.value).filter(
70-
(value) => response._data.allowed_objects.includes(value),
71-
)
72-
}
73-
resolve()
74-
},
75-
response_error_function: () => {
76-
reject()
77-
},
78-
},
79-
)
80-
})
81-
promise_array.push(promise)
82-
}
83-
await Promise.all(promise_array)
84-
toggle_loading()
85-
}
75+
// async function get_allowed_objects() {
76+
// toggle_loading()
77+
// allowed_objects.value = []
78+
// var promise_array = []
79+
// for (const filename of filenames) {
80+
// const params = { filename, key }
81+
// const promise = new Promise((resolve, reject) => {
82+
// api_fetch(
83+
// { schema, params },
84+
// {
85+
// request_error_function: () => {
86+
// reject()
87+
// },
88+
// response_function: (response) => {
89+
// if (allowed_objects.value.length == 0) {
90+
// allowed_objects.value = response._data.allowed_objects
91+
// } else {
92+
// allowed_objects.value = toRaw(allowed_objects.value).filter(
93+
// (value) => response._data.allowed_objects.includes(value),
94+
// )
95+
// }
96+
// resolve()
97+
// },
98+
// response_error_function: () => {
99+
// reject()
100+
// },
101+
// },
102+
// )
103+
// })
104+
// promise_array.push(promise)
105+
// }
106+
// await Promise.all(promise_array)
107+
// toggle_loading()
108+
// }
86109
87110
function set_geode_object(input_geode_object) {
88111
if (input_geode_object != "") {
@@ -91,7 +114,17 @@
91114
}
92115
}
93116
94-
onMounted(() => {
95-
get_allowed_objects()
96-
})
117+
// onMounted(() => {
118+
// get_allowed_objects()
119+
// })
97120
</script>
121+
122+
<style scoped>
123+
.disabled {
124+
filter: opacity(0.7);
125+
cursor: pointer;
126+
}
127+
.disabled div {
128+
cursor: not-allowed;
129+
}
130+
</style>

0 commit comments

Comments
 (0)