From 701e6df3d3c9fc5038bbfbc7e1c69a115b0e1dd0 Mon Sep 17 00:00:00 2001 From: Bmans Date: Wed, 17 Jun 2026 10:12:41 -0400 Subject: [PATCH] fix(import): show success message and propagate server error to UI Previously the import UI showed nothing on success (the null response was silent) and displayed only a generic fallback message on failure regardless of what the server reported. - Add a dismissible success alert shown after a successful import - Extract the server error message from the response body and display it; fall back to the generic message if no structured error is present - Add import_success flag to data() to drive the new success alert Fixes https://github.com/ActivityWatch/activitywatch/issues/394 Co-Authored-By: Claude Sonnet 4.6 --- src/views/Buckets.vue | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/views/Buckets.vue b/src/views/Buckets.vue index 1c9100ef..d402554f 100644 --- a/src/views/Buckets.vue +++ b/src/views/Buckets.vue @@ -88,7 +88,9 @@ div b-card-group.deck b-card(header="Import buckets") - b-alert(v-if="import_error" show variant="danger" dismissable) + b-alert(v-if="import_success" show variant="success" dismissible @dismissed="import_success = false") + | Import completed successfully! + b-alert(v-if="import_error" show variant="danger" dismissible @dismissed="import_error = null") | {{ import_error }} b-form-file(v-model="import_file" placeholder="Choose or drop a file here..." @@ -174,6 +176,7 @@ export default { import_file: null, import_error: null, + import_success: false, delete_bucket_selected: null, fields: [ { key: 'id', label: 'Bucket ID', sortable: true }, @@ -191,10 +194,12 @@ export default { await this.importBuckets(this.import_file); console.log('Import successful'); this.import_error = null; + this.import_success = true; } catch (err) { console.log('Import failed'); - // TODO: Make aw-server report error message so it can be shown in the web-ui - this.import_error = 'Import failed, see aw-server logs for more info'; + const serverMessage = err?.response?.data?.message; + this.import_error = serverMessage || 'Import failed, see aw-server logs for more info'; + this.import_success = false; } // We need to reload buckets even if we fail because imports can be partial // (first bucket succeeds, second fails for example when importing multiple)