Skip to content

Commit f777273

Browse files
dynamic output_extensions
1 parent 0df449f commit f777273

File tree

1 file changed

+31
-11
lines changed

1 file changed

+31
-11
lines changed

components/Screenshot.vue

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<v-col cols="4">
2323
<v-select
2424
v-model="output_extension"
25-
:items="['png', 'jpg']"
25+
:items="output_extensions"
2626
label="Extension"
2727
required
2828
/>
@@ -33,6 +33,7 @@
3333
<v-col cols="12">
3434
<v-switch
3535
v-model="include_background"
36+
:disabled="output_extension !== 'png'"
3637
label="Include background"
3738
inset
3839
></v-switch>
@@ -52,6 +53,7 @@
5253
<v-btn
5354
variant="outlined"
5455
class="mb-4"
56+
:disabled="!filename || !output_extension"
5557
color="white"
5658
text
5759
@click="takeScreenshot()"
@@ -64,29 +66,47 @@
6466
</template>
6567

6668
<script setup>
69+
import fileDownload from "js-file-download"
70+
6771
const emit = defineEmits(["close"])
6872
import viewer_schemas from "@geode/opengeodeweb-viewer/schemas.json"
6973
7074
const props = defineProps({
7175
show_dialog: { type: Boolean, required: true },
7276
})
7377
78+
const output_extensions =
79+
viewer_schemas.opengeodeweb_viewer.take_screenshot.properties
80+
.output_extension.enum
7481
const filename = ref("")
7582
const output_extension = ref("png")
7683
const include_background = ref(true)
7784
7885
async function takeScreenshot() {
79-
console.log("screenshot")
80-
81-
await viewer_call({
82-
schema: viewer_schemas.opengeodeweb_viewer.take_screenshot,
83-
params: {
84-
filename: filename.value,
85-
output_extension: output_extension.value,
86-
include_background: include_background.value,
86+
await viewer_call(
87+
{
88+
schema: viewer_schemas.opengeodeweb_viewer.take_screenshot,
89+
params: {
90+
filename: filename.value,
91+
output_extension: output_extension.value,
92+
include_background: include_background.value,
93+
},
8794
},
88-
})
89-
95+
{
96+
response_function: async (response) => {
97+
fileDownload(
98+
response.blob,
99+
filename.value + "." + output_extension.value,
100+
)
101+
},
102+
},
103+
)
90104
emit("close")
91105
}
106+
107+
watch(output_extension, (value) => {
108+
if (value !== "png") {
109+
include_background.value = true
110+
}
111+
})
92112
</script>

0 commit comments

Comments
 (0)