2022-08-17 21:59:51 +02:00
|
|
|
<script setup lang="ts">
|
|
|
|
import { defineEmits, defineProps, inject } from 'vue';
|
2022-08-24 16:15:33 +02:00
|
|
|
import { check_token, FS, Responses, TokenInjectType } from '@/api';
|
2022-08-17 21:59:51 +02:00
|
|
|
|
|
|
|
const jwt = inject<TokenInjectType>('jwt') as TokenInjectType;
|
|
|
|
const props = defineProps<{
|
2022-08-24 16:15:33 +02:00
|
|
|
node: Responses.FS.GetNodeResponse;
|
2022-08-17 21:59:51 +02:00
|
|
|
}>();
|
|
|
|
|
|
|
|
const emit = defineEmits<{
|
|
|
|
(e: 'reloadNode'): void;
|
|
|
|
}>();
|
|
|
|
|
|
|
|
async function del() {
|
|
|
|
const token = await check_token(jwt);
|
|
|
|
if (!token) return;
|
2022-08-24 16:15:33 +02:00
|
|
|
await FS.delete_node(token, props.node.id);
|
2022-08-17 21:59:51 +02:00
|
|
|
emit('reloadNode');
|
|
|
|
}
|
|
|
|
|
|
|
|
async function download() {
|
|
|
|
const token = await check_token(jwt);
|
|
|
|
if (!token) return;
|
2022-08-24 16:15:33 +02:00
|
|
|
FS.download_file(token, props.node.id);
|
2022-08-17 21:59:51 +02:00
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
|
|
<td>
|
|
|
|
<router-link :to="'/fs/' + props.node.id">{{ node.name }}</router-link>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<a href="#" @click="download()" v-if="props.node.isFile">Download</a>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<a href="#" @click="del()" v-if="props.node.name !== '..'">delete</a>
|
|
|
|
</td>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<style scoped></style>
|