diff --git a/core/frontend/src/components/cloud/CloudSettingsTab.vue b/core/frontend/src/components/cloud/CloudSettingsTab.vue new file mode 100644 index 0000000000..288c3a1db0 --- /dev/null +++ b/core/frontend/src/components/cloud/CloudSettingsTab.vue @@ -0,0 +1,97 @@ + + + + {{ isTokenSet ? 'mdi-weather-cloudy' : 'mdi-wrench' }} + + + {{ isTokenSet ? 'Setup is complete!' : 'Lets connect your vehicle!' }} + + {}" + > + Go to BlueOS Cloud + + + + Click here if you {{ isTokenSet ? 'want to change your token' : 'already have a token' }} + + + + + + + mdi-check-circle-outline + + + + + + + + + + + + diff --git a/core/frontend/src/components/cloud/CloudSyncStatusTab.vue b/core/frontend/src/components/cloud/CloudSyncStatusTab.vue new file mode 100644 index 0000000000..3dc87c7fb5 --- /dev/null +++ b/core/frontend/src/components/cloud/CloudSyncStatusTab.vue @@ -0,0 +1,148 @@ + + + + + {{ summaryMessage }} + + + {{ activeCount }} uploading • {{ pendingCount }} waiting + + + Go to My Missions + + + + + Cloud file sync + + {{ items.length }} + + + + + + + + {{ getFileName(item.display_path || item.path) }} + + + + {{ formatFileSize(item.sent || 0) }} / {{ formatFileSize(item.total || 0) }} + + + Waiting to upload • {{ formatFileSize(item.size) }} + + + Completed • {{ formatFileSize(item.size) }} + + + + + + + {{ formatUploadProgress(item.progress || 0) }} + + + + mdi-check-circle + + + + + + + No files in the queue. + + + + + + + + diff --git a/core/frontend/src/components/cloud/CloudTrayMenu.vue b/core/frontend/src/components/cloud/CloudTrayMenu.vue index a2e333aedb..5ad335be8b 100644 --- a/core/frontend/src/components/cloud/CloudTrayMenu.vue +++ b/core/frontend/src/components/cloud/CloudTrayMenu.vue @@ -9,20 +9,27 @@ - - - mdi-cloud - - + + mdi-cloud + + + Cloud - + + + {{ statusSummary }} + - - - {{ is_token_set ? 'mdi-weather-cloudy' : 'mdi-wrench' }} - - - {{ is_token_set ? 'Setup is complete!' : 'Lets connect your vehicle!' }} - - {}" - > - Go to BlueOS Cloud - - - + + - Click here if you {{ is_token_set ? 'want to change your token' : 'already have a token' }} - - - - - - - mdi-check-circle-outline - - - - - - + Account + Uploads + + + + + + + + + + + + + diff --git a/core/frontend/src/components/cloud/types.ts b/core/frontend/src/components/cloud/types.ts new file mode 100644 index 0000000000..4965b1a289 --- /dev/null +++ b/core/frontend/src/components/cloud/types.ts @@ -0,0 +1,34 @@ +export interface FileSyncEntry { + path: string + size: number +} + +export interface UploadingTransfer { + file: string + display_path: string + sent: number + total: number + timestamp: number + progress: number + completed: boolean +} + +export type CloudSyncItemStatus = 'uploading' | 'pending' | 'completed' + +export interface CloudSyncDisplayItem { + id: string + path: string + size: number + status: CloudSyncItemStatus + display_path?: string + sent?: number + total?: number + progress?: number +} + +export interface FileSyncUploadingEvent { + file?: unknown + sent?: unknown + total?: unknown + timestamp?: unknown +}