xref: /aosp_15_r20/development/tools/otagui/src/components/UploadFile.vue (revision 90c8c64db3049935a07c6143d7fd006e26f8ecca)
1<template>
2  <div>
3    <BaseFile
4      label="Upload a target file"
5      @file-select="UploadHandler"
6    />
7    <br>
8    <progress
9      v-if="uploadPercentage > 0"
10      max="100"
11      :value.prop="uploadPercentage"
12    />
13  </div>
14</template>
15
16<script>
17import BaseFile from '@/components/BaseFile.vue'
18import ApiService from '../services/ApiService.js'
19
20export default {
21  components: {
22    BaseFile,
23  },
24  data() {
25    return {
26      files: '',
27      uploadPercentage: 0,
28    }
29  },
30  methods: {
31    async UploadHandler(files) {
32      this.file = files[0]
33      console.log(this.file.name)
34      try {
35        let response = await ApiService.uploadTarget(this.file, (event) => {
36          this.uploadPercentage = Math.round((100 * event.loaded) / event.total)
37        })
38        console.log(response)
39        this.$emit('file-uploaded')
40      } catch (err) {
41        console.log(err)
42      }
43    },
44  },
45}
46</script>
47
48<style scoped>
49progress {
50  width: 100%;
51  height: 40px;
52}
53</style>