diff --git a/src/locales/de.json b/src/locales/de.json index 3c101b50..17809621 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Add Query", diff --git a/src/locales/en.json b/src/locales/en.json index 357ff8ec..d99eb610 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Add Query", diff --git a/src/locales/es.json b/src/locales/es.json index 454d7ed9..f805fd2a 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Add Query", diff --git a/src/locales/fr.json b/src/locales/fr.json index c44cbcc0..61ae015f 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Add Query", diff --git a/src/locales/it.json b/src/locales/it.json index 030c1c99..eb05274f 100644 --- a/src/locales/it.json +++ b/src/locales/it.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Add Query", diff --git a/src/locales/ja.json b/src/locales/ja.json index c0a0efea..944a57e4 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Add Query", diff --git a/src/locales/kn.json b/src/locales/kn.json index f3c05697..1b7a7346 100644 --- a/src/locales/kn.json +++ b/src/locales/kn.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Add Query", diff --git a/src/locales/ko.json b/src/locales/ko.json index 3f2da1b7..e556001c 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Add Query", diff --git a/src/locales/nl.json b/src/locales/nl.json index 6d45d423..539cdbd2 100644 --- a/src/locales/nl.json +++ b/src/locales/nl.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Add Query", diff --git a/src/locales/pt_BR.json b/src/locales/pt_BR.json index 143443a6..6c284149 100644 --- a/src/locales/pt_BR.json +++ b/src/locales/pt_BR.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Add Query", diff --git a/src/locales/ru.json b/src/locales/ru.json index fdfdeae9..f1198dc5 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Add Query", diff --git a/src/locales/sl.json b/src/locales/sl.json index 7848d840..f2709c2f 100644 --- a/src/locales/sl.json +++ b/src/locales/sl.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Dodaj poizvedbo", diff --git a/src/locales/th.json b/src/locales/th.json index 893aed44..c68811df 100644 --- a/src/locales/th.json +++ b/src/locales/th.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Add Query", diff --git a/src/locales/tr.json b/src/locales/tr.json index 728fefdb..d2c22215 100644 --- a/src/locales/tr.json +++ b/src/locales/tr.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Add Query", diff --git a/src/locales/uk.json b/src/locales/uk.json index 93d0bdf8..4a17c71d 100644 --- a/src/locales/uk.json +++ b/src/locales/uk.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Add Query", diff --git a/src/locales/vi.json b/src/locales/vi.json index 0361ae8a..398b3034 100644 --- a/src/locales/vi.json +++ b/src/locales/vi.json @@ -1718,6 +1718,8 @@ "Save Explorer": "Save Explorer", "Save As New Explorer": "Save As New Explorer", "Rename Explorer": "Rename Explorer", + "Hide Explorer": "Hide Explorer", + "Unhide Explorer": "Unhide Explorer", "Delete Explorer": "Delete Explorer", "Explorer Name": "Explorer Name", "Add Query": "Add Query", diff --git a/src/locales/zh_Hans.json b/src/locales/zh_Hans.json index 651cec15..9d2b97aa 100644 --- a/src/locales/zh_Hans.json +++ b/src/locales/zh_Hans.json @@ -1718,6 +1718,8 @@ "Save Explorer": "保存探索", "Save As New Explorer": "另存为新的探索", "Rename Explorer": "重命名探索", + "Hide Explorer": "隐藏探索", + "Unhide Explorer": "取消隐藏探索", "Delete Explorer": "删除探索", "Explorer Name": "探索名称", "Add Query": "添加查询", diff --git a/src/locales/zh_Hant.json b/src/locales/zh_Hant.json index a982f179..966c24dd 100644 --- a/src/locales/zh_Hant.json +++ b/src/locales/zh_Hant.json @@ -1718,6 +1718,8 @@ "Save Explorer": "儲存探索", "Save As New Explorer": "另存新探索", "Rename Explorer": "重新命名探索", + "Hide Explorer": "隱藏探索", + "Unhide Explorer": "取消隱藏探索", "Delete Explorer": "刪除探索", "Explorer Name": "探索名稱", "Add Query": "新增查詢", diff --git a/src/stores/explorer.ts b/src/stores/explorer.ts index 9f54d1a1..adde0390 100644 --- a/src/stores/explorer.ts +++ b/src/stores/explorer.ts @@ -1099,6 +1099,7 @@ export const useExplorersStore = defineStore('explorers', () => { return; } + explorer.hidden = hidden; updateExplorerVisibilityInInsightsExplorerList({ explorer: explorer, hidden }); resolve(data.result); diff --git a/src/views/desktop/insights/ExplorerPage.vue b/src/views/desktop/insights/ExplorerPage.vue index dace0ffa..f33ce4d6 100644 --- a/src/views/desktop/insights/ExplorerPage.vue +++ b/src/views/desktop/insights/ExplorerPage.vue @@ -80,17 +80,9 @@ - + {{ tt('Save As New Explorer') }} - - - {{ tt('Rename Explorer') }} - - - - {{ tt('Delete Explorer') }} - @@ -114,6 +106,19 @@ :disabled="loading || updating || !filteredTransactions || filteredTransactions.length < 1" @click="exportResults" v-if="activeTab === 'table' || activeTab === 'chart'"> + + + {{ tt('Rename Explorer') }} + + + {{ tt('Hide Explorer') }} + + + {{ tt('Unhide Explorer') }} + + + {{ tt('Delete Explorer') }} + @@ -131,7 +136,7 @@ + :loading="loading" :disabled="loading || updating" /> @@ -184,7 +189,7 @@ import { type WeekDayValue, type LocalizedDateRange, DateRangeScene, DateRange } import { TimezoneTypeForStatistics } from '@/core/timezone.ts'; import { type TransactionInsightDataItem, Transaction } from '@/models/transaction.ts'; -import { type InsightsExplorerBasicInfo, InsightsExplorer } from '@/models/explorer.ts'; +import { InsightsExplorerBasicInfo, InsightsExplorer } from '@/models/explorer.ts'; import { parseDateTimeFromUnixTime, @@ -202,8 +207,9 @@ import { mdiCheck, mdiRefresh, mdiDotsVertical, - mdiContentSaveOutline, mdiPencilOutline, + mdiEyeOutline, + mdiEyeOffOutline, mdiDeleteOutline, mdiHomeClockOutline, mdiInvoiceTextClockOutline, @@ -272,7 +278,35 @@ const showCustomDateRangeDialog = ref(false); const firstDayOfWeek = computed(() => userStore.currentUserFirstDayOfWeek); const fiscalYearStart = computed(() => userStore.currentUserFiscalYearStart); -const allExplorers = computed(() => explorersStore.allInsightsExplorerBasicInfos.slice(0, 15)); +const allExplorers = computed(() => { + const maximumExplorersToShow = 14; + const ret: InsightsExplorerBasicInfo[] = []; + let hasCurrentExplorer = false; + + for (const explorer of explorersStore.allInsightsExplorerBasicInfos) { + if (ret.length >= maximumExplorersToShow) { + break; + } + + if (!explorer.hidden || (explorer.id && explorer.id === currentExplorer.value.id)) { + ret.push(explorer); + + if (explorer.id && explorer.id === currentExplorer.value.id) { + hasCurrentExplorer = true; + } + } + } + + if (!hasCurrentExplorer && currentExplorer.value && currentExplorer.value.id) { + if (ret.length >= maximumExplorersToShow) { + ret.pop(); + } + + ret.push(InsightsExplorerBasicInfo.of(currentExplorer.value)); + } + + return ret; +}); const currentFilter = computed(() => explorersStore.transactionExplorerFilter); const currentExplorer = computed(() => explorersStore.currentInsightsExplorer); const filteredTransactions = computed(() => explorersStore.filteredTransactions); @@ -463,6 +497,24 @@ function setExplorerName(): void { }); } +function hideExplorer(hidden: boolean): void { + updating.value = true; + + explorersStore.hideInsightsExplorer({ + explorer: currentExplorer.value, + hidden: hidden + }).then(() => { + updating.value = false; + currentExplorer.value.hidden = hidden; + }).catch(error => { + updating.value = false; + + if (!error.processed) { + snackbar.value?.showError(error); + } + }); +} + function removeExplorer(): void { if (!currentExplorer.value.id) { return;