diff --git a/src/views/desktop/transactions/import/ImportDialog.vue b/src/views/desktop/transactions/import/ImportDialog.vue
index 801b990e..1d6c6117 100644
--- a/src/views/desktop/transactions/import/ImportDialog.vue
+++ b/src/views/desktop/transactions/import/ImportDialog.vue
@@ -822,7 +822,7 @@ import type { StepBarItem } from '@/components/desktop/StepsBar.vue';
import PaginationButtons from '@/components/desktop/PaginationButtons.vue';
import ConfirmDialog from '@/components/desktop/ConfirmDialog.vue';
import SnackBar from '@/components/desktop/SnackBar.vue';
-import BatchReplaceDialog from './dialogs/BatchReplaceDialog.vue';
+import BatchReplaceDialog, { type BatchReplaceDialogDataType } from './dialogs/BatchReplaceDialog.vue';
import { ref, computed, useTemplateRef, watch } from 'vue';
@@ -2358,7 +2358,7 @@ function updateTransactionData(transaction: ImportTransaction): void {
}
}
-function showBatchReplaceDialog(type: string): void {
+function showBatchReplaceDialog(type: BatchReplaceDialogDataType): void {
if (editingTransaction.value) {
return;
}
@@ -2423,7 +2423,7 @@ function showBatchReplaceDialog(type: string): void {
});
}
-function showReplaceInvalidItemDialog(type: string, invalidItems: NameValue[]): void {
+function showReplaceInvalidItemDialog(type: BatchReplaceDialogDataType, invalidItems: NameValue[]): void {
if (editingTransaction.value) {
return;
}
diff --git a/src/views/desktop/transactions/import/dialogs/BatchReplaceDialog.vue b/src/views/desktop/transactions/import/dialogs/BatchReplaceDialog.vue
index 3dd4fcef..0616f7d6 100644
--- a/src/views/desktop/transactions/import/dialogs/BatchReplaceDialog.vue
+++ b/src/views/desktop/transactions/import/dialogs/BatchReplaceDialog.vue
@@ -13,6 +13,15 @@
{{ tt('Replace Invalid Transfer Categories') }}
{{ tt('Replace Invalid Accounts') }}
{{ tt('Replace Invalid Transaction Tags') }}
+
+
+
+
+
+ {{ tt('Refresh') }}
+
@@ -22,6 +31,7 @@
item-title="name"
item-value="value"
persistent-placeholder
+ :disabled="loading"
:label="tt('Invalid Category')"
:placeholder="tt('Invalid Category')"
:items="invalidItems"
@@ -36,7 +46,7 @@
secondary-key-field="id" secondary-value-field="id" secondary-title-field="name"
secondary-icon-field="icon" secondary-icon-type="category" secondary-color-field="color"
secondary-hidden-field="hidden"
- :disabled="!hasAvailableExpenseCategories"
+ :disabled="loading || !hasAvailableExpenseCategories"
:enable-filter="true" :filter-placeholder="tt('Find category')" :filter-no-items-text="tt('No available category')"
:show-selection-primary-text="true"
:custom-selection-primary-text="getTransactionPrimaryCategoryName(targetItem, allCategories[CategoryType.Expense])"
@@ -53,7 +63,7 @@
secondary-key-field="id" secondary-value-field="id" secondary-title-field="name"
secondary-icon-field="icon" secondary-icon-type="category" secondary-color-field="color"
secondary-hidden-field="hidden"
- :disabled="!hasAvailableIncomeCategories"
+ :disabled="loading || !hasAvailableIncomeCategories"
:enable-filter="true" :filter-placeholder="tt('Find category')" :filter-no-items-text="tt('No available category')"
:show-selection-primary-text="true"
:custom-selection-primary-text="getTransactionPrimaryCategoryName(targetItem, allCategories[CategoryType.Income])"
@@ -70,7 +80,7 @@
secondary-key-field="id" secondary-value-field="id" secondary-title-field="name"
secondary-icon-field="icon" secondary-icon-type="category" secondary-color-field="color"
secondary-hidden-field="hidden"
- :disabled="!hasAvailableTransferCategories"
+ :disabled="loading || !hasAvailableTransferCategories"
:enable-filter="true" :filter-placeholder="tt('Find category')" :filter-no-items-text="tt('No available category')"
:show-selection-primary-text="true"
:custom-selection-primary-text="getTransactionPrimaryCategoryName(targetItem, allCategories[CategoryType.Transfer])"
@@ -91,6 +101,7 @@
item-title="name"
item-value="value"
persistent-placeholder
+ :disabled="loading"
:label="tt('Invalid Account')"
:placeholder="tt('Invalid Account')"
:items="invalidItems"
@@ -107,7 +118,7 @@
secondary-key-field="id" secondary-value-field="id"
secondary-title-field="name" secondary-footer-field="displayBalance"
secondary-icon-field="icon" secondary-icon-type="account" secondary-color-field="color"
- :disabled="!allVisibleAccounts.length"
+ :disabled="loading || !allVisibleAccounts.length"
:enable-filter="true" :filter-placeholder="tt('Find account')" :filter-no-items-text="tt('No available account')"
:custom-selection-primary-text="getAccountDisplayName(targetItem)"
:label="tt('Target Account')"
@@ -125,6 +136,7 @@
item-title="name"
item-value="value"
persistent-placeholder
+ :disabled="loading"
:label="tt('Invalid Tag')"
:placeholder="tt('Invalid Tag')"
:items="invalidItems"
@@ -138,6 +150,7 @@
item-value="id"
persistent-placeholder
chips
+ :disabled="loading"
:label="tt('Target Tag')"
:placeholder="tt('Target Tag')"
:items="allTags"
@@ -166,16 +179,20 @@
- {{ tt('OK') }}
- {{ tt('Cancel') }}
+ {{ tt('OK') }}
+ {{ tt('Cancel') }}
+
+