42 lines
994 B
Vue
Raw Normal View History

2022-08-17 21:59:51 +02:00
<script setup lang="ts">
2022-08-31 14:28:35 +02:00
import type { TokenInjectType } from "@/api";
import { defineEmits, defineProps, inject } from "vue";
import { check_token, FS, Responses } from "@/api";
2022-08-17 21:59:51 +02:00
2022-08-31 14:28:35 +02:00
const jwt = inject<TokenInjectType>("jwt") as TokenInjectType;
2022-08-17 21:59:51 +02:00
const props = defineProps<{
2022-08-31 14:28:35 +02:00
node: Responses.FS.GetNodeResponse;
2022-08-17 21:59:51 +02:00
}>();
const emit = defineEmits<{
2022-08-31 14:28:35 +02:00
(e: "reloadNode"): void;
2022-08-17 21:59:51 +02:00
}>();
async function del() {
2022-08-31 14:28:35 +02:00
const token = await check_token(jwt);
if (!token) return;
await FS.delete_node(token, props.node.id);
emit("reloadNode");
2022-08-17 21:59:51 +02:00
}
async function download() {
2022-08-31 14:28:35 +02:00
const token = await check_token(jwt);
if (!token) return;
FS.download_file(token, props.node.id);
2022-08-17 21:59:51 +02:00
}
</script>
<template>
2022-08-31 14:28:35 +02:00
<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>
2022-08-17 21:59:51 +02:00
</template>
<style scoped></style>