6262 <v-btn
6363 v-tooltip =" 'Download log for all services in BlueOS'"
6464 class =" ma-2"
65+ :disabled =" system_folder_manager.inProgress || deletion_in_progress"
6566 @click =" download_service_log_files"
6667 >
6768 <v-icon left >
7374 <v-btn
7475 v-tooltip =" 'Frees up space on the SD card'"
7576 class =" ma-2"
76- :disabled =" disable_remove || deletion_in_progress"
77+ :disabled =" disable_remove || deletion_in_progress || system_folder_manager.inProgress "
7778 @click =" remove_service_log_files"
7879 >
7980 <v-icon left >
8586
8687 <v-expand-transition >
8788 <div v-if =" deletion_in_progress" class =" pa-4" >
88- <v-progress-linear
89- indeterminate
90- color =" primary"
89+ <progress-information
90+ :type =" 'deletion'"
91+ :current-size =" current_deletion_size"
92+ :total-size =" current_deletion_total_size"
93+ :current-path =" current_deletion_path"
94+ :status =" current_deletion_status"
95+ />
96+ </div >
97+ <div v-else-if =" system_folder_manager.inProgress" class =" pa-4" >
98+ <progress-information
99+ :type =" 'download'"
100+ :operation =" 'Downloading system log files...'"
101+ :current-size =" system_folder_manager.downloadedBytes"
102+ :total-size =" system_folder_manager.totalBytes"
103+ :download-speed =" system_folder_manager.downloadSpeed"
91104 />
92- <div class =" mt-2" >
93- <div class =" text-subtitle-2" >
94- Deleting: {{ current_deletion_path }}
95- </div >
96- <div class =" text-caption" >
97- Size: {{ formatSize(current_deletion_size / 1024) }}
98- </div >
99- <div class =" text-caption" >
100- Total: {{ formatSize(current_deletion_total_size / 1024) }}
101- </div >
102- <div class =" text-caption" >
103- Status: {{ current_deletion_status }}
104- </div >
105- </div >
106105 </div >
107106 </v-expand-transition >
108107
116115 <v-btn
117116 v-tooltip =" 'Download logs from MAVLink'"
118117 class =" ma-2"
118+ :disabled =" mavlink_folder_manager.inProgress || operation_in_progress"
119119 @click =" download_mavlink_log_files"
120120 >
121121 <v-icon left >
127127 <v-btn
128128 v-tooltip =" 'Frees up space on the SD card deleting MAVLink logs'"
129129 class =" ma-2"
130- :disabled =" disable_remove_mavlink"
130+ :disabled =" disable_remove_mavlink || mavlink_folder_manager.inProgress "
131131 @click =" remove_mavlink_log_files"
132132 >
133133 <v-icon left >
137137 </v-btn >
138138 </v-card-actions >
139139
140+ <v-expand-transition >
141+ <div v-if =" mavlink_folder_manager.inProgress" class =" pa-4" >
142+ <progress-information
143+ :type =" 'download'"
144+ :operation =" 'Downloading MAVLink log files...'"
145+ :current-size =" mavlink_folder_manager.downloadedBytes"
146+ :total-size =" mavlink_folder_manager.totalBytes"
147+ :download-speed =" mavlink_folder_manager.downloadSpeed"
148+ />
149+ </div >
150+ </v-expand-transition >
151+
140152 <v-divider />
141153
142154 <v-card-title class =" align-center" >
175187<script lang="ts">
176188import Vue from ' vue'
177189
190+ import ProgressInformation from ' @/components/common/ProgressInformation.vue'
178191import SpinningLogo from ' @/components/common/SpinningLogo.vue'
179- import filebrowser from ' @/libs/filebrowser'
180192import Notifier from ' @/libs/notifier'
181193import bag from ' @/store/bag'
182194import { commander_service } from ' @/types/frontend_services'
183195import back_axios from ' @/utils/api'
196+ import { FolderManager } from ' @/utils/folder_manager'
184197import { prettifySize } from ' @/utils/helper_functions'
185198import { parseStreamingResponse } from ' @/utils/streaming'
186199
@@ -192,6 +205,7 @@ export default Vue.extend({
192205 name: ' SettingsMenu' ,
193206 components: {
194207 SpinningLogo ,
208+ ProgressInformation ,
195209 },
196210 data() {
197211 return {
@@ -210,6 +224,8 @@ export default Vue.extend({
210224 current_deletion_size: 0 ,
211225 current_deletion_total_size: 0 ,
212226 current_deletion_status: ' ' ,
227+ system_folder_manager: new FolderManager (),
228+ mavlink_folder_manager: new FolderManager (),
213229 }
214230 },
215231 computed: {
@@ -241,12 +257,10 @@ export default Vue.extend({
241257 return prettifySize (bytes )
242258 },
243259 async download_service_log_files(): Promise <void > {
244- const folder = await filebrowser .fetchFolder (' system_logs' )
245- await filebrowser .downloadFolder (folder )
260+ await this .system_folder_manager .downloadFolder (' system_logs' )
246261 },
247262 async download_mavlink_log_files(): Promise <void > {
248- const folder = await filebrowser .fetchFolder (' ardupilot_logs/logs' )
249- await filebrowser .downloadFolder (folder )
263+ await this .mavlink_folder_manager .downloadFolder (' ardupilot_logs/logs' )
250264 },
251265 async get_log_folder_size(): Promise <void > {
252266 this .prepare_operation (' Checking system log size...' )
0 commit comments